| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | 
							- 'use strict';
 
- module.exports = app => {
 
-     class Schedule extends app.BaseService {
 
-         constructor(ctx) {
 
-             super(ctx);
 
-             this.tableName = 'schedule';
 
-         }
 
-         async saveMode(data) {
 
-             const transaction = await this.db.beginTransaction();
 
-             try {
 
-                 const options = {
 
-                     where: {
 
-                         tid: this.ctx.tender.id,
 
-                     },
 
-                 };
 
-                 const updateData = {
 
-                     mode: data.mode,
 
-                 };
 
-                 await transaction.update(this.tableName, updateData, options);
 
-                 if (data.update_under_ledger.length > 0) {
 
-                     const month_list = [];
 
-                     const update_options = [];
 
-                     for (const un of data.update_under_ledger) {
 
-                         const option = {
 
-                             row: {
 
-                                 plan_tp: un.plan_tp,
 
-                                 plan_gcl: un.plan_gcl,
 
-                             },
 
-                             where: {
 
-                                 tid: this.ctx.tender.id,
 
-                                 lid: un.lid,
 
-                                 yearmonth: un.yearmonth,
 
-                             },
 
-                         };
 
-                         update_options.push(option);
 
-                         if (!this._.find(month_list, un.yearmonth)) {
 
-                             month_list.push(un.yearmonth);
 
-                         }
 
-                     }
 
-                     if (update_options.length > 0) {
 
-                         await transaction.updateRows(this.ctx.service.scheduleLedgerMonth.tableName, update_options);
 
-                         for (const m of month_list) {
 
-                             await this.ctx.service.scheduleLedgerMonth.calcMonthPlan(transaction, this.ctx.tender.id, m);
 
-                         }
 
-                         await this.ctx.service.scheduleMonth.calcPlan(transaction, this.ctx.tender.id);
 
-                     }
 
-                 }
 
-                 await transaction.commit();
 
-                 return true;
 
-             } catch (err) {
 
-                 await transaction.rollback();
 
-                 throw err;
 
-             }
 
-         }
 
-     }
 
-     return Schedule;
 
- };
 
 
  |