Pārlūkot izejas kodu

工程费构成表数据处理

TonyKang 4 gadi atpakaļ
vecāks
revīzija
3719862713

+ 14 - 2
modules/reports/controllers/rpt_controller.js

@@ -371,7 +371,13 @@ async function getAllPagesCommon(construct_id, user_id, prj_id, prj_ids, rpt_id,
                                             for (let doc of rst2) {
                                                 for (let calc of doc.calcPrograms) {
                                                     rawDataObj.BudgetCalcType.push({projectID: doc.projectID, name: calc.name, totalFee: calc.totalFee});
-                                                    rawDataObj.BudgetCalcTypeDetail.push(calc.calcItems);
+                                                    if (calc.calcItems && calc.calcItems.length > 0) {
+                                                        for (let cdtlItem of calc.calcItems) {
+                                                            cdtlItem.projectID = doc.projectID; //额外加的所属projectID
+                                                            rawDataObj.BudgetCalcTypeDetail.push(cdtlItem);
+                                                        }
+                                                        // rawDataObj.BudgetCalcTypeDetail.push(calc.calcItems);
+                                                    }
                                                 }
                                             }
                                         }
@@ -392,7 +398,13 @@ async function getAllPagesCommon(construct_id, user_id, prj_id, prj_ids, rpt_id,
                                     for (let doc of rst) {
                                         for (let calc of doc.calcPrograms) {
                                             rawDataObj.BudgetCalcType.push({projectID: doc.projectID, name: calc.name, totalFee: calc.totalFee});
-                                            rawDataObj.BudgetCalcTypeDetail.push(calc.calcItems);
+                                            if (calc.calcItems && calc.calcItems.length > 0) {
+                                                for (let cdtlItem of calc.calcItems) {
+                                                    cdtlItem.projectID = doc.projectID; //额外加的所属projectID
+                                                    rawDataObj.BudgetCalcTypeDetail.push(cdtlItem);
+                                                }
+                                                // rawDataObj.BudgetCalcTypeDetail.push(calc.calcItems);
+                                            }
                                         }
                                     }
                                 }

+ 23 - 0
modules/reports/util/rpt_construct_data_util.js

@@ -1286,6 +1286,9 @@ function setupFunc(obj, prop, ownRawObj) {
     obj[prop].getBlank = ext_getBlank;
     if (prop === projectConst.CALC_PROGRAM) obj[prop].getCalcProperty = ext_getCalcProperty;
     if (prop === projectConst.FEERATE) obj[prop].getFeeRate = ext_getFeeRate;
+    if (prop === 'BudgetCalcTypeDetail') {
+        // obj[prop].getProperty = ext_getBudgetCalcTypeDetailProperty;
+    }
 }
 
 function assembleFields(fieldList, rstDataArr, $PROJECT) {
@@ -1381,6 +1384,26 @@ function ext_mainGetPropety(propKey) {
     return rst;
 }
 
+function ext_getBudgetCalcTypeDetailProperty(propKey) {
+    let rst = [], parentObj = this;
+    let dtObj = parentObj["myOwnRawDataObj"];
+    if (propKey && dtObj) {
+        for (let dItems of getActDataArr(dtObj)) {
+            for (let doc of dItems) {
+                //let doc = subItem;
+                if (doc.hasOwnProperty("property") && doc["property"].hasOwnProperty(propKey)) {
+                    rst.push(doc["property"][propKey]);
+                } else if (doc.hasOwnProperty(propKey)) {
+                    rst.push(doc[propKey]);
+                } else {
+                    getDeepProperty(propKey, doc, rst);
+                }
+            }
+        }
+    }
+    return rst;
+}
+
 function ext_getPropety(propKey) {
     let rst = [], parentObj = this;
     let dtObj = parentObj["myOwnRawDataObj"];