| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271 |
- /**
- * 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;
- }
- }
|