'use strict'; /** * * * @author Mai * @date * @version */ const RptMemBase = require('./base'); const bindData = {}; const Ledger = require('../ledger'); class rptMemContract extends RptMemBase { constructor(ctx) { super(ctx, bindData); } async _getContractTree(condition) { const data = await this.ctx.service.contractTree.getAllDataByCondition({ where: condition }); const contract_data = await this.ctx.service.contract.getAllDataByCondition({ where: condition }); const tree = new Ledger.billsTree(this.ctx, { id: 'contract_id', pid: 'contract_pid', order: 'order', level: 'level', rootId: -1, calcFields: [ 'total_price', 'pay_price', 'debit_price', 'yf_price', 'sf_price'], calc: function (node, helper, decimal) {}, }); tree.loadDatas([...data, ...contract_data]); return tree.getDefaultDatas(); } async _getContract(condition) { const data = await this.ctx.service.contract.getAllDataByCondition({ where: condition }); return data; } async _getContractPay(condition) { const data = await this.ctx.service.contractPay.getAllDataByCondition({ where: condition, orders: [['cid', 'asc'], ['create_time', 'asc']] }); return data; } async getSpContractTree(contract_type) { if (!this.ctx.subProject) return []; return await this._getContractTree({ spid: this.ctx.subProject.id, contract_type }); } async getSpContract(contract_type) { if (!this.ctx.subProject) return []; return await this._getContract({ spid: this.ctx.subProject.id, contract_type }); } async getSpContractPay(contract_type) { if (!this.ctx.subProject) return []; return await this._getContractPay({ spid: this.ctx.subProject.id, contract_type }); } getCommonData(params, tableName, fields, customDefine, customSelect) { switch (tableName) { case 'sp_contract_tree_1': return this.getSpContractTree(1); case 'sp_contract_1': return this.getSpContract(1); case 'sp_contract_pay_1': return this.getSpContractPay(1); case 'sp_contract_tree_2': return this.getSpContractTree(2); case 'sp_contract_2': return this.getSpContract(2); case 'sp_contract_pay_2': return this.getSpContractPay(2); default: return []; } } } module.exports = rptMemContract;