Browse Source

Merge branch 'dev' of http://192.168.1.41:3000/maixinrong/Calculation into dev

MaiXinRong 5 năm trước cách đây
mục cha
commit
f4c97ed989

+ 13 - 2
app/controller/advance_controller.js

@@ -144,12 +144,23 @@ module.exports = app => {
                 // 最大支付比例
                 const max_pr = ctx.helper.mul(ctx.helper.div(ctx.helper.sub(advancePayTotal, (prevAdvance && prevAdvance.prev_total_amount || 0)), advancePayTotal, 10), 100);
                 // 特殊处理金额的显示(formatMoney)
+                let cur_amount,
+                    prev_total_amount;
                 const s1 = parseFloat(ctx.advance.prev_amount).toString().split('.')[1];
-                const s2 = parseFloat(ctx.advance.prev_total_amount).toString().split('.')[1];
                 const prev_amount = ctx.helper.formatMoney(ctx.advance.prev_amount, ',', s1 && s1.length || 0);
-                const prev_total_amount = ctx.helper.formatMoney(ctx.advance.prev_total_amount, ',', s2 && s2.length || 0);
+                if (status === uncheck || status === checkNo) {
+                    cur_amount = parseFloat(ctx.helper.round(ctx.advance.cur_amount, this.decimal)) || 0;
+                    const s2 = parseFloat(ctx.helper.add(cur_amount, ctx.advance.prev_amount)).toString().split('.')[1];
+                    prev_total_amount = ctx.helper.formatMoney(ctx.helper.add(cur_amount, ctx.advance.prev_amount), ',', s2 && s2.length || 0);
+                } else {
+                    cur_amount = ctx.advance.cur_amount;
+                    const s2 = parseFloat(ctx.advance.prev_total_amount).toString().split('.')[1];
+                    prev_total_amount = ctx.helper.formatMoney(ctx.advance.prev_total_amount, ',', s2 && s2.length || 0);
+                }
+
                 renderData.isEdited = isEdited;
                 renderData.advance = ctx.advance;
+                renderData.cur_amount = cur_amount;
                 renderData.prev_amount = prev_amount;
                 renderData.prev_total_amount = prev_total_amount;
                 renderData.max_pr = max_pr;

+ 3 - 3
app/public/js/advance_audit.js

@@ -209,9 +209,9 @@ $(document).ready(function () {
             pay_ratio = parseFloat(ZhCalc.mul(ZhCalc.div(val, advancePayTotal), 100).toFixed(2))
             cur_amount = ZhCalc.round(val, decimal)
             pay_a_input.val(pay_ratio)
-            const total = parseFloat(ZhCalc.add(val, p_amount).toFixed(decimal)).toString().split('.')[1]
+            const total = parseFloat(ZhCalc.add(cur_amount, p_amount)).toString().split('.')[1]
             // 截止本期金额文案更新
-            $('#p_total2').text(formatMoney(ZhCalc.add(val, p_amount), ',', total && total.length || 0) + '元')
+            $('#p_total2').text(formatMoney(ZhCalc.add(cur_amount, p_amount), ',', total && total.length || 0) + '元')
         } else {
             if (val.toFixed(1) === max.toFixed(1)) {
                 val = max
@@ -222,7 +222,7 @@ $(document).ready(function () {
             cur_amount = ZhCalc.round(ZhCalc.mul(advancePayTotal, ZhCalc.div(val, 100)), decimal)
             pay_ratio = val
             cur_m_input.val(parseFloat(cur_amount.toFixed(decimal)))
-            const total = parseFloat(ZhCalc.add(cur_amount, p_amount).toFixed(decimal)).toString().split('.')[1]
+            const total = parseFloat(ZhCalc.add(cur_amount, p_amount)).toString().split('.')[1]
             // 截止本期金额文案更新
             $('#p_total2').text(formatMoney(ZhCalc.add(cur_amount, p_amount), ',', total && total.length || 0) + '元')
         }

+ 15 - 5
app/public/report/js/rpt_preview_common.js

@@ -82,11 +82,9 @@ function showPreviewData(svgArr, actAreaArr, scaleFactor, pageSize, orientation,
     }
 }
 
-function getActualArea(pageData) {
-    let rst = [];
-    for (let item of pageData.items) {
-        let area = {Left: 10000, Right: 0, Top: 10000, Bottom: 0};
-        for (let cell of item.cells) {
+function _chkActArea(area, cells) {
+    if (cells && cells.length > 0) {
+        for (let cell of cells) {
             if (cell.area.Left < area.Left) {
                 area.Left = cell.area.Left;
             }
@@ -100,6 +98,18 @@ function getActualArea(pageData) {
                 area.Bottom = cell.area.Bottom;
             }
         }
+    }
+}
+
+function getActualArea(pageData) {
+    let rst = [];
+
+    for (let item of pageData.items) {
+        let area = {Left: 10000, Right: 0, Top: 10000, Bottom: 0};
+        _chkActArea(area, item.cells);
+        _chkActArea(area, item.signature_cells);
+        _chkActArea(area, item.signature_date_cells);
+        _chkActArea(area, item.signature_audit_cells);
         rst.push(area);
     }
     return rst;

+ 15 - 5
app/service/advance.js

@@ -35,13 +35,23 @@ module.exports = app => {
             const [sql, sqlParam] = this.sqlBuilder.build(this.tableName);
             const advance = await this.db.query(sql, sqlParam);
             for (const item of advance) {
-                item.pay_ratio = this.ctx.helper.mul(this.ctx.helper.div(item.cur_amount, advancePayTotal), 100, 2) || 0;
-                const s1 = item.cur_amount && item.cur_amount.toString().split('.')[1];
+                let s1,
+                    s3;
                 const s2 = item.prev_amount.toString().split('.')[1];
-                const s3 = item.prev_total_amount.toString().split('.')[1];
-                item.cur_amount = this.ctx.helper.formatMoney(item.cur_amount, ',', s1 && s1.length || 0);
+                item.pay_ratio = this.ctx.helper.mul(this.ctx.helper.div(item.cur_amount, advancePayTotal), 100, 2) || 0;
+                if (item.status === auditConst.status.uncheck || item.status === auditConst.status.checkNo) {
+                    const cur_amount = item.cur_amount && this.ctx.helper.round(item.cur_amount, decimal) || 0;
+                    s1 = parseFloat(cur_amount).toString().split('.')[1];
+                    s3 = parseFloat(this.ctx.helper.add(cur_amount, item.prev_amount)).toString().split('.')[1];
+                    item.cur_amount = this.ctx.helper.formatMoney(cur_amount, ',', s1 && s1.length || 0);
+                    item.prev_total_amount = this.ctx.helper.formatMoney(this.ctx.helper.add(cur_amount, item.prev_amount), ',', s3 && s3.length || 0);
+                } else {
+                    s1 = item.cur_amount && item.cur_amount.toString().split('.')[1];
+                    s3 = item.prev_total_amount.toString().split('.')[1];
+                    item.cur_amount = this.ctx.helper.formatMoney(item.cur_amount, ',', s1 && s1.length || 0);
+                    item.prev_total_amount = this.ctx.helper.formatMoney(item.prev_total_amount, ',', s3 && s3.length || 0);
+                }
                 item.prev_amount = this.ctx.helper.formatMoney(item.prev_amount, ',', s2 && s2.length || 0);
-                item.prev_total_amount = this.ctx.helper.formatMoney(item.prev_total_amount, ',', s3 && s3.length || 0);
                 item.curAuditor = await this.ctx.service.advanceAudit.getAuditorByStatus(item.id, item.status, item.times);
                 if (item.status === auditConst.status.checkNoPre) {
                     item.curAuditor2 = await this.ctx.service.advanceAudit.getAuditorByStatus(item.id, auditConst.status.checking);

+ 1 - 1
app/service/login_logging.js

@@ -37,7 +37,7 @@ module.exports = app => {
          */
         async addLoginLog() {
             const { ctx } = this;
-            const ip = ctx.header['x-real-ip'] ? ctx.header['x-real-ip'] : '';
+            const ip = ctx.request.ip ? ctx.request.ip : '';
             const ipInfo = await this.getIpInfoFromApi(ip);
             const parser = new UAParser(ctx.header['user-agent']);
             const osInfo = parser.getOS();

+ 1 - 1
app/service/project_account.js

@@ -245,7 +245,7 @@ module.exports = app => {
                     this.ctx.session.sessionProjectList = projectList;
                     if (loginStatus === loginWay.normalPsw) {
                         // 正常登录-记录登录日志
-                        await this.ctx.service.loginLogging.addLoginLog();
+                        // await this.ctx.service.loginLogging.addLoginLog();
                     }
 
                 }

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

@@ -43,7 +43,7 @@
                                     <div class="input-group input-group-sm">
                                         <input type="number" class="pay-input form-control nospin text-right" min="1" <%- isEdited  ? '' : 'disabled' %>
                                             placeholder="请填写本期金额,将自动计算支付比例" data-type="1"
-                                            value="<%- advance.cur_amount && isEdited ? parseFloat(advance.cur_amount.toFixed(decimal)) : advance.cur_amount %>">
+                                            value="<%- cur_amount %>">
                                         <div class="input-group-append"><span class="input-group-text">元</span></div>
                                     </div>
                                 </td>

+ 2 - 0
config/config.default.js

@@ -183,5 +183,7 @@ module.exports = appInfo => {
         },
     };
 
+    config.proxy = true;
+
     return config;
 };