| 
					
				 | 
			
			
				@@ -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 }, 
			 |