Просмотр исходного кода

汇总表,增加只汇总台账的模式

MaiXinRong 5 лет назад
Родитель
Сommit
6fdc7a8261
1 измененных файлов с 34 добавлено и 0 удалено
  1. 34 0
      app/service/rpt_gather_memory.js

+ 34 - 0
app/service/rpt_gather_memory.js

@@ -90,6 +90,16 @@ const gatherUtils = {
         gatherNode['s_' + "gather_qty"] = helper.add(gatherNode['s_' + "gather_qty"], sourceNode.gather_qty);
         gatherNode['s_' + "gather_tp"] = helper.add(gatherNode['s_' + "gather_tp"], sourceNode.gather_tp);
     },
+    gatherLedger: function (tender, gatherNode, sourceNode, prefix, helper) {
+        gatherNode[prefix + 'id'] = tender.id;
+        gatherNode[prefix + 'name'] = tender.name;
+
+        gatherNode[prefix + "qty"] = helper.add(gatherNode[prefix + "qty"], sourceNode.quantity);
+        gatherNode[prefix + "tp"] = helper.add(gatherNode[prefix + "tp"], sourceNode.total_price);
+
+        gatherNode['s_' + "qty"] = helper.add(gatherNode['s_' + "qty"], sourceNode.quantity);
+        gatherNode['s_' + "tp"] = helper.add(gatherNode['s_' + "tp"], sourceNode.total_price);
+    },
     gatherSpecial: function (gatherNode, sourceNode, prefix, helper) {
         gatherNode[prefix + "qty"] = helper.add(gatherNode[prefix + "qty"], sourceNode.quantity);
         gatherNode[prefix + "tp"] = helper.add(gatherNode[prefix + "tp"], sourceNode.total_price);
@@ -298,6 +308,27 @@ module.exports = app => {
             await this._gatherStageData(index, tender, stages[0], hasPre);
         }
 
+        async _gatherLegerData(sTender, index) {
+            const helper = this.ctx.helper;
+            const billsTree = new Ledger.billsTree(this.ctx, {
+                id: 'ledger_id',
+                pid: 'ledger_pid',
+                order: 'order',
+                level: 'level',
+                rootId: -1,
+                keys: ['id', 'tender_id', 'ledger_id'],
+                stageId: 'id',
+                calcFields: ['deal_tp', 'total_price', 'contract_tp', 'qc_tp', 'gather_tp', 'pre_contract_tp', 'pre_qc_tp', 'pre_gather_tp'],
+            });
+            const tender = await this.ctx.service.tender.getCheckTender(sTender.tid);
+            const billsData = await this.ctx.service.ledger.getData(tender.id);
+            billsTree.loadDatas(billsData);
+            billsTree.calculateAll();
+            this.resultTree.loadGatherTree(billsTree, function (gatherNode, sourceNode) {
+                gatherUtils.gatherLedger(tender, gatherNode, sourceNode, 't_' + index + '_', helper);
+            })
+        }
+
         async _gatherSpecialData(sTender, sKey) {
             const helper = this.ctx.helper;
             const billsTree = new Ledger.billsTree(this.ctx, {
@@ -341,6 +372,9 @@ module.exports = app => {
                         case 'checked-final':
                             await this._gatherCheckedFinalData(tender, commonIndex, gsSetting.hasPre);
                             break;
+                        case 'ledger':
+                            await this._gatherLegerData(tender, commonIndex);
+                            break;
                     }
                     commonIndex++;
                 } else {