Browse Source

feat: 甘肃养护,小修编办变更处理(养护检查预算、日常养护预算)

vian 4 năm trước cách đây
mục cha
commit
1c862e7e86
1 tập tin đã thay đổi với 22 bổ sung7 xóa
  1. 22 7
      web/over_write/js/gansu_2021.js

+ 22 - 7
web/over_write/js/gansu_2021.js

@@ -18,6 +18,7 @@ if (typeof feeRateObject !== 'undefined') {
 }
 
 // 清单基数
+const littleFixNames = ['小修', '养护检查预算', '日常养护预算'];
 const progression = ['养护单位(业主)管理费', '养护单位(业主)管理费(未单独设置)', '养护工程监理费', '养护工程监理费(路线工程)', '养护工程监理费(桥梁及隧道工程)', '设计文件审查费', '养护工程设计费(路线工程)', '养护工程设计费(独立桥梁、隧道工程)', '施工场地建设费'];
 const deficiency = { '养护工程监理费': 10000, '设计文件审查费': 10000 };
 if (typeof baseFigureMap !== 'undefined') {
@@ -93,7 +94,7 @@ if (typeof baseFigureMap !== 'undefined') {
             fixedFlag: null,
             filter: [fixedFlag.MAINTENANCE_EXPENSES],
             pick: true,
-            engineeringList: ['小修'],
+            engineeringList: littleFixNames,
         },
         // 显示:仅清单固定类别是“养护工程其他费用”部分可显示。
         '养护工程监理费(路线工程)': {
@@ -192,6 +193,11 @@ if (typeof baseFigureMap !== 'undefined') {
     baseFigureMap.boq = boqMap;
 }
 
+// 是否是小修
+const isLittleFix = (engName) => {
+    return littleFixNames.some(name => new RegExp(name).test(engName));
+}
+
 if (typeof baseFigureTemplate !== 'undefined') {
     const { fixedFlag } = commonConstants;
     baseFigureTemplate.budget = {
@@ -201,13 +207,22 @@ if (typeof baseFigureTemplate !== 'undefined') {
         },
         // 建筑安装工程费(不含设备费)算法:取清单固定类别是“建筑安装工程费”的金额 - {设备费}。
         JZAZGCFBHSB(tender) {
-            return cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, [fixedFlag.EQUIPMENT_ACQUISITION_FEE], tender, 'common');
+            const engName = projectObj.project.property.engineeringName;
+            if (isLittleFix(engName)) {
+                // 小修的没有设备购置固定行
+                const baseFee = cbTools.getBaseFee(fixedFlag.CONSTRUCTION_INSTALL_FEE, tender, 'common');
+                const fixedNode = projectObj.project.mainTree.roots.find(node => node.getFlag() === fixedFlag.CONSTRUCTION_INSTALL_FEE);
+                const equipmentFee = cbTools.getEquipmentFee(fixedNode, tender, 'common');
+                return (baseFee - equipmentFee).toDecimal(decimalObj.bills.totalPrice);
+            } else {
+                return cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, [fixedFlag.EQUIPMENT_ACQUISITION_FEE], tender, 'common');
+            }
         },
         // 定额建筑安装工程费 算法:取清单固定类别是“建筑安装工程费”的定额建安费(其中定额设备费按40%计算)。
         DEJZAZGCF(tender) {
             const engName = projectObj.project.property.engineeringName;
             const feeField = 'rationCommon';
-            if (/小修/.test(engName)) {
+            if (isLittleFix(engName)) {
                 // 小修的没有设备购置固定行
                 const baseFee = cbTools.getBaseFee(fixedFlag.CONSTRUCTION_INSTALL_FEE, tender, feeField);
                 const fixedNode = projectObj.project.mainTree.roots.find(node => node.getFlag() === fixedFlag.CONSTRUCTION_INSTALL_FEE);
@@ -239,7 +254,7 @@ if (typeof baseFigureTemplate !== 'undefined') {
         DEYHGCF(tender) {
             const engName = projectObj.project.property.engineeringName;
             const feeField = 'rationCommon';
-            if (/小修/.test(engName)) {
+            if (isLittleFix(engName)) {
                 // 小修的没有设备购置固定行
                 const baseFee = cbTools.getBaseFee(fixedFlag.MAINTENANCE_FEE, tender, feeField);
                 const fixedNode = projectObj.project.mainTree.items.find(node => node.getFlag() === fixedFlag.MAINTENANCE_FEE);
@@ -308,7 +323,7 @@ if (typeof baseFigureTemplate !== 'undefined') {
         YHXMXXHF(tender) {
             const engName = projectObj.project.property.engineeringName;
             const baseFee = this['DEJZAZGCF'](tender);
-            if (/小修/.test(engName)) {
+            if (isLittleFix(engName)) {
                 const fee = (baseFee * 0.002).toDecimal(decimalObj.bills.totalPrice);
                 return fee > 0 && fee < 5000 ? 5000 : fee;
             } else {
@@ -337,7 +352,7 @@ if (typeof baseFigureTemplate !== 'undefined') {
             const baseFee = this['DEYHGCF'](tender);
             // 小修保养类别,施工场地建设费的计算基数定额建筑安装工程费超过30000000元时,不进行累进计算,直接按500000元计取。
             const engName = projectObj.project.property.engineeringName;
-            if (/小修/.test(engName) && baseFee > 30000000) {
+            if (isLittleFix(engName) && baseFee > 30000000) {
                 return 500000;
             }
             if (!tender) {
@@ -435,7 +450,7 @@ if (typeof projectObj !== 'undefined') {
             const engName = projectObj.project.property.engineeringName;
             //属于的固定清单
             const belongFlag = cbTools.getBelongFlag(selected);
-            if (/小修/.test(engName)) {
+            if (isLittleFix(engName)) {
                 if (belongFlag && belongFlag === fixedFlag.MAINTENANCE_FEE) {
                     return true;
                 }