瀏覽代碼

TASK#2943承包人主材

TonyKang 4 年之前
父節點
當前提交
9c73d4ec4c
共有 3 個文件被更改,包括 76 次插入13 次删除
  1. 12 13
      modules/reports/util/rpt_construct_data_util.js
  2. 5 0
      public/gljUtil.js
  3. 59 0
      public/web/gljUtil.js

+ 12 - 13
modules/reports/util/rpt_construct_data_util.js

@@ -183,6 +183,10 @@ class Rpt_Data_Extractor {
                                 if (rst.indexOf(projectConst.BILLS) < 0) {
                                     rst.push(projectConst.BILLS); //为了算指标:承包人主要材料设备_变值权重B
                                 }
+                                if (rst.indexOf(projectConst.LABOUR_COE) < 0) {
+                                    rst.push(projectConst.LABOUR_COE); //为了算:造价信息差额调整专用指标
+                                }
+                                
                             }
                         }
                     }
@@ -330,19 +334,14 @@ class Rpt_Data_Extractor {
                         break;
                     }
                 }
-                // console.log('before: ');
-                // console.log(contractorDatas.data);
-                let coeRst = gljUtil.getPriceCoeDatas(projectGLJDatas.data.gljList, contractorDatas.data, ttlFee, rawDataObj.prj.property, _, scMathUtil);
-                // console.log('after: ');
-                // console.log(coeRst);
-                // contractorDatas.data = coeRst;
-                for (const cd of contractorDatas.data) {
-                    for (const acd of coeRst) {
-                        if (cd.ID === acd.ID) {
-                            cd.varWeight = acd.varWeight;
-                            break;
-                        }
-                    }
+                // fsUtil.writeObjToFile(gljUtil.getPriceCoeDatas(projectGLJDatas.data.gljList, contractorDatas.data, ttlFee, rawDataObj.prj.property, _, scMathUtil), "D:/GitHome/temp/建筑承包人Rawdata1.js");
+                // fsUtil.writeObjToFile(gljUtil.getPirceInfoDatas(projectGLJDatas.data.gljList, contractorDatas.data, labourCoeDatas, rawDataObj.prj.property, _, scMathUtil), "D:/GitHome/temp/建筑承包人Rawdata2.js");
+                if (rawDataObj.prj.property.gljAdjustType === 'priceInfo') {
+                    let coeRst = gljUtil.getPriceCoeDatas(projectGLJDatas.data.gljList, contractorDatas.data, ttlFee, rawDataObj.prj.property, _, scMathUtil);
+                    contractorDatas.data = coeRst;
+                } else {
+                    let coeRst = gljUtil.getPirceInfoDatas(projectGLJDatas.data.gljList, contractorDatas.data, labourCoeDatas, rawDataObj.prj.property, _, scMathUtil);
+                    contractorDatas.data = coeRst;
                 }
             }
             if (projectGLJDatas && rationGLJDatas && labourCoeDatas) {

+ 5 - 0
public/gljUtil.js

@@ -24,6 +24,7 @@ module.exports = {
     getQuantityDatas:getQuantityDatas,
     getTenderPriceCoe:getTenderPriceCoe,
     getPriceCoeDatas:getPriceCoeDatas,
+    getPirceInfoDatas: getPirceInfoDatas,
 };
 
 function calcProjectGLJQuantity(projectGLJDatas,rationGLJDatas,rationDatas,billsDatas,q_decimal) {
@@ -80,4 +81,8 @@ function getTenderPriceCoe(glj,tproperty){
 
 function getPriceCoeDatas(pgljList, contractorList, totalFee, tprojectProperty,_,scMathUtil){
    return gljNodeUtil.getPriceCoeDatas(pgljList, contractorList, totalFee, tprojectProperty,_,scMathUtil);
+}
+
+function getPirceInfoDatas(projectGLJList, contractor_list, labourCoeDatas, projectProperty, _, scMathUtil) {
+    return gljNodeUtil.getPirceInfoDatas(projectGLJList, contractor_list, labourCoeDatas, projectProperty, _, scMathUtil);
 }

+ 59 - 0
public/web/gljUtil.js

@@ -635,6 +635,65 @@ let gljUtil = {
       if(!this.isDef(infoPrice)) infoPrice= info[fieldArray[1]];//信息价只有一个价格(含税价/不含税价),则不分计税方式,套用仅有的价格。
       return parseFloat(infoPrice);
     },
+    getPirceInfoDatas: function (projectGLJList, contractor_list, labourCoeDatas, projectProperty, _, scMathUtil) {
+        let datas = [];
+        let pgljList = projectGLJList;
+        let contractorList = contractor_list;
+        let calcOptions=projectProperty.calcOptions;
+        let decimalObj = projectProperty.decimal; 
+        let billsDecimal = decimalObj.bills.totalPrice;
+        let gljMap = _.indexBy(pgljList, 'id');
+        for (let e of contractorList) {
+            let t = {
+            ID: e.ID,
+            projectID: e.projectID,
+            is_related: e.is_related, //关联,1关,0不关
+            projectGLJID: e.projectGLJID, //关联工料机ID
+            seq: e.seq, //序号
+            code: e.code,
+            name: e.name,
+            specs: e.specs,
+            unit: e.unit,
+            type: e.type,
+            marketPrice: e.market_price,
+            quantity: e.quantity,
+            remark: e.remark,
+            supply: e.supply,
+            riskCoe: e.riskCoe,
+            is_evaluate: 0,
+            standardPrice: e.standardPrice
+            };
+            let pglj = gljMap[e.projectGLJID];
+            /*
+            if (e.is_related && pglj) {
+                gljOprObj.setGLJPrice(t, pglj);
+                t.vender = pglj.vender;
+                t.supply = pglj.supply;
+                t.is_evaluate = pglj.is_evaluate;
+                t.quantity = pglj.quantity;
+            }
+            /*/
+            if (e.is_related && pglj) {
+                let tenderCoe = gljUtil.getTenderPriceCoe(pglj,projectProperty);
+                let result = gljUtil.getGLJPrice(pglj, {gljList:pgljList}, calcOptions, labourCoeDatas, decimalObj, false, _, scMathUtil, tenderCoe);
+                t.marketPrice = result.marketPrice;
+                t.tenderPrice = result.tenderPrice;
+                t.basePrice =  result.basePrice;
+                t.adjustPrice = result.adjustPrice;
+                t.marketUnitFee = t.marketPrice;//更新树节点市场单价列的值
+                t.taxRate = pglj.unit_price.taxRate;//税率
+                  
+                t.vender = pglj.vender;
+                t.supply = pglj.supply;
+                t.quantity = pglj.quantity;
+                t.is_evaluate = pglj.is_evaluate;
+            }
+            //*/
+            t.totalPrice = scMathUtil.roundForObj(parseFloat(t.quantity) * parseFloat(t.marketPrice), billsDecimal);
+            datas.push(t);
+        }
+        return _.sortByAll(datas, 'code');
+    },
     getPriceCoeDatas: function (projectGLJList, contractor_list, totalFee, projectProperty,_,scMathUtil) {
         let datas = [];
         let pgljList = projectGLJList ;