|
@@ -1,9 +1,6 @@
|
|
/**
|
|
/**
|
|
* Created by CSL on 2017-07-19.
|
|
* Created by CSL on 2017-07-19.
|
|
* 计算程序。所有定额、清单、父清单的计算都从此入。
|
|
* 计算程序。所有定额、清单、父清单的计算都从此入。
|
|
- * dispExpr: F8*(L-1); expression: "@('8') * (L-1)";
|
|
|
|
- * 说明:F后跟行号,L替换人工系数值,@后跟ID。用到L的规则必须有labourCoeID属性(反过来不要求),
|
|
|
|
- * 用到费率的规则必须有feeRateID属性,当有该属性时,会自动显示费率值。
|
|
|
|
*/
|
|
*/
|
|
|
|
|
|
/* 新版GLD 取消了默认清单模板,所以这里废弃。先留着,预防不时之需。
|
|
/* 新版GLD 取消了默认清单模板,所以这里废弃。先留着,预防不时之需。
|
|
@@ -795,7 +792,7 @@ class CalcProgram {
|
|
};
|
|
};
|
|
|
|
|
|
// 计算暂估费用
|
|
// 计算暂估费用
|
|
- function estimateFee(treeNode){
|
|
|
|
|
|
+ function calcEstimateFee(treeNode){
|
|
let sumU = 0, sumT = 0;
|
|
let sumU = 0, sumT = 0;
|
|
|
|
|
|
if (treeNodeTools.isTotalCostBill(treeNode)){
|
|
if (treeNodeTools.isTotalCostBill(treeNode)){
|
|
@@ -876,12 +873,13 @@ class CalcProgram {
|
|
treeNodeTools.checkFeeField(treeNode, {'fieldName': 'estimate', 'unitFee': sumU, 'totalFee': sumT});
|
|
treeNodeTools.checkFeeField(treeNode, {'fieldName': 'estimate', 'unitFee': sumU, 'totalFee': sumT});
|
|
};
|
|
};
|
|
|
|
|
|
- // 删掉多余的费用。例如:从其它计算方式切换到公式计算方式,会多出其它的费(不光是common、estimate)
|
|
|
|
|
|
+ // 删掉多余的费用。例如:从其它计算方式切换到公式计算方式,会多出其它的费(不光是common)
|
|
function deleteUselessFees(treeNode){
|
|
function deleteUselessFees(treeNode){
|
|
|
|
+ let reserveArr = treeNodeTools.isTotalCostBill(treeNode)? ['common', 'estimate']:['common'];
|
|
if (treeNode.data.fees && treeNode.data.fees.length > 0){
|
|
if (treeNode.data.fees && treeNode.data.fees.length > 0){
|
|
let feesArr = treeNode.data.fees;
|
|
let feesArr = treeNode.data.fees;
|
|
for (let i = 0; i < feesArr.length; i++) {
|
|
for (let i = 0; i < feesArr.length; i++) {
|
|
- if (feesArr[i].fieldName != 'common' && feesArr[i].fieldName != 'estimate') {
|
|
|
|
|
|
+ if (!reserveArr.includes(feesArr[i].fieldName)) {
|
|
delete treeNode.data.feesIndex[feesArr[i].fieldName];
|
|
delete treeNode.data.feesIndex[feesArr[i].fieldName];
|
|
feesArr.splice(i, 1);
|
|
feesArr.splice(i, 1);
|
|
treeNode.changed = true;
|
|
treeNode.changed = true;
|
|
@@ -997,9 +995,10 @@ class CalcProgram {
|
|
deleteUselessFees(treeNode);
|
|
deleteUselessFees(treeNode);
|
|
treeNodeTools.checkFeeField(treeNode, {'fieldName': 'common', 'unitFee': uf, 'totalFee': tf});
|
|
treeNodeTools.checkFeeField(treeNode, {'fieldName': 'common', 'unitFee': uf, 'totalFee': tf});
|
|
|
|
|
|
- // 如果是总造价清单,还要做单项工程、建设项目金额汇总
|
|
|
|
|
|
+ // 总造价清单还要做单项工程、建设项目的四大项金额汇总
|
|
if (treeNodeTools.isTotalCostBill(treeNode)){
|
|
if (treeNodeTools.isTotalCostBill(treeNode)){
|
|
- estimateFee(treeNode);
|
|
|
|
|
|
+ // 公式叶子清单没有暂估费,但总造价清单除外。
|
|
|
|
+ calcEstimateFee(treeNode);
|
|
treeNodeTools.initSummaryFee(treeNode);
|
|
treeNodeTools.initSummaryFee(treeNode);
|
|
treeNode.data.summaryFees.totalFee = tf;
|
|
treeNode.data.summaryFees.totalFee = tf;
|
|
treeNode.data.summaryFees.estimateFee = treeNode.data.feesIndex.estimate.totalFee;
|
|
treeNode.data.summaryFees.estimateFee = treeNode.data.feesIndex.estimate.totalFee;
|
|
@@ -1026,7 +1025,7 @@ class CalcProgram {
|
|
else{
|
|
else{
|
|
treeNode.data.gljList = me.project.ration_glj.getGljArrByRation(treeNode.data.ID);
|
|
treeNode.data.gljList = me.project.ration_glj.getGljArrByRation(treeNode.data.ID);
|
|
// 计算程序里没有暂估费的计算规则,会漏掉,所以这里要专门算。
|
|
// 计算程序里没有暂估费的计算规则,会漏掉,所以这里要专门算。
|
|
- estimateFee(treeNode);
|
|
|
|
|
|
+ calcEstimateFee(treeNode);
|
|
};
|
|
};
|
|
|
|
|
|
if (treeNode.data.programID == undefined){
|
|
if (treeNode.data.programID == undefined){
|
|
@@ -1042,7 +1041,7 @@ class CalcProgram {
|
|
}
|
|
}
|
|
|
|
|
|
// 叶子清单自己的计算程序计算,其暂估费也要汇总算。
|
|
// 叶子清单自己的计算程序计算,其暂估费也要汇总算。
|
|
- estimateFee(treeNode);
|
|
|
|
|
|
+ calcEstimateFee(treeNode);
|
|
};
|
|
};
|
|
|
|
|
|
let template = me.compiledTemplates[treeNode.data.programID];
|
|
let template = me.compiledTemplates[treeNode.data.programID];
|