|
@@ -8,6 +8,7 @@ var FeeRate = {
|
|
|
|
|
|
function FeeRate(proj){
|
|
|
this.datas = null;
|
|
|
+ this.datasBackup = null;
|
|
|
this.sourceType = ModuleNames.feeRate;
|
|
|
proj.registerModule(ModuleNames.feeRate, this);
|
|
|
};
|
|
@@ -15,6 +16,14 @@ var FeeRate = {
|
|
|
this.datas = datas;
|
|
|
socketObject.connect();
|
|
|
};
|
|
|
+ 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:[]
|
|
@@ -123,10 +132,25 @@ var FeeRate = {
|
|
|
};
|
|
|
|
|
|
FeeRate.prototype.batchUpdateFeeRate = function (items,feerate) {
|
|
|
- var query={
|
|
|
- ID:feerate.feeRateID
|
|
|
- };
|
|
|
- this.updateFeeRate(query,items);
|
|
|
+ var me = this;
|
|
|
+ var data={
|
|
|
+ query:{
|
|
|
+ ID:feerate.feeRateID
|
|
|
+ },
|
|
|
+ doc:items,
|
|
|
+ user_id:userID
|
|
|
+ }
|
|
|
+ var errCallBack=function () {
|
|
|
+ me.dataRecovery();
|
|
|
+ $.bootstrapLoading.end();
|
|
|
+ }
|
|
|
+ CommonAjax.post('/feeRates/updateRates', data, function (result) {
|
|
|
+ _.forEach(items,function (t) {
|
|
|
+ feeRateObject.mainViews.data.updateItem(t.rateIndex,t.rate);
|
|
|
+ })
|
|
|
+ me.onFeeRateFileChange();
|
|
|
+ $.bootstrapLoading.end();
|
|
|
+ },errCallBack);
|
|
|
};
|
|
|
FeeRate.prototype.updateFeeRate=function (query,doc) {
|
|
|
var updateData = this.getUpdateData('ut_update',query,doc,'update_rates');
|
|
@@ -168,6 +192,55 @@ var 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.showData(node);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ socket.emit('feeRateChangeNotify', 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,feeRate_consts.decimal);
|
|
|
+ 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();
|
|
|
+ rationPM.refreshDetailSheet();
|
|
|
+ }
|
|
|
FeeRate.prototype.refreshCalProgramByRateID=function (rateID,value) {
|
|
|
var templates = project.calcProgram.datas.templates;
|
|
|
for(var i =0;i<templates.length;i++){
|
|
@@ -208,9 +281,11 @@ var FeeRate = {
|
|
|
me.datas.libName=data.libName;
|
|
|
me.datas.feeRateID=data.feeRateID;
|
|
|
me.datas.rates=data.rates;
|
|
|
- socket.emit('feeRateChangeNotify', me.getActivateFeeRateFileID());
|
|
|
+ me.onFeeRateFileChange();
|
|
|
callback();
|
|
|
}
|
|
|
+ },function () {
|
|
|
+ $.bootstrapLoading.end();
|
|
|
});
|
|
|
};
|
|
|
FeeRate.prototype.checkFeeRateName = function(newVal,callback){
|
|
@@ -224,17 +299,26 @@ var FeeRate = {
|
|
|
callback(data);
|
|
|
});
|
|
|
};
|
|
|
- FeeRate.prototype.feeRateFileSaveAs = function (newName) {
|
|
|
+ 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 updateData = this.getUpdateData('ut_update',{projectID:projectInfoObj.projectInfo.ID},this.datas,'feeRateFileSaveAs');
|
|
|
- project.pushNow('updateFeeRate',[this.sourceType],updateData);
|
|
|
-
|
|
|
- socket.emit('feeRateChangeNotify', this.getActivateFeeRateFileID());
|
|
|
- return this.datas;
|
|
|
+ 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;
|
|
@@ -400,9 +484,10 @@ var FeeRate = {
|
|
|
CommonAjax.post('/feeRates/changeFeeRateFileFromCurrent', data, function (data) {
|
|
|
if (data) {
|
|
|
me.datas=data;
|
|
|
- socket.emit('feeRateChangeNotify', me.getActivateFeeRateFileID());
|
|
|
callback();
|
|
|
}
|
|
|
+ },function () {
|
|
|
+ $.bootstrapLoading.end();
|
|
|
});
|
|
|
};
|
|
|
|
|
@@ -418,9 +503,10 @@ var FeeRate = {
|
|
|
CommonAjax.post('/feeRates/changeFeeRateFileFromOthers', data, function (data) {
|
|
|
if (data) {
|
|
|
me.datas=data;
|
|
|
- socket.emit('feeRateChangeNotify', me.getActivateFeeRateFileID());
|
|
|
callback();
|
|
|
}
|
|
|
+ },function () {
|
|
|
+ $.bootstrapLoading.end();
|
|
|
});
|
|
|
|
|
|
};
|