123456789101112131415161718192021222324252627282930313233343536373839404142 |
- 'use strict';
- /**
- *
- * @author Mai
- * @date
- * @version
- */
- const reviseStatus = require('../const/audit').revise.status;
- module.exports = options => {
- /**
- * 结算期 校验 中间件
- * 1. 读取 结算期 数据
- * 2. 检验用户是否参与(不校验具体权限)
- *
- * @param {function} next - 中间件继续执行的方法
- * @return {void}
- */
- return function* settleCheck(next) {
- try {
- // 读取标段数据
- const settleOrder = parseInt(this.params.sorder);
- if (settleOrder <= 0) throw '您访问的期不存在';
- const settle = yield this.service.settle.getDataByCondition({ tid: this.tender.id, settle_order: settleOrder });
- if (!settle) throw '您访问的期不存在';
- yield this.service.settle.doCheckSettle(settle);
- // 获取最新的期数
- settle.highOrder = yield this.service.settle.count({ tid: this.tender.id });
- yield this.service.settle.checkSettleShenpi(settle);
- // 是否台账修订中
- const lastRevise = yield this.service.ledgerRevise.getLastestRevise(this.tender.id);
- settle.revising = (lastRevise && lastRevise.status !== reviseStatus.checked) || false;
- this.settle = settle;
- yield next;
- } catch (err) {
- this.log(err);
- this.redirect(`/tender/${this.params.id}/settle`);
- }
- };
- };
|