ソースを参照

feat: 重庆2018增加土石方相关基数、支持{费率}基数

vian 3 年 前
コミット
0cdb975936

+ 57 - 1
web/building_saas/main/js/models/calc_base.js

@@ -364,9 +364,33 @@ let cbTools = {
         }
         return this.isDef(bills.feesIndex[feeField]) && this.isDef(bills.feesIndex[feeField][subFeeField]) ? bills.feesIndex[feeField][subFeeField] : 0;
     },
+
+    // 获取固定清单下,相关取费类别费用
+    getFeeWithTypeByFlag: function (fixedFlag, programID, feeName, tender) {
+        const node = calcTools.getNodeByFlag(fixedFlag);
+        if (!node) {
+            return 0;
+        }
+        const leafNodes = calcTools.getLeafBills(node);
+        let fee = 0;
+        const feeField = tender ? `${feeName}.tenderTotalFee` : `${feeName}.totalFee`;
+        leafNodes.forEach(node => {
+            (node.children || []).forEach(rationNode => {
+                if (rationNode.data.programID === programID) {
+                    const rationFee = calcTools.getFee(rationNode, feeField);
+                    fee = scMathUtil.roundForObj(fee + rationFee, decimalObj.process);
+                }
+            });
+        });
+        return scMathUtil.roundForObj(fee, decimalObj.bills.totalPrice);
+    }
 };
 
 let baseFigureTemplate = {
+    'FR': function () {
+        const feeRate = calcBase.curNode ? calcBase.curNode.data.feeRate : null;
+        return rate = !commonUtil.isEmptyVal(feeRate) && !isNaN(feeRate) ? +feeRate * 0.01 : 1;
+    },
     'FBFXGCF': function (tender) {
         let feeField = 'common',
             subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
@@ -424,6 +448,21 @@ let baseFigureTemplate = {
         }
         return rst;
     },
+    'FBFXRGTSFDERGF': function (tender) {
+        return cbTools.getFeeWithTypeByFlag(fixedFlag.SUB_ENGINERRING, 42, 'labour', tender);
+    },
+    'FBFXJXBPTSFDERGF': function (tender) {
+        return cbTools.getFeeWithTypeByFlag(fixedFlag.SUB_ENGINERRING, 18, 'labour', tender);
+    },
+    'FBFXJXBPTSFDEJXF': function (tender) {
+        return cbTools.getFeeWithTypeByFlag(fixedFlag.SUB_ENGINERRING, 18, 'machine', tender);
+    },
+    'FBFXDERGFTSFCW': function (tender) {
+        return (this['FBFXDEJJRGF'](tender) - this['FBFXRGTSFDERGF'](tender) - this['FBFXJXBPTSFDERGF'](tender)).toDecimal(decimalObj.bills.totalPrice);
+    },
+    'FBFXDEJXFTSFCW': function (tender) {
+        return (this['FBFXDEJJJXF'](tender) - this['FBFXJXBPTSFDEJXF'](tender)).toDecimal(decimalObj.bills.totalPrice);
+    },
     'FBFXDEJJZJGCF': function (tender) {
         return (this['FBFXDEJJRGF'](tender) + this['FBFXDEJJCLF'](tender) + this['FBFXDEJJJXF'](tender)).toDecimal(decimalObj.bills.totalPrice);
     },
@@ -511,8 +550,23 @@ let baseFigureTemplate = {
         }
         return rst;
     },
+    JSCSXMRGTSFDERGF: function (tender) {
+        return cbTools.getFeeWithTypeByFlag(fixedFlag.CONSTRUCTION_TECH, 42, 'labour', tender);
+    },
+    JSCSXMJXBPTSFDERGF: function (tender) {
+        return cbTools.getFeeWithTypeByFlag(fixedFlag.CONSTRUCTION_TECH, 18, 'labour', tender);
+    },
+    JSCSXMJXBPTSFDEJXF: function (tender) {
+        return cbTools.getFeeWithTypeByFlag(fixedFlag.CONSTRUCTION_TECH, 18, 'machine', tender);
+    },
+    JSCSXMDERGFTSFCW: function (tender) {
+        return (this['JSCSXMDEJJRGF'](tender) - this['JSCSXMRGTSFDERGF'](tender) - this['JSCSXMJXBPTSFDERGF'](tender)).toDecimal(decimalObj.bills.totalPrice);
+    },
+    JSCSXMDEJXFTSFCW: function (tender) {
+        return (this['FBFXDEJJRGF'](tender) - this['JSCSXMRGTSFDERGF'](tender) - this['JSCSXMJXBPTSFDERGF'](tender)).toDecimal(decimalObj.bills.totalPrice);
+    },
     'JSCSXMDEJJZJGCF': function (tender) {
-        return (this['JSCSXMDEJJRGF'](tender) + this['JSCSXMDEJJCLF'](tender) + this['JSCSXMDEJJJXF'](tender)).toDecimal(decimalObj.bills.totalPrice);
+        return (this['JSCSXMDEJJJXF'](tender) + this['JSCSXMJXBPTSFDEJXF'](tender)).toDecimal(decimalObj.bills.totalPrice);
     },
     'QTXMF': function (tender) {
         let feeField = 'common',
@@ -1590,6 +1644,7 @@ let cbCalctor = {
 };
 
 let calcBase = {
+    curNode: null,
     errMsg: '表达式不正确',
     success: false,
     //清单固定行
@@ -1625,6 +1680,7 @@ let calcBase = {
             $CBP = cbParser,
             $CBC = cbCalctor;
         try {
+            this.curNode = node;
             me.success = false;
             me.errMsg = '表达式不正确';
             //分析输入式合法性

+ 3 - 0
web/building_saas/main/js/views/calc_base_view.js

@@ -161,6 +161,9 @@ let calcBaseView = {
     toViewData: function (obj) {
         let rst = [];
         for(let figure in obj){
+            if (figure === '费率') {
+                continue;
+            }
             let figureObj = Object.create(null);
             figureObj.base = figure;
             figureObj.price = projectObj.project.calcBase.getBase(figure);

+ 11 - 0
web/over_write/js/chongqing_2018.js

@@ -257,6 +257,11 @@ if(typeof baseFigureMap !== 'undefined'){
         '分部分项定额施工机具使用费': {base: 'FBFXDEJJJXF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
         '分部分项主材费': {base: 'FBFXZCF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
         '分部分项人工工日': {base: 'FBFXRGGR', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
+        '分部分项人工土石方定额人工费': {base: 'FBFXRGTSFDERGF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
+        '分部分项机械(爆破)土石方定额人工费': {base: 'FBFXJXBPTSFDERGF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
+        '分部分项机械(爆破)土石方定额施工机具使用费': {base: 'FBFXJXBPTSFDEJXF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
+        '分部分项定额人工费(土石方除外)': {base: 'FBFXDERGFTSFCW', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
+        '分部分项定额施工机具使用费(土石方除外)': {base: 'FBFXDEJXFTSFCW', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
         '措施项目费': {base: 'CSXMF', fixedFlag: fixedFlag.MEASURE, class: 'CSXM'},
         '组织措施项目费': {base: 'ZZCSXMF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
         '组织措施项目定额人工费': {base: 'ZZCSXMDEJJRGF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
@@ -269,11 +274,17 @@ if(typeof baseFigureMap !== 'undefined'){
         '技术措施项目定额施工机具使用费': {base: 'JSCSXMDEJJJXF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
         '技术措施项目主材费': {base: 'JSCSXMZCF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
         '技术措施项目人工工日': {base: 'JSCSXMRGGR', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
+        '技术措施项目人工土石方定额人工费': {base: 'JSCSXMRGTSFDERGF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
+        '技术措施项目机械(爆破)土石方定额人工费': {base: 'JSCSXMJXBPTSFDERGF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
+        '技术措施项目机械(爆破)土石方定额施工机具使用费': {base: 'JSCSXMJXBPTSFDEJXF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
+        '技术措施项目定额人工费(土石方除外)': {base: 'JSCSXMDERGFTSFCW', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
+        '技术措施项目定额施工机具使用费(土石方除外)': {base: 'JSCSXMDEJXFTSFCW', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
         '其他项目费': {base: 'QTXMF',  fixedFlag: fixedFlag.OTHER, class: 'QTXM'},
         '规费': {base: 'GF', fixedFlag: fixedFlag.CHARGE, class: 'GF'},
         '税金': {base: 'SJ', fixedFlag: fixedFlag.TAX, class: 'SJ'},
         '增值税': {base: 'ZZS', class: 'SJ', fixedFlag: fixedFlag.ADDED_VALUE_TAX},
         //不于清单直接关联==========
+        '费率': { base: 'FR', class: 'NONE' },
         '建筑面积': {base: 'JZMJ', class: 'FBFX'},
         '人材机价差': {base: 'RCJJC', class: 'RCJ'},
         '人工价差': {base: 'RGJC', class: 'RCJ'},