@@ -4000,7 +4000,7 @@ BEGIN
40004000 LEFT JOIN sfa .person_address pam ON pa .person_id = p .id AND pa .address_type_id = 2
40014001 LEFT JOIN sfa .msfaa m ON s .id = m .student_id
40024002 WHERE fr .request_type_id IN (4 , 5 )
4003- AND d .csl_cert_seq_number = @CSL_CERT_SEQ_P or d . csl_cert_seq_number IS NULL
4003+ AND d .csl_cert_seq_number = @CSL_CERT_SEQ_P
40044004 AND d .issue_date >= @FROM_DATE_P AND d .issue_date <= @TO_DATE_P
40054005 AND (m .msfaa_status = ' Received' AND m .is_full_time = CASE WHEN d .disbursement_type_id = 4 THEN 1 ELSE 0 END OR app .academic_year_id <= 2012 )
40064006 AND d .ecert_sent_date IS NULL
@@ -4292,15 +4292,15 @@ BEGIN
42924292 END
42934293 END ;
42944294
4295- SET @out_record3 = ' T' + RIGHT (' 000000' + CAST (@v_count AS VARCHAR ), 6 )
4296- + RIGHT (' 000000000' + CAST (ABS (@v_all_disburse) AS VARCHAR ), 9 )
4297- + RIGHT (' 000000000' + CAST (ABS (@v_cancel_disburse) AS VARCHAR ), 9 )
4295+ SET @out_record3 = ' T' + RIGHT (' 000000' + CAST (ISNULL ( @v_count, 0 ) AS VARCHAR ), 6 )
4296+ + RIGHT (' 000000000' + CAST (ABS (ISNULL ( @v_all_disburse, 0 ) ) AS VARCHAR ), 9 )
4297+ + RIGHT (' 000000000' + CAST (ABS (ISNULL ( @v_cancel_disburse, 0 ) ) AS VARCHAR ), 9 )
42984298 + REPLICATE (' ' , 587 );
42994299 CLOSE cur_cslft;
43004300 DEALLOCATE cur_cslft;
43014301
43024302 SET @out_record4 = @out_record + @out_record2;
4303- RETURN @v_file_name + @out_record + @out_record2 + @out_record3;
4303+ RETURN @v_file_name + @out_record + ISNULL ( @out_record2, ' ' ) + ISNULL ( @out_record3, ' ' ) ;
43044304
43054305END
43064306GO
@@ -4832,4 +4832,194 @@ BEGIN
48324832 RETURN COALESCE (@amt, 0 );
48334833
48344834END ;
4835- GO
4835+ GO
4836+
4837+ CREATE OR ALTER FUNCTION sfa .fn_get_csl_cert_seq_num
4838+ (
4839+ @FROM_DATE_P DATE ,
4840+ @TO_DATE_P DATE
4841+ )
4842+ RETURNS INT AS
4843+ BEGIN
4844+ DECLARE @v_cert_count NUMERIC = 0 ;
4845+
4846+ SELECT @v_cert_count = count (d .id )
4847+ FROM sfa .funding_request AS fr
4848+ INNER JOIN sfa .disbursement AS d ON fr .id = d .funding_request_id
4849+ INNER JOIN sfa .request_type AS rt ON fr .request_type_id = rt .id
4850+ INNER JOIN (
4851+ SELECT m .msfaa_status , app .academic_year_id , app .id
4852+ FROM sfa .msfaa AS m
4853+ INNER JOIN sfa .application AS app ON app .id = m .application_id
4854+ WHERE app .id = m .application_id
4855+ ) AS mhd ON fr .application_id = mhd .id
4856+ WHERE (mhd .msfaa_status = ' Received' OR mhd .academic_year_id <= 2012 )
4857+ AND issue_date >= @FROM_DATE_P
4858+ AND issue_date <= @TO_DATE_P
4859+ AND d .due_date IS NOT NULL
4860+ AND d .transaction_number IS NOT NULL
4861+ AND d .csl_cert_seq_number IS NULL
4862+ AND disbursement_type_id IN (3 , 4 , 5 , 7 , 9 )
4863+ AND fr .request_type_id IN (4 , 5 , 6 , 15 , 16 , 17 , 18 , 19 , 22 , 23 , 24 , 26 , 27 , 28 , 29 , 30 , 31 , 32 , 33 , 35 , 47 )
4864+ AND d .transaction_number IN (
4865+ SELECT d1 .transaction_number
4866+ FROM sfa .disbursement AS d1
4867+ INNER JOIN sfa .funding_request AS fr1 ON d1 .funding_request_id = fr1 .id
4868+ WHERE fr1 .request_type_id IN (4 , 5 ))
4869+
4870+ RETURN @v_cert_count;
4871+ END
4872+ GO
4873+
4874+ CREATE OR ALTER FUNCTION sfa .fn_check_valid_date
4875+ (
4876+ @in_date_p NVARCHAR (100 ),
4877+ @date_name_p NVARCHAR (100 )
4878+ )
4879+ RETURNS NVARCHAR (100 )
4880+ AS
4881+ BEGIN
4882+ DECLARE @v_check_date DATETIME ;
4883+ DECLARE @v_result VARCHAR (50 );
4884+ IF REPLACE (@in_date_p, ' ' , ' ' ) = ' ' OR @in_date_p = ' 00000000'
4885+ BEGIN
4886+ RETURN ' EMPTY' ;
4887+ END
4888+
4889+ ELSE
4890+ BEGIN
4891+ SET @v_check_date = TRY_CONVERT (DATETIME , @in_date_p, 112 );
4892+ IF @v_check_date IS NULL
4893+ BEGIN
4894+ SET @v_result = ' Invalid ' + @date_name_p + ' date: ' + @in_date_p + ' . ' ;
4895+ END
4896+ ELSE
4897+ BEGIN
4898+ SET @v_result = NULL ;
4899+ END
4900+ END ;
4901+ RETURN @v_result;
4902+ END
4903+ GO
4904+
4905+
4906+ CREATE OR ALTER FUNCTION sfa .fn_get_csl_cert_seq_num
4907+ (
4908+ @FROM_DATE_P DATE ,
4909+ @TO_DATE_P DATE
4910+ )
4911+ RETURNS INT AS
4912+ BEGIN
4913+ DECLARE @v_cert_count NUMERIC = 0 ;
4914+
4915+ SELECT @v_cert_count = count (d .id )
4916+ FROM sfa .funding_request AS fr
4917+ INNER JOIN sfa .disbursement AS d ON fr .id = d .funding_request_id
4918+ INNER JOIN sfa .request_type AS rt ON fr .request_type_id = rt .id
4919+ INNER JOIN (
4920+ SELECT m .msfaa_status , app .academic_year_id , app .id
4921+ FROM sfa .msfaa AS m
4922+ INNER JOIN sfa .application AS app ON app .id = m .application_id
4923+ WHERE app .id = m .application_id
4924+ ) AS mhd ON fr .application_id = mhd .id
4925+ WHERE (mhd .msfaa_status = ' Received' OR mhd .academic_year_id <= 2012 )
4926+ AND issue_date >= @FROM_DATE_P
4927+ AND issue_date <= @TO_DATE_P
4928+ AND d .due_date IS NOT NULL
4929+ AND d .transaction_number IS NOT NULL
4930+ AND d .csl_cert_seq_number IS NULL
4931+ AND disbursement_type_id IN (3 , 4 , 5 , 7 , 9 )
4932+ AND fr .request_type_id IN (4 , 5 , 6 , 15 , 16 , 17 , 18 , 19 , 22 , 23 , 24 , 26 , 27 , 28 , 29 , 30 , 31 , 32 , 33 , 35 , 47 )
4933+ AND d .transaction_number IN (
4934+ SELECT d1 .transaction_number
4935+ FROM sfa .disbursement AS d1
4936+ INNER JOIN sfa .funding_request AS fr1 ON d1 .funding_request_id = fr1 .id
4937+ WHERE fr1 .request_type_id IN (4 , 5 ))
4938+
4939+ RETURN @v_cert_count;
4940+ END
4941+ GO
4942+
4943+ CREATE OR ALTER FUNCTION sfa .fn_check_valid_date
4944+ (
4945+ @in_date_p NVARCHAR (100 ),
4946+ @date_name_p NVARCHAR (100 )
4947+ )
4948+ RETURNS NVARCHAR (100 )
4949+ AS
4950+ BEGIN
4951+ DECLARE @v_check_date DATETIME ;
4952+ DECLARE @v_result VARCHAR (50 );
4953+ IF REPLACE (@in_date_p, ' ' , ' ' ) = ' ' OR @in_date_p = ' 00000000'
4954+ BEGIN
4955+ RETURN ' EMPTY' ;
4956+ END
4957+
4958+ ELSE
4959+ BEGIN
4960+ SET @v_check_date = TRY_CONVERT (DATETIME , @in_date_p, 112 );
4961+ IF @v_check_date IS NULL
4962+ BEGIN
4963+ SET @v_result = ' Invalid ' + @date_name_p + ' date: ' + @in_date_p + ' . ' ;
4964+ END
4965+ ELSE
4966+ BEGIN
4967+ SET @v_result = NULL ;
4968+ END
4969+ END ;
4970+ RETURN @v_result;
4971+ END
4972+ GO
4973+
4974+ CREATE OR ALTER PROCEDURE sfa .sp_insert_msfaa_import
4975+ (
4976+ @v_agreement_num NVARCHAR (9 ),
4977+ @v_sin NVARCHAR (9 ),
4978+ @v_status NVARCHAR (1 ),
4979+ @v_borrow_signed NVARCHAR (8 ),
4980+ @v_sp_received NVARCHAR (8 ),
4981+ @v_new_issue_prov NVARCHAR (2 ),
4982+ @v_cancelled NVARCHAR (8 ),
4983+ @v_error_msg NVARCHAR (255 )
4984+ )
4985+ AS
4986+ BEGIN
4987+ INSERT INTO sfa .msfaa_import
4988+ (
4989+ agreement_number,
4990+ sin ,
4991+ status_code,
4992+ borrower_signed_date,
4993+ sp_received_date,
4994+ new_issue_prov,
4995+ cancel_date,
4996+ error_message
4997+ )
4998+ values
4999+ (
5000+ @v_agreement_num ,
5001+ @v_sin,
5002+ @v_status,
5003+ @v_borrow_signed,
5004+ @v_sp_received,
5005+ @v_new_issue_prov,
5006+ @v_cancelled,
5007+ @v_error_msg
5008+ );
5009+ END
5010+ GO
5011+
5012+ -- Get Disbursements For Issue Dates
5013+ CREATE OR ALTER FUNCTION sfa .fn_get_top_disbursements (@application_id INT )
5014+ RETURNS TABLE
5015+ AS
5016+ RETURN
5017+ SELECT TOP 2
5018+ d.*
5019+ FROM sfa .disbursement d
5020+ INNER JOIN sfa .funding_request fr
5021+ ON d .funding_request_id = fr .id
5022+ AND fr .request_type_id IN (4 ,29 ,32 ,35 )
5023+ WHERE fr .application_id = @application_id
5024+ ORDER BY d .due_date DESC ;
5025+ GO
0 commit comments