|  | @@ -15,15 +15,6 @@ var FeeRate = {
 | 
	
		
			
				|  |  |              this.datas = datas;
 | 
	
		
			
				|  |  |              socketObject.connect();
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  | -   /*     FeeRate.prototype.getViewDatas = function(){
 | 
	
		
			
				|  |  | -            var  rates=[];
 | 
	
		
			
				|  |  | -            _.forEach(this.datas,function (item) {
 | 
	
		
			
				|  |  | -                if(item.status == 'activate'){
 | 
	
		
			
				|  |  | -                    rates= item.rates;
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | -            return rates;
 | 
	
		
			
				|  |  | -        };*/
 | 
	
		
			
				|  |  |          FeeRate.prototype.getActivateFeeRate = function () {
 | 
	
		
			
				|  |  |              var feeRate={
 | 
	
		
			
				|  |  |                  rates:[]
 | 
	
	
		
			
				|  | @@ -126,7 +117,8 @@ var FeeRate = {
 | 
	
		
			
				|  |  |              doc.rate.rate =doc.rate.rate.toDecimal(feeRate_consts.decimal);
 | 
	
		
			
				|  |  |              this.updateFeeRate(query,doc);
 | 
	
		
			
				|  |  |              if(this.ifRateChange(params)){
 | 
	
		
			
				|  |  | -                this.synchronizeFeeRate();
 | 
	
		
			
				|  |  | +                //this.synchronizeFeeRate();
 | 
	
		
			
				|  |  | +                this.onFeeRateChange(params.dataItem.ID,params.dataItem.rate);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -139,7 +131,6 @@ var FeeRate = {
 | 
	
		
			
				|  |  |          FeeRate.prototype.updateFeeRate=function (query,doc) {
 | 
	
		
			
				|  |  |            var updateData = this.getUpdateData('ut_update',query,doc,'update_rates');
 | 
	
		
			
				|  |  |              project.pushNow('updateFeeRate',[this.sourceType],updateData);
 | 
	
		
			
				|  |  | -            socket.emit('feeRateChangeNotify', this.getActivateFeeRateFileID());
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |          FeeRate.prototype.updateStatusBySelected = function (updateTasks) {
 | 
	
		
			
				|  |  |              var updateData = [];
 | 
	
	
		
			
				|  | @@ -155,20 +146,52 @@ var FeeRate = {
 | 
	
		
			
				|  |  |              var node = project.mainTree.selected;
 | 
	
		
			
				|  |  |              if(node){
 | 
	
		
			
				|  |  |                  if (node.sourceType==='ration' && calcProgramObj.sheet) {
 | 
	
		
			
				|  |  | -                    project.calcProgram.compileAllTemps();
 | 
	
		
			
				|  |  |                      calcProgramObj.showData(node);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |          FeeRate.prototype.ifRateChange=function (params) {
 | 
	
		
			
				|  |  | -            if(params.dataItem.rate!=params.oldDataItem.rate){
 | 
	
		
			
				|  |  | +            if(params.dataItem.memo==params.oldDataItem.memo){
 | 
	
		
			
				|  |  |                  return true;
 | 
	
		
			
				|  |  |              }else {
 | 
	
		
			
				|  |  |                  return false;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  | -        FeeRate.prototype.onFeeRateChange=function (feeRateID,) {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +        FeeRate.prototype.onFeeRateChange=function (rateID,value) {
 | 
	
		
			
				|  |  | +            var node = project.mainTree.selected;
 | 
	
		
			
				|  |  | +            this.refreshCalProgramByRateID(rateID,value);
 | 
	
		
			
				|  |  | +            this.refreshBillsByRateID(rateID,value);
 | 
	
		
			
				|  |  | +            if(node){
 | 
	
		
			
				|  |  | +                if (node.sourceType==='ration' && calcProgramObj.sheet) {
 | 
	
		
			
				|  |  | +                    calcProgramObj.showData(node);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            socket.emit('feeRateChangeNotify', this.getActivateFeeRateFileID());
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +        FeeRate.prototype.refreshCalProgramByRateID=function (rateID,value) {
 | 
	
		
			
				|  |  | +            var templates = project.calcProgram.datas.templates;
 | 
	
		
			
				|  |  | +            for(var i =0;i<templates.length;i++){
 | 
	
		
			
				|  |  | +                _.forEach(templates[i].calcItems,function (item) {
 | 
	
		
			
				|  |  | +                    if(item.feeRateID==rateID){
 | 
	
		
			
				|  |  | +                        item.feeRate = value;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            project.calcProgram.compileAllTemps();
 | 
	
		
			
				|  |  | +            rationPM.refreshDetailSheet();
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +        FeeRate.prototype.refreshBillsByRateID=function(rateID,value){
 | 
	
		
			
				|  |  | +            var nodes = _.filter(projectObj.project.mainTree.items,function (n) {
 | 
	
		
			
				|  |  | +                if(n.sourceType==ModuleNames.bills&&n.data.feeRateID==rateID){
 | 
	
		
			
				|  |  | +                    n.data.feeRate=number_util.roundToString(value,feeRate_consts.decimal);
 | 
	
		
			
				|  |  | +                    return true;
 | 
	
		
			
				|  |  | +                }else {
 | 
	
		
			
				|  |  | +                    return false;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            if(nodes.length>0){
 | 
	
		
			
				|  |  | +                projectObj.mainController.refreshTreeNode(nodes)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |          FeeRate.prototype.changeFeeRateStandard=function(newVal,callback){
 | 
	
		
			
				|  |  |              var me =this;
 | 
	
	
		
			
				|  | @@ -238,8 +261,8 @@ var FeeRate = {
 | 
	
		
			
				|  |  |                      var data=me.getfbUpdateData(rate,bill,value);
 | 
	
		
			
				|  |  |                      this.setFeeRateToBill(data,function (result) {
 | 
	
		
			
				|  |  |                          if(data.hasOwnProperty('feeRate')){
 | 
	
		
			
				|  |  | -                            me.refreshBillsByRateID(rate,value);
 | 
	
		
			
				|  |  | -                            socket.emit('feeRateChangeNotify', me.getActivateFeeRateFileID());
 | 
	
		
			
				|  |  | +                            rate.rate=value;
 | 
	
		
			
				|  |  | +                            me.onFeeRateChange(rate.ID,value);
 | 
	
		
			
				|  |  |                          }else {
 | 
	
		
			
				|  |  |                              bill.feeRate=value;
 | 
	
		
			
				|  |  |                              projectObj.mainController.refreshTreeNode([node])
 | 
	
	
		
			
				|  | @@ -284,33 +307,10 @@ var FeeRate = {
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              CommonAjax.post('/feeRates/updateFeeRate', data, function (data) {
 | 
	
		
			
				|  |  | -                for(var i =0;i<rationPM.datas.length;i++){
 | 
	
		
			
				|  |  | -                    _.forEach(rationPM.datas[i].calcItems,function (item) {
 | 
	
		
			
				|  |  | -                        if(item.feeRateID==rate.ID){
 | 
	
		
			
				|  |  | -                            item.feeRate = value;
 | 
	
		
			
				|  |  | -                        }
 | 
	
		
			
				|  |  | -                    })
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  |                  rate.rate=value;
 | 
	
		
			
				|  |  | -                project.calcProgram.compileAllTemps();
 | 
	
		
			
				|  |  | -                rationPM.refreshDetailSheet();
 | 
	
		
			
				|  |  | -                socket.emit('feeRateChangeNotify', me.getActivateFeeRateFileID());
 | 
	
		
			
				|  |  | +                me.onFeeRateChange(rate.ID,value);
 | 
	
		
			
				|  |  |              });
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        FeeRate.prototype.refreshBillsByRateID=function(rate,value){
 | 
	
		
			
				|  |  | -            rate.rate=value;
 | 
	
		
			
				|  |  | -            var nodes = _.filter(projectObj.project.mainTree.items,function (n) {
 | 
	
		
			
				|  |  | -                if(n.sourceType==ModuleNames.bills&&n.data.feeRateID==rate.ID){
 | 
	
		
			
				|  |  | -                    n.data.feeRate=number_util.roundToString(value,feeRate_consts.decimal);
 | 
	
		
			
				|  |  | -                    return true;
 | 
	
		
			
				|  |  | -                }else {
 | 
	
		
			
				|  |  | -                    return false;
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | -            if(nodes.length>0){
 | 
	
		
			
				|  |  | -                projectObj.mainController.refreshTreeNode(nodes)
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          FeeRate.prototype.getfbUpdateData=function (rate,bill,value) {
 | 
	
		
			
				|  |  |              var data={};
 |