| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628 | 
							- /**
 
-  * Created by CSL on 2017-06-20.
 
-  */
 
- //var ModuleNames = require('./main_consts.js');
 
- var FeeRate = {
 
-     createNew: function (project) {
 
-         function FeeRate(proj){
 
-             this.datas = null;
 
-             this.datasBackup = null;
 
-             this.sourceType = ModuleNames.feeRate;
 
-             proj.registerModule(ModuleNames.feeRate, this);
 
-         };
 
-         FeeRate.prototype.loadData = function (datas) {
 
-             this.datas = datas;
 
-         };
 
-         FeeRate.prototype.backupDatas=function () {
 
-           this.datasBackup = _.cloneDeep(this.datas);
 
-         };
 
-         FeeRate.prototype.dataRecovery=function () {
 
-             this.datas = this.datasBackup;
 
-             feeRateObject.activateFeeRate = this.getActivateFeeRate();
 
-             feeRateObject.datas = feeRateObject.activateFeeRate.rates;
 
-         };
 
-         FeeRate.prototype.getActivateFeeRate = function () {
 
-             var feeRate={
 
-                 rates:[]
 
-             };
 
-             if(this.datas){
 
-                 feeRate = this.datas;
 
-             }
 
-             return feeRate;
 
-         };
 
-         FeeRate.prototype.getActivateFeeRateFileID = function(){
 
-             var feeRate = this.getActivateFeeRate();
 
-             if(feeRate){
 
-                 return feeRate.ID;
 
-             }else {
 
-                 return 0;
 
-             }
 
-         };
 
-         FeeRate.prototype.getActivateFeeRateID = function(){
 
-             var feeRate = this.getActivateFeeRate();
 
-             if(feeRate){
 
-                 return feeRate.feeRateID;
 
-             }else {
 
-                 return 0;
 
-             }
 
-         };
 
-         FeeRate.prototype.getFeeRateByID=function (ID) {
 
-             ID=parseInt(ID);
 
-             var rates = this.getActivateFeeRate().rates;
 
-             return _.find(rates,{'ID':ID})
 
-         };
 
-         FeeRate.prototype.getSubViewData= function(item) {
 
-             var datas = [];
 
-             if(item.hasOwnProperty('subFeeRate')&&item.subFeeRate!=undefined){
 
-                 datas = item.subFeeRate.recodes;
 
-             }
 
-             return datas;
 
-         };
 
-         FeeRate.prototype.getValueMap= function(item) {
 
-             var valueMap = {};
 
-             if(item.hasOwnProperty('subFeeRate')&&item.subFeeRate!=undefined){
 
-                 var recodes = item.subFeeRate.valueMaps;
 
-                 _.forEach(recodes,function (r) {
 
-                     valueMap[r.ID] = r.value;
 
-                 })
 
-                 return valueMap;
 
-             }else {
 
-                 return null;
 
-             }
 
-         };
 
-         FeeRate.prototype.getOptions=function (options,subRates,parentID,itemID) {
 
-             var data = {};
 
-             var list = _.filter(subRates, {'ParentID':parentID});
 
-             if(list&&list.length>0){
 
-                 if(parentID==-1){
 
-                     data.ID = itemID+'_'+0;
 
-                 }else {
 
-                     data.ID = itemID+'_'+parentID;
 
-                 }
 
-                 data.name = list[0].type;
 
-                 data.optionList=[];
 
-             }
 
-             var nexParent = null;
 
-             _.forEach(list,function (c) {
 
-                 var option={};
 
-                 option.name = c.name;
 
-                 option.value = c.ID;
 
-                 option.selected = c.selected;
 
-                 data.optionList.push(option);
 
-                 if(c.selected&&!c.isLeaf){
 
-                     nexParent = c.ID;
 
-                 }
 
-             })
 
-             options.push(data);
 
-             if(nexParent!=null){
 
-                 this.getOptions(options,subRates,nexParent,itemID);
 
-             }
 
-         };
 
-         FeeRate.prototype.getUpdateData=function(type,query,doc,callfunction){
 
-             var updateData = [];
 
-             var newobj = {
 
-                 'updateType': type,
 
-                 'query': query,
 
-             }
 
-             if(doc){
 
-                 newobj['doc']=doc;
 
-             }
 
-             if(callfunction){
 
-                 newobj['updateFunction']=callfunction;
 
-             }
 
-             updateData.push(newobj);
 
-             return updateData;
 
-         };
 
-         FeeRate.prototype.updateFeeRateByEdit = function(params,feerate){
 
-             var query={
 
-                 ID:feerate.feeRateID
 
-             };
 
-             var doc ={
 
-                 rateIndex:params.sourceIndex,
 
-                 rate:params.dataItem
 
-             }
 
-             doc.rate.rate =doc.rate.rate.toDecimal(getDecimal("feeRate"));
 
-             this.updateFeeRate(query,doc);
 
-             if(this.ifRateChange(params)){
 
-                 //this.synchronizeFeeRate();
 
-                 this.onFeeRateChange(params.dataItem.ID,params.dataItem.rate);
 
-             }
 
-             $.bootstrapLoading.end();
 
-         };
 
-         FeeRate.prototype.batchUpdateFeeRate = function (items,feerate) {
 
-             var me = this;
 
-             var data={
 
-                 query:{
 
-                     ID:feerate.feeRateID
 
-                 },
 
-                 doc:items,
 
-                 user_id:userID
 
-             }
 
-             var errCallBack=function () {
 
-                 me.dataRecovery();
 
-                 $.bootstrapLoading.end();
 
-             };
 
-             $.bootstrapLoading.start();
 
-             CommonAjax.post('/feeRates/updateRates', data, function (result) {
 
-                 _.forEach(items,function (t) {
 
-                     feeRateObject.mainFeeRateSheet.setValue(t.rateIndex, 1, t.rate.rate);
 
-                  });
 
-                  me.onFeeRateFileChange();
 
-                 $.bootstrapLoading.end();
 
-             },errCallBack);
 
-         };
 
-         FeeRate.prototype.updateFeeRate=function (query,doc) {
 
-           var updateData = this.getUpdateData('ut_update',query,doc,'update_rates');
 
-             project.pushNow('updateFeeRate',[this.sourceType],updateData);
 
-         };
 
-         FeeRate.prototype.updateStatusBySelected = function (updateTasks) {
 
-             var updateData = [];
 
-             var newobj = {
 
-                 'updateType': 'ut_update',
 
-                 'tasks': updateTasks,
 
-                 'updateFunction':'updateStatusBySelected'
 
-             }
 
-             updateData.push(newobj);
 
-             project.pushNow('updateFeeRate',[this.sourceType],updateData);
 
-         };
 
-         FeeRate.prototype.synchronizeFeeRate = function () {
 
-             var node = project.mainTree.selected;
 
-             if(node){
 
-                 if (node.sourceType==='ration' && calcProgramObj.sheet) {
 
-                     calcProgramObj.refreshCalcProgram(node, 3);
 
-                 }
 
-             }
 
-         };
 
-         FeeRate.prototype.ifRateChange=function (params) {
 
-             if(params.dataItem.memo==params.oldDataItem.memo){
 
-                 return true;
 
-             }else {
 
-                 return false;
 
-             }
 
-         };
 
-         FeeRate.prototype.onFeeRateChange=function (rateID,value) {
 
-            this.onFeeRatesChange([{rateID:rateID,value:value}]);
 
-         };
 
-         FeeRate.prototype.onFeeRatesChange = function (infos) {//{rateID:'AAAA',value:23}
 
-             let node = project.mainTree.selected;
 
-             for(let i of infos){
 
-                 this.refreshCalProgramByRateID(i.rateID,i.value);
 
-                 this.refreshBillsByRateID(i.rateID,i.value);
 
-             }
 
-             if(node){
 
-                 if (node.sourceType==='ration' && calcProgramObj.sheet) {
 
-                     calcProgramObj.refreshCalcProgram(node, 3);
 
-                 }
 
-             }
 
-             project.calcProgram.calcAllNodesAndSave(calcAllType.catAll);
 
-             project.markUpdateProject({projectID:project.ID(),feeRateID:this.getActivateFeeRateFileID()},"feeRate");
 
-             socket.emit('feeRateChangeNotify', this.getActivateFeeRateFileID());
 
-         };
 
-         FeeRate.prototype.onFeeRateFileChange=function () {//整个费率文件换了,原费率文件内容不变
 
-             this.refreshCalProgramWhenFeeFileChange();
 
-             this.refreshBillsWhenFeeFileChange();
 
-             var node = project.mainTree.selected;
 
-             if(node){
 
-                 if (node.sourceType==='ration' && calcProgramObj.sheet) {
 
-                     calcProgramObj.refreshCalcProgram(node, 3);
 
-                 }
 
-             }
 
-             project.calcProgram.calcAllNodesAndSave(calcAllType.catAll);
 
-             if(socketObject.roomInfo){
 
-                 //判断费率文件ID是否改变了
 
-                 if(socketObject.roomInfo.feeRate == this.getActivateFeeRateFileID()){//如果没变,则是重选了标准
 
-                     project.markUpdateProject({projectID:project.ID(),feeRateID:this.getActivateFeeRateFileID()},"feeRate");
 
-                     socket.emit('feeRateChangeNotify', socketObject.roomInfo.feeRate);
 
-                 }else {
 
-                     let data ={
 
-                         projectID:project.ID(),
 
-                         oldRoom:socketObject.roomInfo.feeRate,
 
-                         newRoom:this.getActivateFeeRateFileID(),
 
-                         name:'feeRate'
 
-                     };
 
-                     socket.emit('changeNewRoom',data);
 
-                     socketObject.roomInfo.feeRate = this.getActivateFeeRateFileID();
 
-                 }
 
-             }
 
-         };
 
-         FeeRate.prototype.refreshBillsWhenFeeFileChange=function(){
 
-             var me = this;
 
-             var nodes = _.filter(projectObj.project.mainTree.items,function (n) {
 
-                 if(n.sourceType==ModuleNames.bills&&n.data.feeRateID){
 
-                     if(n.data.hasOwnProperty("feeRateID")&&n.data.feeRateID){
 
-                         var rate = me.getFeeRateByID(n.data.feeRateID);
 
-                         if(rate){
 
-                             n.data.feeRate=number_util.roundToString(rate.rate,getDecimal("feeRate"));
 
-                             return true;
 
-                         }else {
 
-                             n.data.feeRate=null;
 
-                             return true;
 
-                         }
 
-                     }
 
-                 }
 
-                 return false;
 
-             })
 
-             if(nodes.length>0){
 
-                 projectObj.mainController.refreshTreeNode(nodes)
 
-             }
 
-         };
 
-         FeeRate.prototype.refreshCalProgramWhenFeeFileChange=function () {
 
-             var me = this;
 
-             var templates = project.calcProgram.datas.templates;
 
-             for(var i =0;i<templates.length;i++){
 
-                 _.forEach(templates[i].calcItems,function (item) {
 
-                     if(item.hasOwnProperty("feeRateID")&&item.feeRateID){
 
-                         var rate = me.getFeeRateByID(item.feeRateID);
 
-                         if(rate){
 
-                             item.feeRate = rate.rate;
 
-                         }
 
-                     }
 
-                 })
 
-             }
 
-             project.calcProgram.compileAllTemps();
 
-             calcProgramManage.refreshDetailSheet();
 
-         }
 
-         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();
 
-             calcProgramManage.refreshDetailSheet();
 
-         };
 
-         FeeRate.prototype.refreshBillsByRateID=function(rateID,value){
 
-             let nodes = _.filter(projectObj.project.mainTree.items,function (n) {
 
-                 if(n.sourceType==ModuleNames.bills&&n.data.feeRateID==rateID){
 
-                     n.data.feeRate=number_util.roundToString(value,getDecimal("feeRate"));
 
-                     return true;
 
-                 }else {
 
-                     return false;
 
-                 }
 
-             });
 
-             if(nodes.length>0){
 
-                 projectObj.mainController.refreshTreeNode(nodes)
 
-             }
 
-         };
 
-         FeeRate.prototype.changeFeeRateStandard=function(newVal,callback){
 
-             var me =this;
 
-             var feeRate = this.getActivateFeeRate();
 
-             var data={
 
-                 "newLibID": newVal,
 
-                 "feeRateFileID":feeRate.ID,
 
-                 "feeRateID":feeRate.feeRateID,
 
-                 "user_id":userID
 
-             };
 
-             CommonAjax.post('/feeRates/changeFeeRateStandard', data, function (data) {
 
-                 if (data) {
 
-                     me.datas.libID=data.libID;
 
-                     me.datas.libName=data.libName;
 
-                     me.datas.feeRateID=data.feeRateID;
 
-                     me.datas.rates=data.rates;
 
-                     projectObj.project.markUpdateProject({projectID:projectObj.project.ID(),feeRateID:me.getActivateFeeRateFileID()},'feeRate');
 
-                     me.onFeeRateFileChange();
 
-                     callback();
 
-                 }
 
-             },function () {
 
-                 $.bootstrapLoading.end();
 
-             });
 
-         };
 
-         FeeRate.prototype.checkFeeRateName = function(newVal,callback){
 
-             var me =this;
 
-             var feeRate = this.getActivateFeeRate();
 
-             var data = {
 
-                 name:newVal,
 
-                 rootProjectID:feeRate.rootProjectID
 
-             }
 
-             CommonAjax.post('/feeRates/checkFeeRateName', data, function (data) {
 
-                 callback(data);
 
-             });
 
-         };
 
-         FeeRate.prototype.feeRateFileSaveAs = function (newName,callback) {
 
-             var me = this;
 
-             $.bootstrapLoading.start();
 
-             this.backupDatas();
 
-             this.datas.name = newName;
 
-             this.datas.ID = uuid.v1();
 
-             this.datas.feeRateID=uuid.v1();
 
-             this.datas.usageProjects=[];
 
-             this.datas.usageProjects.push({name:projectInfoObj.projectInfo.name,ID:projectInfoObj.projectInfo.ID});
 
-             var data={
 
-                 query:{projectID:projectInfoObj.projectInfo.ID},
 
-                 doc:this.datas,
 
-                 user_id:userID
 
-             }
 
-             CommonAjax.post('/feeRates/feeRateFileSaveAs', data, function (data) {
 
-                 callback(me.datas);
 
-             },function () {
 
-                 me.dataRecovery();
 
-                 $.bootstrapLoading.end();
 
-             });
 
-         };
 
-         FeeRate.prototype.getChangeInfo = function (callback) {
 
-            // var projectID = projectInfoObj.projectInfo.ID;
 
-             var feeRate = this.getActivateFeeRate();
 
-             var  rootProjectID= feeRate.rootProjectID;
 
-             if(!rootProjectID){
 
-                 rootProjectID=projectInfoObj.projectInfo.property.rootProjectID;
 
-             }
 
-             var data={
 
-                 "user_id":userID,
 
-                 "projectID":projectObj.project.ID(),
 
-                 "rootProjectID":rootProjectID
 
-             };
 
-             CommonAjax.post('/feeRates/getChangeInfo', data, function (data) {
 
-                 let newDataOther = [];
 
-                 if (data.others.length > 0) {
 
-                     let fileHierarchyDatas = getFileHierarchyInfo(data.treeData);
 
-                     for(let fileHierarchyData of fileHierarchyDatas){
 
-                         let projData = _.find(data.others, {ID: fileHierarchyData.ID});
 
-                         if(projData){
 
-                             projData.name = fileHierarchyData.fileHierarchyName;
 
-                             newDataOther.push(projData);
 
-                         }
 
-                     }
 
-                     data.others = newDataOther;
 
-                 }
 
-                 callback(data);
 
-             });
 
-         };
 
-         FeeRate.prototype.updateFeeRateFromBills=function(value,node){
 
-             var me =this;
 
-             if(node.sourceType === project.Bills.getSourceType()){
 
-                 var fee_value= number_util.checkNumberValue(value,getDecimal("feeRate"));
 
-                 if(fee_value!=null){
 
-                     var bill = node.data;
 
-                     var rate =me.getFeeRateByID(bill.feeRateID);
 
-                     var data=me.getfbUpdateData(rate,bill,fee_value,value);
 
-                     if(data==null){//只更改清单的值的情况下,由计算程序更新
 
-                         project.calcProgram.calcAndSave(node);
 
-                     }
 
-                     this.setFeeRateToBill(data,function (result) {
 
-                         if(data.hasOwnProperty('feeRate')){
 
-                             rate.rate=fee_value;
 
-                             me.onFeeRateChange(rate.ID,fee_value);
 
-                         }
 
-                     });
 
-                 }else {
 
-                     projectObj.mainController.refreshTreeNode([node]);
 
-                 }
 
-             }
 
-         };
 
-         FeeRate.prototype.updateFeeRateFromCalc=function (value,editInfo) {
 
-             if(value != null){
 
-                 value= number_util.checkNumberValue(value,getDecimal("feeRate"));
 
-                 if(value == null) {
 
-                     calcProgramManage.refreshDetailSheet();
 
-                     $.bootstrapLoading.end();
 
-                 }
 
-             }
 
- /*            if(editInfo.calcItem.feeRateID && value!= null){
 
-                 var rate = this.getFeeRateByID(editInfo.calcItem.feeRateID);
 
-                 if(rate!=undefined){
 
-                     this.updateFeeRateByCalc(rate,value);
 
-                     return;
 
-                 }
 
-             }*/
 
-             if(editInfo.calcItem.feeRateID){
 
-                 var rate = this.getFeeRateByID(editInfo.calcItem.feeRateID);
 
-                 if(rate!=undefined){
 
-                     if (value == null) value = 0;
 
-                     this.updateFeeRateByCalc(rate,value);
 
-                     return;
 
-                 }
 
-             }
 
-             editInfo.calcItem.feeRate=value;
 
-             editInfo.calcItem.feeRateID=null;
 
-             var data={'projectID': projectObj.project.ID(),'templatesID': editInfo.template.ID,'calcItem': editInfo.calcItem};
 
-             calcProgramManage.saveCalcItem(data,function (result) {
 
-                 project.calcProgram.compileAllTemps();
 
-                 project.calcProgram.calcAllNodesAndSave();
 
-                 calcProgramManage.refreshDetailSheet();
 
-                 $.bootstrapLoading.end();
 
-             })
 
-         };
 
-         FeeRate.prototype.updateFeeRateByCalc=function (rate,value) {
 
-             var me=this;
 
-             me.updateFeeRateByID(rate.ID,{'rate':value},function () {
 
-                 me.onFeeRateChange(rate.ID,value);
 
-             })
 
-         };
 
-         FeeRate.prototype.updateFeeRateByID = function (rateID,doc,callback) {
 
-           let me = this,preKey = 'rates.$.';
 
-           /*let data = {
 
-               query:{
 
-                   'ID':me.getActivateFeeRateID(),
 
-                   'rates.ID':rateID
 
-               },
 
-               doc:{}
 
-           };
 
-           for(let prop in doc){//做了个转换,加上前缀
 
-             data.doc[preKey+prop] = doc[prop];
 
-           }
 
-           CommonAjax.post('/feeRates/updateFeeRate', data, function (data) {
 
-               //更新缓存
 
-               let rate = me.getFeeRateByID(rateID);
 
-               for(let dkey in doc){
 
-                   rate[dkey] = doc[dkey];
 
-               }
 
-             if(callback){
 
-                 callback();
 
-             }
 
-           });*/
 
-           me.updateFeeRatesByIDs([{rateID:rateID,doc:doc}],callback);
 
-         };
 
-         FeeRate.prototype.updateFeeRatesByIDs = function(datas,callback){
 
-             let me = this,preKey = 'rates.$.';
 
-             let updateDatas = [];
 
-             for(let d of datas){
 
-                 let u = {
 
-                     query:{
 
-                         'ID':me.getActivateFeeRateID(),
 
-                         'rates.ID':d.rateID
 
-                     },
 
-                     doc:{}
 
-                 }
 
-                 for(let prop in d.doc){//做了个转换,加上前缀
 
-                     u.doc[preKey+prop] = d.doc[prop];
 
-                 }
 
-                 updateDatas.push(u);
 
-             }
 
-             CommonAjax.post('/feeRates/updateFeeRates', updateDatas, function (result) {
 
-                 //更新缓存
 
-                 for(let d of datas){
 
-                     let rate = me.getFeeRateByID(d.rateID);
 
-                     for(let dkey in d.doc){
 
-                         rate[dkey] = d.doc[dkey];
 
-                     }
 
-                 }
 
-                 if(callback){
 
-                     callback();
 
-                 }
 
-             });
 
-         };
 
-         FeeRate.prototype.getfbUpdateData=function (rate,bill,value,editText) {
 
-             var data=null;
 
-             if(bill.feeRateID&&editText!=null){
 
-                 data = {};
 
-                 data.feeRate={
 
-                     query:{
 
-                         'ID':this.getActivateFeeRateID(),
 
-                         'rates.ID':rate.ID
 
-                     },
 
-                     doc:{
 
-                         'rates.$.rate':value
 
-                     }
 
-                 }
 
-             }else  if(editText==null){
 
-                 bill.feeRateID = null;
 
-                 bill.feeRate =null;
 
-             }else { //这里只改变当前清单的费率值,不在这里提交后台,交给计算程序处理。
 
-                 bill["feeRate"]=value
 
-               /*  data.bills={
 
-                     query:{
 
-                         ID:bill.ID,
 
-                         projectID:bill.projectID,
 
-                         deleteInfo:null
 
-                     },
 
-                     doc:{
 
-                         feeRate:value
 
-                     }
 
-                 }*/
 
-             }
 
-             return data;
 
-         };
 
-         FeeRate.prototype.cleanFeeRateID=function (node) {
 
-             var data ={
 
-                 bills:{
 
-                     query:{
 
-                         ID:node.data.ID,
 
-                         projectID:node.data.projectID,
 
-                         deleteInfo:null
 
-                     },
 
-                     doc:{
 
-                         feeRate:null,
 
-                         feeRateID:null
 
-                     }
 
-                 }
 
-             }
 
-             this.setFeeRateToBill(data,function (result) {
 
-                 node.data.feeRate=null;
 
-                 node.data.feeRateID=null;
 
-             });
 
-         };
 
-         FeeRate.prototype.submitFeeRateFromBill=function (rate,bills,callback) {
 
-             var data ={
 
-                     bills:{
 
-                         query:{
 
-                             ID:bills.ID,
 
-                             projectID:bills.projectID,
 
-                             deleteInfo:null
 
-                         },
 
-                         doc:{
 
-                             feeRate:null,
 
-                             feeRateID:rate.ID
 
-                         }
 
-                     }
 
-                 };
 
-             this.setFeeRateToBill(data,callback);
 
-         };
 
-        
 
-         FeeRate.prototype.setFeeRateToBill=function(data,callback){
 
-             if(data){
 
-                 CommonAjax.post('/feeRates/setFeeRateToBill', data, function (data) {
 
-                     callback(data);
 
-                 });
 
-             }
 
-         };
 
-         FeeRate.prototype.loadFeeRateToBill=function (node) {
 
-             if(node.data.feeRateID){
 
-                 var feeRate = this.getFeeRateByID(node.data.feeRateID);
 
-                 if(feeRate){
 
-                     node.data.feeRate=number_util.roundToString(feeRate.rate,getDecimal("feeRate"));// parseFloat(feeRate.rate).toFixed(feeRate_consts.decimal);
 
-                 }
 
-             }
 
-         };
 
-         FeeRate.prototype.changeFeeRateFileFromCurrent = function (newFeeRateFile,callback){
 
-             var me=this;
 
-             var projectID = projectInfoObj.projectInfo.ID;
 
-             var data={
 
-                 "projectID": projectID,
 
-                 "newFeeRateFile":newFeeRateFile
 
-             };
 
-             CommonAjax.post('/feeRates/changeFeeRateFileFromCurrent', data, function (data) {
 
-                 if (data) {
 
-                     me.datas=data;
 
-                     callback();
 
-                 }
 
-             },function () {
 
-                 $.bootstrapLoading.end();
 
-             });
 
-         };
 
-         FeeRate.prototype.changeFeeRateFileFromOthers=function (feeRateFileID,name,callback) {
 
-             var me = this;
 
-             var projectID = projectInfoObj.projectInfo.ID;
 
-             var data={
 
-                 "projectID": projectID,
 
-                 "feeRateFileID":feeRateFileID,
 
-                 "name":name,
 
-                 "userID":userID,
 
-                 "rootProjectID":me.getActivateFeeRate().rootProjectID
 
-             };
 
-             CommonAjax.post('/feeRates/changeFeeRateFileFromOthers', data, function (data) {
 
-                 if (data) {
 
-                     me.datas=data;
 
-                     callback();
 
-                 }
 
-             },function () {
 
-                 $.bootstrapLoading.end();
 
-             });
 
-         };
 
-         var feeRate = new FeeRate(project);
 
-         return feeRate;
 
-     },
 
- };
 
 
  |