Przeglądaj źródła

修改清单精度,重算问题

MaiXinRong 4 lat temu
rodzic
commit
9db53ad85d
1 zmienionych plików z 22 dodań i 21 usunięć
  1. 22 21
      app/service/tender_info.js

+ 22 - 21
app/service/tender_info.js

@@ -122,6 +122,24 @@ module.exports = app => {
             await this.db.update(this.tableName, data, { where: { tid: tenderId } });
         }
 
+        async _getLedgerService() {
+            try {
+                if (this.ctx.tender.data.status === auditConst.ledger.status.checked) {
+                    const stageCount = this.ctx.service.stage.count({tid: this.ctx.tender.id});
+                    if (stageCount === 0) {
+                        const revise = await ctx.service.ledgerRevise.getLastestRevise(this.ctx.tender.id);
+                        if (revise.status === auditConst.revise.status.uncheck || revise.status === auditConst.revise.status.checkNo) {
+                            return [this.ctx.service.reviseBills, this.ctx.service.revisePos];
+                        }
+                    }
+                } else {
+                    return [this.ctx.service.ledger, this.ctx.service.pos];
+                }
+            } catch(err) {
+            }
+            return [];
+        }
+
         async savePrecision(tenderId, newPrecision, oldPrecision, decimal) {
             const changePrecision = [];
             const units = await this.ctx.service.ledger.getTenderUsedUnits(tenderId);
@@ -146,16 +164,9 @@ module.exports = app => {
             }
             changeUnits = this._.flatten(changeUnits);
 
-            let billsService, posService;
-            if (this.ctx.tender.data.status === auditConst.ledger.status.checked) {
-                billsService = this.ctx.service.ledger;
-                posService = this.ctx.service.pos;
-            } else {
-                billsService = this.ctx.service.reviseBills;
-                posService = this.ctx.service.revisePos;
-            }
+            const [billsService, posService] = await this._getLedgerService();
 
-            if (changeUnits.length > 0) {
+            if (changeUnits.length > 0 && billsService && posService) {
                 const bills = await billsService.getAllDataByCondition({
                     columns: ['id', 'unit', 'unit_price', 'sgfh_qty', 'sjcl_qty', 'qtcl_qty', 'deal_qty'],
                     where: { tender_id: tenderId, unit: changeUnits, is_leaf: true },
@@ -295,18 +306,8 @@ module.exports = app => {
                 }
             }
 
-            let billsService = null;
-            if (this.ctx.tender.data.ledger_status === auditConst.ledger.status.checked) {
-                const stageCount = this.ctx.service.stage.count({tid: tenderId});
-                if (stageCount === 0) {
-                    const revise = await ctx.service.ledgerRevise.getLastestRevise(tenderId);
-                    if (revise.status === auditConst.revise.status.uncheck || revise.status === auditConst.revise.status.checkNo) {
-                        billsService = this.ctx.service.reviseBills;
-                    }
-                }
-            } else {
-                billsService = this.ctx.service.ledger;
-            }
+            const [billsService] = await this._getLedgerService();
+
             const changeBills = await this._reCalcLedger(tenderId, billsService, newDecimal, oldDecimal);
             const [changeSj, changeSb, changeSo] = await this._reCalcStageExtra(tenderId, newDecimal, oldDecimal);
             if (changeBills.length > 0 ||