'use strict'; /** * * * @author Ellisran * @date 2020/7/2 * @version */ const moment = require('moment'); const measureType = require('../const/tender').measureType; const billsPosConvert = require('../lib/bills_pos_convert'); const _ = require('lodash'); module.exports = app => { class ScheduleController extends app.BaseController { async index(ctx) { try { const renderData = { tender: ctx.tender.data, tenderMenu: this.menu.tenderMenu, preUrl: '/tender/' + ctx.tender.id, }; await this.layout('schedule/index.ejs', renderData); } catch (err) { this.log(err); ctx.redirect(this.menu.menu.dashboard.url); } } async ledger(ctx) { const tender = ctx.tender; const scheduleLedgerList = await ctx.service.scheduleLedger.getAllDataByCondition({ where: { tid: tender.id } }); const renderData = { tender: tender.data, tenderInfo: tender.info, measureType, scheduleLedgerList: _.map(scheduleLedgerList, 'ledger_id'), jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.schedule.ledger), }; await this.layout('schedule/ledger.ejs', renderData, 'schedule/ledger_modal.ejs'); } /** * 获取部位明细数据(Ajax) * * @param ctx * @return {Promise} */ async loadLedgerData(ctx) { try { const ledgerData = await ctx.service.ledger.getData(ctx.tender.id); const posData = ctx.tender.data.measure_type === measureType.tz.value ? await ctx.service.pos.getPosData({ tid: ctx.tender.id }) : []; const convert = new billsPosConvert(ctx); convert.loadData(ledgerData, posData, []); const result = await convert.convert(); ctx.body = { err: 0, msg: '', data: result }; } catch (err) { this.log(err); ctx.body = { err: 1, msg: err.toString(), data: [] }; } } /** * 台账选中提交(Ajax) * * @param ctx * @return {Promise} */ async saveLedger(ctx) { try { const data = JSON.parse(ctx.request.body.data); const result = await ctx.service.scheduleLedger.saveLedger(data); ctx.body = { err: 0, msg: '', data: result }; } catch (err) { this.log(err); ctx.body = { err: 1, msg: err.toString(), data: [] }; } } } return ScheduleController; };