Browse Source

汇总计算触发时机调整、精简计算结果。

chenshilong 4 years ago
parent
commit
e546b27088

+ 14 - 4
web/building_saas/main/js/models/calc_program.js

@@ -1094,6 +1094,7 @@ let calcTools = {
             if (!arr.includes(tpl))
             if (!arr.includes(tpl))
               arr.push(tpl);
               arr.push(tpl);
         };
         };
+        arr.sort(function (x, y) {return x.ID - y.ID});
         return arr;
         return arr;
     },
     },
     getRationsByProgramID: function(programID){
     getRationsByProgramID: function(programID){
@@ -2881,21 +2882,30 @@ class CalcProgram {
                 rst = calcItem.totalFee;
                 rst = calcItem.totalFee;
             }
             }
         };
         };
-        return rst;
+
+        let tobj = {
+            ID: template.ID,
+            name: template.name,
+            totalFee: template.totalFee,
+            calcItems: template.calcItems
+        };
+        // let tobj = JSON.parse(JSON.stringify(template));
+        return {value: rst, template: tobj};
     };
     };
 
 
     //报表用取费类别汇总。调用:let obj = projectObj.project.calcProgram.getGatherFeeData();
     //报表用取费类别汇总。调用:let obj = projectObj.project.calcProgram.getGatherFeeData();
     getGatherFeeData(){
     getGatherFeeData(){
       // $.bootstrapLoading.start();
       // $.bootstrapLoading.start();
       // setTimeout(()=>{
       // setTimeout(()=>{
-        let rst = {};
+        let rst = {totalFee: 0, calcPrograms: []};
         let tpls = calcTools.getUsedTemplates();
         let tpls = calcTools.getUsedTemplates();
 
 
         let temp = 0;
         let temp = 0;
         for (const t of tpls) {
         for (const t of tpls) {
-            temp = temp + this.gatherFee2(t);
+            let obj = this.gatherFee2(t);
+            rst.calcPrograms.push(obj.template);
+            temp = temp + obj.value;
         }
         }
-        rst.calcPrograms = tpls;
         rst.totalFee = temp.toDecimal(decimalObj.bills.totalPrice);
         rst.totalFee = temp.toDecimal(decimalObj.bills.totalPrice);
         projectObj.project.mainTree.items[0].data.totalFee = rst.totalFee;
         projectObj.project.mainTree.items[0].data.totalFee = rst.totalFee;
         console.log(rst);
         console.log(rst);

+ 6 - 10
web/building_saas/main/js/views/gather_fees_view.js

@@ -68,7 +68,7 @@ let gatherFeesView = {
         me.detailSpread = sheetCommonObj.buildSheet($('#gfDetailSpread')[0], me.detailSetting, me.datas[0].calcItems.length);
         me.detailSpread = sheetCommonObj.buildSheet($('#gfDetailSpread')[0], me.detailSetting, me.datas[0].calcItems.length);
         me.detailSheet = me.detailSpread.getSheet(0);
         me.detailSheet = me.detailSpread.getSheet(0);
         sheetCommonObj.spreadDefaultStyle(me.detailSpread);
         sheetCommonObj.spreadDefaultStyle(me.detailSpread);
-        let arr = projectObj.project.calcProgram.compiledFeeTypeNames.slice();
+        // let arr = projectObj.project.calcProgram.compiledFeeTypeNames.slice();
         // arr.delete('暂估费');
         // arr.delete('暂估费');
         // let fieldName = new GC.Spread.Sheets.CellTypes.ComboBox();
         // let fieldName = new GC.Spread.Sheets.CellTypes.ComboBox();
         // fieldName.items(arr);
         // fieldName.items(arr);
@@ -83,7 +83,7 @@ let gatherFeesView = {
         me.mainSheet.setRowCount(me.datas.length);
         me.mainSheet.setRowCount(me.datas.length);
 
 
         me.detailSheet.name('gatherfee_detail');
         me.detailSheet.name('gatherfee_detail');
-        feeRateObject.setFeeRateCellCol(me.detailSheet, _.findIndex(me.detailSetting.header,{'dataCode':'feeRate'}));
+        // feeRateObject.setFeeRateCellCol(me.detailSheet, _.findIndex(me.detailSetting.header,{'dataCode':'feeRate'}));
         sheetCommonObj.showData(me.detailSheet, me.detailSetting, me.datas[0].calcItems);
         sheetCommonObj.showData(me.detailSheet, me.detailSetting, me.datas[0].calcItems);
         me.getfeeRateColor(me.datas[0].calcItems);
         me.getfeeRateColor(me.datas[0].calcItems);
         customRowHeader(me.detailSheet, me.datas[0].calcItems.length);
         customRowHeader(me.detailSheet, me.datas[0].calcItems.length);
@@ -551,10 +551,11 @@ $(document).ready(function(){
     $('#tab_gather_fees').on('shown.bs.tab', function (e) {
     $('#tab_gather_fees').on('shown.bs.tab', function (e) {
         sessionStorage.setItem('mainTab', '#tab_gather_fees');
         sessionStorage.setItem('mainTab', '#tab_gather_fees');
         $(e.relatedTarget.hash).removeClass('active');
         $(e.relatedTarget.hash).removeClass('active');
-        if (!gatherFeesView.mainSpread)
+        // 每次进来都要重新计算一次
+        // if (!gatherFeesView.mainSpread)
             gatherFeesView.buildSheet()
             gatherFeesView.buildSheet()
-        else
-            gatherFeesView.mainSpread.refresh();
+        // else
+        //     gatherFeesView.mainSpread.refresh();
 
 
         let count = gatherFeesView.datas[gatherFeesView.mainSheet.getActiveRowIndex()].calcItems.length;
         let count = gatherFeesView.datas[gatherFeesView.mainSheet.getActiveRowIndex()].calcItems.length;
         gatherFeesView.detailSheet.setRowCount(count, GC.Spread.Sheets.SheetArea.viewport);
         gatherFeesView.detailSheet.setRowCount(count, GC.Spread.Sheets.SheetArea.viewport);
@@ -581,11 +582,6 @@ $(document).ready(function(){
         });
         });
     });
     });
 
 
-    // $("#btnGatherFee").bind('click',function () {
-    //   gatherFeesView.buildSheet();
-    //   gatherFeesView.refreshDetailSheet();
-    // });
-
     $("#lblGatherFee").bind('click',function () {
     $("#lblGatherFee").bind('click',function () {
         gatherFeesView.buildSheet();
         gatherFeesView.buildSheet();
         gatherFeesView.refreshDetailSheet();
         gatherFeesView.refreshDetailSheet();