瀏覽代碼

补差计算调整

MaiXinRong 3 周之前
父節點
當前提交
6c0d2c5eb6
共有 1 個文件被更改,包括 10 次插入6 次删除
  1. 10 6
      app/lib/revise_price.js

+ 10 - 6
app/lib/revise_price.js

@@ -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);