Browse Source

正负变更补差,实时统计相关

MaiXinRong 2 years ago
parent
commit
fb6197cc62
2 changed files with 9 additions and 8 deletions
  1. 7 6
      app/lib/revise_price.js
  2. 2 2
      app/service/stage_bills_pc.js

+ 7 - 6
app/lib/revise_price.js

@@ -63,8 +63,8 @@ class revisePriceCalc {
             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.mul(priceDiff, node.pre_positive_qc_qty, decimal.tp);
-            node.negative_qc_pc_tp = helper.mul(priceDiff, node.pre_negative_qc_qty, decimal.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.ibData.push({
                 tid: newStage.tid, sid: newStage.id, sorder: newStage.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,
@@ -134,8 +134,8 @@ class revisePriceCalc {
                 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.mul(priceDiff, node.pre_positive_qc_qty, decimal.tp);
-                node.negative_qc_pc_tp = helper.mul(priceDiff, node.pre_negative_qc_qty, decimal.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,
@@ -234,8 +234,8 @@ class revisePriceCalc {
             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.mul(priceDiff, node.pre_positive_qc_qty, decimal.tp);
-            node.negative_qc_pc_tp = helper.mul(priceDiff, node.pre_negative_qc_qty, decimal.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) {
                 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);
@@ -280,6 +280,7 @@ class revisePriceCalc {
             negative_qc_pc_tp = helper.add(negative_qc_pc_tp, bpc.negative_qc_pc_tp);
         }
         console.log(positive_qc_pc_tp, negative_qc_pc_tp);
+        console.log(stage.id);
         await transaction.update(this.ctx.service.stage.tableName,
             { id: stage.id, contract_pc_tp, qc_pc_tp, pc_tp, positive_qc_pc_tp, negative_qc_pc_tp, check_calc: true, cache_time_l: new Date() });
     }

+ 2 - 2
app/service/stage_bills_pc.js

@@ -24,7 +24,7 @@ module.exports = app => {
         }
 
         async getSumTotalPrice(stage) {
-            const sql = 'SELECT Sum(`contract_pc_tp`) As `contract_pc_tp`, Sum(`qc_pc_tp`) As `qc_pc_tp`, Sum(`pc_tp`) As `pc_tp`' +
+            const sql = 'SELECT Sum(`contract_pc_tp`) As `contract_pc_tp`, Sum(`qc_pc_tp`) As `qc_pc_tp`, Sum(`pc_tp`) As `pc_tp`, Sum(`positive_qc_pc_tp`) As `positive_qc_pc_tp`, Sum(`negative_qc_pc_tp`) As `negative_qc_pc_tp`' +
                 '  FROM ' + this.tableName + ' Where sid = ?';
             const result = await this.db.queryOne(sql, [stage.id]);
             return result;
@@ -46,7 +46,7 @@ module.exports = app => {
         }
 
         async getEndStageData(stage) {
-            const sql = 'SELECT lid, SUM(contract_pc_tp) AS end_contract_pc_tp, SUM(qc_pc_tp) AS end_qc_pc_tp, SUM(pc_tp) AS end_pc_tp' +
+            const sql = 'SELECT lid, SUM(contract_pc_tp) AS end_contract_pc_tp, SUM(qc_pc_tp) AS end_qc_pc_tp, SUM(pc_tp) AS end_pc_tp, Sum(`positive_qc_pc_tp`) As `positive_qc_pc_tp`, Sum(`negative_qc_pc_tp`) As `negative_qc_pc_tp`' +
                 '  FROM ' + this.tableName + ' WHERE tid = ? and sorder <= ? GROUP BY lid';
             const result = await this.db.query(sql, [stage.tid, stage.order]);
             return result;