Browse Source

FeeRate change

zhangweicheng 7 years ago
parent
commit
354aaed205

+ 1 - 1
public/web/sheet/sheet_common.js

@@ -98,7 +98,7 @@ var sheetCommonObj = {
 
         sheet.clear(0, 0, sheet.getRowCount(), sheet.getColumnCount(), GC.Spread.Sheets.SheetArea.viewport, GC.Spread.Sheets.StorageType.data);
         if(sheet.getRowCount()<data.length){
-            sheet.setRowCount(data.length);
+            data.length<30?  sheet.setRowCount(30):sheet.setRowCount(data.length);
         }
         for (var col = 0; col < setting.header.length; col++) {
             var hAlign = "left", vAlign = "center";

+ 2 - 2
web/building_saas/main/js/models/calc_program.js

@@ -754,7 +754,7 @@ class CalcProgram {
             treeNode.data.feesIndex.common.totalFee = tf.toDecimal(decimalObj.bills.totalPrice);
             treeNode.data.feesIndex.common.tenderUnitFee = tuf.toDecimal(decimalObj.bills.unitPrice);
             treeNode.data.feesIndex.common.tenderTotalFee = ttf.toDecimal(decimalObj.bills.totalPrice);
-
+            treeNode.changed=true;
             treeNode.data.calcTemplate = {"calcItems": []};
         }
         // 叶子清单的计算基数计算
@@ -777,7 +777,7 @@ class CalcProgram {
             treeNode.data.feesIndex.common.totalFee = tf;
             treeNode.data.feesIndex.common.tenderUnitFee = tuf;
             treeNode.data.feesIndex.common.tenderTotalFee = ttf;
-
+            treeNode.changed=true;
             treeNode.data.calcTemplate = {"calcItems": []};
         }
         // 定额或清单自己的计算程序计算

+ 30 - 16
web/building_saas/main/js/models/fee_rate.js

@@ -50,6 +50,7 @@ var FeeRate = {
             }
         };
         FeeRate.prototype.getFeeRateByID=function (ID) {
+            ID=parseInt(ID);
             var rates = this.getActivateFeeRate().rates;
             return _.find(rates,{'ID':ID})
         };
@@ -191,6 +192,7 @@ var FeeRate = {
                     calcProgramObj.showData(node);
                 }
             }
+            project.calcProgram.calcAllNodes(calcAllType.catBills);
             socket.emit('feeRateChangeNotify', this.getActivateFeeRateFileID());
         };
         FeeRate.prototype.onFeeRateFileChange=function () {
@@ -202,6 +204,7 @@ var FeeRate = {
                     calcProgramObj.showData(node);
                 }
             }
+            project.calcProgram.calcAllNodes(calcAllType.catBills);
             socket.emit('feeRateChangeNotify', this.getActivateFeeRateFileID());
         };
 
@@ -339,19 +342,23 @@ var FeeRate = {
         FeeRate.prototype.updateFeeRateFromBills=function(value,node){
             var me =this;
             if(node.sourceType === project.Bills.getSourceType()){
-                var value= number_util.checkNumberValue(value,getDecimal("feeRate"));
-                if(value){
+                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,value);
+                    var data=me.getfbUpdateData(rate,bill,fee_value,value);
+                    if(data==null){//只更改清单的值的情况下,由计算程序更新
+                        project.calcProgram.calculate(node);
+                        project.calcProgram.saveNode(node);
+                    }
                     this.setFeeRateToBill(data,function (result) {
                         if(data.hasOwnProperty('feeRate')){
-                            rate.rate=value;
-                            me.onFeeRateChange(rate.ID,value);
-                        }else {
+                            rate.rate=fee_value;
+                            me.onFeeRateChange(rate.ID,fee_value);
+                        }/*else {
                             bill.feeRate=value;
                             projectObj.mainController.refreshTreeNode([node])
-                        }
+                        }*/
                     });
                 }else {
                     projectObj.mainController.refreshTreeNode([node]);
@@ -397,9 +404,10 @@ var FeeRate = {
             });
         }
 
-        FeeRate.prototype.getfbUpdateData=function (rate,bill,value) {
-            var data={};
-            if(bill.feeRateID){
+        FeeRate.prototype.getfbUpdateData=function (rate,bill,value,editText) {
+            var data=null;
+            if(bill.feeRateID&&editText!=null){
+                data = {};
                 data.feeRate={
                     query:{
                         'ID':this.getActivateFeeRateID(),
@@ -409,8 +417,12 @@ var FeeRate = {
                         'rates.$.rate':value
                     }
                 }
-            }else {
-                data.bills={
+            }else  if(editText==null){
+                bill.feeRateID = null;
+                bill.feeRate =null;
+            }else { //这里只改变当前清单的费率值,不在这里提交后台,交给计算程序处理。
+                bill["feeRate"]=value
+              /*  data.bills={
                     query:{
                         ID:bill.ID,
                         projectID:bill.projectID,
@@ -419,7 +431,7 @@ var FeeRate = {
                     doc:{
                         feeRate:value
                     }
-                }
+                }*/
             }
             return data;
         };
@@ -463,9 +475,11 @@ var FeeRate = {
        
 
         FeeRate.prototype.setFeeRateToBill=function(data,callback){
-            CommonAjax.post('/feeRates/setFeeRateToBill', data, function (data) {
-                callback(data);
-            });
+            if(data){
+                CommonAjax.post('/feeRates/setFeeRateToBill', data, function (data) {
+                    callback(data);
+                });
+            }
         };
         FeeRate.prototype.loadFeeRateToBill=function (node) {
             if(node.data.feeRateID){

+ 4 - 1
web/building_saas/main/js/views/fee_rate_view.js

@@ -651,7 +651,10 @@ var feeRateObject={
         projectObj.project.FeeRate.submitFeeRateFromBill(rate,selected.data,function (data) {
             selected.data.feeRateID=rate.ID.toString();
             selected.data.feeRate=scMathUtil.roundToString(rate.rate,getDecimal("feeRate"));
-            projectObj.mainController.refreshTreeNode([selected]);
+            selected.changed = true;
+            projectObj.project.calcProgram.calculate(selected);
+            projectObj.project.calcProgram.saveNode(selected);
+            //projectObj.mainController.refreshTreeNode([selected]);
             $("#fee_rate_tree").modal('hide');
         });
     },

+ 1 - 1
web/building_saas/main/js/views/glj_view.js

@@ -584,7 +584,7 @@ var gljOprObj = {
                     this.sheet.getRange(i+1, -1, this.sheetData[i].subList.length, -1).visible(false);
                 }
                 //this.sheet.getRange(i+1, -1, this.sheetData[i].subList.length, -1).visible(!collapsed);// this.sheet.getRange(i+1, -1, this.sheetData[i].subList.length, -1).locked(true);
-                //这个方法导致加载缓慢 试着在加载数据时隐藏行,看可不可行
+                //这个方法导致加载缓慢
             }
         }
     },