Просмотр исходного кода

重庆2018中,清单计算基数“税前工程造价”不应重复统计材料工程暂估费,“暂估材料费(从子目汇总)”不应统计专业工程暂估费。

zhongzewei 6 лет назад
Родитель
Сommit
2893aefc72
1 измененных файлов с 18 добавлено и 4 удалено
  1. 18 4
      web/building_saas/main/js/models/calc_base.js

+ 18 - 4
web/building_saas/main/js/models/calc_base.js

@@ -546,7 +546,13 @@ let baseFigureTemplate = {
         if(cbTools.isUnDef(bill) || cbTools.isUnDef(bill.ID)) return 0;
         let node = cbTools.getNodeByID(bill.ID);
         if(cbTools.isUnDef(node)) return 0;
-        return projectObj.project.calcProgram.getBeforeTaxTotalFee([node], tender);
+        // 排除的节点:调用的节点、材料(工程设备)暂估价
+        let excludeNodes = [node];
+        let materialProvisional = calcTools.getNodeByFlag(fixedFlag.MATERIAL_PROVISIONAL);
+        if (materialProvisional) {
+            excludeNodes.push(materialProvisional);
+        }
+        return projectObj.project.calcProgram.getBeforeTaxTotalFee(excludeNodes, tender);
     },
     'RCJJC': function (tender) {//人材机价差
         return (this['RGJC'](tender) + this['CLJC'](tender) + this['JXJC'](tender)).toDecimal(decimalObj.bills.totalPrice);
@@ -874,12 +880,20 @@ let baseFigureTemplate = {
         return rst;
     },
     'ZGCLFFZM': function (tender) {//暂估材料费(从子目汇总)
-        const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
+        /*const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
         let bill = calcBase.fixedBills[calcBase.fixedFlag.ENGINEERINGCOST]['bill'];
         projectObj.project.calcProgram.calculate(cbTools.getNodeByID(bill.ID), false, false, true);
         if(cbTools.isUnDef(bill)) return 0;
         if(cbTools.isUnDef(bill.feesIndex) || Object.keys(bill.feesIndex).length === 0) return 0;
-        return cbTools.isDef(bill.feesIndex.estimate) && cbTools.isDef(bill.feesIndex.estimate[totalFeeType]) ? bill.feesIndex.estimate[totalFeeType] : 0;
+        return cbTools.isDef(bill.feesIndex.estimate) && cbTools.isDef(bill.feesIndex.estimate[totalFeeType]) ? bill.feesIndex.estimate[totalFeeType] : 0;*/
+        let feeField = 'estimate',
+            subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
+        // 分部分项暂估合价
+        let subEngineeringFee = cbTools.getBillsFee(fixedFlag.SUB_ENGINERRING, feeField, subFeeField);
+        // 技术措施项目暂估合价
+        let techFee = cbTools.getBillsFee(fixedFlag.CONSTRUCTION_TECH, feeField, subFeeField);
+        return (subEngineeringFee + techFee).toDecimal(decimalObj.bills.totalPrice);
+
     },
     'FBF': function (tender) {//分包费
         const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
@@ -1028,7 +1042,7 @@ let baseFigureMap = {
     '安全文明施工专项费': {base: 'AQWMSGZXF', fixedFlag: fixedFlag.SAFETY_CONSTRUCTION, class: 'CSXM'},
     //不于清单直接关联==========
     '建筑面积': {base: 'JZMJ', class: 'FBFX'},
-    '税前工程造价': {base: 'SQGCZJ', class: 'SQGCZJ',//安全文明施工专项费用使用
+    '税前工程造价': {base: 'SQGCZJ', class: 'SQGCZJ', //安全文明施工专项费用使用
         cycleCalcRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.OTHER, fixedFlag.CHARGE], //循环计算相关固定行,由于计算排除了本身,不用判断措施项目
         multiRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.OTHER, fixedFlag.CHARGE]}, //相关固定行,需要关联措施项目,因为需要提取出多处引用的进行排序
     '人材机价差': {base: 'RCJJC', class: 'RCJ'},