Ver código fonte

变更新建同步方案清单

ellisran 10 meses atrás
pai
commit
27126114df

+ 1 - 1
app/controller/change_controller.js

@@ -300,7 +300,7 @@ module.exports = app => {
                 const stateInfo = ctx.helper._.find(fun_set.change_state, { order: 3 });
                 // 在生成新变更令后,需要copy前一个变更令报表的签名信息
                 const lastChange = await ctx.service.change.getLastChange(tenderId);
-                const change = await ctx.service.change.add(tenderId, ctx.session.sessionUser.accountId, data.code, data.plan_code, data.name, stateInfo.value);
+                const change = await ctx.service.change.add(tenderId, ctx.session.sessionUser.accountId, data.code, data.plan_code, data.name, data.add_plan_list, stateInfo.value);
                 await ctx.service.roleRptRel.createRoleRelationshipFromOtherBz(tenderId, '-300', change.cid, lastChange ? lastChange.cid : null);
 
                 ctx.body = { err: 0, msg: '', data: change };

+ 5 - 1
app/public/js/change.js

@@ -152,7 +152,9 @@ const getAuditTypeText = function (type) {
     return `<span class="text-${auditType.info[type].class}">${auditType.info[type].long}</span>`;
 };
 $(document).ready(() => {
-
+    if (openChangePlan) {
+        $('#add_plan_list').prop('checked', getLocalCache('change_add_plan_list'));
+    }
     // 获取审批流程
     $('a[data-target="#sp-list" ]').on('click', function () {
         const data = {
@@ -392,12 +394,14 @@ $(document).ready(() => {
             code: $('#bj-code').val(),
             plan_code: $('#plan-code').val(),
             name: $('#bj-name').val(),
+            add_plan_list: openChangePlan ? $('#add_plan_list').is(':checked') : false,
         };
         if (data.code || data.code !== '' || data.name || data.name !== '') {
             postData('/tender/'+ $('#tenderId').val() +'/change/add', data, function (rst) {
                 $('#bj-code').removeClass('is-invalid');
                 $('#mj-add').modal('hide');
                 $(this).attr('disabled', false);
+                if (openChangePlan) setLocalCache('change_add_plan_list', data.add_plan_list);
                 window.location.href = '/tender/'+ $('#tenderId').val() +'/change/' + rst.cid + '/information';
             }, function () {
                 $('#mj-code').addClass('is-invalid');

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

@@ -57,7 +57,7 @@ $(document).ready(function() {
                 if (is_admin) {
                     html.push(`<td class="text-center">`);
                     if (!node.is_folder) {
-                        html.push(`<a href="javascript:void(0);" data-toggle="modal" data-stid="${node.id}" class="btn btn-sm btn-primary get-audits"> 成员管理</a>`);
+                        html.push(`<a href="javascript:void(0);" data-toggle="modal" data-stid="${node.id}" class="btn btn-sm btn-outline-primary get-audits"> 成员管理</a>`);
                     }
                     html.push('</td>');
                 }

+ 38 - 1
app/service/change.js

@@ -129,7 +129,7 @@ module.exports = app => {
             change.finalAuditorIds = change.userGroups[change.userGroups.length - 1].map(x => { return x.uid; });
         }
 
-        async add(tenderId, userId, code, plan_code, name, delimit = 100) {
+        async add(tenderId, userId, code, plan_code, name, plan_list = false, delimit = 100) {
             const sql = 'SELECT COUNT(*) as count FROM ?? WHERE `tid` = ? AND ((`code` = ? AND `status` != ?) OR (`p_code` = ? AND `status` = ?))';
             const sqlParam = [this.tableName, tenderId, code, audit.change.status.checked, code, audit.change.status.checked];
             const codeCount = await this.db.queryOne(sql, sqlParam);
@@ -180,6 +180,43 @@ module.exports = app => {
                         content = content + (planInfo.content ? (planInfo.reason ? '\r\n' : '') + planInfo.content.replace(/[\r\n]/g, '\r\n') : '');
                         change.content = content ? content : null;
                         change.expr = planInfo.expr;
+                        if (plan_list) {
+                            const planList = await this.ctx.service.changePlanList.getAllDataByCondition({ where: { cpid: planInfo.id } });
+                            const insertList = [];
+                            for (const p of planList) {
+                                insertList.push({
+                                    tid: tenderId,
+                                    cid,
+                                    lid: '0',
+                                    code: p.code,
+                                    name: p.name,
+                                    unit: p.unit,
+                                    unit_price: p.unit_price,
+                                    oamount: p.oamount,
+                                    oamount2: p.oamount,
+                                    camount: p.camount,
+                                    camount_expr: p.camount,
+                                    samount: '',
+                                    gcl_id: '',
+                                    mx_id: '',
+                                    spamount: p.camount,
+                                    detail: '',
+                                    xmj_code: null,
+                                    xmj_jldy: null,
+                                    xmj_dwgc: null,
+                                    xmj_fbgc: null,
+                                    xmj_fxgc: null,
+                                    is_valuation: 1,
+                                    order: null,
+                                    delimit,
+                                });
+                            }
+                            if (insertList.length > 0) {
+                                await this.transaction.insert(this.ctx.service.changeAuditList.tableName, insertList);
+                                // // 重新算变更令总额
+                                // await this.ctx.changeAuditList.calcCamountSum(this.transaction);
+                            }
+                        }
                     }
                 }
                 const operate = await this.transaction.insert(this.tableName, change);

+ 4 - 0
app/view/change/modal.ejs

@@ -109,6 +109,10 @@
                             <% } %>
                         </select>
                     </div>
+                    <div class="form-group form-check">
+                        <input type="checkbox" class="form-check-input" id="add_plan_list">
+                        <label class="form-check-label" for="add_plan_list">同步方案清单</label>
+                    </div>
                     <input value="" type="hidden" id="bj-name">
                 <% } else { %>
                     <div class="form-group">