Jelajahi Sumber

费用汇总报表数据。

chenshilong 4 tahun lalu
induk
melakukan
382cff5d65

+ 2 - 2
web/building_saas/main/html/main.html

@@ -275,9 +275,9 @@
                       <a class="nav-link sub-item" id="linkGCLMX" data-toggle="tab" href="#subSpread"
                         role="tab">工程量明细</a>
                     </li>
-                   <!--  <li class="nav-item">
+                    <li class="nav-item">
                       <a class="nav-link sub-item" id="linkJSCX" data-toggle="tab" href="#subSpread" role="tab">计算程序</a>
-                    </li> -->
+                    </li>
                     <!-- <li class="nav-item">   2018-11-08  新需求,隐藏说明信息
                                       <a class="nav-link" data-toggle="tab" href="#comments" role="tab" id="linkComments">说明信息</a>
                                   </li>-->

+ 25 - 0
web/building_saas/main/js/models/calc_program.js

@@ -1080,6 +1080,16 @@ let calcTools = {
         return calcTools.isVP_or_GLJR(node) ? node.data.rationQuantityCoe : (node.data.quantityCoe ? node.data.quantityCoe.labour : 0)
     else if (tender == tenderTypes.ttReverseRation)
         return node.data.rationQuantityCoe;
+    },
+    getUsedTemplateIDs: function(){
+        let IDsArr = [];
+        let rations = projectObj.project.Ration.datas;  
+        for (const r of rations) {
+            let ID = r.programID;
+            if (!IDsArr.includes(ID))
+              IDsArr.push(ID);
+        };
+        return IDsArr;  
     }
 
 
@@ -1499,12 +1509,14 @@ let analyzer = {
         else return false;
     },
     templateIsUsed: function (ID, tree = projectObj.project.mainTree){
+        
         let nodes = tree.items;
         for (let node of nodes){
               if (node.data && node.data.programID && node.data.programID == ID) {
                   return true;
               }
         };
+        
         return false;
     },
     fieldNameIsUsed: function(template, fieldName){
@@ -2757,6 +2769,7 @@ class CalcProgram {
 
             let gatherObj = {};
             gatherObj.programID = programID;
+            gatherObj.name = projectObj.project.calcProgram.compiledTemplates[programID].name;
             for (let ft of cpFeeTypes) {
                 let ftObj = {};
                 ftObj.name = ft.name;
@@ -2786,6 +2799,18 @@ class CalcProgram {
             return gatherObj;
         // });
         // $.bootstrapLoading.end();    
+    };
+
+    //报表用:汇总所有。projectObj.project.calcProgram.gatherAllRationFees();
+    gatherAllRationFees(){
+        let IDsArr = calcTools.getUsedTemplateIDs();
+        let rstObj = {};
+        for (const ID of IDsArr) {
+            let obj = this.gatherRationFees(ID);
+            rstObj[ID] = obj;
+        }
+        console.log(rstObj);
+        return rstObj;
     }
 };
 

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

@@ -49,7 +49,13 @@ let gatherFeesView = {
 
     buildSheet: function (){
         let me = this;
-        me.datas = projectObj.project.calcProgram.datas.templates;
+        let tpls = projectObj.project.calcProgram.datas.templates;
+        let IDs = calcTools.getUsedTemplateIDs();
+        for (const t of tpls) {
+            if (IDs.includes(t.ID)) 
+                me.datas.push(t);
+        }
+
         if (me.mainSpread) {
             me.mainSpread.destroy();
             me.mainSpread = null;
@@ -96,7 +102,8 @@ let gatherFeesView = {
             }
             sheetCommonObj.disableSpread(me.mainSpread);
             sheetCommonObj.disableSpread(me.detailSpread);
-        }
+        };
+
     },
     getStdCalcProgramFiles: function(){
         function getStdCPFilesHtml(stdCPLibs) {
@@ -123,7 +130,7 @@ let gatherFeesView = {
         me.detailSheet.setRowCount(dData.length, GC.Spread.Sheets.SheetArea.viewport);
         let gatherObj = projectObj.project.calcProgram.gatherRationFees(me.datas[row].ID);
         for (const d of dData) {
-           d['totalFee'] = gatherObj[d.fieldName]?.totalFee;
+           d['totalFee'] = gatherObj[d.fieldName] ? gatherObj[d.fieldName].totalFee : 0;
         }
         sheetCommonObj.showData(me.detailSheet, me.detailSetting, dData);
         me.getfeeRateColor(dData);