@@ -75,4 +75,156 @@ VALUES(2, 'Approved', 'Approved', 1, 1),
7575 (2 , ' Incomplete' , ' Incomplete' , 1 , 3 )
7676
7777
78- ALTER TABLE sfa .status_reason ADD funding_application_type_id INT NULL REFERENCES sfa .funding_application_type (id)
78+ ALTER TABLE sfa .status_reason ADD funding_application_type_id INT NULL REFERENCES sfa .funding_application_type (id)
79+
80+
81+
82+
83+ CREATE FUNCTION [sfa].[fn_financial_coding](@disbursement_id INT )
84+ RETURNS NVARCHAR
85+ AS
86+ BEGIN
87+ DECLARE @coding NVARCHAR = ' ' ;
88+
89+
90+ SELECT @coding = CASE
91+ WHEN app .funding_application_type_id = 1 THEN rt .financial_coding
92+ WHEN app .funding_application_type_id = 2 THEN
93+ CASE WHEN CAST (JSON_VALUE(fr .json_data , ' $.funding_source' ) AS nvarchar ) = ' WDA' THEN ' 031-500707-0301-8888'
94+ WHEN CAST (JSON_VALUE(fr .json_data , ' $.funding_source' ) AS nvarchar ) = ' LMDA' THEN ' 031-500708-0301-8888'
95+ END
96+ END
97+ FROM sfa .disbursement d
98+ INNER JOIN sfa .funding_request fr ON fr .id = d .funding_request_id
99+ LEFT OUTER JOIN sfa .application a1 ON a1 .id = fr .application_id
100+ LEFT OUTER JOIN sfa .funding_application a2 ON a2 .id = fr .funding_application_id
101+ CROSS APPLY (
102+ SELECT
103+ COALESCE (a2 .funding_application_type_id , 1 ) AS funding_application_type_id
104+ ) AS app
105+ INNER JOIN sfa .request_type rt ON rt .id = fr .request_type_id
106+ WHERE d .id = @disbursement_id;
107+
108+ RETURN @coding;
109+ END ;
110+
111+
112+ ALTER FUNCTION [sfa].[get_records_for_cheque_req_dat_file](
113+ @issue_date_str DATE ,
114+ @serial_no INT
115+ )
116+ RETURNS TABLE
117+ AS
118+ RETURN
119+ SELECT
120+ ' 1' + ( LEFT (LTRIM (ISNULL (CAST (d .financial_batch_id_year AS NVARCHAR (2 )), ' 00' )+ ' -' + ISNULL (CAST (d .financial_batch_id AS NVARCHAR (10 )), ' 00' ) ) + REPLICATE (' ' , 12 ) , 12 )) +
121+ SPACE (30 ) + ' ' + ' 0000000' + ' 000000000000000' + ' 0' + FORMAT (CAST (@issue_date_str AS DATE ), ' yyyyMMdd' ) + ' 0' + ' 03 ' + ' CAD ' +
122+ ' 0000000000000' + ' 0000000000000' + ' ' + ' 1' + ' ' + ' 0000000000000' + ' 0000000000000' + ' ' + ' '
123+ AS record1,
124+ ' 2'+ LEFT (s .vendor_id + REPLICATE (' ' , 12 ), 12 ) + ' 03 ' + ' 000000000' +
125+ ( LEFT (LTRIM (ISNULL (CAST (d .financial_batch_id_year AS NVARCHAR (2 )), ' 00' )+ ' -' + ISNULL (CAST (d .financial_batch_id AS NVARCHAR (10 )), ' 00' ) ) + REPLICATE (' ' , 12 ) , 12 ))+
126+ LEFT (CASE WHEN app .student_number IS NULL THEN ' Yukon Student'
127+ ELSE app .student_number
128+ END + REPLICATE (' ' , 22 ) ,
129+ 22 ) +
130+ ' EX'+ ' RE'+ ' CAD '+ ' '+
131+ ' 0'+ FORMAT (CAST (@issue_date_str AS DATE ), ' yyyyMMdd' )+ ' 0'+ ' 000000000'+ ' '+ ' '+
132+ ' '+ ' 0 '+
133+ RIGHT (REPLICATE (' 0' , 15 )+ replace (CONVERT (VARCHAR , ABS (COALESCE (d .disbursed_amount , 0 )), 128 ), ' .' , ' ' ), 15 ) +
134+ REPLICATE (' ' , 30 ) + ' '+ ' 0' + COALESCE (FORMAT (d .due_date , ' yyyyMMdd' ), ' ' ) + ' 000000000'+
135+ ' 000000000000000'+ ' 0'+ ' 000000000000000'+ ' 0'+ ' 000000000000000'+ ' 0'+
136+ ' 000000000000000'+ ' 0'+ ' 000000000000000'+ ' 000000000000000'+ ' 0'+
137+ -- '0000000000000'+' '+ 'TDCAD '+ ' '+ ' '+ ' '+
138+ ' 0000000000000'+ ' '+ ' '+ ' '+ ' '+ ' '+
139+ ' '+ ' '
140+ -- + '1' -- change 0 to 1 for sep payment - Lidwien January 2008, Jira SFA 199
141+ + ' 1' -- change 1 to 0 for sep payment - Lidwien 2020-08-25 as per Sharon for SFA EFT
142+ + ' '+ ' '+
143+ -- decode(institution_pck.get_institution_code_fct(history_detail.institution_id),'BUAA','G','S')+ -- Changed else condition from ' ' to 'S' Lidwien February 2009, Jira SFA 258
144+ -- 'S'+ -- adjusted special handling code to always be S as per Sheila, 2014-01-29 Lidwien SFA-362
145+ ' '+ -- adjusted special handling code to always be space as optional, for NEW EFT no longer required, 2020-08-25 Lidwien
146+ ' 0000000000000'+ ' 0000000000000'+ ' 0000000000000'+ ' 0000000000000'
147+ -- + 'C' -- change space to C for cheque payment type - Lidwien January 2008, Jira SFA 199
148+ + ' ' -- change C to space for cheque payment type - for NEW EFT no longer required, 2020-08-25 Lidwien
149+ + ' 000000000'+ ' 9990206016050 '+ ' '+
150+ REPLICATE (' ' , 22 ) + ' 000000000'+ ' CTL-YUKON '+ ' 0'+ FORMAT (CAST (@issue_date_str AS DATE ), ' yyyyMMdd' ) +
151+ ' 0'+ FORMAT (CAST (@issue_date_str AS DATE ), ' yyyyMMdd' )+ ' 000000000'+ ' 000000000'+ ' '+ ' '+ ' 000000000000000'+
152+ ' 0'+ ' '+ ' 000000000000000'+ ' 0'+ ' '+ ' 000000000000000'+ ' 0'+
153+ ' '+ ' 000000000000000'+ ' 0'+ ' '+ ' 000000000'+ ' 0'+ FORMAT (CAST (@issue_date_str AS DATE ), ' yyyyMMdd' )+ ' 000000000'+
154+ ' 000000000000000'+ ' '+ ' 000000000000000'+ ' 0'+ ' 1'+ ' N'+ ' 2'+ ' 0'+ FORMAT (CAST (@issue_date_str AS DATE ), ' yyyyMMdd' )+
155+ ' '+ ' '+ ' '+ REPLICATE (' ' , 25 ) + ' '+
156+ ' 0'+ ' '+ ' '
157+ as record2, -- Voucher Header (VOH)
158+ ' 3'+ LEFT (s .vendor_id + REPLICATE (' ' , 12 ), 12 ) + ' 03 '+ ' 000000000'+
159+ ' 00001' + ( LEFT (LTRIM (ISNULL (CAST (d .financial_batch_id_year AS NVARCHAR (2 )), ' 00' )+ ' -' + ISNULL (CAST (d .financial_batch_id AS NVARCHAR (10 )), ' 00' ) ) + REPLICATE (' ' , 12 ) , 12 ))+
160+ LEFT (
161+ CASE WHEN app .student_number IS NULL THEN ' Yukon Student'
162+ ELSE app .student_number
163+ END + REPLICATE (' ' , 22 ) ,
164+ 22 )
165+ + ' ' +
166+ RIGHT (REPLICATE (' 0' , 15 )+ replace (CONVERT (VARCHAR , ABS (COALESCE (d .disbursed_amount , 0 )), 128 ), ' .' , ' ' ), 15 ) +
167+ RIGHT (REPLICATE (' 0' , 15 )+ replace (CONVERT (VARCHAR , ABS (COALESCE (d .disbursed_amount , 0 )), 128 ), ' .' , ' ' ), 15 ) +
168+ ' ' + REPLICATE (' ' , 20 ) + ' 000000000000000' + ' ' + ' 0' + ' 000000000000000' + ' 0' +
169+ ' 000000000000000' + ' 0' + ' 000000000000000' + ' 0' + ' 000000000000000'+ ' 0' + ' 000000000000000' +
170+ ' ' + ' ' + ' ' + ' ' + ' ' + ' ' +
171+ ' ' + ' 000' + ' 00000' + ' 000000000' + ' 000000000' + ' 000000000' + ' ' + ' ' +
172+ ' ' + ' ' + ' ' + ' ' + ' '+ ' ' + ' 000000000000000' + ' 0' + ' ' + ' 000000000000000' +
173+ ' 0' + ' ' + ' 000000000000000' + ' 0' + ' ' + ' 000000000000000' + ' 0' + ' ' +
174+ ' ' + ' ' + ' ' + REPLICATE (' ' , 22 ) + ' ' + ' 000000000000000' + ' 0' + ' '+ REPLICATE (' ' ,245 )
175+ as record3, -- Voucher Line Record -- (VOL)
176+ ' 4'+ LEFT (s .vendor_id + REPLICATE (' ' , 12 ), 12 ) + ' 03 '+ ' 000000000'
177+ + ' 00001' + ' 00001'
178+ + ( LEFT (LTRIM (ISNULL (CAST (d .financial_batch_id_year AS NVARCHAR (2 )), ' 00' )+ ' -' + ISNULL (CAST (d .financial_batch_id AS NVARCHAR (10 )), ' 00' ) ) + REPLICATE (' ' , 12 ) , 12 ))+ LEFT (
179+ CASE WHEN app .student_number IS NULL THEN ' Yukon Student'
180+ ELSE app .student_number
181+ END + REPLICATE (' ' , 22 ) ,
182+ 22 )
183+ + (LEFT (ISNULL (sfa .fn_financial_coding (d .id ), ' ' ) + REPLICATE (' ' , 45 ) , 45 )) + ' 03 ' +
184+ RIGHT (REPLICATE (' 0' , 15 )+ replace (CONVERT (VARCHAR , ABS (COALESCE (d .disbursed_amount , 0 )), 128 ), ' .' , ' ' ), 15 )
185+ + ' ' + ' ' + ' '
186+ + CASE WHEN d .tax_year IS NULL THEN ' '
187+ ELSE (LEFT (LTRIM (d .tax_year ) + REPLICATE (' ' , 16 ) , 16 ))
188+ END
189+ + ' 000000000000000'
190+ + ' ' + ' ' + ' '+ REPLICATE (' ' , 573 )
191+ as record4,
192+ d .financial_batch_id_year ,
193+ d .financial_batch_id ,
194+ s .vendor_id
195+ -- Voucher Distribution (VOD)
196+ FROM sfa .request_type rt
197+ INNER JOIN sfa .funding_request fr ON rt .id = fr .request_type_id
198+ INNER JOIN sfa .disbursement d ON fr .id = d .funding_request_id
199+ LEFT JOIN sfa .application a1 ON a1 .id = fr .application_id
200+ LEFT JOIN sfa .funding_application a2 ON a2 .id = fr .funding_application_id
201+ CROSS APPLY (
202+ SELECT
203+ COALESCE (a1 .id , a2 .student_id ) AS id,
204+ COALESCE (a1 .student_id , a2 .student_id ) AS student_id,
205+ COALESCE (a1 .student_number , ' ' ) as student_number
206+ -- Add other columns you need from either table
207+ ) AS app
208+ INNER JOIN sfa .student s ON s .id = app .student_id
209+ WHERE NOT s .vendor_id IS NULL
210+ AND d .disbursed_amount > 0
211+ AND d .disbursement_type_id = 1
212+ AND NOT d .due_date IS NULL
213+ AND d .financial_batch_run_date = @issue_date_str
214+ AND d .financial_batch_serial_no = @serial_no
215+ AND (
216+ CASE WHEN rt .batch_group_id = 5 THEN
217+ CASE
218+ WHEN fr .yea_request_type = 1 THEN 3
219+ WHEN fr .yea_request_type = 2 THEN 4
220+ ELSE 1
221+ END
222+ WHEN rt .batch_group_id = 1 THEN sfa .get_batch_group_id_fct (fr .id )
223+ ELSE rt .batch_group_id
224+ END
225+ ) = 3
226+ -- LOKINGFOR
227+ -- ORDER BY d.financial_batch_id_year, d.financial_batch_id, s.vendor_id;
228+
229+
230+ INSERT INTO sfa .disbursement_type (description , is_active) VALUES (' Cheque - LMDA' , 1 ), (' Cheque - WDA' , 1 )
0 commit comments