|
@@ -100,6 +100,56 @@ let defaultBillTemplate = {
|
|
|
]
|
|
|
};
|
|
|
|
|
|
+const baseCalcType = {baseCalc: 0, adjustCalc: 1, budgetCalc: 2, diffCalc: 3, offerCalc: 4};
|
|
|
+
|
|
|
+let rationCalcBase = [
|
|
|
+ {
|
|
|
+ 'dispName': '定额基价人工费',
|
|
|
+ 'calcType': baseCalcType.baseCalc,
|
|
|
+ 'gljTypes': [gljType.LABOUR]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ 'dispName': '定额基价材料费',
|
|
|
+ 'calcType': baseCalcType.baseCalc,
|
|
|
+ 'gljTypes': [gljType.GENERAL_MATERIAL, gljType.CONCRETE, gljType.MORTAR, gljType.MIX_RATIO, gljType.COMMERCIAL_CONCRETE, gljType.COMMERCIAL_MORTAR]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ 'dispName': '定额基价机械费',
|
|
|
+ 'calcType': baseCalcType.baseCalc,
|
|
|
+ 'gljTypes': [gljType.GENERAL_MACHINE]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ 'dispName': '定额基价机上人工费',
|
|
|
+ 'calcType': baseCalcType.baseCalc,
|
|
|
+ 'gljTypes': [gljType.MACHINE_LABOUR]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ 'dispName': '人工费价差',
|
|
|
+ 'calcType': baseCalcType.diffCalc,
|
|
|
+ 'gljTypes': [gljType.LABOUR]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ 'dispName': '材料费价差',
|
|
|
+ 'calcType': baseCalcType.diffCalc,
|
|
|
+ 'gljTypes': [gljType.GENERAL_MATERIAL, gljType.CONCRETE, gljType.MORTAR, gljType.MIX_RATIO, gljType.COMMERCIAL_CONCRETE, gljType.COMMERCIAL_MORTAR]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ 'dispName': '机械费价差',
|
|
|
+ 'calcType': baseCalcType.diffCalc,
|
|
|
+ 'gljTypes': [gljType.GENERAL_MACHINE]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ 'dispName': '主材费',
|
|
|
+ 'calcType': baseCalcType.budgetCalc,
|
|
|
+ 'gljTypes': [gljType.MAIN_MATERIAL]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ 'dispName': '设备费',
|
|
|
+ 'calcType': baseCalcType.budgetCalc,
|
|
|
+ 'gljTypes': [gljType.EQUIPMENT]
|
|
|
+ }
|
|
|
+];
|
|
|
+
|
|
|
let analyzer = {
|
|
|
calcTemplate: null,
|
|
|
success: true,
|
|
@@ -316,7 +366,7 @@ let executeObj = {
|
|
|
( me.treeNode.data.subType === gljType.GENERAL_MACHINE && base.dispName === '定额基价机械费') ||
|
|
|
( me.treeNode.data.subType === gljType.MAIN_MATERIAL && base.dispName === '主材费') ||
|
|
|
( me.treeNode.data.subType === gljType.EQUIPMENT && base.dispName === '设备费')
|
|
|
- ) result = me.treeNode.data.marketUnitFee;
|
|
|
+ ) result = me.treeNode.data.marketUnitFee ? me.treeNode.data.marketUnitFee : 0;
|
|
|
|
|
|
return result;
|
|
|
};
|
|
@@ -541,6 +591,13 @@ class CalcProgram {
|
|
|
};
|
|
|
};
|
|
|
|
|
|
+ isLeafBill(treeNode){
|
|
|
+ let me = this;
|
|
|
+ return treeNode.sourceType === me.project.Bills.getSourceType() &&
|
|
|
+ treeNode.source.children &&
|
|
|
+ treeNode.source.children.length === 0;
|
|
|
+ };
|
|
|
+
|
|
|
// 仅内部调用。注意:外部不能直接使用,因为这里传入的树节点必须有一定的初始化。
|
|
|
InnerCalc(treeNode){
|
|
|
let me = this;
|
|
@@ -676,7 +733,7 @@ class CalcProgram {
|
|
|
};
|
|
|
}
|
|
|
};
|
|
|
- }
|
|
|
+ };
|
|
|
|
|
|
// 计算本节点(默认同时递归计算所有父节点,可选)
|
|
|
calculate(treeNode, calcParents = true){
|
|
@@ -684,13 +741,12 @@ class CalcProgram {
|
|
|
|
|
|
let isRation = treeNode.sourceType === me.project.Ration.getSourceType();
|
|
|
let isBill = treeNode.sourceType === me.project.Bills.getSourceType();
|
|
|
- let isLeafBill = isBill && treeNode.source.children && treeNode.source.children.length === 0; // 是清单且其下没有子清单
|
|
|
- let isBillPriceCalc = me.project.projSetting.billsCalcMode === billsPrice;
|
|
|
+ let isBillPriceCalc = me.project.projSetting.billsCalcMode === leafBillGetFeeType.billsPrice;
|
|
|
|
|
|
if (isRation){
|
|
|
treeNode.calcType = treeNodeCalcType.ctRationCalcProgram;
|
|
|
}
|
|
|
- else if (isLeafBill) {
|
|
|
+ else if (me.isLeafBill(treeNode)) {
|
|
|
if (treeNode.children && treeNode.children.length > 0){
|
|
|
me.calcLeafBillChildren(treeNode);
|
|
|
|