Browse Source

合同支付相关问题

MaiXinRong 5 years ago
parent
commit
18f5c54f62
4 changed files with 37 additions and 12 deletions
  1. 4 0
      app/lib/pay_calc.js
  2. 31 10
      app/public/js/stage_pay.js
  3. 1 1
      app/router.js
  4. 1 1
      app/view/tender/detail.ejs

+ 4 - 0
app/lib/pay_calc.js

@@ -100,9 +100,13 @@ class PayCalculate {
                 if (p.csaorder === order) {
                     if (!p.sprice && p.sexpr && p.sexpr !== '') {
                         p.sprice = this.ctx.helper.round(this.calculateExpr(p.sexpr), this.decimal);
+                    } else if (p.sprice && !p.sexpr) {
+                        p.sprice = this.ctx.helper.round(p.sprice, this.decimal);
                     }
                     if (!p.rprice && p.rexpr && p.rexpr !== '') {
                         p.rprice = this.ctx.helper.round(this.calculateExpr(p.rexpr), this.decimal);
+                    } else if (p.rprice && !p.rexpr) {
+                        p.rprice = this.ctx.helper.round(p.rprice, this.decimal);
                     }
                 }
             }

+ 31 - 10
app/public/js/stage_pay.js

@@ -112,7 +112,28 @@ $(document).ready(() => {
             {title: '截止上期金额',  colSpan: '1', rowSpan: '1', field: 'pre_tp', hAlign: 2, width: 100, readOnly: true},
             {title: '截止本期金额',  colSpan: '1', rowSpan: '1', field: 'end_tp', hAlign: 2, width: 100, readOnly: true},
             {title: '起扣金额',  colSpan: '1', rowSpan: '1', field: 'sprice', hAlign: 2, width: 100, readOnly: 'readOnly.sprice', /*cellType: 'tip', getTip: function (data) {return data ? data.sexpr : '';}*/},
-            {title: '付(扣)款限额',  colSpan: '1', rowSpan: '1', field: 'rprice', hAlign: 2, width: 100, readOnly: 'readOnly.rprice', /*cellType: 'tip', getTip: function (data) {return data ? data.rexpr : '';}*/},
+            {
+                title: '付(扣)款限额',  colSpan: '1', rowSpan: '1', field: 'rprice', hAlign: 2, width: 100,
+                readOnly: 'readOnly.rprice', cellType: 'tip',
+                getTip: function (data) {
+                    if (data && (data.rexpr || data.rprice) && data.dl_type) {
+                        if (data.dl_type === 1) {
+                            return '计提期限为(当 计量期数 ≥ ' + data.dl_count + ')';
+                        } else if (data.dl_type === 2) {
+                            switch (data.dl_tp_type) {
+                                case 'constract':
+                                    return '计提期限为(累计合同计量 ≥ ' + data.dl_tp + ')';
+                                case 'qc':
+                                    return '计提期限为(累计变更计量 ≥ ' + data.dl_tp + ')';
+                                case 'gather':
+                                    return '计提期限为(累计完成计量 ≥ ' + data.dl_tp + ')';
+                            }
+                        }
+                    } else {
+                        return '';
+                    }
+                }
+             },
             {
                 title: '附件', colSpan: '1', rowSpan: '1', field: 'attachment', hAlign: 0, width: 60, readOnly: true, cellType: 'imageBtn',
                 normalImg: '#rela-file-icon', hoverImg: '#rela-file-hover', getValue: 'getValue.attachment'
@@ -405,12 +426,12 @@ $(document).ready(() => {
             if (!valid) return [valid, msg];
 
             if (payBase.isStarted(payNode)) {
-                if (payNode.pre_finish) return [false, '已达扣款限额,请勿修改'];
-                const value = expr ? payCalc.calculateExpr(expr) : num;
-                if (payNode.pre_tp && value < payNode.pre_tp) return [false, '截止上期已计量' + payNode.pre_tp + ',扣款限额请勿少于改值'];
-                data.rprice = num;
-                data.rexpr = expr;
-                return [true, ''];
+                // if (payNode.pre_finish) return [false, '已达扣款限额,请勿修改'];
+                // const value = expr ? payCalc.calculateExpr(expr) : num;
+                // if (payNode.pre_tp && value < payNode.pre_tp) return [false, '截止上期已计量' + payNode.pre_tp + ',扣款限额请勿少于改值'];
+                // data.rprice = num;
+                // data.rexpr = expr;
+                return [false, '已经开始使用,请勿修改扣款限额'];
             } else {
                 data.rprice = num;
                 data.rexpr = expr;
@@ -983,7 +1004,7 @@ $(document).ready(() => {
                 },
                 visible: function (key, opt) {
                     const select = SpreadJsObj.getSelectObject(paySpread.getActiveSheet());
-                    return !payBase.isSpecial(select) && !readOnly && !payBase.pause && payCol.menuVisible.pause(select);
+                    return !payBase.isSpecial(select) && !readOnly && !select.pause && payCol.menuVisible.pause(select);
                 },
             },
             'setDeadline': {
@@ -1008,7 +1029,7 @@ $(document).ready(() => {
                 icon: 'fa-chain-broken',
                 visible: function (key, opt) {
                     const select = SpreadJsObj.getSelectObject(paySpread.getActiveSheet());
-                    return !payBase.isSpecial(select) && select.is_yf && payCol.menuVisible.belongYF(select);
+                    return !payBase.isSpecial(select) && select.is_yf && payCol.menuVisible.belongYF(select) && !readOnly;
                 },
                 callback: function (key, opt) {
                     const select = SpreadJsObj.getSelectObject(paySpread.getActiveSheet());
@@ -1031,7 +1052,7 @@ $(document).ready(() => {
                 icon: 'fa-chain',
                 visible: function (key, opt) {
                     const select = SpreadJsObj.getSelectObject(paySpread.getActiveSheet());
-                    return !payBase.isSpecial(select) && !select.is_yf && payCol.menuVisible.belongYF(select);
+                    return !payBase.isSpecial(select) && !select.is_yf && payCol.menuVisible.belongYF(select) && !readOnly;
                 },
                 callback: function (key, opt) {
                     const select = SpreadJsObj.getSelectObject(paySpread.getActiveSheet());

+ 1 - 1
app/router.js

@@ -159,7 +159,7 @@ module.exports = app => {
     app.post('/tender/:id/measure/stage/:order/pay/save', sessionAuth, tenderCheck, stageCheck, 'stageController.savePayData');
     app.post('/tender/:id/measure/stage/:order/pay/upload/file', sessionAuth, tenderCheck, stageCheck, 'stageController.payUploadFile');
     app.get('/tender/:id/measure/stage/:order/pay/download/file/:pid/:index', sessionAuth, 'stageController.payDownloadFile');
-    app.post('/tender/:id/measure/stage/:order/pay/delete/file', sessionAuth, 'stageController.payDeleteFile');
+    app.post('/tender/:id/measure/stage/:order/pay/delete/file', sessionAuth, tenderCheck, stageCheck, 'stageController.payDeleteFile');
     // 变更概况
     app.get('/tender/:id/measure/stage/:order/change', sessionAuth, tenderCheck, stageCheck, 'stageController.change');
     app.post('/tender/:id/measure/stage/:order/change/data', sessionAuth, tenderCheck, stageCheck, 'stageController.getChangeData');

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

@@ -765,5 +765,5 @@
     let property = JSON.parse('<%- JSON.stringify(tenderInfo) %>');
     let ledgerChecked = <%- tender.ldeger_status === audit.ledger.status.checked %>;
     <% console.log(lastStage) %>
-    let firstStageChecked = <%- lastStage !== undefined && lastStage !== null && (lastStage.order > 1 || (lastStage.order === 1 && lastStage.status !== audit.stage.status.checked)) %>;
+    let firstStageChecked = <%- lastStage !== undefined && lastStage !== null && (lastStage.order > 1 || (lastStage.order === 1 && lastStage.status === audit.stage.status.checked)) %>;
 </script>