phase_pay.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Mai
  6. * @date
  7. * @version
  8. */
  9. const RptMemBase = require('./base');
  10. const bindData = {};
  11. const Ledger = require('../ledger');
  12. class rptMemChange extends RptMemBase {
  13. constructor(ctx) {
  14. super(ctx, bindData);
  15. }
  16. async doCheckPhasePay(phase_pay_id) {
  17. if (this.ctx.phasePay) return;
  18. this.ctx.phasePay = await this.ctx.service.phasePay.getPhasePay(phase_pay_id);
  19. await this.ctx.service.phasePay.doCheckPhase(this.ctx.phasePay);
  20. }
  21. async doCheckTender(tenderId) {
  22. if (this.ctx.tender) return;
  23. this.ctx.tender = { id: tenderId };
  24. this.ctx.tender.data = await this.ctx.service.tender.getTender(tenderId);
  25. this.ctx.tender.info = await this.ctx.service.tenderInfo.getTenderInfo(tenderId);
  26. }
  27. async doBeforeLoadReport(params) {
  28. await this.doCheckPhasePay(params.phase_pay_id);
  29. await this.doCheckTender(this.ctx.phasePay.tid);
  30. }
  31. async getPhasePayDetail() {
  32. const data = await this.ctx.service.phasePayDetail.getDetailData(this.ctx.phasePay);
  33. const payTree = new Ledger.baseTree(this.ctx, {
  34. id: 'tree_id', pid: 'tree_pid', order: 'tree_order',
  35. level: 'tree_level', isLeaf: 'tree_is_leaf', fullPath: 'tree_full_path',
  36. rootId: -1, calcField: [],
  37. });
  38. payTree.loadDatas(data);
  39. return payTree.getDefaultDatas();
  40. }
  41. getCommonData(params, tableName, fields, customDefine, customSelect) {
  42. switch (tableName) {
  43. case 'mem_project':
  44. return this.ctx.service.project.getDataByCondition({ id: this.ctx.session.sessionProject.id });
  45. case 'mem_tender':
  46. return [this.ctx.tender.data];
  47. case 'mem_tender_info':
  48. return [this.ctx.tender.info];
  49. case 'mem_phase_pay':
  50. return [this.ctx.phasePay];
  51. case 'mem_phase_pay_detail':
  52. return this.getPhasePayDetail();
  53. default:
  54. return [];
  55. }
  56. }
  57. }
  58. module.exports = rptMemChange;