瀏覽代碼

计算正负变更补差相关

MaiXinRong 2 年之前
父節點
當前提交
f65f213f4c
共有 2 個文件被更改,包括 25 次插入21 次删除
  1. 21 21
      app/lib/revise_price.js
  2. 4 0
      sql/update.sql

+ 21 - 21
app/lib/revise_price.js

@@ -63,26 +63,26 @@ 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_pc_tp = helper.mul(priceDiff, node.pre_positive_qc_qty, decimal.tp);
-            node.negative_pc_tp = helper.mul(priceDiff, node.pre_negative_qc_qty, decimal.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);
             result.ibData.push({
                 tid: newStage.tid, sid: newStage.id, sorder: newStage.order, lid: node.id, org_price: node.pre_unit_price,
                 contract_pc_tp: node.contract_pc_tp, qc_pc_tp: node.qc_pc_tp, pc_tp: node.pc_tp,
-                positive_pc_tp: node.positive_pc_tp, negative_pc_tp: node.negative_pc_tp,
+                positive_qc_pc_tp: node.positive_qc_pc_tp, negative_qc_pc_tp: node.negative_qc_pc_tp,
             });
         });
         if (result.ibData.length > 0) await transaction.insert(this.ctx.service.stageBillsPc.tableName, result.ibData);
 
-        let contract_pc_tp = 0, qc_pc_tp = 0, pc_tp = 0, positive_pc_tp = 0, negative_pc_tp = 0;
+        let contract_pc_tp = 0, qc_pc_tp = 0, pc_tp = 0, positive_qc_pc_tp = 0, negative_qc_pc_tp = 0;
         for (const ibc of result.ibData) {
             contract_pc_tp = helper.add(contract_pc_tp, ibc.contract_pc_tp);
             qc_pc_tp = helper.add(qc_pc_tp, ibc.qc_pc_tp);
             pc_tp = helper.add(pc_tp, ibc.pc_tp);
-            positive_pc_tp = helper.add(positive_pc_tp, ibc.positive_pc_tp);
-            negative_pc_tp = helper.add(negative_pc_tp, ibc.negative_pc_tp);
+            positive_qc_pc_tp = helper.add(positive_qc_pc_tp, ibc.positive_qc_pc_tp);
+            negative_qc_pc_tp = helper.add(negative_qc_pc_tp, ibc.negative_qc_pc_tp);
         }
         await transaction.update(this.ctx.service.stage.tableName,
-            { id: newStage.id, contract_pc_tp, qc_pc_tp, pc_tp, positive_pc_tp, negative_pc_tp, check_calc: true, cache_time_l: new Date() });
+            { id: newStage.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() });
     }
 
     /**
@@ -132,12 +132,12 @@ 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_pc_tp = helper.mul(priceDiff, node.pre_positive_qc_qty, decimal.tp);
-                node.negative_pc_tp = helper.mul(priceDiff, node.pre_negative_qc_qty, decimal.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);
                 result.bpcData.push({
                     tid: stage.tid, sid: stage.id, sorder: stage.order, lid: node.id, org_price: node.pre_unit_price,
                     contract_pc_tp: node.contract_pc_tp, qc_pc_tp: node.qc_pc_tp, pc_tp: node.pc_tp,
-                    positive_pc_tp: node.positive_pc_tp, negative_pc_tp: node.negative_pc_tp,
+                    positive_qc_pc_tp: node.positive_qc_pc_tp, negative_qc_pc_tp: node.negative_qc_pc_tp,
                 });
             }
         });
@@ -145,16 +145,16 @@ class revisePriceCalc {
         await transaction.delete(this.ctx.service.stageBillsPc.tableName, { sid: stage.id });
         if (result.bpcData.length > 0) await transaction.insert(this.ctx.service.stageBillsPc.tableName, result.bpcData);
 
-        let contract_pc_tp = 0, qc_pc_tp = 0, pc_tp = 0, positive_pc_tp = 0, negative_pc_tp = 0;
+        let contract_pc_tp = 0, qc_pc_tp = 0, pc_tp = 0, positive_qc_pc_tp = 0, negative_qc_pc_tp = 0;
         for (const bpc of result.bpcData) {
             contract_pc_tp = helper.add(contract_pc_tp, bpc.contract_pc_tp);
             qc_pc_tp = helper.add(qc_pc_tp, bpc.qc_pc_tp);
             pc_tp = helper.add(pc_tp, bpc.pc_tp);
-            positive_pc_tp = helper.add(positive_pc_tp, bpc.positive_pc_tp);
-            negative_pc_tp = helper.add(negative_pc_tp, bpc.negative_pc_tp);
+            positive_qc_pc_tp = helper.add(positive_qc_pc_tp, bpc.positive_qc_pc_tp);
+            negative_qc_pc_tp = helper.add(negative_qc_pc_tp, bpc.negative_qc_pc_tp);
         }
         await transaction.update(this.ctx.service.stage.tableName,
-            { id: stage.id, contract_pc_tp, qc_pc_tp, pc_tp, positive_pc_tp, negative_pc_tp, check_calc: true, cache_time_l: new Date() });
+            { 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() });
     }
 
     /**
@@ -225,8 +225,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_pc_tp = helper.mul(priceDiff, node.pre_positive_qc_qty, decimal.tp);
-            node.negative_pc_tp = helper.mul(priceDiff, node.pre_negative_qc_qty, decimal.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);
             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);
@@ -248,7 +248,7 @@ class revisePriceCalc {
                 result.bpcData.push({
                     tid: stage.tid, sid: stage.id, sorder: stage.order, lid: node.id, org_price: node.pre_unit_price,
                     contract_pc_tp: node.contract_pc_tp, qc_pc_tp: node.qc_pc_tp, pc_tp: node.pc_tp,
-                    positive_pc_tp: node.positive_pc_tp, negative_pc_tp: node.negative_pc_tp,
+                    positive_qc_pc_tp: node.positive_qc_pc_tp, negative_qc_pc_tp: node.negative_qc_pc_tp,
                 });
             }
         });
@@ -257,16 +257,16 @@ class revisePriceCalc {
         await transaction.delete(this.ctx.service.stageBillsPc.tableName, { sid: stage.id });
         if (result.bpcData.length > 0) await transaction.insert(this.ctx.service.stageBillsPc.tableName, result.bpcData);
 
-        let contract_pc_tp = 0, qc_pc_tp = 0, pc_tp = 0, positive_pc_tp = 0, negative_pc_tp = 0;
+        let contract_pc_tp = 0, qc_pc_tp = 0, pc_tp = 0, positive_qc_pc_tp = 0, negative_qc_pc_tp = 0;
         for (const bpc of result.bpcData) {
             contract_pc_tp = helper.add(contract_pc_tp, bpc.contract_pc_tp);
             qc_pc_tp = helper.add(qc_pc_tp, bpc.qc_pc_tp);
             pc_tp = helper.add(pc_tp, bpc.pc_tp);
-            positive_pc_tp = helper.add(positive_pc_tp, bpc.positive_pc_tp);
-            negative_pc_tp = helper.add(negative_pc_tp, bpc.negative_pc_tp);
+            positive_qc_pc_tp = helper.add(positive_qc_pc_tp, bpc.positive_qc_pc_tp);
+            negative_qc_pc_tp = helper.add(negative_qc_pc_tp, bpc.negative_qc_pc_tp);
         }
         await transaction.update(this.ctx.service.stage.tableName,
-            { id: stage.id, contract_pc_tp, qc_pc_tp, pc_tp, positive_pc_tp, negative_pc_tp, check_calc: true, cache_time_l: new Date() });
+            { 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() });
     }
     /**
      * 计算修订台账

+ 4 - 0
sql/update.sql

@@ -474,6 +474,10 @@ ALTER TABLE `zh_stage_pos_final_19`
 ADD COLUMN `positive_qc_qty`  decimal(24,8) NOT NULL DEFAULT 0 AFTER `qc_minus_qty`,
 ADD COLUMN `negative_qc_qty`  decimal(24,8) NOT NULL DEFAULT 0 AFTER `positive_qc_qty`;
 
+ALTER TABLE `zh_stage_bills_pc`
+ADD COLUMN `positive_qc_pc_tp`  decimal(24,8) NOT NULL DEFAULT 0 COMMENT '本期补差(正变更)' AFTER `pc_tp`,
+ADD COLUMN `negative_qc_pc_tp`  decimal(24,8) NOT NULL DEFAULT 0 COMMENT '本期补差(负变更)' AFTER `positive_qc_pc_tp`;
+
 ALTER TABLE `zh_stage`
 ADD COLUMN `positive_qc_tp`  decimal(24,8) NULL DEFAULT 0 COMMENT '本期-正-变更金额' AFTER `his_id`,
 ADD COLUMN `pre_positive_qc_tp`  decimal(24,8) NULL DEFAULT 0 COMMENT '截止上期-正-变更金额' AFTER `positive_qc_tp`,