Преглед изворни кода

预付款支付时间功能

laiguoran пре 3 година
родитељ
комит
2aff97b5df
5 измењених фајлова са 46 додато и 11 уклоњено
  1. 21 1
      app/public/js/advance_audit.js
  2. 8 4
      app/service/advance.js
  3. 13 5
      app/view/advance/detail.ejs
  4. 1 1
      config/web.js
  5. 3 0
      sql/update.sql

+ 21 - 1
app/public/js/advance_audit.js

@@ -267,7 +267,7 @@ $(document).ready(function () {
             // 支付比例转化
             val = fixedToSub(val)
             if (val.toFixed(2) === max.toFixed(2)) {
-              // 比例达到最大,特殊处理金额的显示小数点
+                // 比例达到最大,特殊处理金额的显示小数点
                 val = fixedToSub(max, 2);
                 isLimitMax = true
             }
@@ -298,6 +298,26 @@ $(document).ready(function () {
         }, 500);
     })
 
+    const payDate = $('.pay-date-input').datepicker().data('datepicker');
+    payDate.selectDate(new Date(advance.pay_time));
+
+    $('.pay-date-input').datepicker({
+        onHide: function (dp, animationCompleted) {
+            if(animationCompleted) {
+                const val = $('.pay-date-input').val();
+                if(!val) {
+                    toastr.error('支付时间不能为空');
+                    $('.pay-date-input').val(moment(advance.pay_time).format('YYYY-MM-DD'));
+                } else if(val !== moment(advance.pay_time).format('YYYY-MM-DD')) {
+                    const data = {
+                        pay_time: val
+                    };
+                    update(data);
+                }
+            }
+        }
+    });
+
     function checkInput() {
         const newVal = {
             cur_amount: parseFloat($(`.pay-input[data-type=${1}]`).val()),

+ 8 - 4
app/service/advance.js

@@ -123,7 +123,7 @@ module.exports = app => {
             } else {
                 latestOrder.order = latestOrder.order + 1;
             }
-            const record = await this.db.insert(this.tableName, { type, uid, tid, status: auditConst.status.uncheck, order: latestOrder.order, prev_amount: latestOrder.prev_total_amount, prev_total_amount: latestOrder.prev_total_amount });
+            const record = await this.db.insert(this.tableName, { type, uid, tid, status: auditConst.status.uncheck, order: latestOrder.order, prev_amount: latestOrder.prev_total_amount, prev_total_amount: latestOrder.prev_total_amount, pay_time: new Date() });
             const auditors = await ctx.service.advanceAudit.getAuditGroupByList(latestOrder.id, latestOrder.times);
             for (let idx = 0; idx < auditors.length; idx++) {
                 const { audit_id } = auditors[idx];
@@ -196,9 +196,13 @@ module.exports = app => {
          */
         async updateAdvance(payload, id) {
             const { ctx } = this;
-            const prevRecord = await this.getPreviousRecord(ctx.tender.id, ctx.advance.type) || { prev_total_amount: 0 };
-            const { cur_amount } = payload;
-            payload.prev_total_amount = ctx.helper.add(cur_amount, prevRecord.prev_total_amount);
+            if (!payload.pay_time) {
+                const prevRecord = await this.getPreviousRecord(ctx.tender.id, ctx.advance.type) || { prev_total_amount: 0 };
+                const { cur_amount } = payload;
+                payload.prev_total_amount = ctx.helper.add(cur_amount, prevRecord.prev_total_amount);
+            } else {
+                payload.pay_time = new Date(payload.pay_time);
+            }
             return await this.update(payload, {
                 id,
             });

+ 13 - 5
app/view/advance/detail.ejs

@@ -39,21 +39,29 @@
                                         <div class="input-group-append"><span class="input-group-text">%</span></div>
                                     </div>
                                 </td>
-                                <th width="150" class="text-center">本期金额</th>
+                                <th width="150" class="text-center">支付时间</th>
                                 <td class="text-right" width="405">
                                     <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="<%- cur_amount %>">
-                                        <div class="input-group-append"><span class="input-group-text">元</span></div>
+                                        <input data-language="zh" type="text" <%- ctx.session.sessionUser.is_admin ? '' : isEdited ? '' : 'disabled' %> readonly data-date-format="yyyy-MM-dd" placeholder="点击选择时间" class="pay-date-input datepicker-here form-control" value="<%- ctx.helper.dateTran(advance.pay_time, 'YYYY/MM/DD') %>">
                                     </div>
                                 </td>
                             </tr>
                             <tr>
+                                <th class="text-center">本期金额</th>
+                                <td class="text-right" width="405">
+                                    <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="<%- cur_amount %>">
+                                        <div class="input-group-append"><span class="input-group-text">元</span></div>
+                                    </div>
+                                </td>
                                 <th class="text-center">截止上期</th>
                                 <td class="text-right" id="p_total1" width="405">
                                     <%- prev_amount %>元
                                 </td>
+                            </tr>
+                            <tr>
                                 <th class="text-center">截止本期金额</th>
                                 <td class="text-right" id="p_total2" width="405">
                                     <%- prev_total_amount %>元

+ 1 - 1
config/web.js

@@ -779,7 +779,7 @@ const JsFiles = {
                 mergeFile: 'advance',
             },
             info: {
-                files: ['/public/js/decimal.min.js'],
+                files: ['/public/js/decimal.min.js', '/public/js/datepicker/datepicker.min.js', '/public/js/datepicker/datepicker.zh.js', '/public/js/moment/moment.min.js'],
                 mergeFiles: ['/public/js/zh_calc.js', '/public/js/advance_audit.js', '/public/js/sub_menu.js'],
                 mergeFile: 'advance_audit',
             },

+ 3 - 0
sql/update.sql

@@ -3,3 +3,6 @@ ALTER TABLE `zh_material` ADD `is_new` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '
 ALTER TABLE `zh_change_plan` ADD `expr` TEXT NULL DEFAULT NULL COMMENT '工程量数量计算式' AFTER `memo`;
 
 ALTER TABLE `zh_project_account` ADD `stamp_path` VARCHAR(255) NULL DEFAULT NULL COMMENT '用户签章oss地址' AFTER `sign_path`;
+
+ALTER TABLE `zh_advance_pay` ADD `pay_time` DATETIME NULL DEFAULT NULL COMMENT '支付时间' AFTER `end_time`;
+UPDATE `zh_advance_pay` SET `pay_time`= `create_time`