|
@@ -1813,39 +1813,49 @@ class CalcProgram {
|
|
|
};
|
|
|
}
|
|
|
else if ((commonCalcType == 1) || (commonCalcType == 3)){
|
|
|
- let sum_rtf = 0, sum_rttf = 0;
|
|
|
- for (let node of nodes) {
|
|
|
- let ruf = 0, rtuf = 0, rtf = 0, rttf = 0;
|
|
|
- if (node.data.feesIndex && node.data.feesIndex[ft.type]) {
|
|
|
- ruf = parseFloatPlus(node.data.feesIndex[ft.type].unitFee).toDecimal(decimalObj.bills.unitPrice);
|
|
|
- rtuf = parseFloatPlus(node.data.feesIndex[ft.type].tenderUnitFee).toDecimal(decimalObj.bills.unitPrice);
|
|
|
- rtf = parseFloatPlus(node.data.feesIndex[ft.type].totalFee).toDecimal(decimalObj.bills.totalPrice);
|
|
|
- rttf = parseFloatPlus(node.data.feesIndex[ft.type].tenderTotalFee).toDecimal(decimalObj.bills.totalPrice);
|
|
|
- };
|
|
|
- // 取费方式为子目含量,清单行/列的XX单价应 =ROUND( ∑ROUND(定额XX单价*含量,清单单价精度),清单单价精度)
|
|
|
- if (me.project.property.billsCalcMode === leafBillGetFeeType.rationContent) {
|
|
|
- buf = (buf + (ruf * parseFloatPlus(node.data.contain)).toDecimal(decimalObj.bills.unitPrice)).toDecimal(decimalObj.process);
|
|
|
- node.data.tenderContaion = (node.data.tenderQuantity / bq).toDecimal(decimalObj.process);
|
|
|
- btuf = (btuf + (rtuf * parseFloatPlus(node.data.tenderContaion)).toDecimal(decimalObj.bills.unitPrice)).toDecimal(decimalObj.process);
|
|
|
+ if (treeNode.data.lockUnitPrice == true){ // 清单单价锁定
|
|
|
+ if (treeNode.data.feesIndex && treeNode.data.feesIndex[ft.type]) {
|
|
|
+ buf = parseFloatPlus(treeNode.data.feesIndex[ft.type].unitFee).toDecimal(decimalObj.bills.unitPrice);
|
|
|
+ btuf = parseFloatPlus(treeNode.data.feesIndex[ft.type].tenderUnitFee).toDecimal(decimalObj.bills.unitPrice);
|
|
|
+ btf = (bq * buf).toDecimal(decimalObj.bills.totalPrice);
|
|
|
+ bttf = (btq * btuf).toDecimal(decimalObj.bills.totalPrice);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ let sum_rtf = 0, sum_rttf = 0;
|
|
|
+ for (let node of nodes) {
|
|
|
+ let ruf = 0, rtuf = 0, rtf = 0, rttf = 0;
|
|
|
+ if (node.data.feesIndex && node.data.feesIndex[ft.type]) {
|
|
|
+ ruf = parseFloatPlus(node.data.feesIndex[ft.type].unitFee).toDecimal(decimalObj.bills.unitPrice);
|
|
|
+ rtuf = parseFloatPlus(node.data.feesIndex[ft.type].tenderUnitFee).toDecimal(decimalObj.bills.unitPrice);
|
|
|
+ rtf = parseFloatPlus(node.data.feesIndex[ft.type].totalFee).toDecimal(decimalObj.bills.totalPrice);
|
|
|
+ rttf = parseFloatPlus(node.data.feesIndex[ft.type].tenderTotalFee).toDecimal(decimalObj.bills.totalPrice);
|
|
|
+ };
|
|
|
+ // 取费方式为子目含量,清单行/列的XX单价应 =ROUND( ∑ROUND(定额XX单价*含量,清单单价精度),清单单价精度)
|
|
|
+ if (me.project.property.billsCalcMode === leafBillGetFeeType.rationContent) {
|
|
|
+ buf = (buf + (ruf * parseFloatPlus(node.data.contain)).toDecimal(decimalObj.bills.unitPrice)).toDecimal(decimalObj.process);
|
|
|
+ node.data.tenderContaion = (node.data.tenderQuantity / bq).toDecimal(decimalObj.process);
|
|
|
+ btuf = (btuf + (rtuf * parseFloatPlus(node.data.tenderContaion)).toDecimal(decimalObj.bills.unitPrice)).toDecimal(decimalObj.process);
|
|
|
+ };
|
|
|
+ sum_rtf = (sum_rtf + rtf).toDecimal(decimalObj.process);
|
|
|
+ sum_rttf = (sum_rttf + rttf).toDecimal(decimalObj.process);
|
|
|
};
|
|
|
- sum_rtf = (sum_rtf + rtf).toDecimal(decimalObj.process);
|
|
|
- sum_rttf = (sum_rttf + rttf).toDecimal(decimalObj.process);
|
|
|
- };
|
|
|
|
|
|
- if (me.project.property.billsCalcMode == leafBillGetFeeType.rationPriceConverse ||
|
|
|
- me.project.property.billsCalcMode == leafBillGetFeeType.rationPrice) {
|
|
|
- buf = (sum_rtf / bq).toDecimal(decimalObj.process);
|
|
|
- btuf = (sum_rttf / btq).toDecimal(decimalObj.process);
|
|
|
- };
|
|
|
- if (isBaseFeeType(ft.type) ||
|
|
|
- (me.project.property.billsCalcMode === leafBillGetFeeType.rationPrice && ft.type == "common")){
|
|
|
- btf = sum_rtf;
|
|
|
- bttf = sum_rttf;
|
|
|
+ if (me.project.property.billsCalcMode == leafBillGetFeeType.rationPriceConverse ||
|
|
|
+ me.project.property.billsCalcMode == leafBillGetFeeType.rationPrice) {
|
|
|
+ buf = (sum_rtf / bq).toDecimal(decimalObj.process);
|
|
|
+ btuf = (sum_rttf / btq).toDecimal(decimalObj.process);
|
|
|
+ };
|
|
|
+ if (isBaseFeeType(ft.type) ||
|
|
|
+ (me.project.property.billsCalcMode === leafBillGetFeeType.rationPrice && ft.type == "common")){
|
|
|
+ btf = sum_rtf;
|
|
|
+ bttf = sum_rttf;
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ btf = (buf.toDecimal(decimalObj.bills.unitPrice) * bq).toDecimal(decimalObj.process);
|
|
|
+ bttf = (btuf.toDecimal(decimalObj.bills.unitPrice) * btq).toDecimal(decimalObj.process);
|
|
|
+ };
|
|
|
}
|
|
|
- else{
|
|
|
- btf = (buf.toDecimal(decimalObj.bills.unitPrice) * bq).toDecimal(decimalObj.process);
|
|
|
- bttf = (btuf.toDecimal(decimalObj.bills.unitPrice) * btq).toDecimal(decimalObj.process);
|
|
|
- };
|
|
|
};
|
|
|
|
|
|
ftObj.totalFee = btf.toDecimal(decimalObj.bills.totalPrice);
|