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

feat: 甘肃养护2021,1.小修项目,需要放开插入设备。 2. 小修保养类别,施工场地建设费的计算基数定额建筑安装工程费超过30000000元时,不进行累进计算,直接按500000元计取

vian 4 лет назад
Родитель
Сommit
34bd951fa2
1 измененных файлов с 61 добавлено и 16 удалено
  1. 61 16
      web/over_write/js/gansu_2021.js

+ 61 - 16
web/over_write/js/gansu_2021.js

@@ -205,14 +205,23 @@ if (typeof baseFigureTemplate !== 'undefined') {
         },
         // 定额建筑安装工程费 算法:取清单固定类别是“建筑安装工程费”的定额建安费(其中定额设备费按40%计算)。
         DEJZAZGCF(tender) {
+            const engName = projectObj.project.property.engineeringName;
             const feeField = 'rationCommon';
-            const deductFlags = [fixedFlag.EQUIPMENT_ACQUISITION_FEE];
-            //建安费扣除定额设备购置费
-            const afterDeductFee = cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, deductFlags, tender, feeField, false);
-            //定额设备购置费
-            const equipmentAcFee = cbTools.getBaseFee(deductFlags[0], tender, 'equipment');
-            const equipmentAcTaxFee = cbTools.getBaseFee(deductFlags[0], tender, 'tax');
-            return (afterDeductFee + equipmentAcFee * 0.4 + equipmentAcTaxFee).toDecimal(decimalObj.bills.totalPrice);
+            if (/小修/.test(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);
+                const equipmentFee = cbTools.getEquipmentFee(fixedNode, tender, 'equipment');
+                return (baseFee - equipmentFee * 0.6).toDecimal(decimalObj.process);
+            } else {
+                const deductFlags = [fixedFlag.EQUIPMENT_ACQUISITION_FEE];
+                //建安费扣除定额设备购置费
+                const afterDeductFee = cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, deductFlags, tender, feeField, false);
+                //定额设备购置费
+                const equipmentAcFee = cbTools.getBaseFee(deductFlags[0], tender, 'equipment');
+                const equipmentAcTaxFee = cbTools.getBaseFee(deductFlags[0], tender, 'tax');
+                return (afterDeductFee + equipmentAcFee * 0.4 + equipmentAcTaxFee).toDecimal(decimalObj.bills.totalPrice);
+            }
         },
         // 设备费 算法:取清单固定类别是“设备购置”的建安费
         SBF(tender) {
@@ -228,14 +237,23 @@ if (typeof baseFigureTemplate !== 'undefined') {
         },
         // 定额养护工程费 算法:取清单固定类别是“养护工程费”的定额建安费(其中定额设备费按40%计算)。
         DEYHGCF(tender) {
+            const engName = projectObj.project.property.engineeringName;
             const feeField = 'rationCommon';
-            const deductFlags = [fixedFlag.EQUIPMENT_ACQUISITION_FEE];
-            //建安费扣除定额设备购置费
-            const afterDeductFee = cbTools.getFeeWithDeduction(fixedFlag.MAINTENANCE_FEE, deductFlags, tender, feeField, false);
-            //定额设备购置费
-            const equipmentAcFee = cbTools.getBaseFee(deductFlags[0], tender, 'equipment');
-            const equipmentAcTaxFee = cbTools.getBaseFee(deductFlags[0], tender, 'tax');
-            return (afterDeductFee + equipmentAcFee * 0.4 + equipmentAcTaxFee).toDecimal(decimalObj.bills.totalPrice);
+            if (/小修/.test(engName)) {
+                // 小修的没有设备购置固定行
+                const baseFee = cbTools.getBaseFee(fixedFlag.MAINTENANCE_FEE, tender, feeField);
+                const fixedNode = projectObj.project.mainTree.items.find(node => node.getFlag() === fixedFlag.MAINTENANCE_FEE);
+                const equipmentFee = cbTools.getEquipmentFee(fixedNode, tender, 'equipment');
+                return (baseFee - equipmentFee * 0.6).toDecimal(decimalObj.process);
+            } else {
+                const deductFlags = [fixedFlag.EQUIPMENT_ACQUISITION_FEE];
+                //建安费扣除定额设备购置费
+                const afterDeductFee = cbTools.getFeeWithDeduction(fixedFlag.MAINTENANCE_FEE, deductFlags, tender, feeField, false);
+                //定额设备购置费
+                const equipmentAcFee = cbTools.getBaseFee(deductFlags[0], tender, 'equipment');
+                const equipmentAcTaxFee = cbTools.getBaseFee(deductFlags[0], tender, 'tax');
+                return (afterDeductFee + equipmentAcFee * 0.4 + equipmentAcTaxFee).toDecimal(decimalObj.bills.totalPrice);
+            }
         },
         // 养护单位(业主)管理费 算法:以{定额建筑安装工程费}为基数,采用累进办法计算。。
         YHDWYZGLF(tender) {
@@ -314,9 +332,15 @@ if (typeof baseFigureTemplate !== 'undefined') {
             }
             return calculateUtil.getProgressiveFee(baseFee, '养护工程设计费(独立桥梁、隧道工程)', projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
         },
-        // 施工场地建设费 算法:以{定额建筑安装工程费}为基数,采用累进办法计算
+        // 施工场地建设费 算法:以{定额养护工程费}为基数,采用累进办法计算
         SGCDJSF(tender) {
+            debugger;
             const baseFee = this['DEYHGCF'](tender);
+            // 小修保养类别,施工场地建设费的计算基数定额建筑安装工程费超过30000000元时,不进行累进计算,直接按500000元计取。
+            const engName = projectObj.project.property.engineeringName;
+            if (/小修/.test(engName) && baseFee > 30000000) {
+                return 500000;
+            }
             if (!tender) {
                 calcBase.baseProgressiveFee = baseFee;
             }
@@ -404,4 +428,25 @@ if (typeof module !== 'undefined') {
   };
 }
 // 不显示但可的基数
-const invisibleBases = ['设备费', '定额设备费'];
+const invisibleBases = ['设备费', '定额设备费'];
+
+if (typeof projectObj !== 'undefined') {
+    projectObj.isInsertEquipmentVisable = function (selected) {
+        if(projectObj.project.property.valuationType !=='ration' ){//属于预算项目的情况下,在固定清单可见
+            const engName = projectObj.project.property.engineeringName;
+            //属于的固定清单
+            const belongFlag = cbTools.getBelongFlag(selected);
+            if (/小修/.test(engName)) {
+                if (belongFlag && belongFlag === fixedFlag.MAINTENANCE_FEE) {
+                    return true;
+                }
+            } else {
+                if (belongFlag && belongFlag === fixedFlag.EQUIPMENT_ACQUISITION_FEE) {
+                    return true;
+                }
+            }
+            return false;
+        }
+        return true
+    }
+}