|
@@ -98,16 +98,20 @@ module.exports = app => {
|
|
|
return [billsSpread, posSpread];
|
|
|
}
|
|
|
|
|
|
+ async initProjectSpreadByTemplate(id, spreadTemplate) {
|
|
|
+ const data = JSON.parse(JSON.stringify(spreadTemplate.template));
|
|
|
+ [data.tz_ledger_bills_spread, data.tz_ledger_pos_spread] = this.generateRelaSpread('tz_ledger_set', data.tz_ledger_set);
|
|
|
+ [data.tz_stage_bills_spread, data.tz_stage_pos_spread] = this.generateRelaSpread('tz_stage_set', data.tz_stage_set);
|
|
|
+ [data.gcl_ledger_bills_spread, data.gcl_ledger_pos_spread] = this.generateRelaSpread('gcl_ledger_set', data.gcl_ledger_set);
|
|
|
+ [data.gcl_stage_bills_spread, data.gcl_stage_pos_spread] = this.generateRelaSpread('gcl_stage_set', data.gcl_stage_set);
|
|
|
+ const updateData = { pid: id, code: spreadTemplate.code, name: spreadTemplate.name, is_default: spreadTemplate.isDefault ? 1 : 0 };
|
|
|
+ JsonFields.forEach(jf => { if (data[jf]) updateData[jf] = JSON.stringify(data[jf]) });
|
|
|
+ await this.db.insert(this.tableName, updateData);
|
|
|
+ }
|
|
|
+
|
|
|
async initProjectSpread(id) {
|
|
|
- for (const SpreadTemplate of SpreadConst.ProjectSpreadTemplate) {
|
|
|
- const data = JSON.parse(JSON.stringify(SpreadTemplate.template));
|
|
|
- [data.tz_ledger_bills_spread, data.tz_ledger_pos_spread] = this.generateRelaSpread('tz_ledger_set', data.tz_ledger_set);
|
|
|
- [data.tz_stage_bills_spread, data.tz_stage_pos_spread] = this.generateRelaSpread('tz_stage_set', data.tz_stage_set);
|
|
|
- [data.gcl_ledger_bills_spread, data.gcl_ledger_pos_spread] = this.generateRelaSpread('gcl_ledger_set', data.gcl_ledger_set);
|
|
|
- [data.gcl_stage_bills_spread, data.gcl_stage_pos_spread] = this.generateRelaSpread('gcl_stage_set', data.gcl_stage_set);
|
|
|
- const updateData = { pid: id, code: SpreadTemplate.code, name: SpreadTemplate.name, is_default: SpreadTemplate.isDefault };
|
|
|
- JsonFields.forEach(jf => { if (data[jf]) updateData[jf] = JSON.stringify(data[jf]) });
|
|
|
- await this.db.insert(this.tableName, updateData);
|
|
|
+ for (const template of SpreadConst.ProjectSpreadTemplate) {
|
|
|
+ await this.initProjectSpreadByTemplate(id, template);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -123,9 +127,16 @@ module.exports = app => {
|
|
|
columns: ['code', 'name', 'is_default'],
|
|
|
where: { pid: id },
|
|
|
});
|
|
|
- if (result.length > 0) return result;
|
|
|
-
|
|
|
- await this.initProjectSpread(id);
|
|
|
+ if (result.length === SpreadConst.ProjectSpreadTemplate.length) return result;
|
|
|
+
|
|
|
+ if (result.length === 0) {
|
|
|
+ await this.initProjectSpread(id);
|
|
|
+ } else {
|
|
|
+ for (const spreadTemplate of SpreadConst.ProjectSpreadTemplate) {
|
|
|
+ const SpreadType = result.find(x => { return x.code === spreadTemplate.code; });
|
|
|
+ if (!SpreadType) await this.initProjectSpreadByTemplate(id, spreadTemplate);
|
|
|
+ }
|
|
|
+ }
|
|
|
return await this.getAllDataByCondition({
|
|
|
columns: ['code', 'name', 'is_default'],
|
|
|
where: { pid: id },
|