|
|
@@ -173,11 +173,11 @@ let cbTools = {
|
|
|
}
|
|
|
for(let baseName in baseFigures) {
|
|
|
let calcBase = baseFigures[baseName],
|
|
|
- filter = calcBase.filter,
|
|
|
+ filter = calcBase.filter || Object.values(fixedFlag), // filter为空则全部部分都可用该基数
|
|
|
pick = calcBase.pick; //挑选或过滤
|
|
|
- if (!filter) {
|
|
|
+ /* if (!filter) {
|
|
|
continue;
|
|
|
- }
|
|
|
+ } */
|
|
|
//pick为true,则filter中的清单固定行可使用此基数(及其子清单固定行),
|
|
|
//pick为false除去filter中的清单固定行(及其子清单固定行),其他可使用此基数(包括新增的大项费用)
|
|
|
let allFilter = []; //filter及其子项
|
|
|
@@ -405,6 +405,19 @@ let cbTools = {
|
|
|
? bills.feesIndex[feeField][subFeeField]
|
|
|
: 0;
|
|
|
},
|
|
|
+ getFee: function (bills, feeField, subFeeField) {
|
|
|
+ if (this.isUnDef(bills)) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ if (this.isUnDef(bills.feesIndex) || _.isEmpty(bills.feesIndex)) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ return this.isDef(bills.feesIndex[feeField]) &&
|
|
|
+ this.isDef(bills.feesIndex[feeField][subFeeField]) &&
|
|
|
+ !isNaN(bills.feesIndex[feeField][subFeeField])
|
|
|
+ ? bills.feesIndex[feeField][subFeeField]
|
|
|
+ : 0;
|
|
|
+ },
|
|
|
//获取扣除固定项后的金额,扣除其节点后重新汇总
|
|
|
//@param {Number}fixedFlag(基数取值固定行类别) {Array}deductFlags(扣除的固定类别组) {String}fullFeeField(完整的取费字段: 'rationCommon.totalFee')
|
|
|
//@return {Number}
|
|
|
@@ -710,6 +723,17 @@ let baseFigureTemplate = {
|
|
|
//计算金额
|
|
|
let fullFeeField = tender ? 'common.tenderTotalFee' : 'common.totalFee';
|
|
|
return projectObj.project.calcProgram.getTotalFee([oneToSeven], deductNodes, fullFeeField).toDecimal(decimalObj.bills.totalPrice);
|
|
|
+ },
|
|
|
+ // {定额建安费(不含定额设备购置费)} 汇总各大项费用清单的“定额建安费”
|
|
|
+ 'DEJAFBHDESBGZF': function (tender) {
|
|
|
+ const feeField = 'rationCommon';
|
|
|
+ const subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
|
|
|
+ const roots = projectObj.project.mainTree.roots;
|
|
|
+ const summaryFee = roots.reduce((total, node) => {
|
|
|
+ const fee = cbTools.getFee(node.data, feeField, subFeeField);
|
|
|
+ return total += fee;
|
|
|
+ }, 0);
|
|
|
+ return summaryFee.toDecimal(decimalObj.bills.totalPrice);
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
@@ -883,6 +907,13 @@ let baseFigureMap = {
|
|
|
filter: [fixedFlag.ONE_HUNDRED_BILLS],
|
|
|
pick: true
|
|
|
},
|
|
|
+ // 各部分都能用
|
|
|
+ '定额建安费(不含定额设备购置费)': {
|
|
|
+ base: 'DEJAFBHDESBGZF',
|
|
|
+ fixedFlag: null,
|
|
|
+ filter: null,
|
|
|
+ pick: true
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
|