Переглянути джерело

工程变更,金额计算问题等

MaiXinRong 5 роки тому
батько
коміт
44f7fe7f93
2 змінених файлів з 17 додано та 5 видалено
  1. 16 4
      app/service/change.js
  2. 1 1
      app/view/change/info.ejs

+ 16 - 4
app/service/change.js

@@ -420,6 +420,7 @@ module.exports = app => {
          * @return {void}
          */
         async approvalSuccess(postData, changeData) {
+            let tenderInfo;
             // 初始化事务
             this.transaction = await this.db.beginTransaction();
             let result = false;
@@ -445,8 +446,12 @@ module.exports = app => {
                     const lid = listInfo[0];
                     const amount = listInfo[1];
                     const changeListInfo = await this.ctx.service.changeAuditList.getDataById(lid);
+                    if (!tenderInfo) {
+                        tenderInfo  = await this.ctx.service.tenderInfo.getTenderInfo(changeListInfo.tid);
+                    }
                     if (changeListInfo !== undefined) {
-                        total_price += this.ctx.helper.accMul(changeListInfo.unit_price, parseFloat(amount));
+                        total_price = this.ctx.helper.add(total_price,
+                            this.ctx.helper.mul(changeListInfo.unit_price, amount, tenderInfo.decimal.tp));
                         const audit_amount = changeListInfo.audit_amount !== null && changeListInfo.audit_amount !== '' ? changeListInfo.audit_amount.split(',') : [];
                         audit_amount.push(amount);
                         const list_update = {
@@ -514,6 +519,7 @@ module.exports = app => {
                 await this.transaction.commit();
                 result = true;
             } catch (error) {
+                console.log(error);
                 await this.transaction.rollback();
                 result = false;
             }
@@ -571,6 +577,7 @@ module.exports = app => {
             let result = false;
             try {
                 const changeInfo = await this.getDataByCondition({ cid: postData.change_id });
+                const tenderInfo  = await this.ctx.service.tenderInfo.getTenderInfo(changeInfo.tid);
                 // 设置审批人退回
                 const audit_update = {
                     id: postData.audit_id,
@@ -607,7 +614,8 @@ module.exports = app => {
                 const changeList = await this.ctx.service.changeAuditList.getAllDataByCondition({ where: { cid: changeInfo.cid } });
                 let total_price = 0;
                 for (const cl of changeList) {
-                    total_price += this.ctx.helper.accMul(cl.unit_price, cl.camount);
+                    total_price = this.ctx.helper.add(total_price,
+                        this.ctx.helper.mul(cl.unit_price, cl.camount, tenderInfo.decimal.tp));
                 }
                 // 设置变更令退回
                 const change_update = {
@@ -662,6 +670,7 @@ module.exports = app => {
             let result = false;
             try {
                 const changeInfo = await this.getDataByCondition({ cid: postData.change_id });
+                const tenderInfo  = await this.ctx.service.tenderInfo.getTenderInfo(changeInfo.tid);
                 // 设置审批人退回
                 const audit_update = {
                     id: postData.audit_id,
@@ -732,7 +741,8 @@ module.exports = app => {
                         audit_amount: audit_amount.join(','),
                         spamount: parseFloat(last_amount),
                     };
-                    total_price += this.ctx.helper.accMul(cl.unit_price, parseFloat(last_amount));
+                    total_price = this.ctx.helper.add(total_price,
+                        this.ctx.helper.mul(cl.unit_price, parseFloat(last_amount), tenderInfo.decimal.tp));
                     await this.transaction.update(this.ctx.service.changeAuditList.tableName, list_update);
                 }
 
@@ -902,6 +912,7 @@ module.exports = app => {
             let result = false;
             try {
                 const changeInfo = await this.getDataByCondition({ cid });
+                const tenderInfo  = await this.ctx.service.tenderInfo.getTenderInfo(changeInfo.tid);
 
                 // 获取终审
                 const auditInfo = (await this.ctx.service.changeAudit.getAllDataByCondition({ where: { cid }, orders: [['usort', 'desc']], limit: 1, offset: 0 }))[0];
@@ -949,7 +960,8 @@ module.exports = app => {
                         audit_amount: audit_amount.join(','),
                         samount: '',
                     };
-                    total_price += this.ctx.helper.accMul(cl.unit_price, cl.camount);
+                    total_price = this.ctx.helper.add(total_price,
+                        this.ctx.helper.mul(cl.unit_price, cl.camount, tenderInfo.decima.tp));
                     await this.transaction.update(this.ctx.service.changeAuditList.tableName, list_update);
                 }
 

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

@@ -649,7 +649,7 @@
                             <td><%= ctx.helper.roundNum(ctx.helper.accMul(cl.unit_price, cl.camount), tpUnit) %></td>
                             <% for (const audit of auditList) { %>
                                 <% if (audit.usite !== 0) { %>
-                                    <% if (uid === audit.uid) { %>
+                                    <% if (uid === audit.uid && audit.status === 2) { %>
                                     <td>
                                         <input class="form-control form-control-sm"  style="min-width:80px" placeholder="变更数量" type="text"
                                                onkeyup="RegNum(this,event,<%= ctx.helper.findDecimal(cl.unit) %>)"