浏览代码

多期计量下,台账修订,单价调整,计算问题

MaiXinRong 1 年之前
父节点
当前提交
627a9d3792
共有 2 个文件被更改,包括 10 次插入3 次删除
  1. 8 1
      app/extend/helper.js
  2. 2 2
      app/lib/revise_price.js

+ 8 - 1
app/extend/helper.js

@@ -839,7 +839,7 @@ module.exports = {
      * @param {Array} main - 主数据
      * @param {Array[]}rela - 相关数据 {data, fields, prefix, relaId}
      */
-    assignRelaData(main, rela, mainKey = 'id') {
+    assignRelaData(main, rela, mainKey = 'id', clear = false) {
         const index = {},
             indexPre = 'id_';
         const loadFields = function(datas, fields, prefix, relaId) {
@@ -860,6 +860,13 @@ module.exports = {
             for (const r of rela) {
                 if (r.defaultData) _.assignIn(m, r.defaultData);
             }
+            if (clear) {
+                rela.forEach(r => {
+                    r.fields.forEach(f => {
+                        delete m[r.prefix + f];
+                    });
+                })
+            }
         }
         for (const r of rela) {
             loadFields(r.data, r.fields, r.prefix, r.relaId);

+ 2 - 2
app/lib/revise_price.js

@@ -336,7 +336,7 @@ class revisePriceCalc {
         this.ctx.helper.assignRelaData(bills, [
             { data: curBillsData, fields: ['id', 'contract_qty', 'qc_qty', 'positive_qc_qty', 'negative_qc_qty', 'times', 'order', 'postil'], prefix: 'cur_', relaId: 'lid' },
             { data: preBillsData, fields: ['id', 'contract_qty', 'contract_tp', 'qc_qty', 'qc_tp', 'unit_price', 'positive_qc_qty', 'negative_qc_qty', 'positive_qc_tp', 'negative_qc_tp'], prefix: 'pre_', relaId: 'lid' },
-        ]);
+        ], 'id', true);
         const billsTree = new Ledger.billsTree(this.ctx, { id: 'ledger_id', pid: 'ledger_pid', order: 'order', level: 'level', rootId: -1, calcFields: [] });
         billsTree.loadDatas(bills);
         const stageChange = await this.ctx.service.stageChange.getFinalStageData(stage.tid, stage.id);
@@ -418,7 +418,7 @@ class revisePriceCalc {
         // 加载树结构
         this.ctx.helper.assignRelaData(bills, [
             { data: curBillsData, fields: ['id', 'contract_qty', 'qc_qty', 'positive_qc_qty', 'negative_qc_qty', 'times', 'order', 'postil'], prefix: 'cur_', relaId: 'lid' },
-        ]);
+        ], 'id', true);
         const billsTree = new Ledger.billsTree(this.ctx, { id: 'ledger_id', pid: 'ledger_pid', order: 'order', level: 'level', rootId: -1, calcFields: [] });
         billsTree.loadDatas(bills);
         const stageChange = await this.ctx.service.stageChange.getFinalStageData(stage.tid, stage.id);