瀏覽代碼

新增一期计量限制调整

MaiXinRong 1 年之前
父節點
當前提交
ae352adad5
共有 3 個文件被更改,包括 17 次插入0 次删除
  1. 2 0
      app/const/page_show.js
  2. 11 0
      app/controller/measure_controller.js
  3. 4 0
      app/view/measure/stage.ejs

+ 2 - 0
app/const/page_show.js

@@ -50,6 +50,8 @@ const defaultSetting = {
     isPreset: 0,
     isOnlyChecked: 1,
     openSettle: 0,
+    openMultiStageCalc: 0,
+    maxMultiStageCount: 5,
     openStageStart: 0,
     openDataCollect: 1,
     openFile: 1,

+ 11 - 0
app/controller/measure_controller.js

@@ -56,6 +56,7 @@ module.exports = app => {
                         s.curAuditors2 = await ctx.service.stageAudit.getAuditorsByStatus(s.id, auditConst.status.checking, s.times);
                     }
                 }
+                renderData.unCompleteStageCount = renderData.stages.filter(s => { return s.status !== auditConst.status.checked; }).length;
                 await this.layout('measure/stage.ejs', renderData, 'measure/stage_modal.ejs');
             } catch (err) {
                 this.log(err);
@@ -97,6 +98,16 @@ module.exports = app => {
                 if (!date || !period) {
                     throw '请选择计量年月和开始-截止日期';
                 }
+                const stages = await ctx.service.stage.getAllDataByCondition({ where: { tid: ctx.tender.id }});
+                const unCompleteStageCount = stages.filter(s => { return s.status !== auditConst.status.checked; }).length;
+                if (unCompleteStageCount.length > 0) {
+                    if (ctx.session.sessionProject.page_show.openMultiStageCalc) {
+                        if (unCompleteStageCount >= ctx.session.sessionProject.page_show.maxMultiStageCount)
+                            throw `最多只可同时进行${ctx.session.sessionProject.page_show.maxMultiStageCount}期计量`;
+                    } else {
+                        throw `最新一起未审批通过,请审批通过后再新增计量`
+                    }
+                }
                 const newStage = await ctx.service.stage.addStage(ctx.tender.id, date, period);
                 if (!newStage) {
                     throw '新增计量期失败,请重试';

+ 4 - 0
app/view/measure/stage.ejs

@@ -14,7 +14,11 @@
                     <% if (!ctx.session.sessionProject.page_show.close1stStageCheckDealParam && ctx.helper.checkZero(ctx.tender.info.deal_param.contractPrice) && stages.length === 0) { %>
                         <a href="#add-qi" data-toggle="modal" data-target="#tips" class="btn btn-primary btn-sm">开始新一期</a>
                     <% } else { %>
+                        <% if (ctx.session.sessionProject.page_show.openMultiStageCalc && unCompleteStageCount < ctx.session.sessionProject.page_show.maxMultiStageCount) { %>
                         <a href="#add-qi" data-toggle="modal" data-target="#add-qi" class="btn btn-primary btn-sm">开始新一期</a>
+                        <% } else if (unCompleteStageCount === 0) {%>
+                        <a href="#add-qi" data-toggle="modal" data-target="#add-qi" class="btn btn-primary btn-sm">开始新一期</a>
+                        <% } %>
                     <% } %>
                 <% } %>
             </div>