'use strict'; /** * * * @author Mai * @date * @version */ const RptMemBase = require('./base'); const bindData = {}; const Ledger = require('../ledger'); class rptMemChange extends RptMemBase { constructor(ctx) { super(ctx, bindData); } async doCheckPhasePay(phase_pay_id) { if (this.ctx.phasePay) return; this.ctx.phasePay = await this.ctx.service.phasePay.getPhasePay(phase_pay_id); await this.ctx.service.phasePay.doCheckPhase(this.ctx.phasePay); } async doCheckTender(tenderId) { if (this.ctx.tender) return; this.ctx.tender = { id: tenderId }; this.ctx.tender.data = await this.ctx.service.tender.getTender(tenderId); this.ctx.tender.info = await this.ctx.service.tenderInfo.getTenderInfo(tenderId); } async doBeforeLoadReport(params) { await this.doCheckPhasePay(params.phase_pay_id); await this.doCheckTender(this.ctx.phasePay.tid); } async getPhasePayDetail() { const data = await this.ctx.service.phasePayDetail.getDetailData(this.ctx.phasePay); const payTree = new Ledger.baseTree(this.ctx, { id: 'tree_id', pid: 'tree_pid', order: 'tree_order', level: 'tree_level', isLeaf: 'tree_is_leaf', fullPath: 'tree_full_path', rootId: -1, calcField: [], }); payTree.loadDatas(data); return payTree.getDefaultDatas(); } getCommonData(params, tableName, fields, customDefine, customSelect) { switch (tableName) { case 'mem_project': return this.ctx.service.project.getDataByCondition({ id: this.ctx.session.sessionProject.id }); case 'mem_tender': return [this.ctx.tender.data]; case 'mem_tender_info': return [this.ctx.tender.info]; case 'mem_phase_pay': return [this.ctx.phasePay]; case 'mem_phase_pay_detail': return this.getPhasePayDetail(); default: return []; } } } module.exports = rptMemChange;