|
@@ -88,13 +88,14 @@ class revisePriceCalc {
|
|
|
const result = { ibData: [] };
|
|
|
const helper = this.ctx.helper;
|
|
|
const decimal = this.ctx.tender.info.decimal;
|
|
|
+ const calcType = this.ctx.tender.info.calc_type;
|
|
|
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;
|
|
|
- node.contract_pc_tp = helper.sub(helper.mul(node.pre_contract_qty, node.unit_price, decimal.tp), node.pre_contract_tp);
|
|
|
+ node.contract_pc_tp = calcType === 'up' ? helper.sub(helper.mul(node.pre_contract_qty, node.unit_price, decimal.tp), node.pre_contract_tp) : 0;
|
|
|
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);
|
|
@@ -150,12 +151,13 @@ class revisePriceCalc {
|
|
|
const helper = this.ctx.helper;
|
|
|
const decimal = this.ctx.tender.info.decimal;
|
|
|
const said = this.ctx.session.sessionUser.accountId;
|
|
|
+ const calcType = this.ctx.tender.info.calc_type;
|
|
|
billsTree.calculateAll(node => {
|
|
|
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 && (node.cur_contract_qty || node.cur_qc_qty || node.cur_ex_stage_qty1)) {
|
|
|
- const cur_contract_tp = helper.mul(node.cur_contract_qty, node.unit_price, decimal.tp);
|
|
|
+ const cur_contract_tp = calcType === 'up' ? helper.mul(node.cur_contract_qty, node.unit_price, decimal.tp) : node.cur_contract_tp;
|
|
|
const cur_qc_tp = helper.mul(node.cur_qc_qty, node.unit_price, decimal.tp);
|
|
|
const cur_positive_qc_tp = helper.mul(node.cur_positive_qc_qty, node.unit_price, decimal.tp);
|
|
|
const cur_negative_qc_tp = helper.mul(node.cur_negative_qc_qty, node.unit_price, decimal.tp);
|
|
@@ -175,7 +177,7 @@ class revisePriceCalc {
|
|
|
}
|
|
|
}
|
|
|
if (node.pre_id && (node.pre_contract_qty || node.pre_qc_qty)) {
|
|
|
- const contract_pc_tp = helper.sub(helper.mul(node.pre_contract_qty, node.unit_price, decimal.tp), node.pre_contract_tp);
|
|
|
+ const contract_pc_tp = calcType === 'up' ? helper.sub(helper.mul(node.pre_contract_qty, node.unit_price, decimal.tp), node.pre_contract_tp) : 0;
|
|
|
const qc_pc_tp = helper.sub(helper.mul(node.pre_qc_qty, node.unit_price, decimal.tp), node.pre_qc_tp);
|
|
|
const pc_tp = helper.add(contract_pc_tp, qc_pc_tp);
|
|
|
const positive_qc_pc_tp = helper.sub(helper.mul(node.pre_positive_qc_qty, node.unit_price, decimal.tp), node.pre_positive_qc_tp);
|
|
@@ -379,10 +381,11 @@ class revisePriceCalc {
|
|
|
const helper = this.ctx.helper;
|
|
|
const decimal = this.ctx.tender.info.decimal;
|
|
|
const said = this.ctx.session.sessionUser.accountId;
|
|
|
+ const calcType = this.ctx.tender.info.calc_type;
|
|
|
billsTree.calculateAll(node => {
|
|
|
if (node.children && node.children.length > 0) return;
|
|
|
if (node.cur_id && (node.cur_contract_qty || node.cur_qc_qty || node.cur_ex_stage_qty1)) {
|
|
|
- const cur_contract_tp = helper.mul(node.cur_contract_qty, node.unit_price, decimal.tp);
|
|
|
+ const cur_contract_tp = calcType === 'up' ? helper.mul(node.cur_contract_qty, node.unit_price, decimal.tp) : node.cur_contract_tp;
|
|
|
const cur_qc_tp = helper.mul(node.cur_qc_qty, node.unit_price, decimal.tp);
|
|
|
const cur_positive_qc_tp = helper.mul(node.cur_positive_qc_qty, node.unit_price, decimal.tp);
|
|
|
const cur_negative_qc_tp = helper.mul(node.cur_negative_qc_qty, node.unit_price, decimal.tp);
|
|
@@ -416,7 +419,7 @@ class revisePriceCalc {
|
|
|
const priceDiff = helper.sub(node.unit_price, node.pre_unit_price);
|
|
|
if (!priceDiff) return;
|
|
|
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.contract_pc_tp = calcType === 'up' ? helper.sub(helper.mul(node.pre_contract_qty, node.unit_price, decimal.tp), node.pre_contract_tp) : 0;
|
|
|
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);
|
|
@@ -464,10 +467,11 @@ class revisePriceCalc {
|
|
|
const helper = this.ctx.helper;
|
|
|
const decimal = this.ctx.tender.info.decimal;
|
|
|
const said = this.ctx.session.sessionUser.accountId;
|
|
|
+ const calcType = this.ctx.tender.info.calc_type;
|
|
|
billsTree.calculateAll(node => {
|
|
|
if (node.children && node.children.length > 0) return;
|
|
|
if (node.cur_id && (node.cur_contract_qty || node.cur_qc_qty)) {
|
|
|
- const cur_contract_tp = helper.mul(node.cur_contract_qty, node.unit_price, decimal.tp);
|
|
|
+ const cur_contract_tp = calcType === 'up' ? helper.mul(node.cur_contract_qty, node.unit_price, decimal.tp) : node.cur_contract_tp;
|
|
|
const cur_qc_tp = helper.mul(node.cur_qc_qty, node.unit_price, decimal.tp);
|
|
|
const cur_positive_qc_tp = helper.mul(node.cur_positive_qc_qty, node.unit_price, decimal.tp);
|
|
|
const cur_negative_qc_tp = helper.mul(node.cur_negative_qc_qty, node.unit_price, decimal.tp);
|