/** * Created by CSL on 2019/09/23. 内蒙计算程序、基数 等覆盖。 */ let isNM2019 = true; function overwriteRationCalcBases() { if (typeof rationCalcBases == 'undefined') return; for (let key in rationCalcBases) delete rationCalcBases[key]; rationCalcBases['人工费'] = function (node, isTender) { return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptMarketPrice, isTender); }; rationCalcBases['材料费'] = function (node, isTender) { return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptMarketPrice, isTender); }; rationCalcBases['施工机械使用费'] = function (node, isTender) { return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptMarketPrice, isTender); }; rationCalcBases['施工机械人工费'] = function (node, isTender) { return calcTools.machineDetailFee(node, node.data.gljList, [], gljType.MACHINE_LABOUR, isTender); }; rationCalcBases['设备购置费'] = function (node, isTender) { return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptMarketPrice, isTender); }; rationCalcBases['定额人工费'] = function (node, isTender) { return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptBasePrice, isTender); }; rationCalcBases['定额材料费'] = function (node, isTender) { return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptBasePrice, isTender); }; rationCalcBases['定额施工机械使用费'] = function (node, isTender) { return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptBasePrice, isTender); }; rationCalcBases['定额商品砼费'] = function (node, isTender) { return calcTools.rationBaseFee(node, [gljType.COMMERCIAL_CONCRETE, gljType.COMMERCIAL_MORTAR], priceTypes.ptBasePrice, isTender); }; rationCalcBases['定额设备费'] = function (node, isTender) { return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptBasePrice, isTender); }; rationCalcBases['定额外购砼构件费'] = function (node, isTender) { return calcTools.rationBaseFee(node, [gljType.PURCHASE_COMPONENT], priceTypes.ptBasePrice, isTender); }; rationCalcBases['定额绿化苗木费'] = function (node, isTender) { return calcTools.rationBaseFee(node, [gljType.GREEN_SEEDLING], priceTypes.ptBasePrice, isTender); }; }; (function overwriteFeeTypes() { if (typeof cpFeeTypes == 'undefined') return; cpFeeTypes = [ {type: 'marketLabour', name: '人工费'}, {type: 'marketMaterial', name: '材料费'}, {type: 'marketMachine', name: '施工机械使用费'}, {type: 'marketMachineLabour', name: '施工机械人工费'}, {type: 'marketEquipment', name: '设备购置费'}, {type: 'marketDirect', name: '直接费'}, {type: 'labour', name: '定额人工费'}, {type: 'material', name: '定额材料费'}, {type: 'machine', name: '定额施工机械使用费'}, {type: 'equipment', name: '定额设备购置费'}, {type: 'direct', name: '定额直接费'}, {type: 'measure', name: '措施费'}, {type: 'manage', name: '企业管理费'}, {type: 'force', name: '规费'}, {type: 'profit', name: '利润'}, {type: 'tax', name: '税金'}, {type: 'common', name: '建安费'}, {type: 'rationCommon', name: '定额建安费'}, {type: 'safeProduce', name: '安全生产费'} ]; })(); // 清单基数,工程量清单的基数没有变化,只修改预算的 if (typeof baseFigureMap !== 'undefined' && baseFigureMap.budget) { baseFigureMap.budget = { // 清单固定类别是“建筑安装工程费”的以外部分可显示 '定额建筑安装工程费(定额设备购置费按40%计)': { base: 'DEJZAZGCFSBSS', fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE, filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE], pick: false, }, // 清单固定类别是“建筑安装工程费”的以外部分可显示 '建筑安装工程费(不含设备费)': { base: 'JZAZGCFBHSB', fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE, filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE], pick: false, }, // 清单固定类别是“建筑安装工程费”的以外部分可显示 '建筑安装工程费': { base: 'JZAZGCF', fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE, filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE], pick: false, }, // “建筑安装工程费”、“土地使用及拆迁补偿费”以外部分可显示 '土地使用及拆迁补偿费': { base: 'TDSYJCQBCF', fixedFlag: fixedFlag.LAND_USED_DEMOLITION, filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE, fixedFlag.LAND_USED_DEMOLITION], pick: false, }, // “建筑安装工程费”、“土地使用及拆迁补偿费”、“养护工程其他费用”以外部分可显示 '养护工程其他费用': { base: 'YHGCQTFY', fixedFlag: fixedFlag.MAINTENANCE_EXPENSES, filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES], pick: false, }, // “建筑安装工程费”、“土地使用及拆迁补偿费”、“养护工程其他费用”以外部分可显示 '预备费': { base: 'YBF', fixedFlag: fixedFlag.BUDGET_FEE, filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES, fixedFlag.BUDGET_FEE], pick: false, }, // 仅在清单固定类别是“养护单位项目管理费”的清单显示 '养护单位项目管理费': { base: 'YHDWXMGLF', fixedFlag: null, filter: [fixedFlag.MAINTENANCE_MANAGENENT_FEE], pick: true, }, // 仅在清单固定类别是“信息化费”的清单显示 '信息化费': { base: 'XXHF', fixedFlag: null, filter: [fixedFlag.INFORMATIZATION_FEE], pick: true, }, // 仅在清单固定类别是“工程监理费”的清单显示 '工程监理费': { base: 'GCJLF', fixedFlag: null, filter: [fixedFlag.ENGINEERING_SUP_FEE], pick: true, }, // 仅在清单固定类别是“设计文件审查费”的清单显示 '设计文件审查费': { base: 'SJWJSCF', fixedFlag: null, filter: [fixedFlag.DOCUMENT_REVIEW_FEE], pick: true, }, '前期工作费': { base: 'QQGZF', fixedFlag: null, filter: [fixedFlag.PRELIMINARY_WORK], pick: true, }, '价差预备费': { base: 'JCYBF', fixedFlag: null, filter: [fixedFlag.SPREAD_BUDGET_FEE], pick: true, }, } } // 清单基数,工程量清单的基数没有变化,只修改预算的 if (typeof baseFigureTemplate !== 'undefined' && baseFigureTemplate.budget) { baseFigureTemplate.budget = { // 定额建筑安装工程费(定额设备购置费按40%计):取清单固定类别是“建筑安装工程”的定额建安费,其中定额设备购置费按40%计算 DEJZAZGCFSBSS(tender) { const feeField = 'rationCommon'; const subFeeField = tender ? 'tenderTotalFee' : 'totalFee'; const deductFlags = [fixedFlag.EQUIPMENT_ACQUISITION_FEE]; //建安费扣除定额设备购置费 const afterDeductFee = cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, deductFlags, `${feeField}.${subFeeField}`); //定额设备购置费 const equipmentAcFee = cbTools.getBillsFee(deductFlags[0], feeField, subFeeField); return (afterDeductFee + equipmentAcFee * 0.4).toDecimal(decimalObj.bills.totalPrice); }, // 建筑安装工程费(不含设备费):取清单固定类别是“建筑安装工程”的金额,但要扣除清单固定类别是“设备购置费”的金额 JZAZGCFBHSB(tender) { const fullFeeField = tender ? 'common.tenderTotalFee' : 'common.totalFee'; const deductFlags = [fixedFlag.EQUIPMENT_ACQUISITION_FEE]; //建安费扣除设备费 return cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, deductFlags, fullFeeField).toDecimal(decimalObj.bills.totalPrice); }, // 建筑安装工程费:取清单固定类别是“建筑安装工程”的金额 JZAZGCF(tender) { const feeField = 'common'; const subFeeField = tender ? 'tenderTotalFee' : 'totalFee'; return cbTools.getBillsFee(fixedFlag.CONSTRUCTION_INSTALL_FEE, feeField, subFeeField); }, // 土地使用及拆迁补偿费:取清单固定类别是“土地使用及拆迁补偿费”的金额 TDSYJCQBCF(tender) { const feeField = 'common'; const subFeeField = tender ? 'tenderTotalFee' : 'totalFee'; return cbTools.getBillsFee(fixedFlag.LAND_USED_DEMOLITION, feeField, subFeeField); }, // 养护工程其他费用:取清单固定类别是“养护工程其他费用”的金额 YHGCQTFY(tender) { const feeField = 'common'; const subFeeField = tender ? 'tenderTotalFee' : 'totalFee'; return cbTools.getBillsFee(fixedFlag.MAINTENANCE_EXPENSES, feeField, subFeeField); }, // 预备费:取清单固定类别是“预备费”的金额 YBF(tender) { const feeField = 'common'; const subFeeField = tender ? 'tenderTotalFee' : 'totalFee'; return cbTools.getBillsFee(fixedFlag.BUDGET_FEE, feeField, subFeeField); }, // 养护单位项目管理费:以累进办法计算,计算基数为“定额建筑安装工程费(定额设备购置费按40%计) YHDWXMGLF(tender) { const baseFee = this['DEJZAZGCFSBSS'](tender); return cbTools.getProgressiveFee(baseFee, '养护单位项目管理费'); }, // 信息化费:以累进办法计算,计算基数为“定额建筑安装工程费(定额设备购置费按40%计)” XXHF(tender) { const baseFee = this['DEJZAZGCFSBSS'](tender); return cbTools.getProgressiveFee(baseFee, '信息化费'); }, // 工程监理费:以累进办法计算,计算基数为“定额建筑安装工程费(定额设备购置费按40%计) GCJLF(tender) { const baseFee = this['DEJZAZGCFSBSS'](tender); return cbTools.getProgressiveFee(baseFee, '工程监理费'); }, // 设计文件审查费:以累进办法计算,计算基数为“定额建筑安装工程费(定额设备购置费按40%计)”;设计文件审查费不足3000元的,按3000元计算 SJWJSCF(tender) { const baseFee = this['DEJZAZGCFSBSS'](tender); const fee = cbTools.getProgressiveFee(baseFee, '设计文件审查费'); return fee > 0 && fee < 3000 ? 3000 : fee; }, // 前期工作费:以累进办法计算,计算基数为“定额建筑安装工程费(定额设备购置费按40%计) QQGZF(tender) { const baseFee = this['DEJZAZGCFSBSS'](tender); return cbTools.getProgressiveFee(baseFee, '前期工作费'); }, // 价差预备费 JCYBF(tender) { //建筑安装工程费作为基数 const installFee = this['JZAZGCF'](tender); //年造价增涨 const costGrowthRate = calcBase.project.property.costGrowthRate ? calcBase.project.property.costGrowthRate : 0; //增涨计费年限 const growthPeriod = projectObj.project.property.growthPeriod ? calcBase.project.property.growthPeriod : 0; //= P * [(1+i)^(n-1) -1] return (installFee * (Math.pow(1 + costGrowthRate, growthPeriod - 1) - 1)).toDecimal(decimalObj.bills.totalPrice); }, }; } if(typeof materialCalcObj !== 'undefined' && materialCalcObj.rationSetting){ let h =_.find(materialCalcObj.rationSetting.header,{"dataCode":"feeType"}); if(h) h.visible = true; let mt = _.find(materialCalcObj.freightSetting.header,{"dataCode":"materialType"}); if(mt) mt.visible = true; } //内蒙施工进出场(km)费率值修改特殊处理 if(typeof feeRateObject !== 'undefined'){ feeRateObject.feeRateSpecialHandle = function (subRate,value) { let result = {}; if(subRate.name == "施工进出场(km)"&& value && value < 5){//输入的数值(公里数)< 5时,该项费用不计取。 result.valueKey = "0"; result.value = scMathUtil.roundForObj(value,getDecimal("feeRate")) ;//设置显示的节点值 } return result; } }