Browse Source

奉建定制报表相关

MaiXinRong 1 year ago
parent
commit
994036d6b4
1 changed files with 17 additions and 8 deletions
  1. 17 8
      app/lib/rptCustomData.js

+ 17 - 8
app/lib/rptCustomData.js

@@ -535,7 +535,7 @@ class fjHelper {
         this.ctx.helper.assignRelaData(billsData, [
             { data: curStage, fields: ['qc_qty', 'qc_tp', 'qc_minus_qty'], prefix: '', relaId: 'lid' },
             { data: preStage, fields: ['qc_qty', 'qc_tp', 'qc_minus_qty'], prefix: 'pre_', relaId: 'lid' },
-            { data: bpcStage, fields: ['contract_pc_tp', 'qc_pc_tp', 'pc_tp'], prefix: '', relaId: 'lid' },
+            { data: bpcStage, fields: ['contract_pc_tp', 'qc_pc_tp', 'pc_tp', 'org_price'], prefix: '', relaId: 'lid' },
         ]);
         billsData.forEach(node => {
             node.end_qc_qty = helper.add(node.pre_qc_qty, node.qc_qty);
@@ -610,7 +610,7 @@ class fjHelper {
             if (!sb.b_code) continue;
             let b = bills.find(x => { return x.b_code === sb.b_code && x.name === sb.name && x.unit === sb.unit && x.unit_price === sb.unit_price; });
             if (!b) {
-                b = { b_code: sb.b_code, name: sb.name, unit: sb.unit, unit_price: sb.unit_price, ledgerSource: [] };
+                b = { b_code: sb.b_code, name: sb.name, unit: sb.unit, unit_price: sb.unit_price, org_price: sb.org_price, ledgerSource: [] };
                 bills.push(b);
             }
             const ls = b.ledgerSource.find(x => { return x.lid === sb.lid; });
@@ -636,19 +636,28 @@ class fjHelper {
             b.total_price = helper.sum(b.ledgerSource.map(x => { return x.total_price; }));
             b.final_qty = helper.sum(b.ledgerSource.map(x => { return x.final_qty; }));
             b.final_tp = helper.sum(b.ledgerSource.map(x => { return x.final_tp; }));
-            b.pre_positive_qc_tp = helper.mul(b.unit_price, b.pre_positive_qc_qty, tpDecimal);
-            b.pre_negative_qc_tp = helper.mul(b.unit_price, b.pre_negative_qc_qty, tpDecimal);
+            if (b.org_price) {
+                b.pre_positive_qc_tp = helper.mul(b.org_price, b.pre_positive_qc_qty, tpDecimal);
+                b.pre_negative_qc_tp = helper.mul(b.org_price, b.pre_negative_qc_qty, tpDecimal);
+                b.positive_qc_pc_tp = helper.sub(helper.mul(b.unit_price, b.pre_positive_qc_qty, tpDecimal), b.pre_positive_qc_tp);
+                b.negative_qc_pc_tp = helper.sub(helper.mul(b.unit_price, b.pre_negative_qc_qty, tpDecimal), b.pre_negative_qc_tp);
+            } else {
+                b.pre_positive_qc_tp = helper.mul(b.unit_price, b.pre_positive_qc_qty, tpDecimal);
+                b.pre_negative_qc_tp = helper.mul(b.unit_price, b.pre_negative_qc_qty, tpDecimal);
+                b.positive_qc_pc_tp = 0;
+                b.negative_qc_pc_tp = 0;
+            }
             b.positive_qc_tp = helper.mul(b.unit_price, b.positive_qc_qty, tpDecimal);
             b.negative_qc_tp = helper.mul(b.unit_price, b.negative_qc_qty, tpDecimal);
             b.end_positive_qc_qty = helper.add(b.pre_positive_qc_qty, b.positive_qc_qty);
-            b.end_positive_qc_tp = helper.add(b.pre_positive_qc_tp, b.positive_qc_tp);
+            b.end_positive_qc_tp = helper.add(helper.add(b.pre_positive_qc_tp, b.positive_qc_tp), b.positive_qc_pc_tp);
             b.end_negative_qc_qty = helper.add(b.pre_negative_qc_qty, b.negative_qc_qty);
-            b.end_negative_qc_tp = helper.add(b.pre_negative_qc_tp, b.negative_qc_tp);
+            b.end_negative_qc_tp = helper.add(helper.add(b.pre_negative_qc_tp, b.negative_qc_tp), b.negative_qc_pc_tp);
             result.push({
                 b_code: b.b_code, name: b.name, unit: b.unit, unit_price: b.unit_price,
                 quantity: b.quantity, total_price: b.total_price,
                 pre_qc_qty: b.pre_positive_qc_qty, pre_qc_tp: b.pre_positive_qc_tp,
-                qc_qty: b.positive_qc_qty, qc_tp: b.positive_qc_tp,
+                qc_qty: b.positive_qc_qty, qc_tp: b.positive_qc_tp, qc_pc_tp: b.positive_qc_pc_tp,
                 end_qc_qty: b.end_positive_qc_qty, end_qc_tp: b.end_positive_qc_tp,
                 final_qty: b.final_qty, final_tp: b.final_tp,
                 minus: 0,
@@ -657,7 +666,7 @@ class fjHelper {
                 b_code: b.b_code, name: b.name, unit: b.unit, unit_price: b.unit_price,
                 quantity: b.quantity, total_price: b.total_price,
                 pre_qc_qty: b.pre_negative_qc_qty, pre_qc_tp: b.pre_negative_qc_tp,
-                qc_qty: b.negative_qc_qty, qc_tp: b.negative_qc_tp,
+                qc_qty: b.negative_qc_qty, qc_tp: b.negative_qc_tp, qc_pc_tp: b.negative_qc_pc_tp,
                 end_qc_qty: b.end_negative_qc_qty, end_qc_tp: b.end_negative_qc_tp,
                 final_qty: b.final_qty, final_tp: b.final_tp,
                 minus: 1,