浏览代码

1. 上报检查相关
2. 报表,归档部分代码兼容性调整

MaiXinRong 4 年之前
父节点
当前提交
5f8fc61843

+ 5 - 1
app/const/tender_info.js

@@ -8,7 +8,7 @@
  * @version
  */
 
-const parseInfo = ['deal_info', 'construction_unit', 'tech_param', 'decimal', 'precision', 'deal_param', 'display', 'pay_account', 'shenpi', 'bid_info'];
+const parseInfo = ['deal_info', 'construction_unit', 'tech_param', 'decimal', 'precision', 'deal_param', 'display', 'pay_account', 'shenpi', 'bid_info', 'ledger_check'];
 const arrayInfo = ['chapter'];
 const defaultInfo = {
     // 合同信息
@@ -155,6 +155,10 @@ const defaultInfo = {
         change: 1,
         material: 1,
     },
+    ledger_check: {
+        same_code: true,
+        sibling: true,
+    }
 };
 
 module.exports = {

+ 2 - 2
app/controller/ledger_controller.js

@@ -474,8 +474,8 @@ module.exports = app => {
                 const checkDataModel = require('../lib/ledger').checkData;
                 const checkData = new checkDataModel(ctx);
                 checkData.loadData(ledgerData, posData);
-                const sameCodeError = checkData.checkSameCode();
-                const siblingError = checkData.checkSibling();
+                const sameCodeError = ctx.tender.info.ledger_check.same_code ? checkData.checkSameCode() : [];
+                const siblingError = ctx.tender.info.ledger_check.sibling ? checkData.checkSibling() : [];
 
                 const qtyData = ctx.helper.checkBillsWithPos(ledgerData, posData,
                     ['sgfh_qty', 'qtcl_qty', 'sjcl_qty', 'quantity']);

+ 2 - 2
app/controller/report_controller.js

@@ -134,7 +134,7 @@ module.exports = app => {
                 if (stage) {
                     lastAuditor = await ctx.service.stageAudit.getLastestAuditor(ctx.stage.id, ctx.stage.times, auditConst.stage.status.checked);
                 } else {
-                    lastAuditor = await ctx.service.stageAudit.getLastestAuditor(stageList[0].id, stageList[0].times, auditConst.stage.status.checked);
+                    lastAuditor = stageList.length > 0 ? await ctx.service.stageAudit.getLastestAuditor(stageList[0].id, stageList[0].times, auditConst.stage.status.checked) : null;
                 }
                 let archiveList = [];
                 if (stage) {
@@ -143,7 +143,7 @@ module.exports = app => {
                         archiveList = JSON.parse(archives[0].content);
                     }
                 } else {
-                    const archives = await ctx.service.rptArchive.getPrjStgArchive(tender.data.project_id, stageList[stageList.length - 1].id);
+                    const archives = stageList.length > 0 ? await ctx.service.rptArchive.getPrjStgArchive(tender.data.project_id, stageList[stageList.length - 1].id) : [];
                     // console.log(archives);
                     if (archives && archives.length > 0) {
                         archiveList = JSON.parse(archives[0].content);

+ 2 - 2
app/controller/revise_controller.js

@@ -462,8 +462,8 @@ module.exports = app => {
                 const checkDataModel = require('../lib/ledger').checkData;
                 const checkData = new checkDataModel(ctx);
                 checkData.loadData(reviseBills, revisePos);
-                const sameCodeError = checkData.checkSameCode();
-                const siblingError = checkData.checkSibling();
+                const sameCodeError = ctx.tender.info.ledger_check.same_code ? checkData.checkSameCode() : [];
+                const siblingError = ctx.tender.info.ledger_check.sibling ? checkData.checkSibling() : [];
 
                 const qtyData = ctx.helper.checkBillsWithPos(reviseBills, revisePos,
                     ['sgfh_qty', 'qtcl_qty', 'sjcl_qty', 'quantity']);

+ 2 - 1
app/view/tender/detail.ejs

@@ -107,7 +107,8 @@
                                 <a href="javascript: void(0);" class="btn btn-sm btn-outline-primary" id="copyBtn">拷贝设置</a>
                                 <% if (ctx.session.sessionUser.is_admin) { %>
                                 <a href="/tender/<%- tender.id %>/shenpi" class="btn btn-sm btn-outline-primary">审批流程</a>
-                                    <a href="#bd-set-9" data-toggle="modal" data-target="#bd-set-9" class="btn btn-sm btn-outline-primary">游客账号 <span id="tourist-num" <% if (tourists.length !== 0) { %>class="badge badge-secondary"<% } %>><% if (tourists.length !== 0) { %><%- tourists.length %><% } %></span></a>
+                                <a href="#bd-set-9" data-toggle="modal" data-target="#bd-set-9" class="btn btn-sm btn-outline-primary">游客账号 <span id="tourist-num" <% if (tourists.length !== 0) { %>class="badge badge-secondary"<% } %>><% if (tourists.length !== 0) { %><%- tourists.length %><% } %></span></a>
+                                <a href="#bd-set-10" data-toggle="modal" data-target="#bd-set-10" class="btn btn-sm btn-outline-primary">上报控制</a>
                                 <% } %>
                             </div>
                         </div>

+ 47 - 0
app/view/tender/detail_modal.ejs

@@ -766,6 +766,7 @@
         </div>
     </div>
 </div>
+
 <script>
     let property = JSON.parse(unescape('<%- escape(JSON.stringify(tenderInfo)) %>'));
     let ledgerChecked = <%- (tender.ledger_status === audit.ledger.status.checked) && ((lastStage !== undefined && lastStage !== null) || !revise || !revise.valid || revise.status === audit.revise.status.checked) %>;
@@ -1589,11 +1590,57 @@
         </div>
     </div>
 </div>
+<!--上报控制-->
+<div class="modal fade" id="bd-set-10" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">上报控制</h5>
+            </div>
+            <div class="modal-body">
+                <div class="form-group">
+                    <div class="custom-control custom-checkbox mb-2">
+                        <input type="checkbox" class="custom-control-input" id="lc_same_code" checked="">
+                        <label class="custom-control-label" for="lc_same_code">重复项目节</label>
+                    </div>
+                    <div class="custom-control custom-checkbox mb-2">
+                        <input type="checkbox" class="custom-control-input" id="lc_sibling" checked="">
+                        <label class="custom-control-label" for="lc_sibling">项目节清单同层次</label>
+                    </div>
+                </div>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
+                <button type="button" class="btn btn-sm btn-primary" onclick="post10()">确认修改</button>
+            </div>
+        </div>
+    </div>
+</div>
 <script>
     const accountGroup = JSON.parse(unescape('<%- escape(JSON.stringify(accountGroup)) %>'));
     const accountList = JSON.parse(unescape('<%- escape(JSON.stringify(accountList)) %>'));
     const cur_tender_uid = parseInt('<%- ctx.tender.data.user_id %>');
     const cur_tenderid = parseInt('<%- ctx.tender.id %>');
+    const loadLedgerCheckProperty = function () {
+        $('#lc_same_code')[0].checked = property.ledger_check.same_code;
+        $('#lc_sibling')[0].checked = property.ledger_check.sibling;
+    }
+    $('#bd-set-10').on('show.bs.modal', function () {
+        loadLedgerCheckProperty();
+    });
+    function post10 () {
+        const prop = {
+            ledger_check: {
+                same_code: $('#lc_same_code')[0].checked,
+                sibling: $('#lc_sibling')[0].checked,
+            },
+        };
+        const tenderId = window.location.pathname.split('/')[2];
+        postData('/tender/' + tenderId + '/save', prop, function (data) {
+            property.ledger_check = data.ledger_check;
+            $('#bd-set-10').modal('hide');
+        });
+    }
     $(function () {
         // 形象进度
         let timer2 = null;