浏览代码

招标预算,报表指标相关

MaiXinRong 1 年之前
父节点
当前提交
5379a7a0c2
共有 4 个文件被更改,包括 36 次插入0 次删除
  1. 12 0
      app/lib/rm/budget.js
  2. 4 0
      app/lib/rm/tender.js
  3. 12 0
      app/lib/rm/tender_budget.js
  4. 8 0
      app/service/report.js

+ 12 - 0
app/lib/rm/budget.js

@@ -64,6 +64,14 @@ class rptMemPaymentSafe extends RptMemBase {
         // return showLevel ? tree.getDefaultDatasByLevel(this.ctx.tender.rpt_show_level) : tree.getDefaultDatas();
         return tree.getDefaultDatas();
     }
+    async budgetZb(bid, showLevel = false) {
+        const zb = await this.ctx.service.budgetZb.getAllDataByCondition({ where: { bid } });
+        const tree = new ledger.billsTree(this.ctx, { id: 'tree_id', pid: 'tree_pid', order: 'order', level: 'level', rootId: -1, calcFields: ['total_price'] });
+        tree.loadDatas(zb);
+        tree.calculateAll();
+        // return showLevel ? tree.getDefaultDatasByLevel(this.ctx.tender.rpt_show_level) : tree.getDefaultDatas();
+        return tree.getDefaultDatas();
+    }
     async budgetFinal(bid, showLevel = false) {
         const budget = this.ctx.budget && this.ctx.budget.id === bid
             ? this.ctx.budget
@@ -88,6 +96,8 @@ class rptMemPaymentSafe extends RptMemBase {
                 return this.budgetGai(this.ctx.budget.id);
             case 'mem_budget_yu':
                 return this.budgetYu(this.ctx.budget.id);
+            case 'mem_budget_zb':
+                return this.budgetZb(this.ctx.budget.id);
             case 'mem_budget_final':
                 return this.budgetFinal(this.ctx.budget.id);
             case 'mem_budget_gu_filter':
@@ -96,6 +106,8 @@ class rptMemPaymentSafe extends RptMemBase {
                 return this.budgetGai(this.ctx.budget.id, true);
             case 'mem_budget_yu_filter':
                 return this.budgetYu(this.ctx.budget.id, true);
+            case 'mem_budget_zb_filter':
+                return this.budgetZb(this.ctx.budget.id, true);
             case 'mem_budget_final_filter':
                 return this.budgetFinal(this.ctx.budget.id, true);
             default:

+ 4 - 0
app/lib/rm/tender.js

@@ -182,6 +182,8 @@ class rptMemPaymentSafe extends RptMemBase {
                 return params.budget_id ? budgetSource.budgetGai(params.budget_id) : budgetSource.tenderGai(params.tender_id);
             case 'mem_budget_yu':
                 return params.budget_id ? budgetSource.budgetYu(params.budget_id) : budgetSource.tenderYu(params.tender_id);
+            case 'mem_budget_zb':
+                return params.budget_id ? budgetSource.budgetZb(params.budget_id) : budgetSource.tenderZb(params.tender_id);
             case 'mem_budget_final':
                 return params.budget_id ? budgetSource.budgetFinal(params.budget_id) : budgetSource.tenderFinal(params.tender_id);
             case 'mem_budget_gu_filter':
@@ -190,6 +192,8 @@ class rptMemPaymentSafe extends RptMemBase {
                 return params.budget_id ? budgetSource.budgetGai(params.budget_id, true) : budgetSource.tenderGai(params.tender_id, true);
             case 'mem_budget_yu_filter':
                 return params.budget_id ? budgetSource.budgetYu(params.budget_id, true) : budgetSource.tenderYu(params.tender_id, true);
+            case 'mem_budget_zb_filter':
+                return params.budget_id ? budgetSource.budgetZb(params.budget_id, true) : budgetSource.tenderZb(params.tender_id, true);
             case 'mem_budget_final_filter':
                 return params.budget_id ? budgetSource.budgetFinal(params.budget_id, true) : budgetSource.tenderFinal(params.tender_id, true);
             case 'mem_pm_deal_pay':

+ 12 - 0
app/lib/rm/tender_budget.js

@@ -43,6 +43,13 @@ class reportMemoryBudget {
         tree.calculateAll();
         return showLevel ? tree.getDefaultDatasByLevel(this.ctx.tender.rpt_show_level) : tree.getDefaultDatas();
     }
+    async budgetZb(bid, showLevel = false) {
+        const zb = await this.ctx.service.budgetZb.getAllDataByCondition({ where: { bid } });
+        const tree = new ledger.billsTree(this.ctx, { id: 'tree_id', pid: 'tree_pid', order: 'order', level: 'level', rootId: -1, calcFields: ['total_price'] });
+        tree.loadDatas(zb);
+        tree.calculateAll();
+        return showLevel ? tree.getDefaultDatasByLevel(this.ctx.tender.rpt_show_level) : tree.getDefaultDatas();
+    }
     async budgetFinal(bid, showLevel = false) {
         const budget = this.ctx.budget && this.ctx.budget.id === bid
             ? this.ctx.budget
@@ -85,6 +92,11 @@ class reportMemoryBudget {
         return this.budget ? await this.budgetGu(this.budget.id, filter) : [];
     }
 
+    async tenderZb(tid, filter = false) {
+        await this._getTenderBudget(tid);
+        return this.budget ? await this.budgetZb(this.budget.id, filter) : [];
+    }
+
     async tenderFinal(tid, filter = false) {
         await this._getTenderBudget(tid);
         return this.budget ? await this.budgetFinal(this.budget.id, filter) : [];

+ 8 - 0
app/service/report.js

@@ -361,6 +361,10 @@ module.exports = app => {
                             runnableRst.push(params.budget_id ? budgetSource.budgetYu(params.budget_id) : budgetSource.tenderYu(params.tender_id));
                             runnableKey.push(filter);
                             break;
+                        case 'mem_budget_zb':
+                            runnableRst.push(params.budget_id ? budgetSource.budgetZb(params.budget_id) : budgetSource.tenderZb(params.tender_id));
+                            runnableKey.push(filter);
+                            break;
                         case 'mem_budget_final':
                             runnableRst.push(params.budget_id ? budgetSource.budgetFinal(params.budget_id) : budgetSource.tenderFinal(params.tender_id));
                             runnableKey.push(filter);
@@ -377,6 +381,10 @@ module.exports = app => {
                             runnableRst.push(params.budget_id ? budgetSource.budgetYu(params.budget_id, true) : budgetSource.tenderYu(params.tender_id, true));
                             runnableKey.push(filter);
                             break;
+                        case 'mem_budget_zb_filter':
+                            runnableRst.push(params.budget_id ? budgetSource.budgetZb(params.budget_id, true) : budgetSource.tenderZb(params.tender_id, true));
+                            runnableKey.push(filter);
+                            break;
                         case 'mem_budget_final_filter':
                             runnableRst.push(params.budget_id ? budgetSource.budgetFinal(params.budget_id, true) : budgetSource.tenderFinal(params.tender_id, true));
                             runnableKey.push(filter);