Browse Source

季华报表,计算问题

MaiXinRong 4 năm trước cách đây
mục cha
commit
e7d84fb295
1 tập tin đã thay đổi với 13 bổ sung18 xóa
  1. 13 18
      app/lib/rptCustomData.js

+ 13 - 18
app/lib/rptCustomData.js

@@ -121,7 +121,7 @@ class jhHelper {
         }
     }
 
-    _loadMergeResult(bills, prefixes) {
+    _loadMergeResult(bills, prefixes, decimal) {
         const rst = {
             id: bills.id,
             tid: bills.tender_id,
@@ -139,18 +139,18 @@ class jhHelper {
                 }
                 if (gather) {
                     rst.qc_qty = this.ctx.helper.add(rst.qc_qty, p.qc_qty);
-                    rst.qc_tp = this.ctx.helper.add(rst.qc_qty, p.qc_tp);
                     rst.pre_qc_qty = this.ctx.helper.add(rst.pre_qc_qty, p.pre_qc_qty);
-                    rst.pre_qc_tp = this.ctx.helper.add(rst.pre_qc_tp, p.pre_qc_tp);
                     rst.end_qc_qty = this.ctx.helper.add(rst.end_qc_qty, p.end_qc_qty);
-                    rst.end_qc_tp = this.ctx.helper.add(rst.end_qc_tp, p.end_qc_tp);
                     for (const prefix of prefixes) {
                         rst[prefix + 'qc_qty'] = this.ctx.helper.add(rst[prefix + 'qc_qty'], p[prefix + 'qc_qty']);
                     }
                 }
             }
+            rst.qc_tp = this.ctx.helper.mul(rst.unit_price, rst.qc_qty, decimal.tp);
+            rst.pre_qc_tp = this.ctx.helper.mul(rst.unit_price, rst.pre_qc_qty, decimal.tp);
+            rst.end_qc_tp = this.ctx.helper.add(rst.pre_qc_tp, rst.qc_tp);
             for (const prefix of prefixes) {
-                rst[prefix + 'qc_tp'] = this.ctx.helper.mul(rst.unit_price, rst[prefix + 'qc_qty'], 2);
+                rst[prefix + 'qc_tp'] = this.ctx.helper.mul(rst.unit_price, rst[prefix + 'qc_qty'], decimal.tp);
             }
         } else {
             rst.qc_qty = bills.qc_qty;
@@ -167,7 +167,7 @@ class jhHelper {
         this.result.push(rst);
     }
 
-    _loadResult(bills, prefixes) {
+    _loadResult(bills, prefixes, decimal) {
         if (bills.pos) {
             for (const p of bills.pos) {
                 let load = false;
@@ -184,14 +184,14 @@ class jhHelper {
                     unit_price: bills.unit_price, 
                 };
                 rst.qc_qty = p.qc_qty;
-                rst.qc_tp = p.qc_tp;
+                rst.qc_tp = this.ctx.helper.mul(bills.unit_price, p.qc_qty, decimal.tp);
                 rst.pre_qc_qty = p.pre_qc_qty;
-                rst.pre_qc_tp = p.pre_qc_tp;
+                rst.pre_qc_tp = this.ctx.helper.mul(bills.unit_price, p.pre_qc_qty, decimal.tp);
                 rst.end_qc_qty = p.end_qc_qty;
-                rst.end_qc_tp = p.end_qc_tp;
+                rst.end_qc_tp = this.ctx.helper.add(rst.qc_tp, p.pre_qc_tp);
                 for (const prefix of prefixes) {
                     rst[prefix + 'qc_qty'] = p[prefix + 'qc_qty'];
-                    rst[prefix + 'qc_tp'] = p[prefix + 'qc_tp'];
+                    rst[prefix + 'qc_tp'] = this.ctx.helper.mul(bills.unit_price, p[prefix + 'qc_qty'], decimal.tp);
                 }
                 this.result.push(rst);
             }
@@ -216,7 +216,7 @@ class jhHelper {
         }
     }
 
-    _generateResult(billsData, gsDefine) {
+    _generateResult(billsData, gsDefine, decimal) {
         for (const bills of billsData) {
             let load = false;
             if (bills.pre_cd && bills.pre_cd.length > 0) load = true;
@@ -224,7 +224,7 @@ class jhHelper {
                 if (bills['r' + dc + '_cd'] && bills['r' + dc + '_cd'].length > 0) load = true;
             }
             if (!load) continue;
-            gsDefine.merge ? this._loadMergeResult(bills, this.prefixes) : this._loadResult(bills, this.prefixes);
+            gsDefine.merge ? this._loadMergeResult(bills, this.prefixes, decimal) : this._loadResult(bills, this.prefixes, decimal);
         }
     }
 
@@ -293,11 +293,6 @@ class jhHelper {
         for (const b of billsData) {
             billsIndex[b.id] = b;
             b.pos = posData.filter(x => { return x.lid === b.id; });
-            b.pos.forEach(x => {
-                x.qc_tp = helper.mul(b.unit_price, x.qc_qty, 2);
-                x.pre_qc_tp = helper.mul(b.unit_price, x.pre_qc_qty, 2);
-                x.end_qc_tp = helper.add(x.qc_tp, x.pre_qc_tp);
-            })
         }
 
         // 查询比较人数据
@@ -311,7 +306,7 @@ class jhHelper {
         }
         const finalChangeData = await this.getPreChangeDetailData(tender.id, stage.order);
         this._loadChangeDetail(billsIndex, finalChangeData, gsDefine, 'pre_');
-        this._generateResult(billsData, gsDefine);
+        this._generateResult(billsData, gsDefine, tender.info.decimal);
     }
 
     async _gatherMonthData(tender, month, defaultCompare) {