|
@@ -57,6 +57,7 @@ class revisePriceCalc {
|
|
|
const decimal = this.ctx.tender.info.decimal;
|
|
|
billsTree.calculateAll(node => {
|
|
|
if (!node.pre_id) return;
|
|
|
+ if (!node.pre_contract_qty && !node.pre_qc_qty) return;
|
|
|
if (node.children && node.children.length > 0) return;
|
|
|
const priceDiff = helper.sub(node.unit_price, node.pre_unit_price);
|
|
|
if (!priceDiff) return;
|
|
@@ -119,7 +120,7 @@ class revisePriceCalc {
|
|
|
if (node.children && node.children.length > 0) return;
|
|
|
const priceDiff = helper.sub(node.unit_price, node.pre_unit_price);
|
|
|
if (!priceDiff) return;
|
|
|
- if (node.cur_id) {
|
|
|
+ if (node.cur_id && (node.cur_contract_qty || node.cur_qc_qty)) {
|
|
|
node.cur_contract_tp = helper.mul(node.cur_contract_qty, node.unit_price, decimal.tp);
|
|
|
node.cur_qc_tp = helper.mul(node.cur_qc_qty, node.unit_price, decimal.tp);
|
|
|
node.cur_positive_qc_tp = helper.mul(node.cur_positive_qc_qty, node.unit_price, decimal.tp);
|
|
@@ -135,7 +136,7 @@ class revisePriceCalc {
|
|
|
postil: node.postil,
|
|
|
});
|
|
|
}
|
|
|
- if (node.pre_id) {
|
|
|
+ if (node.pre_id && (node.pre_contract_qty || node.pre_qc_qty)) {
|
|
|
node.contract_pc_tp = helper.sub(helper.mul(node.pre_contract_qty, node.unit_price, decimal.tp), node.pre_contract_tp);
|
|
|
node.qc_pc_tp = helper.sub(helper.mul(node.pre_qc_qty, node.unit_price, decimal.tp), node.pre_qc_tp);
|
|
|
node.pc_tp = helper.add(node.contract_pc_tp, node.qc_pc_tp);
|
|
@@ -237,12 +238,7 @@ class revisePriceCalc {
|
|
|
if (node.children && node.children.length > 0) return;
|
|
|
const priceDiff = helper.sub(node.unit_price, node.pre_unit_price);
|
|
|
if (!priceDiff) return;
|
|
|
- node.contract_pc_tp = helper.sub(helper.mul(node.pre_contract_qty, node.unit_price, decimal.tp), node.pre_contract_tp);
|
|
|
- node.qc_pc_tp = helper.sub(helper.mul(node.pre_qc_qty, node.unit_price, decimal.tp), node.pre_qc_tp);
|
|
|
- node.pc_tp = helper.add(node.contract_pc_tp, node.qc_pc_tp);
|
|
|
- node.positive_qc_pc_tp = helper.sub(helper.mul(node.pre_positive_qc_qty, node.unit_price, decimal.tp), node.pre_positive_qc_tp);
|
|
|
- node.negative_qc_pc_tp = helper.sub(helper.mul(node.pre_negative_qc_qty, node.unit_price, decimal.tp), node.pre_negative_qc_tp);
|
|
|
- if (node.cur_id) {
|
|
|
+ if (node.cur_id && (node.cur_contract_qty || node.cur_qc_qty)) {
|
|
|
node.cur_contract_tp = helper.mul(node.cur_contract_qty, node.unit_price, decimal.tp);
|
|
|
node.cur_qc_tp = helper.mul(node.cur_qc_qty, node.unit_price, decimal.tp);
|
|
|
node.cur_positive_qc_tp = helper.mul(node.cur_positive_qc_qty, node.unit_price, decimal.tp);
|
|
@@ -265,7 +261,12 @@ class revisePriceCalc {
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
- if (node.pre_id) {
|
|
|
+ if (node.pre_id && (node.pre_contract_qty || node.pre_qc_qty)) {
|
|
|
+ node.contract_pc_tp = helper.sub(helper.mul(node.pre_contract_qty, node.unit_price, decimal.tp), node.pre_contract_tp);
|
|
|
+ node.qc_pc_tp = helper.sub(helper.mul(node.pre_qc_qty, node.unit_price, decimal.tp), node.pre_qc_tp);
|
|
|
+ node.pc_tp = helper.add(node.contract_pc_tp, node.qc_pc_tp);
|
|
|
+ node.positive_qc_pc_tp = helper.sub(helper.mul(node.pre_positive_qc_qty, node.unit_price, decimal.tp), node.pre_positive_qc_tp);
|
|
|
+ node.negative_qc_pc_tp = helper.sub(helper.mul(node.pre_negative_qc_qty, node.unit_price, decimal.tp), node.pre_negative_qc_tp);
|
|
|
result.bpcData.push({
|
|
|
tid: stage.tid, sid: stage.id, sorder: stage.order, lid: node.id, org_price: node.pre_unit_price, unit_price: node.unit_price,
|
|
|
contract_pc_tp: node.contract_pc_tp, qc_pc_tp: node.qc_pc_tp, pc_tp: node.pc_tp,
|