Browse Source

变更令修复单价为空审批流程计算bug

laiguoran 5 years ago
parent
commit
7ea037786d
3 changed files with 13 additions and 12 deletions
  1. 11 10
      app/controller/change_controller.js
  2. 1 1
      app/public/js/change_approval.js
  3. 1 1
      app/view/change/info.ejs

+ 11 - 10
app/controller/change_controller.js

@@ -342,8 +342,8 @@ module.exports = app => {
                             cl.detail,
                             cl.lid,
                         ];
-                        ototalCost += ctx.helper.mul(cl.unit_price, cl.oamount, ctx.tender.info.decimal.tp);
-                        ctotalCost += ctx.helper.mul(cl.unit_price, cl.camount, ctx.tender.info.decimal.tp);
+                        ototalCost += cl.unit_price === null ? 0 : ctx.helper.mul(cl.unit_price, cl.oamount, ctx.tender.info.decimal.tp);
+                        ctotalCost += cl.unit_price === null ? 0 : ctx.helper.mul(cl.unit_price, cl.camount, ctx.tender.info.decimal.tp);
                         if (cl.lid !== 0) {
                             changeListData.push(cLArray.join(';'));
                         } else {
@@ -388,11 +388,12 @@ module.exports = app => {
                     let stotalCost = 0;
                     const auditTotalCost = [];
                     for (const cl of changeList) {
-                        ototalCost += parseFloat(ctx.helper.roundNum(ctx.helper.accMul(cl.unit_price, cl.oamount), renderData.tpUnit));
-                        ctotalCost += parseFloat(ctx.helper.roundNum(ctx.helper.accMul(cl.unit_price, cl.camount), renderData.tpUnit));
-                        stotalCost += cl.samount !== '' ? parseFloat(ctx.helper.roundNum(ctx.helper.accMul(cl.unit_price, cl.samount), renderData.tpUnit)) : 0;
+                        ototalCost += cl.unit_price === null ? 0 : parseFloat(ctx.helper.roundNum(ctx.helper.accMul(cl.unit_price, cl.oamount), renderData.tpUnit));
+                        ctotalCost += cl.unit_price === null ? 0 : parseFloat(ctx.helper.roundNum(ctx.helper.accMul(cl.unit_price, cl.camount), renderData.tpUnit));
+                        stotalCost += cl.samount !== '' && cl.unit_price !== null ? parseFloat(ctx.helper.roundNum(ctx.helper.accMul(cl.unit_price, cl.samount), renderData.tpUnit)) : 0;
                         const audit_amount = cl.audit_amount !== null && cl.audit_amount !== '' ? cl.audit_amount.split(',') : '';
                         auditTotalCost.push(audit_amount);
+                        console.log(cl.unit_price, ototalCost, ctotalCost);
                     }
                     renderData.ototalCost = ototalCost;
                     renderData.ctotalCost = ctotalCost;
@@ -405,7 +406,7 @@ module.exports = app => {
                             au.totalCost = 0;
                             for (const [auindex, at] of auditTotalCost.entries()) {
                                 au.list_amount.push(at[index - 1]);
-                                au.totalCost += at[index - 1] !== undefined ? parseFloat(ctx.helper.roundNum(ctx.helper.accMul(changeList[auindex].unit_price, at[index - 1]), renderData.tpUnit)) : 0;
+                                au.totalCost += at[index - 1] !== undefined && changeList[auindex].unit_price !== null ? parseFloat(ctx.helper.roundNum(ctx.helper.accMul(changeList[auindex].unit_price, at[index - 1]), renderData.tpUnit)) : 0;
                             }
                         }
                     }
@@ -425,8 +426,8 @@ module.exports = app => {
                     const auditTotalCost = [];
                     const auditUnit = [];
                     for (const cl of changeList) {
-                        ototalCost += parseFloat(ctx.helper.roundNum(ctx.helper.accMul(cl.unit_price, cl.oamount), renderData.tpUnit));
-                        ctotalCost += parseFloat(ctx.helper.roundNum(ctx.helper.accMul(cl.unit_price, cl.camount), renderData.tpUnit));
+                        ototalCost += cl.unit_price === null ? 0 : parseFloat(ctx.helper.roundNum(ctx.helper.accMul(cl.unit_price, cl.oamount), renderData.tpUnit));
+                        ctotalCost += cl.unit_price === null ? 0 : parseFloat(ctx.helper.roundNum(ctx.helper.accMul(cl.unit_price, cl.camount), renderData.tpUnit));
                         const audit_amount = cl.audit_amount !== null && cl.audit_amount !== '' ? cl.audit_amount.split(',') : '';
                         auditTotalCost.push(audit_amount);
                     }
@@ -448,12 +449,12 @@ module.exports = app => {
                                     //     au.totalCost += parseFloat(ctx.helper.roundNum(ctx.helper.accMul(changeList[auindex].unit_price, changeList[auindex].camount), renderData.tpUnit));
                                     // }
                                     au.list_amount.push(changeList[auindex].spamount);
-                                    au.totalCost += parseFloat(ctx.helper.roundNum(ctx.helper.accMul(changeList[auindex].unit_price, changeList[auindex].spamount), renderData.tpUnit));
+                                    au.totalCost += changeList[auindex].unit_price === null ? 0 : parseFloat(ctx.helper.roundNum(ctx.helper.accMul(changeList[auindex].unit_price, changeList[auindex].spamount), renderData.tpUnit));
                                 }
                             } else {
                                 for (const [auindex, at] of auditTotalCost.entries()) {
                                     au.list_amount.push(at[index - 1]);
-                                    au.totalCost += at[index - 1] !== undefined ? parseFloat(ctx.helper.roundNum(ctx.helper.accMul(changeList[auindex].unit_price, at[index - 1]), renderData.tpUnit)) : 0;
+                                    au.totalCost += at[index - 1] !== undefined && changeList[auindex].unit_price !== null ? parseFloat(ctx.helper.roundNum(ctx.helper.accMul(changeList[auindex].unit_price, at[index - 1]), renderData.tpUnit)) : 0;
                                 }
                             }
                         }

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

@@ -28,7 +28,7 @@ $(document).ready(() => {
         const lid = $(this).parents('tr').data('lid');
         const tr = $('#list tr[data-lid="' + lid + '"]').eq(0);
         const unitprice = tr.children('td[data-site="5"]').text();
-        tr.children('.amount_cost').text(amount != '' ?
+        tr.children('.amount_cost').text(amount != '' && unitprice ?
             roundnum(parseFloat(unitprice).mul(parseFloat(amount)),totalPriceUnit) : '');
 
         // 统计总金额

+ 1 - 1
app/view/change/info.ejs

@@ -464,7 +464,7 @@
                                 <% } %>
                             </select>
                         </td>
-                        <td data-site="5"><input class="form-control form-control-sm" placeholder="单价" onkeyup="RegNum(this,event,upUnit)" type="text" value="<%= ctx.helper.roundNum(cl.unit_price, upUnit) %>"></td>
+                        <td data-site="5"><input class="form-control form-control-sm" placeholder="单价" onkeyup="RegNum(this,event, <%= upUnit %>)" type="text" value="<%= ctx.helper.roundNum(cl.unit_price, upUnit) %>"></td>
                         <td data-site="6"><input class="form-control form-control-sm" placeholder="数量" onkeyup="RegNum(this,event,<%= ctx.helper.findDecimal(cl.unit) %>)" type="text" value="<%= ctx.helper.roundNum(cl.oamount, ctx.helper.findDecimal(cl.unit)) %>"></td>
                         <td data-site="7"><%= ctx.helper.roundNum(ctx.helper.accMul(cl.unit_price, cl.oamount), tpUnit) %></td>
                         <td data-site="8"><input class="form-control form-control-sm" placeholder="变更数量" onkeyup="RegNum(this,event,<%= ctx.helper.findDecimal(cl.unit) %>)" type="text" value="<%= ctx.helper.roundNum(cl.camount, ctx.helper.findDecimal(cl.unit)) %>"></td>