瀏覽代碼

1. 合同支付,新增技术
2. 标段概况,合同参数,管理员修改不做限制

MaiXinRong 11 月之前
父節點
當前提交
8210c44e18

+ 3 - 0
app/const/deal_pay.js

@@ -32,6 +32,9 @@ const calcBase = [
     {name: '本期完成计量', code: 'bqwc', limit: true, sort: 10},
     {name: '本期合同计量', code: 'bqht', limit: true, sort: 10},
     {name: '本期变更计量', code: 'bqbg', limit: true, sort: 10},
+    {name: '本期清单完成计量', code: 'bqqdwc', limit: true, sort: 10},
+    {name: '本期清单合同计量', code: 'bqqdht', limit: true, sort: 10},
+    {name: '本期清单变更计量', code: 'bqqdbg', limit: true, sort: 10},
     {name: '本期一般变更计量', code: 'ybbqbg', limit: true, sort: 5},
     {name: '本期较大变更计量', code: 'jdbqbg', limit: true, sort: 5},
     {name: '本期重大变更计量', code: 'zdbqbg', limit: true, sort: 5},

+ 1 - 1
app/controller/tender_controller.js

@@ -635,7 +635,7 @@ module.exports = app => {
                 }
 
                 if (ctx.tender.data.ledger_status === auditConst.ledger.status.checked) {
-                    if (data.deal_param) {
+                    if (data.deal_param && !ctx.session.sessionUser.is_admin) {
                         const lastStage = await this.ctx.service.stage.getLastestStage(ctx.tender.id, true);
                         if (lastStage) {
                             if (lastStage.order > 1 || (lastStage.status === auditConst.stage.status.checked || lastStage.status === auditConst.stage.status.checking)) throw '第一期上报后不可修改合同参数';

+ 1 - 1
app/public/js/ledger_check.js

@@ -222,7 +222,7 @@ const ledgerCheckUtil = {
                 if (ratio === 0) {
                     if (!data.contract_tp && !data.pre_contract_tp) return 2; // 漏计
                 } else {
-                    const tp = ZhCalc.mul(data.final_1_tp, ZhCalc.div(ratio, 100, 4), this.ctx.tender.info.decimal.tp);
+                    const tp = ZhCalc.mul(data.final_1_tp, ZhCalc.div(ratio, 100, 4), decimal.tp);
                     const checkTp = ZhCalc.add(data.contract_tp, data.pre_contract_tp);
                     if (tp > checkTp) return 1; // 违规
                     if (tp < checkTp) return 2; // 漏计

+ 10 - 0
app/service/stage.js

@@ -655,6 +655,7 @@ module.exports = app => {
             const calcBase = JSON.parse(JSON.stringify(payConst.calcBase));
             const param = tenderInfo.deal_param;
             const sum = await this.ctx.service.stageBills.getSumTotalPrice(stage);
+            const qdSum = await this.ctx.service.stageBills.getSumTotalPriceGcl(stage);
             const pcSum = await this.ctx.service.stageBillsPc.getSumTotalPrice(stage);
             const bg = await this.getChangeSubtotal(stage);
             for (const cb of calcBase) {
@@ -683,6 +684,15 @@ module.exports = app => {
                     case 'bqbg':
                         cb.value = sum.qc_tp; //this.ctx.helper.add(sum.qc_tp, pcSum.qc_pc_tp);
                         break;
+                    case 'bqqdwc':
+                        cb.value = this.ctx.helper.sum([qdSum.contract_tp, qdSum.qc_tp, pcSum.pc_tp]);
+                        break;
+                    case 'bqqdht':
+                        cb.value = qdSum.contract_tp;
+                        break;
+                    case 'bqqdbg':
+                        cb.value = qdSum.qc_tp;
+                        break;
                     case 'ybbqwc':
                         const sumGcl = await this.ctx.service.stageBills.getSumTotalPriceGcl(stage, '^[^0-9]*1[0-9]{2}(-|$)');
                         const sumPc = await this.ctx.service.stageBillsPc.getSumTotalPriceGcl(stage, '^[^0-9]*1[0-9]{2}(-|$)');

+ 4 - 2
app/view/tender/detail_modal.ejs

@@ -713,7 +713,7 @@
 </div>
 <% } %>
 
-<% if (!lastStage || (lastStage.order === 1 && lastStage.user_id === ctx.session.sessionUser.accountId && (lastStage.status === audit.stage.status.checkNo || lastStage.status === audit.stage.status.uncheck))) { %>
+<% if (ctx.session.sessionUser.is_admin || !lastStage || (lastStage.order === 1 && lastStage.user_id === ctx.session.sessionUser.accountId && (lastStage.status === audit.stage.status.checkNo || lastStage.status === audit.stage.status.uncheck))) { %>
 <!--标段设置-合同参数-->
 <div class="modal fade" id="bd-set-4" data-backdrop="static">
     <div class="modal-dialog" role="document">
@@ -1633,12 +1633,14 @@
     })();
     $('#bd-set-4').on('show.bs.modal', function () {
         dealObj.loadDealProperty();
-        <% if (lastStage !== undefined && lastStage !== null && (lastStage.user_id !== ctx.session.sessionUser.accountId || lastStage.order > 1 || (lastStage.order === 1 && (lastStage.status !== audit.stage.status.uncheck && lastStage.status !== audit.stage.status.checkNo)))) { %>
+        <% if (!ctx.session.sessionUser.is_admin && lastStage !== undefined && lastStage !== null && (lastStage.user_id !== ctx.session.sessionUser.accountId || lastStage.order > 1 || (lastStage.order === 1 && (lastStage.status !== audit.stage.status.uncheck && lastStage.status !== audit.stage.status.checkNo)))) { %>
             dealObj.setReadOnly(true);
         <% } %>
     });
     function post4 () {
+        <% if (!ctx.session.sessionUser.is_admin) {%>
         if (firstStageChecked) return;
+        <% } %>
         const prop = { deal_param: dealObj.getNewDealData() };
         const tenderId = window.location.pathname.split('/')[2];
         postData('/tender/' + tenderId + '/save', prop, function (data) {

+ 1 - 1
config/config.local.js

@@ -50,7 +50,7 @@ module.exports = appInfo => {
     };
 
     // 中间件
-    config.middleware = ['httpHeader', 'gzip', 'urlParse', 'sortFilter', 'autoLogger', 'autoFinishLogger'];
+    config.middleware = ['gzip', 'urlParse', 'sortFilter', 'autoLogger', 'autoFinishLogger'];
 
     // 前端验证
     config.jsValidator = {

+ 1 - 1
config/config.qa.js

@@ -32,7 +32,7 @@ module.exports = appInfo => {
     config.tablePrefix = 'zh_';
 
     // 中间件
-    config.middleware = ['httpHeader', 'gzip', 'urlParse', 'sortFilter', 'autoLogger', 'autoFinishLogger'];
+    config.middleware = ['gzip', 'urlParse', 'sortFilter', 'autoLogger', 'autoFinishLogger'];
 
     // redis设置
     config.redis = {