|
@@ -427,67 +427,79 @@ let cbTools = {
|
|
|
//@param {Number}baseFee(相关基数金额) {String}name(使用累进计算的基数名称)
|
|
//@param {Number}baseFee(相关基数金额) {String}name(使用累进计算的基数名称)
|
|
|
//@return {Number}
|
|
//@return {Number}
|
|
|
getProgressiveFee: function (baseFee, name) {
|
|
getProgressiveFee: function (baseFee, name) {
|
|
|
- let progressiveData = calcBase.project.property.progressiveInterval;
|
|
|
|
|
|
|
+ const progressiveData = calcBase.project.property.progressiveInterval;
|
|
|
if (!progressiveData) {
|
|
if (!progressiveData) {
|
|
|
throw '该项目不存在累进区间数据';
|
|
throw '该项目不存在累进区间数据';
|
|
|
}
|
|
}
|
|
|
- let matchData = _.find(progressiveData, function (data) {
|
|
|
|
|
- //根据基数名称匹配累进库数据,标准化以免(())等不同导致不匹配
|
|
|
|
|
- return cbAnalyzer.standar(data.name) === cbAnalyzer.standar(name);
|
|
|
|
|
- });
|
|
|
|
|
- if (!matchData) {
|
|
|
|
|
- //return 0;
|
|
|
|
|
|
|
+ //根据基数名称匹配累进库数据,标准化以免(())等不同导致不匹配
|
|
|
|
|
+ const matchProgressiveData = progressiveData.find(item => cbAnalyzer.standar(item.name) === cbAnalyzer.standar(name));
|
|
|
|
|
+ if (!matchProgressiveData) {
|
|
|
throw `计算基数{${name}}不存在累进区间数据`;
|
|
throw `计算基数{${name}}不存在累进区间数据`;
|
|
|
}
|
|
}
|
|
|
- let progression = matchData.progression;
|
|
|
|
|
- //获取区间中的最小值(0, 10] = 0
|
|
|
|
|
- function getMin(intervalStr) {
|
|
|
|
|
- let str = cbAnalyzer.standar(intervalStr);
|
|
|
|
|
- let match = /\((\d+)?/g.exec(str);
|
|
|
|
|
- return typeof match[1] !== 'undefined' ? parseFloat(match[1]) * 10000 : null; //后台数据单位为万元,这里转为为元
|
|
|
|
|
- }
|
|
|
|
|
- //获取区间中的最大值(0, 10] = 10
|
|
|
|
|
- function getMax(intervalStr) {
|
|
|
|
|
- let str = cbAnalyzer.standar(intervalStr);
|
|
|
|
|
- let match = /[\,,,](\d+)?/g.exec(str);
|
|
|
|
|
- return typeof match[1] !== 'undefined' ? parseFloat(match[1]) * 10000 : null
|
|
|
|
|
- }
|
|
|
|
|
- //将累进区间进行排序
|
|
|
|
|
- progression.sort(function (a, b) {
|
|
|
|
|
- let aV = getMin(a.interval),
|
|
|
|
|
- bV = getMin(b.interval);
|
|
|
|
|
- if (aV > bV) {
|
|
|
|
|
- return 1;
|
|
|
|
|
- } else if (aV < bV) {
|
|
|
|
|
- return -1;
|
|
|
|
|
- }
|
|
|
|
|
- return 0;
|
|
|
|
|
|
|
+ // 将原始数据转换成方便处理的数据:[{feeRate: xx, min: 0, max: 200, minOpr: '(', maxOpr: ']'}]
|
|
|
|
|
+ const progression = matchProgressiveData.progression.map(item => {
|
|
|
|
|
+ // item.interval内容: eg (0,200]、[300,500) [1000,+)....
|
|
|
|
|
+ const interval = cbAnalyzer.standar(item.interval);
|
|
|
|
|
+ // ( => 大于 [ => 大于等于 ) => 小于 ] => 小于等于
|
|
|
|
|
+ const minReg = /([\(\[])(\d+)/;
|
|
|
|
|
+ const minMatch = minReg.exec(interval);
|
|
|
|
|
+ if (!minMatch || !minMatch[1] || !minMatch[2]) {
|
|
|
|
|
+ throw `计算基数{${name}}累进区间数据错误`;
|
|
|
|
|
+ }
|
|
|
|
|
+ const minOpr = minMatch[1];
|
|
|
|
|
+ // 后台数据单位为万元,这里转为为元
|
|
|
|
|
+ const min = parseFloat(minMatch[2]) * 10000;
|
|
|
|
|
+ const maxReg = /[\,,]([\d\+]+)([\)\]])/;
|
|
|
|
|
+ const maxMatch = maxReg.exec(interval);
|
|
|
|
|
+ if (!maxMatch || !maxMatch[1] || !maxMatch[2]) {
|
|
|
|
|
+ throw `计算基数{${name}}累进区间数据错误`;
|
|
|
|
|
+ }
|
|
|
|
|
+ const max = maxMatch[1] === '+' ? 'infinity' : parseFloat(maxMatch[1]) * 10000;
|
|
|
|
|
+ const maxOpr = maxMatch[2];
|
|
|
|
|
+ return {
|
|
|
|
|
+ feeRate: item.feeRate,
|
|
|
|
|
+ min,
|
|
|
|
|
+ minOpr,
|
|
|
|
|
+ max,
|
|
|
|
|
+ maxOpr
|
|
|
|
|
+ }
|
|
|
});
|
|
});
|
|
|
- //累进计算
|
|
|
|
|
- let fee = 0;
|
|
|
|
|
- //找到所在区间
|
|
|
|
|
- let within = _.find(progression, function (data) {
|
|
|
|
|
- let min = getMin(data.interval),
|
|
|
|
|
- max = getMax(data.interval);
|
|
|
|
|
- return min !== null && baseFee > min && (max !== null && baseFee <= max || max === null);
|
|
|
|
|
|
|
+ progression.sort((a, b) => a.min - b.min);
|
|
|
|
|
+ // 基数所在区间
|
|
|
|
|
+ const withinData = progression.find(item => {
|
|
|
|
|
+ const oprMiddle = item.max === 'infinity' ? '+' : '';
|
|
|
|
|
+ const oprLink = item.minOpr + oprMiddle + item.maxOpr;
|
|
|
|
|
+ switch (oprLink) {
|
|
|
|
|
+ case '()':
|
|
|
|
|
+ return baseFee > item.min && baseFee < item.max;
|
|
|
|
|
+ case '(]':
|
|
|
|
|
+ return baseFee > item.min && baseFee <= item.max;
|
|
|
|
|
+ case '[)':
|
|
|
|
|
+ return baseFee >= item.min && baseFee < item.max;
|
|
|
|
|
+ case '[]':
|
|
|
|
|
+ return baseFee >= item.min && baseFee <= item.max;
|
|
|
|
|
+ case '(+)':
|
|
|
|
|
+ case '(+]':
|
|
|
|
|
+ return baseFee > item.min;
|
|
|
|
|
+ case '[+)':
|
|
|
|
|
+ case '[+]':
|
|
|
|
|
+ return baseFee >= item.min;
|
|
|
|
|
+ default:
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
});
|
|
});
|
|
|
- if (!within) {
|
|
|
|
|
|
|
+ if (!withinData) {
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
|
|
+ // 累进计算
|
|
|
|
|
+ let fee = 0;
|
|
|
//累进之前的区间
|
|
//累进之前的区间
|
|
|
- for (let i = 0; i < progression.indexOf(within); i++) {
|
|
|
|
|
- let perData = progression[i],
|
|
|
|
|
- min = getMin(perData.interval),
|
|
|
|
|
- max = getMax(perData.interval);
|
|
|
|
|
- if (min !== null && max !== null) {
|
|
|
|
|
- fee += (max - min) * perData.feeRate * 0.01;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ for (let i = 0; i < progression.indexOf(withinData); i++) {
|
|
|
|
|
+ const perData = progression[i];
|
|
|
|
|
+ fee += (perData.max - perData.min) * perData.feeRate * 0.01;
|
|
|
}
|
|
}
|
|
|
//累进所在区间
|
|
//累进所在区间
|
|
|
- let min = getMin(within.interval);
|
|
|
|
|
- if (min !== null) {
|
|
|
|
|
- fee += (baseFee - min) * within.feeRate * 0.01;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ fee += (baseFee - withinData.min) * withinData.feeRate * 0.01;
|
|
|
return fee.toDecimal(decimalObj.bills.totalPrice);
|
|
return fee.toDecimal(decimalObj.bills.totalPrice);
|
|
|
},
|
|
},
|
|
|
//获取清单100章下的节点(只需要找最底层的,排除了底层,父项金额即排除了子项)
|
|
//获取清单100章下的节点(只需要找最底层的,排除了底层,父项金额即排除了子项)
|
|
@@ -718,107 +730,125 @@ let baseFigureMap = {
|
|
|
'budget': {
|
|
'budget': {
|
|
|
//只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
//只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
|
'定额建筑安装工程费(不含定额设备购置费及专项费用)': {
|
|
'定额建筑安装工程费(不含定额设备购置费及专项费用)': {
|
|
|
- base: 'DEJZAZGCFBHSBZX', fixedFlag: null,
|
|
|
|
|
|
|
+ base: 'DEJZAZGCFBHSBZX',
|
|
|
|
|
+ fixedFlag: null,
|
|
|
filter: [fixedFlag.SPECIAL_COST, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
filter: [fixedFlag.SPECIAL_COST, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
pick: true
|
|
pick: true
|
|
|
},
|
|
},
|
|
|
'定额建筑安装工程费(其中定额设备购置费按40%计)': {
|
|
'定额建筑安装工程费(其中定额设备购置费按40%计)': {
|
|
|
- base: 'DEJZAZGCSBSS', fixedFlag: null,
|
|
|
|
|
|
|
+ base: 'DEJZAZGCSBSS',
|
|
|
|
|
+ fixedFlag: null,
|
|
|
filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
pick: true
|
|
pick: true
|
|
|
},
|
|
},
|
|
|
//只允许固定类别是“安全生产费”
|
|
//只允许固定类别是“安全生产费”
|
|
|
'建筑安装工程费(不含安全生产费)': {
|
|
'建筑安装工程费(不含安全生产费)': {
|
|
|
- base: 'JZAZGCFBHSC', fixedFlag: null,
|
|
|
|
|
|
|
+ base: 'JZAZGCFBHSC',
|
|
|
|
|
+ fixedFlag: null,
|
|
|
filter: [fixedFlag.SAFE_COST],
|
|
filter: [fixedFlag.SAFE_COST],
|
|
|
pick: true
|
|
pick: true
|
|
|
},
|
|
},
|
|
|
//只允许固定类别是“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
//只允许固定类别是“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
|
'建筑安装工程费(不含设备费)': {
|
|
'建筑安装工程费(不含设备费)': {
|
|
|
- base: 'JZAZGCFBHSB', fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
|
|
|
|
+ base: 'JZAZGCFBHSB',
|
|
|
|
|
+ fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
pick: true
|
|
pick: true
|
|
|
},
|
|
},
|
|
|
//只允许非固定类别是“建筑安装工程费”下的清单引用
|
|
//只允许非固定类别是“建筑安装工程费”下的清单引用
|
|
|
'建筑安装工程费': {
|
|
'建筑安装工程费': {
|
|
|
- base: 'JZAZGCF', fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
|
|
|
|
+ base: 'JZAZGCF',
|
|
|
|
|
+ fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE],
|
|
filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE],
|
|
|
pick: false
|
|
pick: false
|
|
|
},
|
|
},
|
|
|
//只允许非固定类别是“建筑安装工程费”、非固定类别是“土地使用及拆迁补偿费”下的清单引用
|
|
//只允许非固定类别是“建筑安装工程费”、非固定类别是“土地使用及拆迁补偿费”下的清单引用
|
|
|
'土地使用及拆迁补偿费': {
|
|
'土地使用及拆迁补偿费': {
|
|
|
- base: 'TDSYJCQBCF', fixedFlag: fixedFlag.LAND_USED_DEMOLITION,
|
|
|
|
|
|
|
+ base: 'TDSYJCQBCF',
|
|
|
|
|
+ fixedFlag: fixedFlag.LAND_USED_DEMOLITION,
|
|
|
filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE, fixedFlag.LAND_USED_DEMOLITION],
|
|
filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE, fixedFlag.LAND_USED_DEMOLITION],
|
|
|
pick: false,
|
|
pick: false,
|
|
|
},
|
|
},
|
|
|
//只允许非固定类别是“建筑安装工程费”、非固定类别是“土地使用及拆迁补偿费”、非固定类别是“养护工程其他费”下的清单引用
|
|
//只允许非固定类别是“建筑安装工程费”、非固定类别是“土地使用及拆迁补偿费”、非固定类别是“养护工程其他费”下的清单引用
|
|
|
'养护工程其他费': {
|
|
'养护工程其他费': {
|
|
|
- base: 'YHGCQTF', fixedFlag: fixedFlag.MAINTENANCE_EXPENSES,
|
|
|
|
|
|
|
+ base: 'YHGCQTF',
|
|
|
|
|
+ fixedFlag: fixedFlag.MAINTENANCE_EXPENSES,
|
|
|
filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
pick: false
|
|
pick: false
|
|
|
},
|
|
},
|
|
|
//只允许非固定类别是“建筑安装工程费”、非固定类别是“土地使用及拆迁补偿费”、非固定类别是“养护工程其他费”、非固定类别是“预备费”下的清单引用。
|
|
//只允许非固定类别是“建筑安装工程费”、非固定类别是“土地使用及拆迁补偿费”、非固定类别是“养护工程其他费”、非固定类别是“预备费”下的清单引用。
|
|
|
'预备费': {
|
|
'预备费': {
|
|
|
- base: 'YBF', fixedFlag: fixedFlag.BUDGET_FEE,
|
|
|
|
|
|
|
+ base: 'YBF',
|
|
|
|
|
+ fixedFlag: fixedFlag.BUDGET_FEE,
|
|
|
filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES, fixedFlag.BUDGET_FEE],
|
|
filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES, fixedFlag.BUDGET_FEE],
|
|
|
pick: false
|
|
pick: false
|
|
|
},
|
|
},
|
|
|
//只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
//只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
|
'施工场地建设费': {
|
|
'施工场地建设费': {
|
|
|
- base: 'SGCDJSF', fixedFlag: null,
|
|
|
|
|
|
|
+ base: 'SGCDJSF',
|
|
|
|
|
+ fixedFlag: null,
|
|
|
filter: [fixedFlag.SPECIAL_COST, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
filter: [fixedFlag.SPECIAL_COST, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
pick: true
|
|
pick: true
|
|
|
},
|
|
},
|
|
|
//只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
//只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
|
'养护单位(业主)管理费': {
|
|
'养护单位(业主)管理费': {
|
|
|
- base: 'YHDWYZGLF', fixedFlag: null,
|
|
|
|
|
|
|
+ base: 'YHDWYZGLF',
|
|
|
|
|
+ fixedFlag: null,
|
|
|
filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
pick: true
|
|
pick: true
|
|
|
},
|
|
},
|
|
|
//只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
//只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
|
'信息化费': {
|
|
'信息化费': {
|
|
|
- base: 'XXHF', fixedFlag: null,
|
|
|
|
|
|
|
+ base: 'XXHF',
|
|
|
|
|
+ fixedFlag: null,
|
|
|
filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
pick: true
|
|
pick: true
|
|
|
},
|
|
},
|
|
|
//只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
//只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
|
'路线工程监理费': {
|
|
'路线工程监理费': {
|
|
|
- base: 'LXGCJLF', fixedFlag: null,
|
|
|
|
|
|
|
+ base: 'LXGCJLF',
|
|
|
|
|
+ fixedFlag: null,
|
|
|
filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
pick: true
|
|
pick: true
|
|
|
},
|
|
},
|
|
|
//只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
//只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
|
'独立桥梁隧道工程监理费': {
|
|
'独立桥梁隧道工程监理费': {
|
|
|
- base: 'QLSDGCJLF', fixedFlag: null,
|
|
|
|
|
|
|
+ base: 'QLSDGCJLF',
|
|
|
|
|
+ fixedFlag: null,
|
|
|
filter: [ fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
filter: [ fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
pick: true
|
|
pick: true
|
|
|
},
|
|
},
|
|
|
//只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
//只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
|
'设计文件审查费': {
|
|
'设计文件审查费': {
|
|
|
- base: 'SJWJSCF', fixedFlag: null,
|
|
|
|
|
|
|
+ base: 'SJWJSCF',
|
|
|
|
|
+ fixedFlag: null,
|
|
|
filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
pick: true
|
|
pick: true
|
|
|
},
|
|
},
|
|
|
//只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
//只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
|
'路线勘察设计费': {
|
|
'路线勘察设计费': {
|
|
|
- base: 'LXKCSJF', fixedFlag: null,
|
|
|
|
|
|
|
+ base: 'LXKCSJF',
|
|
|
|
|
+ fixedFlag: null,
|
|
|
filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
pick: true
|
|
pick: true
|
|
|
},
|
|
},
|
|
|
//只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
//只允许固定类别是“专项费用”、“土地使用及拆迁补偿费“、“养护工程其他费”下的清单使用
|
|
|
'独立桥梁隧道维修加固勘察设计费': {
|
|
'独立桥梁隧道维修加固勘察设计费': {
|
|
|
- base: 'QLSDKCSJF', fixedFlag: null,
|
|
|
|
|
|
|
+ base: 'QLSDKCSJF',
|
|
|
|
|
+ fixedFlag: null,
|
|
|
filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
pick: true
|
|
pick: true
|
|
|
},
|
|
},
|
|
|
'招标代理及标底(最高投标限价)编制费': {
|
|
'招标代理及标底(最高投标限价)编制费': {
|
|
|
- base: 'ZBDLJBDBZF', fixedFlag: null,
|
|
|
|
|
|
|
+ base: 'ZBDLJBDBZF',
|
|
|
|
|
+ fixedFlag: null,
|
|
|
filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
filter: [fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
pick: true
|
|
pick: true
|
|
|
},
|
|
},
|
|
|
//只允许固定类别是“价差预备费”的清单使用
|
|
//只允许固定类别是“价差预备费”的清单使用
|
|
|
'价差预备费': {
|
|
'价差预备费': {
|
|
|
- base: 'JCYBF', fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
|
|
|
|
+ base: 'JCYBF',
|
|
|
|
|
+ fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
filter: [fixedFlag.SPREAD_BUDGET_FEE],
|
|
filter: [fixedFlag.SPREAD_BUDGET_FEE],
|
|
|
pick: true
|
|
pick: true
|
|
|
}
|
|
}
|
|
@@ -829,12 +859,16 @@ let baseFigureMap = {
|
|
|
* */
|
|
* */
|
|
|
'boq': {
|
|
'boq': {
|
|
|
//仅允许用于固定类别是“第100章至700章清单”以外的清单
|
|
//仅允许用于固定类别是“第100章至700章清单”以外的清单
|
|
|
- '各章清单合计': {base: 'GZQDHJ', fixedFlag: fixedFlag.ONE_SEVEN_BILLS,
|
|
|
|
|
|
|
+ '各章清单合计': {
|
|
|
|
|
+ base: 'GZQDHJ',
|
|
|
|
|
+ fixedFlag: fixedFlag.ONE_SEVEN_BILLS,
|
|
|
filter: [fixedFlag.ONE_SEVEN_BILLS],
|
|
filter: [fixedFlag.ONE_SEVEN_BILLS],
|
|
|
pick: false
|
|
pick: false
|
|
|
},
|
|
},
|
|
|
//仅允许用于固定类别是“第100章至700章清单”以外的清单
|
|
//仅允许用于固定类别是“第100章至700章清单”以外的清单
|
|
|
- '专项暂定合计': {base: 'ZXZDHJ', fixedFlag: null,
|
|
|
|
|
|
|
+ '专项暂定合计': {
|
|
|
|
|
+ base: 'ZXZDHJ',
|
|
|
|
|
+ fixedFlag: null,
|
|
|
filter: [fixedFlag.ONE_SEVEN_BILLS],
|
|
filter: [fixedFlag.ONE_SEVEN_BILLS],
|
|
|
pick: false
|
|
pick: false
|
|
|
},
|
|
},
|
|
@@ -843,7 +877,9 @@ let baseFigureMap = {
|
|
|
* 因此{100章以外合计}不设置关联的清单固定行
|
|
* 因此{100章以外合计}不设置关联的清单固定行
|
|
|
* */
|
|
* */
|
|
|
//仅允许用于固定类别为“100章清单”引用
|
|
//仅允许用于固定类别为“100章清单”引用
|
|
|
- '100章以外清单合计': {base: 'YBZYHQDHJ', fixedFlag: null,
|
|
|
|
|
|
|
+ '100章以外清单合计': {
|
|
|
|
|
+ base: 'YBZYHQDHJ',
|
|
|
|
|
+ fixedFlag: null,
|
|
|
filter: [fixedFlag.ONE_HUNDRED_BILLS],
|
|
filter: [fixedFlag.ONE_HUNDRED_BILLS],
|
|
|
pick: true
|
|
pick: true
|
|
|
},
|
|
},
|