|
@@ -364,9 +364,33 @@ let cbTools = {
|
|
|
}
|
|
|
return this.isDef(bills.feesIndex[feeField]) && this.isDef(bills.feesIndex[feeField][subFeeField]) ? bills.feesIndex[feeField][subFeeField] : 0;
|
|
|
},
|
|
|
+
|
|
|
+ // 获取固定清单下,相关取费类别费用
|
|
|
+ getFeeWithTypeByFlag: function (fixedFlag, programID, feeName, tender) {
|
|
|
+ const node = calcTools.getNodeByFlag(fixedFlag);
|
|
|
+ if (!node) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ const leafNodes = calcTools.getLeafBills(node);
|
|
|
+ let fee = 0;
|
|
|
+ const feeField = tender ? `${feeName}.tenderTotalFee` : `${feeName}.totalFee`;
|
|
|
+ leafNodes.forEach(node => {
|
|
|
+ (node.children || []).forEach(rationNode => {
|
|
|
+ if (rationNode.data.programID === programID) {
|
|
|
+ const rationFee = calcTools.getFee(rationNode, feeField);
|
|
|
+ fee = scMathUtil.roundForObj(fee + rationFee, decimalObj.process);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ return scMathUtil.roundForObj(fee, decimalObj.bills.totalPrice);
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
let baseFigureTemplate = {
|
|
|
+ 'FR': function () {
|
|
|
+ const feeRate = calcBase.curNode ? calcBase.curNode.data.feeRate : null;
|
|
|
+ return rate = !commonUtil.isEmptyVal(feeRate) && !isNaN(feeRate) ? +feeRate * 0.01 : 1;
|
|
|
+ },
|
|
|
'FBFXGCF': function (tender) {
|
|
|
let feeField = 'common',
|
|
|
subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
|
|
@@ -424,6 +448,24 @@ let baseFigureTemplate = {
|
|
|
}
|
|
|
return rst;
|
|
|
},
|
|
|
+ 'FBFXRGTSFDERGF': function (tender) {
|
|
|
+ const programID = projectObj.project.calcProgram.compiledTemplateMaps['人工土石方工程'];
|
|
|
+ return cbTools.getFeeWithTypeByFlag(fixedFlag.SUB_ENGINERRING, programID, 'labour', tender);
|
|
|
+ },
|
|
|
+ 'FBFXJXBPTSFDERGF': function (tender) {
|
|
|
+ const programID = projectObj.project.calcProgram.compiledTemplateMaps['机械(爆破)土石方工程'];
|
|
|
+ return cbTools.getFeeWithTypeByFlag(fixedFlag.SUB_ENGINERRING, programID, 'labour', tender);
|
|
|
+ },
|
|
|
+ 'FBFXJXBPTSFDEJXF': function (tender) {
|
|
|
+ const programID = projectObj.project.calcProgram.compiledTemplateMaps['机械(爆破)土石方工程'];
|
|
|
+ return cbTools.getFeeWithTypeByFlag(fixedFlag.SUB_ENGINERRING, programID, 'machine', tender);
|
|
|
+ },
|
|
|
+ 'FBFXDERGFTSFCW': function (tender) {
|
|
|
+ return (this['FBFXDEJJRGF'](tender) - this['FBFXRGTSFDERGF'](tender) - this['FBFXJXBPTSFDERGF'](tender)).toDecimal(decimalObj.bills.totalPrice);
|
|
|
+ },
|
|
|
+ 'FBFXDEJXFTSFCW': function (tender) {
|
|
|
+ return (this['FBFXDEJJJXF'](tender) - this['FBFXJXBPTSFDEJXF'](tender)).toDecimal(decimalObj.bills.totalPrice);
|
|
|
+ },
|
|
|
'FBFXDEJJZJGCF': function (tender) {
|
|
|
return (this['FBFXDEJJRGF'](tender) + this['FBFXDEJJCLF'](tender) + this['FBFXDEJJJXF'](tender)).toDecimal(decimalObj.bills.totalPrice);
|
|
|
},
|
|
@@ -511,8 +553,26 @@ let baseFigureTemplate = {
|
|
|
}
|
|
|
return rst;
|
|
|
},
|
|
|
+ JSCSXMRGTSFDERGF: function (tender) {
|
|
|
+ const programID = projectObj.project.calcProgram.compiledTemplateMaps['人工土石方工程'];
|
|
|
+ return cbTools.getFeeWithTypeByFlag(fixedFlag.CONSTRUCTION_TECH, programID, 'labour', tender);
|
|
|
+ },
|
|
|
+ JSCSXMJXBPTSFDERGF: function (tender) {
|
|
|
+ const programID = projectObj.project.calcProgram.compiledTemplateMaps['机械(爆破)土石方工程'];
|
|
|
+ return cbTools.getFeeWithTypeByFlag(fixedFlag.CONSTRUCTION_TECH, programID, 'labour', tender);
|
|
|
+ },
|
|
|
+ JSCSXMJXBPTSFDEJXF: function (tender) {
|
|
|
+ const programID = projectObj.project.calcProgram.compiledTemplateMaps['机械(爆破)土石方工程'];
|
|
|
+ return cbTools.getFeeWithTypeByFlag(fixedFlag.CONSTRUCTION_TECH, programID, 'machine', tender);
|
|
|
+ },
|
|
|
+ JSCSXMDERGFTSFCW: function (tender) {
|
|
|
+ return (this['JSCSXMDEJJRGF'](tender) - this['JSCSXMRGTSFDERGF'](tender) - this['JSCSXMJXBPTSFDERGF'](tender)).toDecimal(decimalObj.bills.totalPrice);
|
|
|
+ },
|
|
|
+ JSCSXMDEJXFTSFCW: function (tender) {
|
|
|
+ return (this['FBFXDEJJRGF'](tender) - this['JSCSXMRGTSFDERGF'](tender) - this['JSCSXMJXBPTSFDERGF'](tender)).toDecimal(decimalObj.bills.totalPrice);
|
|
|
+ },
|
|
|
'JSCSXMDEJJZJGCF': function (tender) {
|
|
|
- return (this['JSCSXMDEJJRGF'](tender) + this['JSCSXMDEJJCLF'](tender) + this['JSCSXMDEJJJXF'](tender)).toDecimal(decimalObj.bills.totalPrice);
|
|
|
+ return (this['JSCSXMDEJJJXF'](tender) + this['JSCSXMJXBPTSFDEJXF'](tender)).toDecimal(decimalObj.bills.totalPrice);
|
|
|
},
|
|
|
'QTXMF': function (tender) {
|
|
|
let feeField = 'common',
|
|
@@ -1590,6 +1650,7 @@ let cbCalctor = {
|
|
|
};
|
|
|
|
|
|
let calcBase = {
|
|
|
+ curNode: null,
|
|
|
errMsg: '表达式不正确',
|
|
|
success: false,
|
|
|
//清单固定行
|
|
@@ -1625,6 +1686,7 @@ let calcBase = {
|
|
|
$CBP = cbParser,
|
|
|
$CBC = cbCalctor;
|
|
|
try {
|
|
|
+ this.curNode = node;
|
|
|
me.success = false;
|
|
|
me.errMsg = '表达式不正确';
|
|
|
//分析输入式合法性
|