Explorar o código

Merge branch 'master' of http://smartcost.f3322.net:3000/SmartCost/YangHuCost

zhangweicheng %!s(int64=6) %!d(string=hai) anos
pai
achega
e3cef18c92

+ 9 - 9
web/building_saas/main/js/models/calc_base.js

@@ -712,7 +712,7 @@ let baseFigureMap = {
         },
         '定额建筑安装工程费(其中定额设备购置费按40%计)': {
             base: 'DEJZAZGCSBSS', fixedFlag: null,
-            filter: [fixedFlag.SPECIAL_COST, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
+            filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
             pick: true
         },
         //只允许固定类别是“安全生产费”
@@ -760,48 +760,48 @@ let baseFigureMap = {
         //只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
         '养护单位(业主)管理费': {
             base: 'YHDWYZGLF', fixedFlag: null,
-            filter: [fixedFlag.SPECIAL_COST, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
+            filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
             pick: true
         },
         //只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
         '信息化费': {
             base: 'XXHF', fixedFlag: null,
-            filter: [fixedFlag.SPECIAL_COST, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
+            filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
             pick: true
         },
         //只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
         '路线工程监理费': {
             base: 'LXGCJLF', fixedFlag: null,
-            filter: [fixedFlag.SPECIAL_COST, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
+            filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
             pick: true
         },
         //只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
         '独立桥梁隧道工程监理费': {
             base: 'QLSDGCJLF', fixedFlag: null,
-            filter: [fixedFlag.SPECIAL_COST, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
+            filter: [ fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
             pick: true
         },
         //只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
         '设计文件审查费': {
             base: 'SJWJSCF', fixedFlag: null,
-            filter: [fixedFlag.SPECIAL_COST, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
+            filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
             pick: true
         },
         //只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
         '路线勘察设计费': {
             base: 'LXKCSJF', fixedFlag: null,
-            filter: [fixedFlag.SPECIAL_COST, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
+            filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
             pick: true
         },
         //只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
         '独立桥梁隧道维修加固勘察设计费': {
             base: 'QLSDKCSJF', fixedFlag: null,
-            filter: [fixedFlag.SPECIAL_COST, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
+            filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
             pick: true
         },
         '招标代理及标底(最高投标限价)编制费': {
             base: 'ZBDLJBDBZF', fixedFlag: null,
-            filter: [fixedFlag.SPECIAL_COST, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
+            filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
             pick: true
         },
         //只允许固定类别是“价差预备费”的清单使用

+ 22 - 8
web/building_saas/main/js/models/calc_program.js

@@ -143,7 +143,17 @@ let calcTools = {
         sheet.setSelection(idx, 0, rowsCount, colsCount);
         sheet.showRow(idx, GC.Spread.Sheets.VerticalPosition.center);
     },
-
+    clearFees: function (treeNode) {
+        if (!treeNode || !treeNode.data.feesIndex) {
+            return;
+        }
+        let clearFeeField = ['unitFee', 'totalFee', 'tenderUnitFee', 'tenderTotalFee'];
+        for (let feeField in treeNode.data.feesIndex) {
+            for (let subFee of clearFeeField) {
+                treeNode.data.feesIndex[feeField][subFee] = 0;
+            }
+        }
+    },
     initFees: function (treeNode){
         if (!treeNode.data.fees) {
             treeNode.data.fees = [];
@@ -1666,15 +1676,15 @@ class CalcProgram {
                         buf = (sum_rtf / bq).toDecimal(decimalObj.process);
                         btuf = (sum_rttf / btq).toDecimal(decimalObj.process);
                     };
-                    if (isBaseFeeType(ft.type) ||
-                        (me.project.property.billsCalcMode === leafBillGetFeeType.rationPrice && ft.type == "common")){
+                    // if (isBaseFeeType(ft.type) ||
+                    //     (me.project.property.billsCalcMode === leafBillGetFeeType.rationPrice && ft.type == "common")){
                         btf = sum_rtf;
                         bttf = sum_rttf;
-                    }
-                    else{
-                        btf = (buf.toDecimal(decimalObj.bills.unitPrice) * bq).toDecimal(decimalObj.process);
-                        bttf = (btuf.toDecimal(decimalObj.bills.unitPrice) * btq).toDecimal(decimalObj.process);
-                    };
+                    // }
+                    // else{
+                    //     btf = (buf.toDecimal(decimalObj.bills.unitPrice) * bq).toDecimal(decimalObj.process);
+                    //     bttf = (btuf.toDecimal(decimalObj.bills.unitPrice) * btq).toDecimal(decimalObj.process);
+                    // };
                 };
 
                 ftObj.totalFee = btf.toDecimal(decimalObj.bills.totalPrice);
@@ -1756,6 +1766,10 @@ class CalcProgram {
             ttf = ttf.toDecimal(decimalObj.bills.totalPrice);
             deleteUselessFees(treeNode);
             calcTools.checkFeeField(treeNode, {'fieldName': 'common', 'unitFee': uf, 'totalFee': tf, 'tenderUnitFee': tuf, 'tenderTotalFee': ttf});
+            //第一部分建安费下,使用基数计算的清单,定额建安费应=金额
+            if (cbTools.getBelongFlagList(treeNode).includes(fixedFlag.CONSTRUCTION_INSTALL_FEE)) {
+                calcTools.checkFeeField(treeNode, {'fieldName': 'rationCommon', 'unitFee': uf, 'totalFee': tf, 'tenderUnitFee': tuf, 'tenderTotalFee': ttf});
+            }
 
             // 总造价清单还要做单项工程、建设项目的四大项金额汇总
             if (calcTools.isTotalCostBill(treeNode)){

+ 5 - 1
web/building_saas/main/js/models/main_consts.js

@@ -28,7 +28,9 @@ const baseMaterialTypes = [
     gljType.MORTAR,
     gljType.MIX_RATIO,
     gljType.COMMERCIAL_CONCRETE,
-    gljType.COMMERCIAL_MORTAR
+    gljType.COMMERCIAL_MORTAR,
+    gljType.PURCHASE_COMPONENT,
+    gljType.GREEN_SEEDLING
 ];
 // 计算基数 [定额基价机械费] 要用到的机械类型。
 const baseMachineTypes = [
@@ -49,6 +51,8 @@ const allMaterialTypes = [
     gljType.MIX_RATIO,
     gljType.COMMERCIAL_CONCRETE,
     gljType.COMMERCIAL_MORTAR,
+    gljType.PURCHASE_COMPONENT,
+    gljType.GREEN_SEEDLING,
     gljType.MAIN_MATERIAL,
     gljType.EQUIPMENT
 ];

+ 4 - 4
web/building_saas/main/js/views/project_view.js

@@ -500,8 +500,8 @@ var projectObj = {
                         let activeCell = projectObj.mainSpread.getActiveSheet().getSelections()[0];
                         projectObj.mainController.refreshTreeNode([node]);
                         return;
-                    } else if (value === '') {//删除清单基数,单价要清空
-                        calcTools.setFieldValue(node, 'feesIndex.common.unitFee', 0);
+                    } else if (value === '') {//删除清单基数,要清空费用
+                        calcTools.clearFees(node);
                     }
                     // if (value) {value = parseFloat(value).toDecimal(decimalObj.decimal("totalPrice", node))};
                 };
@@ -3253,9 +3253,9 @@ $('#calcBaseFeeRateConf').click(function () {
             $('#calcBaseFeeRate').modal('hide');
         }
     }
-    //删除清单基数,要清空单价
+    //删除清单基数,要清空费用
     if (projectObj.project.calcBase.success && calcBaseValue === '') {
-        calcTools.setFieldValue(selected, 'feesIndex.common.unitFee', 0);
+        calcTools.clearFees(selected);
     }
     if(!projectObj.project.calcBase.success && cusFeeRate==false){
         return;