schedule_controller.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Ellisran
  6. * @date 2020/7/2
  7. * @version
  8. */
  9. const moment = require('moment');
  10. const measureType = require('../const/tender').measureType;
  11. const billsPosConvert = require('../lib/bills_pos_convert');
  12. module.exports = app => {
  13. class ScheduleController extends app.BaseController {
  14. async index(ctx) {
  15. try {
  16. const renderData = {
  17. tender: ctx.tender.data,
  18. tenderMenu: this.menu.tenderMenu,
  19. preUrl: '/tender/' + ctx.tender.id,
  20. };
  21. await this.layout('schedule/index.ejs', renderData);
  22. } catch (err) {
  23. this.log(err);
  24. ctx.redirect(this.menu.menu.dashboard.url);
  25. }
  26. }
  27. async ledger(ctx) {
  28. const tender = ctx.tender;
  29. const renderData = {
  30. tender: tender.data,
  31. tenderInfo: tender.info,
  32. measureType,
  33. jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.schedule.ledger),
  34. };
  35. await this.layout('schedule/ledger.ejs', renderData, 'schedule/ledger_modal.ejs');
  36. }
  37. /**
  38. * 获取部位明细数据(Ajax)
  39. *
  40. * @param ctx
  41. * @return {Promise<void>}
  42. */
  43. async loadLedgerData(ctx) {
  44. try {
  45. const ledgerData = await ctx.service.ledger.getData(ctx.tender.id);
  46. const posData = this.ctx.tender.data.measure_type === measureType.tz.value
  47. ? await ctx.service.pos.getPosData({ tid: ctx.tender.id }) : [];
  48. const convert = new billsPosConvert(ctx);
  49. convert.loadData(ledgerData, posData, []);
  50. const result = await convert.convert();
  51. ctx.body = { err: 0, msg: '', data: result };
  52. } catch (err) {
  53. this.log(err);
  54. ctx.body = { err: 1, msg: err.toString(), data: [] };
  55. }
  56. }
  57. }
  58. return ScheduleController;
  59. };