|
@@ -382,12 +382,12 @@ let executeObj = {
|
|
|
};
|
|
|
return result;
|
|
|
};
|
|
|
- // 量价。没有具体的工料机类型,但仍然要用定额的计算程序,所以要给计算基数直接指定。
|
|
|
- function volumePriceFee() {
|
|
|
+ // 量价、工料机形式的定额, 要把自己的市场单价用于计算程序中的基数。
|
|
|
+ function marketPriceToBase() {
|
|
|
let result = 0;
|
|
|
if (
|
|
|
( me.treeNode.data.subType === gljType.LABOUR && base.dispName === '定额基价人工费') ||
|
|
|
- ( me.treeNode.data.subType === gljType.GENERAL_MATERIAL && base.dispName === '定额基价材料费') ||
|
|
|
+ ( materialTypes.includes(me.treeNode.data.subType) && base.dispName === '定额基价材料费') ||
|
|
|
( 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 === '设备费')
|
|
@@ -397,7 +397,7 @@ let executeObj = {
|
|
|
};
|
|
|
|
|
|
if (me.treeNode.data.type == rationType.volumePrice || me.treeNode.data.type == rationType.gljRation){
|
|
|
- rst = volumePriceFee();
|
|
|
+ rst = marketPriceToBase();
|
|
|
}
|
|
|
else{
|
|
|
if (isSubset(base.gljTypes, [gljType.MACHINE_LABOUR]))
|
|
@@ -1088,10 +1088,7 @@ class CalcProgram {
|
|
|
|
|
|
for (let idx of template.compiledSeq) {
|
|
|
let calcItem = template.calcItems[idx];
|
|
|
-
|
|
|
- let feeRate = calcItem.feeRate;
|
|
|
- if (!feeRate) feeRate = 100; // 100%
|
|
|
- feeRate = parseFloatPlus(feeRate).toDecimal(decimalObj.feeRate);
|
|
|
+ let feeRate = parseFloatPlus(calcItem.feeRate) ? parseFloatPlus(calcItem.feeRate).toDecimal(decimalObj.feeRate) : 100; // 100%
|
|
|
calcItem.unitFee = (eval(calcItem.compiledExpr) * feeRate * 0.01).toDecimal(decimalObj.decimal('unitPrice', treeNode)); // 如果eval()对清单树有影响,就换成小麦的Expression对象再试
|
|
|
|
|
|
let q = treeNodeTools.uiQuantity(treeNode) ? treeNodeTools.uiQuantity(treeNode) : 0;
|