[Home] [Help]
PACKAGE BODY: APPS.IGF_SL_CL_LI_IMP_PKG
Source
1 PACKAGE BODY IGF_SL_CL_LI_IMP_PKG AS
2 /* $Header: IGFSL19B.pls 120.11 2006/08/07 13:22:03 azmohamm ship $ */
3
4 /*
5 --=========================================================================
6 -- Copyright (c) 1994, 1996 Oracle Corp. Redwood Shores, California, USA
7 -- All rights reserved.
8 -- ========================================================================
9 --
10 -- DESCRIPTION
11 -- PL/SQL Body for package: IGF_SL_CL_LI_IMP_PKG
12 --
13 -- NOTES
14 --
15 -- This package is used to import the legacy FFELP Loan and Disbursement
16 -- data in the system.
17 --
18 ----------------------------------------------------------------------------------
19 -- CHANGE HISTORY
20 ----------------------------------------------------------------------------------
21 -- who when what
22 -- azmohamm 03-AUG-2006 FA 163 Enhancements
23 -- Introduced GPLUSFL
24 -- mnade 6/6/2005 FA 157 - 4382371 - Changes to import cs1/2 related columns from interface table.
25 -- pssahni 3-Nov-2004 FA134 Enhancements
26 -- Added function validate release
27
28 -- svuppala 14-Oct-04 Bug # 3416936
29 Added other loan amount
30 brajendr 12-Oct-2004 FA138 ISIR Enhacements
31 Modified the reference of payment_isir_id
32 */
33 ----------------------------------------------------------------------------------
34 -- veramach July 2004 FA 151 HR Integration (bug#3709292)
35 -- Impacts of obsoleting columns from igf_aw_awd_disb_all
36 ---------------------------------------------------------------------------------
37 -- veramach 04-May-2004 bug 3603289
38 -- Modified cursor cur_student_licence to select
39 -- dependency_status from ISIR. other details are
40 -- derived from igf_sl_gen.get_person_details.
41 -----------------------------------------------------------------------------------
42 -- sjadhav 18-Feb-2004 Bug 3451140
43 -- Check for Non ED Branch ID setup only iff it is not
44 -- '0000'
45 ----------------------------------------------------------------------------------
46 -- veramach 11-Dec-2003 Bug # 3184891 Removed calls to igf_ap_gen.write_log
47 -- and added common logging
48 ----------------------------------------------------------------------------------
49 -- bkkumar 04-DEC-2003 Bug 3252382 FA 131 . TBH impact for the igf_aw_awd_disb_all
50 -- Added two columns ATTENDANCE_TYPE_CODE,BASE_ATTENDANCE_TYPE_CODE
51 ----------------------------------------------------------------------------------
52 -- ugummall 04-NOV-2003 Bug 3102439. FA 126 - Multiple FA Offices.
53 -- Renamed cursor c_ope_id to c_source_or_branch_id with one extra
54 -- parameter cp_source_type.
55 -- ugummall 21-OCT-2003 Bug 3102439. FA 126 - Multiple FA Offices.
56 -- Removed the cursor c_branch_id in is_valid function.
57 -- Modified the cursor c_ope_id in is_valid function.
58 -- Added validation on sch_non_ed_brc_id_txt column.
59 -- bkkumar 16-oct-03 Bug 3104228 FA 122 Build Passed the correct token to
60 -- "award_year" to the fnd_message.
61 ----------------------------------------------------------------------------------
62 -- sjadhav 8-Oct-2003 Bug 3104228 FA 122 Build
63 -- use recipient info from igf_sl_lor_v to
64 -- insert into igf_sl_Lor_loc table
65 ---------------------------------------------------------------------------------
66 -- bkkumar 06-oct-2003 Bug 3104228 FA 122 Loans Enhancements
67 -- a) Impact of obsoleting GUARANTOR_ID_TXT,
68 -- LENDER_ID_TXT,LEND_NON_ED_BRC_ID_TXT,RECIPIENT_ID_TXT,
69 -- RECIPIENT_TYPE,RECIPIENT_NON_ED_BRC_ID_TXT from the
70 -- interface table and also adding a new column relationship_cd
71 -- b) Impact of adding the relationship_cd
72 -- in igf_sl_lor_all table and obsoleting
73 -- BORW_LENDER_ID, DUNS_BORW_LENDER_ID,
74 -- GUARANTOR_ID, DUNS_GUARNT_ID,
75 -- LENDER_ID, DUNS_LENDER_ID
76 -- LEND_NON_ED_BRC_ID, RECIPIENT_ID
77 -- RECIPIENT_TYPE,DUNS_RECIP_ID
78 -- RECIP_NON_ED_BRC_ID columns.
79 -- c) The DUNS_BORW_LENDER_ID
80 -- DUNS_GUARNT_ID
81 -- DUNS_LENDER_ID
82 -- DUNS_RECIP_ID columns are osboleted from the
83 -- igf_sl_lor_loc_all table.
84 ---------------------------------------------------------------------------------
85 -- veramach 23-SEP-2003 Bug 3104228:
86 -- Obsoleted lend_apprv_denied_code,lend_apprv_denied_date
87 -- ,cl_rec_status_last_update,cl_rec_status,mpn_confirm_code
88 -- ,appl_loan_phase_code_chg,appl_loan_phase_code,
89 -- p_ssn_chg_date,p_dob_chg_date,s_ssn_chg_date,s_dob_chg_date,s_local_addr_chg_date,
90 -- chg_batch_id,appl_send_error_codes from igf_sl_lor
91 -- Obsoleted lend_apprv_denied_code,lend_apprv_denied_date,cl_rec_status_last_update,
92 -- cl_rec_status,mpn_confirm_code,appl_loan_phase_code_chg,appl_loan_phase_code,
93 -- p_ssn_chg_date,p_dob_chg_date,s_ssn_chg_date,s_dob_chg_date,s_local_addr_chg_date,
94 -- chg_batch_id from igf_sl_lor_loc
95 ---------------------------------------------------------------------------------
96 -- veramach 16-SEP-2003 FA 122 Build Loan Enhancements
97 -- 1.Changed insert_records procedure's c_loan_dtls cursor
98 -- not to select borrower information
99 -- 2.Changed validations of prc_type_code,disbursement_hld_release_flag,
100 -- record_type
101 ----------------------------------------------------------------------------------
102
103 IMPORT_ERROR EXCEPTION;
104
105 g_tab_index NUMBER :=0;
106 g_p_person_id NUMBER;
107 g_igf_sl_msg_table igf_sl_msg_table;
108
109 g_error VARCHAR2(11);
110
111 g_award_year VARCHAR2(80);
112 g_award_year_status_desc VARCHAR2(80);
113 g_del_flag VARCHAR2(80);
114 g_person_number VARCHAR2(80);
115 g_batch_num VARCHAR2(80);
116 g_loan_record VARCHAR2(80);
117 g_loan_disb VARCHAR2(80);
118 g_processing VARCHAR2(80);
119 g_para_pass VARCHAR2(80);
120 g_sys_award_year VARCHAR2(80);
121 g_rel_version VARCHAR2(30);
122
123 CURSOR c_interface (cp_batch_id NUMBER,
124 cp_alternate_code VARCHAR2,
125 p_import_status_type_1 igf_sl_li_orig_ints.import_status_type%TYPE,
126 p_import_status_type_2 igf_sl_li_orig_ints.import_status_type%TYPE
127 )
128 IS
129 SELECT
130 ROWID,
131 TRUNC(clint.loan_per_begin_date) loan_per_begin_date,
132 TRUNC(clint.loan_per_end_date) loan_per_end_date,
133 TRUNC(clint.loan_status_date) loan_status_date,
134 TRUNC(clint.active_date) active_date,
135 TRUNC(clint.anticip_compl_date) anticip_compl_date,
136 TRUNC(clint.b_permt_addr_chg_date) b_permt_addr_chg_date,
137 TRUNC(clint.b_signature_date) b_signature_date,
138 TRUNC(clint.credit_status_date) credit_status_date,
139 TRUNC(clint.guarantee_date) guarantee_date,
140 TRUNC(clint.guarnt_status_date) guarnt_status_date,
141 TRUNC(clint.lend_status_date) lend_status_date,
142 TRUNC(clint.lend_blkt_guarnt_appr_date) lend_blkt_guarnt_appr_date,
143 TRUNC(clint.orig_ack_date) orig_ack_date,
144 TRUNC(clint.orig_batch_date) orig_batch_date,
145 TRUNC(clint.pnote_status_date) pnote_status_date,
146 TRUNC(clint.sch_cert_date) sch_cert_date,
147 TRUNC(clint.sch_refund_date) sch_refund_date,
148 TRUNC(clint.file_creation_date) file_creation_date,
149 TRUNC(clint.file_trans_date) file_trans_date,
150 clint.batch_num,
151 clint.loan_seq_num,
152 clint.act_interest_rate_num,
153 clint.alt_appl_ver_code_num,
154 clint.alt_borw_tot_stu_loan_debt_amt,
155 clint.borw_gross_annual_sal_amt,
156 clint.borw_other_income_amt,
157 clint.cl_seq_num,
158 clint.coa_amt,
159 clint.efc_amt,
160 clint.est_fa_amt,
161 clint.fed_sls_debt_amt,
162 clint.fed_stafford_loan_debt_amt,
163 clint.flp_approved_amt,
164 clint.flp_cert_amt,
165 clint.fls_approved_amt,
166 clint.fls_cert_amt,
167 clint.flu_approved_amt,
168 clint.flu_cert_amt,
169 clint.guarantee_amt,
170 clint.heal_debt_amt,
171 clint.other_debt_amt,
172 clint.perkins_debt_amt,
173 clint.req_loan_amt,
174 clint.sch_refund_amt,
175 clint.stud_mth_auto_pymt_amt,
176 clint.stud_mth_crdtcard_pymt_amt,
177 clint.stud_mth_ed_loan_pymt_amt,
178 clint.stud_mth_housing_pymt_amt,
179 clint.stud_mth_other_pymt_amt,
180 clint.tot_outstd_plus_amt,
181 clint.tot_outstd_stafford_amt,
182 clint.alt_cert_amt,
183 clint.alt_approved_amt,
184 clint.reinst_avail_amt,
185 TRIM(clint.ci_alternate_code) ci_alternate_code,
186 TRIM(clint.person_number) person_number,
187 TRIM(clint.award_number_txt) award_number_txt,
188 TRIM(clint.loan_number_txt) loan_number_txt,
189 TRIM(clint.import_status_type) import_status_type,
190 TRIM(clint.loan_status_code) loan_status_code,
191 TRIM(clint.active_flag) active_flag,
192 TRIM(clint.act_serial_loan_code) act_serial_loan_code,
193 TRIM(clint.alt_prog_type_cd) alt_prog_type_cd,
194 TRIM(clint.borr_person_number) borr_person_number,
195 TRIM(clint.b_default_status_flag) b_default_status_flag,
196 TRIM(clint.b_foreign_postal_cd) b_foreign_postal_cd,
197 TRIM(clint.b_stu_indicator_flag) b_stu_indicator_flag,
198 TRIM(clint.b_reference_flag) b_reference_flag,
199 TRIM(clint.b_signature_flag) b_signature_flag,
200 TRIM(clint.borr_credit_auth_flag) borr_credit_auth_flag,
201 TRIM(clint.borr_sign_flag) borr_sign_flag,
202 TRIM(clint.borw_confirm_flag) borw_confirm_flag,
203 TRIM(clint.borw_interest_flag) borw_interest_flag,
204 TRIM(clint.borw_outstd_loan_flag) borw_outstd_loan_flag,
205 TRIM(clint.crdt_undr_difft_name_flag) crdt_undr_difft_name_flag,
206 TRIM(clint.credit_status_code) credit_status_code,
207 TRIM(clint.eft_auth_flag) eft_auth_flag,
208 TRIM(clint.enrollment_code) enrollment_code,
209 TRIM(clint.err_mesg_1_cd) err_mesg_1_cd,
210 TRIM(clint.err_mesg_2_cd) err_mesg_2_cd,
211 TRIM(clint.err_mesg_3_cd) err_mesg_3_cd,
212 TRIM(clint.err_mesg_4_cd) err_mesg_4_cd,
213 TRIM(clint.err_mesg_5_cd) err_mesg_5_cd,
214 TRIM(clint.fed_appl_form_type) fed_appl_form_type,
215 TRIM(clint.grade_level_code) grade_level_code,
216 TRIM(clint.guarnt_adj_flag) guarnt_adj_flag,
217 TRIM(clint.guarnt_amt_redn_code) guarnt_amt_redn_code,
218 TRIM(clint.guarnt_status_code) guarnt_status_code,
219 TRIM(clint.int_rate_opt_code) int_rate_opt_code,
220 TRIM(clint.last_resort_lender_flag) last_resort_lender_flag,
221 TRIM(clint.lend_status_code) lend_status_code,
222 TRIM(clint.lend_blkt_guarnt_flag) lend_blkt_guarnt_flag,
223 TRIM(clint.orig_ack_batch_id_txt) orig_ack_batch_id_txt,
224 TRIM(clint.orig_send_batch_id_txt) orig_send_batch_id_txt,
225 TRIM(clint.pnote_delivery_code) pnote_delivery_code,
226 TRIM(clint.pnote_status_code) pnote_status_code,
227 TRIM(clint.prc_type_code) prc_type_code,
228 TRIM(clint.record_code) record_code,
229 TRIM(clint.repayment_opt_code) repayment_opt_code,
230 TRIM(clint.req_serial_loan_code) req_serial_loan_code,
231 TRIM(clint.resp_to_orig_flag) resp_to_orig_flag,
232 TRIM(clint.rev_notice_of_guarnt_code) rev_notice_of_guarnt_code,
233 TRIM(clint.s_default_status_flag) s_default_status_flag,
234 TRIM(clint.s_signature_flag) s_signature_flag,
235 TRIM(clint.sch_non_ed_brc_id_txt) sch_non_ed_brc_id_txt,
236 TRIM(clint.service_type_code) service_type_code,
237 TRIM(clint.stud_sign_flag) stud_sign_flag,
238 TRIM(clint.student_major_txt) student_major_txt,
239 TRIM(clint.uniq_layout_ident_code) uniq_layout_ident_code,
240 TRIM(clint.uniq_layout_vend_code) uniq_layout_vend_code,
241 TRIM(clint.orig_batch_id_txt) orig_batch_id_txt,
242 TRIM(clint.defer_req_flag) defer_req_flag,
243 TRIM(clint.b_license_state_code) b_license_state_code,
244 TRIM(clint.b_license_number_txt) b_license_number_txt,
245 TRIM(clint.send_resp_code) send_resp_code,
246 TRIM(clint.source_id_txt) source_id_txt,
247 TRIM(clint.source_non_ed_brc_id_txt) source_non_ed_brc_id_txt,
248 TRIM(clint.import_record_type) import_record_type,
249 TRIM(clint.relationship_cd) relationship_cd, -- FA 122 Loans Enhancements,
250 TRIM(clint.actual_record_type_code) actual_record_type_code,
251 TRIM(clint.lend_apprv_denied_code) lend_apprv_denied_code,
252 TRIM(clint.lend_apprv_denied_date) lend_apprv_denied_date,
253 TRIM(clint.cl_rec_status) cl_rec_status,
254 TRIM(clint.appl_loan_phase_code) appl_loan_phase_code,
255 TRIM(clint.mpn_confirm_code) mpn_confirm_code,
256 TRIM(clint.appl_loan_phase_code_chg) appl_loan_phase_code_chg,
257 TRIM(clint.external_loan_id_txt) external_loan_id_txt,
258 TRUNC(clint.other_loan_amt) other_loan_amt,
259 TRIM(clint.guarantor_use_txt) guarantor_use_txt,
260 TRIM(clint.lender_use_txt) lender_use_txt,
261 TRIM(clint.school_use_txt) school_use_txt,
262 TRIM(cl_rec_status_last_update) cl_rec_status_last_update,
263 TRIM(clint.cs1_lname) cs1_lname,
264 TRIM(clint.cs1_fname) cs1_fname,
265 TRIM(clint.cs1_mi_txt) cs1_mi_txt,
266 TRIM(clint.cs1_ssn_txt) cs1_ssn_txt,
267 TRIM(clint.cs1_citizenship_status) cs1_citizenship_status,
268 TRIM(clint.cs1_address_line_1_txt) cs1_address_line_1_txt,
269 TRIM(clint.cs1_address_line_2_txt) cs1_address_line_2_txt,
270 TRIM(clint.cs1_city_txt) cs1_city_txt,
271 TRIM(clint.cs1_state_txt) cs1_state_txt,
272 TRIM(clint.cs1_zip_txt) cs1_zip_txt,
273 TRIM(clint.cs1_zip_suffix_txt) cs1_zip_suffix_txt,
274 TRIM(clint.cs1_telephone_number_txt) cs1_telephone_number_txt,
275 TRIM(clint.cs1_signature_code_txt) cs1_signature_code_txt,
276 TRIM(clint.cs2_lname) cs2_lname,
277 TRIM(clint.cs2_fname) cs2_fname,
278 TRIM(clint.cs2_mi_txt) cs2_mi_txt,
279 TRIM(clint.cs2_ssn_txt) cs2_ssn_txt,
280 TRIM(clint.cs2_citizenship_status) cs2_citizenship_status,
281 TRIM(clint.cs2_address_line_1_txt) cs2_address_line_1_txt,
282 TRIM(clint.cs2_address_line_2_txt) cs2_address_line_2_txt,
283 TRIM(clint.cs2_city_txt) cs2_city_txt,
284 TRIM(clint.cs2_state_txt) cs2_state_txt,
285 TRIM(clint.cs2_zip_txt) cs2_zip_txt,
286 TRIM(clint.cs2_zip_suffix_txt) cs2_zip_suffix_txt,
287 TRIM(clint.cs2_telephone_number_txt) cs2_telephone_number_txt,
288 TRIM(clint.cs2_signature_code_txt) cs2_signature_code_txt,
289 TRIM(clint.cs1_credit_auth_code_txt) cs1_credit_auth_code_txt,
290 TRUNC(clint.cs1_birth_date) cs1_birth_date,
291 TRIM(clint.cs1_drv_license_num_txt) cs1_drv_license_num_txt,
292 TRIM(clint.cs1_drv_license_state_txt) cs1_drv_license_state_txt,
293 SUBSTR(clint.cs1_elect_sig_ind_code_txt, 1, 1) cs1_elect_sig_ind_code_txt, -- Since the elect sig can come in as " " for N, treating it the same way
294 TRIM(clint.cs1_frgn_postal_code_txt) cs1_frgn_postal_code_txt,
295 TRIM(clint.cs1_frgn_tel_num_prefix_txt) cs1_frgn_tel_num_prefix_txt,
296 TRUNC(clint.cs1_gross_annual_sal_num) cs1_gross_annual_sal_num,
297 TRIM(clint.cs1_mthl_auto_pay_txt) cs1_mthl_auto_pay_txt,
298 TRIM(clint.cs1_mthl_cc_pay_txt) cs1_mthl_cc_pay_txt,
299 TRIM(clint.cs1_mthl_edu_loan_pay_txt) cs1_mthl_edu_loan_pay_txt,
300 TRIM(clint.cs1_mthl_housing_pay_txt) cs1_mthl_housing_pay_txt,
301 TRIM(clint.cs1_mthl_other_pay_txt) cs1_mthl_other_pay_txt,
302 TRUNC(clint.cs1_other_income_amt) cs1_other_income_amt,
303 TRIM(clint.cs1_rel_to_student_flag) cs1_rel_to_student_flag,
304 TRIM(clint.cs1_suffix_txt) cs1_suffix_txt,
305 TRUNC(clint.cs1_years_at_address_txt) cs1_years_at_address_txt,
306 TRIM(clint.cs2_credit_auth_code_txt) cs2_credit_auth_code_txt,
307 TRUNC(clint.cs2_birth_date) cs2_birth_date,
308 TRIM(clint.cs2_drv_license_num_txt) cs2_drv_license_num_txt,
309 TRIM(clint.cs2_drv_license_state_txt) cs2_drv_license_state_txt,
310 SUBSTR(clint.cs2_elect_sig_ind_code_txt, 1, 1) cs2_elect_sig_ind_code_txt, -- Since the elect sig can come in as " " for N, treating it the same way
311 TRIM(clint.cs2_frgn_postal_code_txt) cs2_frgn_postal_code_txt,
312 TRIM(clint.cs2_frgn_tel_num_prefix_txt) cs2_frgn_tel_num_prefix_txt,
313 TRUNC(clint.cs2_gross_annual_sal_num) cs2_gross_annual_sal_num,
314 TRIM(clint.cs2_mthl_auto_pay_txt) cs2_mthl_auto_pay_txt,
315 TRIM(clint.cs2_mthl_cc_pay_txt) cs2_mthl_cc_pay_txt,
316 TRIM(clint.cs2_mthl_edu_loan_pay_txt) cs2_mthl_edu_loan_pay_txt,
317 TRIM(clint.cs2_mthl_housing_pay_txt) cs2_mthl_housing_pay_txt,
318 TRIM(clint.cs2_mthl_other_pay_txt) cs2_mthl_other_pay_txt,
319 TRUNC(clint.cs2_other_income_amt) cs2_other_income_amt,
320 TRIM(clint.cs2_rel_to_student_flag) cs2_rel_to_student_flag,
321 TRIM(clint.cs2_suffix_txt) cs2_suffix_txt,
322 TRUNC(clint.cs2_years_at_address_txt) cs2_years_at_address_txt,
323 TRIM(clint.esign_src_typ_cd) esign_src_typ_cd -- FA 161 - CL 4
324 FROM
325 igf_sl_li_orig_ints clint
326 WHERE
327 clint.batch_num = cp_batch_id AND
328 clint.ci_alternate_code = cp_alternate_code AND
329 (clint.import_status_type = p_import_status_type_1 OR clint.import_status_type = p_import_status_type_2)
330 ORDER BY clint.person_number;
331
332 CURSOR c_disb_interface(cp_alternate_code VARCHAR2,
333 cp_person_number VARCHAR2,
334 cp_award_number_txt VARCHAR2,
335 cp_loan_number VARCHAR2)
336 IS
337 SELECT
338 TRUNC(dlint.disbursement_date) disbursement_date,
339 TRUNC(dlint.fund_release_date) fund_release_date,
340 TRUNC(dlint.guarantee_date) guarantee_date,
341 TRUNC(dlint.pnote_status_date) pnote_status_date,
342 TRUNC(dlint.disbursement_status_date) disbursement_status_date,
343 TRUNC(dlint.fund_status_date) fund_status_date,
344 TRUNC(dlint.file_creation_date) file_creation_date,
345 TRUNC(dlint.file_trans_date) file_trans_date,
346 dlint.disbursement_num,
347 dlint.sch_disbursement_num,
348 dlint.guarantee_amt,
349 dlint.gross_disbursement_amt,
350 dlint.origination_fee_amt,
351 dlint.guarantee_fee_amt,
352 dlint.guarantee_fees_paid_amt,
353 dlint.net_cancel_amt,
354 dlint.origination_fees_paid_amt,
355 dlint.netted_cancel_amt,
356 dlint.outstd_cancel_amt,
357 TRIM(dlint.ci_alternate_code) ci_alternate_code,
358 TRIM(dlint.person_number) person_number,
359 TRIM(dlint.award_number_txt) award_number_txt,
360 TRIM(dlint.loan_number_txt) loan_number_txt,
361 TRIM(dlint.record_type) record_type,
362 TRIM(dlint.school_use_txt) school_use_txt,
363 TRIM(dlint.lender_use_txt) lender_use_txt,
364 TRIM(dlint.guarantor_use_txt) guarantor_use_txt,
365 TRIM(dlint.fund_dist_mthd_type) fund_dist_mthd_type,
366 TRIM(dlint.check_number_txt) check_number_txt,
367 TRIM(dlint.late_disbursement_flag) late_disbursement_flag,
368 TRIM(dlint.prev_reported_flag) prev_reported_flag,
369 TRIM(dlint.err_mesg_1_cd) err_mesg_1_cd,
370 TRIM(dlint.err_mesg_2_cd) err_mesg_2_cd,
371 TRIM(dlint.err_mesg_3_cd) err_mesg_3_cd,
372 TRIM(dlint.err_mesg_4_cd) err_mesg_4_cd,
373 TRIM(dlint.err_mesg_5_cd) err_mesg_5_cd,
374 TRIM(dlint.disbursement_hld_release_flag) disbursement_hld_release_flag,
375 TRIM(dlint.pnote_code) pnote_code,
376 TRIM(dlint.disbursement_status_code) disbursement_status_code,
377 TRIM(dlint.fund_status_code) fund_status_code,
378 TRIM(dlint.lender_name) lender_name,
379 TRIM(dlint.roster_batch_id_txt) roster_batch_id,
380 TRIM(dlint.recipient_id_txt) recipient_id_txt,
381 TRIM(dlint.recipient_non_ed_brc_id_txt) recipient_non_ed_brc_id_txt,
382 TRIM(dlint.source_id_txt) source_id_txt,
383 TRIM(dlint.source_non_ed_brc_id_txt) source_non_ed_brc_id_txt,
384 TRIM(dlint.send_resp_code) send_resp_code,
385 TRIM(dlint.direct_to_borr_flag) direct_to_borr_flag
386 FROM
387 igf_sl_li_org_disb_ints dlint
388 WHERE
389 dlint.ci_alternate_code = cp_alternate_code AND
390 dlint.person_number = cp_person_number AND
391 dlint.award_number_txt = cp_award_number_txt AND
392 dlint.loan_number_txt = cp_loan_number;
393
394 CURSOR c_get_award (cp_base_id NUMBER,
395 cp_award_number VARCHAR2)
396 IS
397 SELECT awd.award_id,
398 awd.offered_amt,
399 awd.accepted_amt,
400 fcat.fed_fund_code,
401 fcat.fund_code
402 FROM igf_aw_award_all awd,
403 igf_aw_fund_mast_all fmast,
404 igf_aw_fund_cat_all fcat
405 WHERE awd.base_id = cp_base_id AND
406 awd.award_number_txt = cp_award_number AND
407 awd.fund_id = fmast.fund_id AND
408 fmast.fund_code = fcat.fund_code;
409
410 l_get_award c_get_award%ROWTYPE;
411
412
413 PROCEDURE log_parameters(p_alternate_code VARCHAR2,
414 p_batch_number VARCHAR2,
415 p_del_ind VARCHAR2)
416 IS
417 --
418 -- Created By : brajendr
419 -- Created On : 10-Jul-2003
420 -- Purpose : This process log the parameters in the log file
421 -- Known limitations, enhancements or remarks :
422 -- Change History :
423 -- Who When What
424 -- (reverse chronological order - newest change first)
425 --
426
427 -- Get the values from the lookups
428
429 CURSOR c_get_parameters
430 IS
431 SELECT meaning, lookup_code
432 FROM igf_lookups_view
433 WHERE lookup_type = 'IGF_GE_PARAMETERS'
434 AND lookup_code IN ('AWARD_YEAR',
435 'BATCH_NUMBER',
436 'DELETE_FLAG',
437 'PARAMETER_PASS',
438 'PROCESSING',
439 'LOAN_DISB',
440 'LOAN_RECORD',
441 'AWARD_YR_STATUS',
442 'PERSON_NUMBER');
443
444 parameter_rec c_get_parameters%ROWTYPE;
445
446
447 BEGIN
448
449 OPEN c_get_parameters;
450 LOOP
451 FETCH c_get_parameters INTO parameter_rec;
452 EXIT WHEN c_get_parameters%NOTFOUND;
453
454 IF parameter_rec.lookup_code ='AWARD_YEAR' THEN
455 g_award_year := TRIM(parameter_rec.meaning);
456
457 ELSIF parameter_rec.lookup_code ='BATCH_NUMBER' THEN
458 g_batch_num := TRIM(parameter_rec.meaning);
459
460 ELSIF parameter_rec.lookup_code ='DELETE_FLAG' THEN
461 g_del_flag := TRIM(parameter_rec.meaning);
462
463 ELSIF parameter_rec.lookup_code ='PARAMETER_PASS' THEN
464 g_para_pass := TRIM(parameter_rec.meaning);
465
466 ELSIF parameter_rec.lookup_code ='PROCESSING' THEN
467 g_processing := TRIM(parameter_rec.meaning);
468
469 ELSIF parameter_rec.lookup_code ='LOAN_RECORD' THEN
470 g_loan_record := TRIM(parameter_rec.meaning);
471
472 ELSIF parameter_rec.lookup_code ='LOAN_DISB' THEN
473 g_loan_disb := TRIM(parameter_rec.meaning);
474
475 ELSIF parameter_rec.lookup_code ='PERSON_NUMBER' THEN
476 g_person_number := TRIM(parameter_rec.meaning);
477
478 ELSIF parameter_rec.lookup_code ='AWARD_YR_STATUS' THEN
479 g_award_year_status_desc := TRIM(parameter_rec.meaning);
480 END IF;
481
482 END LOOP;
483 CLOSE c_get_parameters;
484
485 fnd_file.new_line(fnd_file.log,1);
486 fnd_file.put_line(fnd_file.log, g_para_pass); --------------Parameters Passed--------------
487 fnd_file.new_line(fnd_file.log,1);
488
489 fnd_file.put_line(fnd_file.log, RPAD(g_award_year,40) || ' : '|| p_alternate_code);
490 fnd_file.put_line(fnd_file.log, RPAD(g_batch_num,40) || ' : '|| p_batch_number);
491 fnd_file.put_line(fnd_file.log, RPAD(g_del_flag,40) || ' : '|| p_del_ind);
492
493 fnd_file.new_line(fnd_file.log,1);
494 fnd_file.put_line(fnd_file.log, '--------------------------------------------------------');
495 fnd_file.new_line(fnd_file.log,1);
496
497
498 EXCEPTION
499 WHEN OTHERS THEN
500 IF fnd_log.level_exception >= fnd_log.g_current_runtime_level THEN
501 fnd_log.string(fnd_log.level_exception,'igf.plsql.igf_sl_cl_li_imp_pkg.log_parameters.exception','LOG_PARAMETERS :: ' || SQLERRM);
502 END IF;
503 fnd_message.set_name('IGF','IGF_GE_UNHANDLED_EXP');
504 fnd_message.set_token('NAME','IGF_SL_CL_LI_IMP_PKG.LOG_PARAMETERS');
505 igs_ge_msg_stack.add;
506
507 END log_parameters;
508
509
510 FUNCTION is_valid(p_loan_number IN VARCHAR2,
511 p_cal_type IN VARCHAR2,
512 p_seq_number IN VARCHAR2)
513
514 RETURN BOOLEAN
515 AS
516 --
517 -- Created By : gmuralid
518 -- Created On : 24-JUN-2003
519 -- Purpose : The function is used to validate loan number
520 -- Known limitations, enhancements or remarks :
521 -- Change History :
522 -- Who When What
523 -- ugummall 04-NOV-2003 Bug 3102439. FA 126 - Multiple FA Offices.
524 -- Renamed cursor c_ope_id to c_source_or_branch_id with one extra
525 -- parameter cp_source_type.
526 -- ugummall 21-OCT-2003 Bug 3102439. FA 126 - Multiple FA Offices.
527 -- Removed the cursor c_branch_id and its reference.
528 -- Modified the cursor c_ope_id so that cp_ope_id is
529 -- configured as an active OPEID in the system under any Org Unit.
530 -- (reverse chronological order - newest change first)
531 --
532
533 CURSOR c_source_or_branch_id(cp_source_or_branch_id VARCHAR2, cp_source_type VARCHAR2)
534 IS
535 SELECT 1
536 FROM hz_parties hz,
537 igs_or_org_alt_ids oli,
538 igs_or_org_alt_idtyp olt
539 WHERE oli.org_structure_id = hz.party_number
540 AND oli.org_alternate_id_type = olt.org_alternate_id_type
541 AND SYSDATE BETWEEN oli.start_date AND NVL(oli.end_date, SYSDATE)
542 AND hz.status = 'A'
543 AND oli.org_alternate_id = cp_source_or_branch_id
544 AND system_id_type = cp_source_type;
545
546
547 l_source_or_branch_id c_source_or_branch_id%ROWTYPE;
548
549 l_part_1 VARCHAR2(8);
550 l_part_2 VARCHAR2(4);
551 l_part_3 VARCHAR2(3);
552
553 l_part3_1 VARCHAR2(1);
554 l_part3_2 VARCHAR2(1);
555 l_part3_3 VARCHAR2(1);
556 l_part_4 VARCHAR2(3);
557
558 l_part4_1 VARCHAR2(1);
559 l_part4_2 VARCHAR2(1);
560 l_part4_3 VARCHAR2(1);
561
562 BEGIN
563
564 l_part_1 := SUBSTR(p_loan_number,1,8);
565
566 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
567 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_li_imp_pkg.is_valid.debug','IS_VALID: l_part_1 ' || l_part_1);
568 END IF;
569
570 OPEN c_source_or_branch_id(l_part_1, 'OPE_ID_NUM');
571 FETCH c_source_or_branch_id INTO l_source_or_branch_id;
572 IF (c_source_or_branch_id%NOTFOUND) THEN
573 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
574 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_li_imp_pkg.is_valid.debug','IS_VALID: l_part_1 not valid for school id' || l_part_1);
575 END IF;
576 CLOSE c_source_or_branch_id;
577 RETURN FALSE;
578 ELSE
579 CLOSE c_source_or_branch_id;
580 END IF;
581
582 l_part_2 := SUBSTR(p_loan_number,7,4);
583
584 IF l_part_2 <> '0000' THEN
585 OPEN c_source_or_branch_id(l_part_2, 'SCH_NON_ED_BRC_ID');
586 FETCH c_source_or_branch_id INTO l_source_or_branch_id;
587 IF (c_source_or_branch_id%NOTFOUND) THEN
588 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
589 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_li_imp_pkg.is_valid.debug','IS_VALID: l_part_2 not valid for school non ed branch id' || l_part_2);
590 END IF;
591 CLOSE c_source_or_branch_id;
592 RETURN FALSE;
593 ELSE
594 CLOSE c_source_or_branch_id;
595 END IF;
596 END IF;
597
598 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
599 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_li_imp_pkg.is_valid.debug','IS_VALID: l_part_2 ' || l_part_2);
600 END IF;
601
602 l_part_3 := SUBSTR(p_loan_number,12,3);
603 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
604 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_li_imp_pkg.is_valid.debug','IS_VALID: l_part_3 ' || l_part_3);
605 END IF;
606 l_part3_1 := SUBSTR(l_part_3,1,1);
607 l_part3_2 := SUBSTR(l_part_3,2,1);
608 l_part3_3 := SUBSTR(l_part_3,3,1);
609
610 IF l_part3_1 NOT IN ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S') THEN
611 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
612 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_li_imp_pkg.is_valid.debug','IS_VALID: l_part3_1 ' || l_part3_1);
613 END IF;
614 RETURN FALSE;
615 ELSIF (l_part3_1 = 'S') THEN
616 IF l_part3_2 NOT IN ('0','1','2','3','4','5','6','7','8','9','A','B') THEN
617 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
618 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_li_imp_pkg.is_valid.debug','is_valid: l_part3_2 ' || l_part3_2);
619 END IF;
620 RETURN FALSE;
621 END IF;
622 ELSIF (l_part3_1 <> 'S') THEN
623 IF l_part3_2 NOT IN ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J',
624 'K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z') THEN
625 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
626 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_im_pkg.is_valid.debug','IS_VALID: l_part3_2 - II ' || l_part3_2);
627 END IF;
628 RETURN FALSE;
629 END IF;
630 ELSIF (l_part3_1 = 'S') AND (l_part3_2 = 'B') THEN
631 IF l_part3_3 NOT IN ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F') THEN
632 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
633 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.is_valid.debug','IS_VALID: l_part3_3 ' || l_part3_3);
634 END IF;
635 RETURN FALSE;
636 END IF;
637 ELSIF (l_part3_1 <> 'S') OR (l_part3_2 <> 'B') THEN
638 IF l_part3_3 NOT IN ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J',
639 'K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z') THEN
640 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
641 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.is_valid.debug','IS_VALID: l_part3_3 - II ' || l_part3_3);
642 END IF;
643 RETURN FALSE;
644 END IF;
645 END IF;
646
647 l_part_4 := SUBSTR(p_loan_number,15,3);
648
649 IF l_part_4 = '000' THEN
650 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
651 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.is_valid.debug','IS_VALID: l_part_4 ' || l_part_4);
652 END IF;
653 RETURN FALSE;
654 ELSE
655 l_part4_1 := SUBSTR(l_part_4,1,1);
656 l_part4_2 := SUBSTR(l_part_4,2,1);
657 l_part4_3 := SUBSTR(l_part_4,3,1);
658
659 IF l_part4_1 NOT IN ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J',
660 'K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z') THEN
661
662 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
663 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.is_valid.debug','IS_VALID: l_part4_1 ' || l_part4_1);
664 END IF;
665 RETURN FALSE;
666
667 ELSIF l_part4_2 NOT IN ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J',
668 'K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z') THEN
669 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
670 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.is_valid.debug','IS_VALID: l_part4_2 ' || l_part4_2);
671 END IF;
672 RETURN FALSE;
673
674 ELSIF l_part4_3 NOT IN ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J',
675 'K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z') THEN
676 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
677 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.is_valid.debug','IS_VALID: l_part4_3 ' || l_part4_3);
678 END IF;
679 RETURN FALSE;
680
681 END IF;
682 END IF;
683
684 RETURN TRUE;
685
686 END is_valid;
687
688 FUNCTION validate_release( l_interface IN c_interface%ROWTYPE,
689 p_cal_type IN VARCHAR2,
690 p_seq_number IN NUMBER,
691 p_fed_fund_cd IN VARCHAR2)
692 RETURN BOOLEAN AS
693 /*
694 || Created By : pssahni
695 || Created On : 3-Nov-2004
696 || Purpose : FA134 Enhancements
697 || Known limitations, enhancements or remarks :
698 || Change History :
699 || Who When What
700 || bvisvana 14-Nov-2005 Bug # 4732538 - Validation of Fed appl form code based on release and fund type
701 || (reverse chronological order - newest change first)
702 */
703
704
705 -- Get the release version
706 CURSOR c_get_rel_ver(p_rel_code igf_sl_cl_setup_all.relationship_cd%TYPE, p_cal_type VARCHAR2 , p_seq_num NUMBER)
707 IS
708 SELECT cl_version
709 FROM igf_sl_cl_setup_all
710 WHERE ci_cal_type = p_cal_type
711 AND ci_sequence_number = p_seq_num
712 AND relationship_cd= p_rel_code;
713
714 get_rel_ver_rec c_get_rel_ver%ROWTYPE;
715
716 CURSOR c_num_disb (cp_alternate_code VARCHAR2,
717 cp_person_number VARCHAR2,
718 cp_award_number_txt VARCHAR2,
719 cp_loan_number VARCHAR2)
720 IS
721 SELECT
722 count(*)
723 FROM
724 igf_sl_li_org_disb_ints
725 WHERE
726 ci_alternate_code = cp_alternate_code AND
727 person_number = cp_person_number AND
728 award_number_txt = cp_award_number_txt AND
729 loan_number_txt = cp_loan_number;
730
731 l_num_disb NUMBER;
732
733 check_passed BOOLEAN := TRUE;
734
735 BEGIN
736
737
738 -- Check the release version
739 OPEN c_get_rel_ver(l_interface.relationship_cd, p_cal_type, p_seq_number);
740 FETCH c_get_rel_ver INTO get_rel_ver_rec;
741 CLOSE c_get_rel_ver;
742
743 g_rel_version := get_rel_ver_rec.cl_version;
744
745 IF get_rel_ver_rec.cl_version NOT IN ('RELEASE-4', 'RELEASE-5') THEN
746 fnd_message.set_name('IGF','IGF_SL_CL_VERSION_NTFND');
747 g_tab_index := g_tab_index + 1;
748 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
749 check_passed := FALSE;
750
751 ELSIF get_rel_ver_rec.cl_version='RELEASE-4' THEN
752
753 -- Release 4 cannot have more than 4 disbursments
754
755 OPEN c_num_disb(l_interface.ci_alternate_code,l_interface.person_number,l_interface.award_number_txt,l_interface.loan_number_txt);
756 FETCH c_num_disb INTO l_num_disb;
757 IF l_num_disb > 4 THEN
758 fnd_message.set_name('IGF','IGF_SL_CL4_DISB_EXCEED');
759 g_tab_index := g_tab_index + 1;
760 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
761 check_passed := FALSE;
762 END IF;
763 CLOSE c_num_disb;
764
765 -- Check for Actual Record Type
766 IF l_interface.actual_record_type_code NOT IN ('M' , 'N' , 'C', 'T' ) OR l_interface.actual_record_type_code IS NULL THEN
767 g_tab_index := g_tab_index + 1;
768 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
769 fnd_message.set_token('FIELD','ACTUAL_RECORD_TYPE_CODE');
770 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
771 check_passed := FALSE;
772 END IF;
773
774 -- Checking for a valid combination of Processing type, send record code and Response record code
775
776 IF l_interface.record_code = 'A' THEN
777 IF (l_interface.prc_type_code IN ('GO' , 'GP' ) ) AND (l_interface.actual_record_type_code IN ('M')) THEN
778 NULL;
779 ELSE
780 fnd_message.set_name('IGF','IGF_SL_CL_INV_COMB_RT_RC');
781 g_tab_index := g_tab_index + 1;
782 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
783 check_passed := FALSE;
784 END IF;
785
786 ELSIF l_interface.record_code = 'C' THEN
787 IF (l_interface.prc_type_code IN ('GO' , 'GP' ) ) AND (l_interface.actual_record_type_code IN ('M')) THEN
788 NULL;
789 ELSE
790 fnd_message.set_name('IGF','IGF_SL_CL_INV_COMB_RT_RC');
791 g_tab_index := g_tab_index + 1;
792 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
793 check_passed := FALSE;
794 END IF;
795
796 ELSIF l_interface.record_code = 'R' THEN
797 IF (l_interface.prc_type_code IN ( 'GP' ) ) AND (l_interface.actual_record_type_code IN ('N')) THEN
798 NULL;
799 ELSE
800 fnd_message.set_name('IGF','IGF_SL_CL_INV_COMB_RT_RC');
801 g_tab_index := g_tab_index + 1;
802 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
803 check_passed := FALSE;
804 END IF;
805
806 ELSIF l_interface.record_code = 'T' THEN
807 IF (l_interface.prc_type_code IN ( 'GO','GP' ) ) AND ( l_interface.actual_record_type_code IN ('T')) THEN
808 NULL;
809 ELSE
810 fnd_message.set_name('IGF','IGF_SL_CL_INV_COMB_RT_RC');
811 g_tab_index := g_tab_index + 1;
812 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
813 check_passed := FALSE;
814 END IF;
815
816 END IF;
817
818 --Record status and Actual record type cannot be populated simultaneously
819
820 IF (l_interface.cl_rec_status IS NOT NULL ) AND (l_interface.actual_record_type_code IS NOT NULL ) THEN
821 fnd_message.set_name('IGF','IGF_SL_CL_INV_COMB_RT_RC');
822 g_tab_index := g_tab_index + 1;
823 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
824 check_passed := FALSE;
825 END IF;
826
827 -- If lender approved denied date and code needs to be specified together
828
829 IF (l_interface.lend_apprv_denied_code IS NULL) AND (l_interface.lend_apprv_denied_date IS NOT NULL)
830 OR (l_interface.lend_apprv_denied_code IS NOT NULL) AND (l_interface.lend_apprv_denied_date IS NULL)
831 THEN
832 fnd_message.set_name('IGF','IGF_SL_CL_INVLD_LADCD');
833 g_tab_index := g_tab_index + 1;
834 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
835 check_passed := FALSE;
836 END IF;
837
838 -- If lender approved denied code is D then record status must also be D
839
840 IF l_interface.lend_apprv_denied_code='D' AND l_interface.cl_rec_status <> 'D' THEN
841 fnd_message.set_name('IGF','IGF_SL_INVLD_LADC_RS');
842 g_tab_index := g_tab_index + 1;
843 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
844 check_passed := FALSE;
845 END IF;
846
847 -- Validate application form code
848 -- Bug # 4732538
849 IF l_interface.fed_appl_form_type IS NOT NULL THEN
850 IF ((p_fed_fund_cd IN ('FLS','FLU') AND l_interface.fed_appl_form_type NOT IN ('B','M','P')) OR
851 (p_fed_fund_cd IN ('FLP') AND l_interface.fed_appl_form_type NOT IN ('Q','B','M','P'))OR
852 (p_fed_fund_cd IN ('GPLUSFL') AND l_interface.fed_appl_form_type NOT IN ('G')))
853 THEN
854 g_tab_index := g_tab_index + 1;
855 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
856 fnd_message.set_token('FIELD','FED_APPL_FORM_TYPE');
857 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
858 check_passed := FALSE;
859 END IF;
860 END IF;
861
862
863 -- Check if any of the release 5 fields are populated then raise an error
864
865 IF l_interface.borr_sign_flag IS NOT NULL THEN
866 g_tab_index := g_tab_index + 1;
867 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
868 fnd_message.set_token('FIELD','BORR_SIGN_FLAG');
869 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
870 check_passed := FALSE;
871 END IF;
872
873 IF l_interface.borr_credit_auth_flag IS NOT NULL THEN
874 g_tab_index := g_tab_index + 1;
875 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
876 fnd_message.set_token('FIELD','BORR_CREDIT_AUTH_FLAG');
877 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
878 check_passed := FALSE;
879 END IF;
880
881 IF l_interface.Sch_non_ed_brc_id_txt IS NOT NULL THEN
882 g_tab_index := g_tab_index + 1;
883 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
884 fnd_message.set_token('FIELD','SCH_NON_ED_BRC_ID_TXT');
885 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
886 check_passed := FALSE;
887 END IF;
888
889 IF l_interface.stud_sign_flag IS NOT NULL THEN
890 g_tab_index := g_tab_index + 1;
891 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
892 fnd_message.set_token('FIELD','STUD_SIGN_FLAG');
893 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
894 check_passed := FALSE;
895 END IF;
896
897 IF l_interface.guarnt_status_code IS NOT NULL THEN
898 g_tab_index := g_tab_index + 1;
899 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
900 fnd_message.set_token('FIELD','GUARNT_STATUS_CODE');
901 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
902 check_passed := FALSE;
903 END IF;
904
905 IF l_interface.lend_status_code IS NOT NULL THEN
906 g_tab_index := g_tab_index + 1;
907 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
908 fnd_message.set_token('FIELD','LEND_STATUS_CODE');
909 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
910 check_passed := FALSE;
911 END IF;
912
913 IF l_interface.pnote_status_code IS NOT NULL THEN
914 g_tab_index := g_tab_index + 1;
915 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
916 fnd_message.set_token('FIELD','PNOTE_STATUS_CODE');
917 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
918 check_passed := FALSE;
919 END IF;
920
921 IF l_interface.Credit_status_code IS NOT NULL THEN
922 g_tab_index := g_tab_index + 1;
923 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
924 fnd_message.set_token('FIELD','CREDIT_STATUS_CODE');
925 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
926 check_passed := FALSE;
927 END IF;
928
929 IF l_interface.guarnt_status_date IS NOT NULL THEN
930 g_tab_index := g_tab_index + 1;
931 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
932 fnd_message.set_token('FIELD','GUARNT_STATUS_DATE');
933 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
934 check_passed := FALSE;
935 END IF;
936
937 IF l_interface.lend_status_date IS NOT NULL THEN
938 g_tab_index := g_tab_index + 1;
939 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
940 fnd_message.set_token('FIELD','LEND_STATUS_DATE');
941 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
942 check_passed := FALSE;
943 END IF;
944
945 IF l_interface.pnote_status_date IS NOT NULL THEN
946 g_tab_index := g_tab_index + 1;
947 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
948 fnd_message.set_token('FIELD','PNOTE_STATUS_DATE');
949 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
950 check_passed := FALSE;
951 END IF;
952
953 IF l_interface.credit_status_date IS NOT NULL THEN
954 g_tab_index := g_tab_index + 1;
955 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
956 fnd_message.set_token('FIELD','CREDIT_STATUS_DATE');
957 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
958 check_passed := FALSE;
959 END IF;
960
961 IF l_interface.act_serial_loan_code IS NOT NULL THEN
962 g_tab_index := g_tab_index + 1;
963 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
964 fnd_message.set_token('FIELD','ACT_SERIAL_LOAN_CODE');
965 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
966 check_passed := FALSE;
967 END IF;
968
969 IF l_interface.stud_mth_housing_pymt_amt IS NOT NULL THEN
970 g_tab_index := g_tab_index + 1;
971 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
972 fnd_message.set_token('FIELD','STUD_MTH_HOUSING_PYMT_AMT');
973 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
974 check_passed := FALSE;
975 END IF;
976
977 IF l_interface.stud_mth_crdtcard_pymt_amt IS NOT NULL THEN
978 g_tab_index := g_tab_index + 1;
979 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
980 fnd_message.set_token('FIELD','STUD_MTH_CRDTCARD_PYMT_AMT');
981 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
982 check_passed := FALSE;
983 END IF;
984
985 IF l_interface.stud_mth_auto_pymt_amt IS NOT NULL THEN
986 g_tab_index := g_tab_index + 1;
987 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
988 fnd_message.set_token('FIELD','STUD_MTH_AUTO_PYMT_AMT');
989 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
990 check_passed := FALSE;
991 END IF;
992
993 IF l_interface.stud_mth_ed_loan_pymt_amt IS NOT NULL THEN
994 g_tab_index := g_tab_index + 1;
995 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
996 fnd_message.set_token('FIELD','STUD_MTH_ED_LOAN_PYMT_AMT');
997 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
998 check_passed := FALSE;
999 END IF;
1000
1001 IF l_interface.stud_mth_other_pymt_amt IS NOT NULL THEN
1002 g_tab_index := g_tab_index + 1;
1003 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1004 fnd_message.set_token('FIELD','STUD_MTH_OTHER_PYMT_AMT');
1005 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1006 check_passed := FALSE;
1007 END IF;
1008
1009
1010 ELSIF get_rel_ver_rec.cl_version='RELEASE-5' THEN
1011
1012 -- Release 5 cannot have more than 20 disbursments
1013
1014 OPEN c_num_disb(l_interface.ci_alternate_code,l_interface.person_number,l_interface.award_number_txt,l_interface.loan_number_txt);
1015 FETCH c_num_disb INTO l_num_disb;
1016 IF l_num_disb > 20 THEN
1017 fnd_message.set_name('IGF','IGF_SL_CL4_DISB_EXCEED');
1018 g_tab_index := g_tab_index + 1;
1019 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1020 check_passed := FALSE;
1021 END IF;
1022 CLOSE c_num_disb;
1023 -- Check for Actual Record Type
1024 IF l_interface.actual_record_type_code NOT IN ('M' , 'N' , 'C', 'T', 'S' ) OR l_interface.actual_record_type_code IS NULL THEN
1025 g_tab_index := g_tab_index + 1;
1026 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1027 fnd_message.set_token('FIELD','ACTUAL_RECORD_TYPE_CODE');
1028 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1029 check_passed := FALSE;
1030 END IF;
1031
1032 -- Checking for a valid combination of Processing type, send record code and Response record code
1033
1034 IF l_interface.record_code = 'A' THEN
1035 IF (l_interface.prc_type_code IN ('GO' , 'GP' ) )AND(l_interface.actual_record_type_code IN ('S','M')) THEN
1036 NULL;
1037 ELSE
1038 fnd_message.set_name('IGF','IGF_SL_CL_INV_COMB_RT_RC');
1039 g_tab_index := g_tab_index + 1;
1040 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1041 check_passed := FALSE;
1042 END IF;
1043
1044 ELSIF l_interface.record_code = 'C' THEN
1045 IF (l_interface.prc_type_code IN ('GO' , 'GP' )) AND (l_interface.actual_record_type_code IN ('S','M'))THEN
1046 NULL;
1047 ELSE
1048 fnd_message.set_name('IGF','IGF_SL_CL_INV_COMB_RT_RC');
1049 g_tab_index := g_tab_index + 1;
1050 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1051 check_passed := FALSE;
1052 END IF;
1053
1054 ELSIF l_interface.record_code = 'R' THEN
1055 IF (l_interface.prc_type_code IN ( 'GP' ) ) AND (l_interface.actual_record_type_code IN ('N')) THEN
1056 NULL;
1057 ELSE
1058 fnd_message.set_name('IGF','IGF_SL_CL_INV_COMB_RT_RC');
1059 g_tab_index := g_tab_index + 1;
1060 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1061 check_passed := FALSE;
1062 END IF;
1063
1064 ELSIF l_interface.record_code = 'T' THEN
1065 IF (l_interface.prc_type_code IN ( 'GO','GP' ) )AND (l_interface.actual_record_type_code IN ('S','T')) THEN
1066 NULL;
1067 ELSE
1068 fnd_message.set_name('IGF','IGF_SL_CL_INV_COMB_RT_RC');
1069 g_tab_index := g_tab_index + 1;
1070 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1071 check_passed := FALSE;
1072 END IF;
1073
1074 END IF;
1075
1076
1077
1078 -- Validate application form code
1079 -- Bug # 4732538
1080 IF l_interface.fed_appl_form_type IS NOT NULL THEN
1081 IF ((p_fed_fund_cd IN ('FLS','FLU') AND l_interface.fed_appl_form_type IN ('M','P')) OR
1082 (p_fed_fund_cd IN ('FLP') AND l_interface.fed_appl_form_type IN ('Q','M','P')) OR
1083 (p_fed_fund_cd IN ('GPLUSFL') AND l_interface.fed_appl_form_type IN ('G'))) THEN
1084 NULL;
1085 ELSE
1086 g_tab_index := g_tab_index + 1;
1087 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1088 fnd_message.set_token('FIELD','FED_APPL_FORM_TYPE');
1089 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1090 check_passed := FALSE;
1091 END IF;
1092 END IF;
1093
1094 -- Check if any of the release 4 fields are populated then raise an error
1095
1096 IF l_interface.cl_rec_status IS NOT NULL THEN
1097 g_tab_index := g_tab_index + 1;
1098 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1099 fnd_message.set_token('FIELD','CL_REC_STATUS');
1100 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1101 check_passed := FALSE;
1102 END IF;
1103
1104 IF l_interface.lend_apprv_denied_code IS NOT NULL THEN
1105 g_tab_index := g_tab_index + 1;
1106 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1107 fnd_message.set_token('FIELD','LEND_APPRV_DENIED_CODE');
1108 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1109 check_passed := FALSE;
1110 END IF;
1111
1112 IF l_interface.lend_apprv_denied_date IS NOT NULL THEN
1113 g_tab_index := g_tab_index + 1;
1114 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1115 fnd_message.set_token('FIELD','LEND_APPRV_DENIED_DATE');
1116 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1117 check_passed := FALSE;
1118 END IF;
1119
1120 IF l_interface.appl_loan_phase_code IS NOT NULL THEN
1121 g_tab_index := g_tab_index + 1;
1122 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1123 fnd_message.set_token('FIELD','APPL_LOAN_PHASE_CODE');
1124 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1125 check_passed := FALSE;
1126 END IF;
1127
1128 IF l_interface.mpn_confirm_code IS NOT NULL THEN
1129 g_tab_index := g_tab_index + 1;
1130 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1131 fnd_message.set_token('FIELD','MPN_CONFIRM_CODE');
1132 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1133 check_passed := FALSE;
1134 END IF;
1135
1136 IF l_interface.appl_loan_phase_code_chg IS NOT NULL THEN
1137 g_tab_index := g_tab_index + 1;
1138 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1139 fnd_message.set_token('FIELD','APPL_LOAN_PHASE_CODE_CHG');
1140 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1141 check_passed := FALSE;
1142 END IF;
1143
1144
1145 IF l_interface.lend_apprv_denied_code IS NOT NULL THEN
1146 g_tab_index := g_tab_index + 1;
1147 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1148 fnd_message.set_token('FIELD','LEND_APPRV_DENIED_CODE');
1149 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1150 check_passed := FALSE;
1151 END IF;
1152
1153 IF l_interface.lend_apprv_denied_date IS NOT NULL THEN
1154 g_tab_index := g_tab_index + 1;
1155 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1156 fnd_message.set_token('FIELD','LEND_APPRV_DENIED_DATE');
1157 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1158 check_passed := FALSE;
1159 END IF;
1160
1161
1162 END IF; -- ver not in rel-4 or rel-5
1163
1164 -- External loan number required if record tpye is C
1165 IF l_interface.record_code = 'C' THEN
1166 IF l_interface.external_loan_id_txt IS NULL THEN
1167 g_tab_index := g_tab_index + 1;
1168 fnd_message.set_name('IGF','IGF_SL_CL_SCR_XLID_NTFND');
1169 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1170 check_passed := FALSE;
1171 END IF;
1172 ELSE
1173 IF l_interface.external_loan_id_txt IS NOT NULL THEN
1174 g_tab_index := g_tab_index + 1;
1175 fnd_message.set_name('IGF','IGF_SL_CL_SCR_XLID_FND');
1176 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1177 check_passed := FALSE;
1178 END IF;
1179 END IF;
1180
1181
1182 RETURN check_passed;
1183
1184 EXCEPTION
1185 WHEN others THEN
1186 IF fnd_log.level_exception >= fnd_log.g_current_runtime_level THEN
1187 fnd_log.string(fnd_log.level_exception,'igf.plsql.igf_sl_cl_imp_pkg.validate_release.exception','Exception ' || SQLERRM);
1188 END IF;
1189 fnd_message.set_name('IGF','IGF_GE_UNHANDLED_EXP');
1190 fnd_message.set_token('NAME','IGF_SL_CL_LI_IMP_PKG.VALIDATE_RELEASE');
1191
1192 RAISE IMPORT_ERROR;
1193 END;
1194
1195
1196 PROCEDURE validate_loan_orig_int( p_interface IN c_interface%ROWTYPE,
1197 p_award_id IN NUMBER,
1198 p_status OUT NOCOPY BOOLEAN,
1199 p_cal_type IN VARCHAR2,
1200 p_seq_number IN NUMBER,
1201 p_open_flag IN BOOLEAN,
1202 p_fed_fund_cd IN VARCHAR2
1203 )
1204 AS
1205 --
1206 -- Created By : gmuralid
1207 -- Created On : 24-JUN-2003
1208 -- Purpose : This procedure is used to validate the loan origination interface record
1209 -- Known limitations, enhancements or remarks :
1210 -- Change History :
1211 -- Who When What
1212 -- pssahni 3-Nov-2004 validation for prc_type_cpde changed to have valid values GP and GO
1213 -- also added validation for combination of process type and record code
1214 -- bkkumar 10-apr-04 FACR116 - Added validation for the alt_prog_typ_code
1215 -- and corrected the validations for the 'ALT' Loan
1216 -- ugummall 21-OCT-2003 Bug 3102439. FA 126 - Multiple FA Offices.
1217 -- Added the validation for sch_non_ed_brc_id_txt is a valid Non Ed Brc Id
1218 -- that is setup as alternate identifier in the System.
1219 -- bkkumar 07-oct-2003 Bug 3104228 . Added the validation for the relationship code.
1220 -- present in the interface table.
1221 -- (reverse chronological order - newest change first)
1222 -- veramach 16-SEP-2003 Validation for prc_type_code changed to look into 'GP' only
1223
1224 l_valid BOOLEAN;
1225
1226 l_amt NUMBER;
1227 lv_person_id NUMBER;
1228 lv_base_id NUMBER;
1229
1230 l_result VARCHAR2(1);
1231
1232 CURSOR c_lender_id(cp_lender_id VARCHAR2)
1233 IS
1234 SELECT
1235 1
1236 FROM
1237 igf_sl_lender
1238 WHERE
1239 lender_id = cp_lender_id;
1240
1241 l_lender_id c_lender_id%ROWTYPE;
1242
1243 CURSOR c_guarantor_id(cp_guarnt_id VARCHAR2)
1244 IS
1245 SELECT
1246 1
1247 FROM
1248 igf_sl_guarantor
1249 WHERE
1250 guarantor_id = cp_guarnt_id;
1251
1252 l_guarantor_id c_guarantor_id%ROWTYPE;
1253
1254 --5026901, SQL Repository
1255 CURSOR c_relationship (cp_person_number VARCHAR2,
1256 cp_b_person_number VARCHAR2
1257 )
1258 IS
1259 SELECT 'X'
1260 FROM hz_relationships pr,
1261 igs_pe_hz_parties pe,
1262 hz_parties br,
1263 hz_parties st
1264 WHERE
1265 br.party_number = cp_b_person_number
1266 AND st.party_number = cp_person_number
1267 AND pr.subject_id = st.party_id
1268 AND pr.object_id = br.party_id
1269 AND st.party_id = pe.party_id;
1270
1271
1272 l_relationship c_relationship%ROWTYPE;
1273
1274 CURSOR cur_chk_grd (p_cal_type VARCHAR2,
1275 p_seq_number NUMBER,
1276 p_grd_lvl VARCHAR2)
1277 IS
1278 SELECT '1'
1279 FROM
1280 igf_ap_class_std_map
1281 WHERE
1282 cl_std_code = p_grd_lvl AND
1283 ppt_id IN
1284 (
1285 SELECT ppt_id
1286 FROM igf_ap_pr_prg_type
1287 WHERE sequence_number = p_seq_number AND
1288 cal_type = p_cal_type
1289 );
1290
1291 lv_grd VARCHAR2(1);
1292
1293 CURSOR cur_chk_enrl (p_cal_type VARCHAR2,
1294 p_seq_number NUMBER,
1295 p_enrl_code VARCHAR2)
1296 IS
1297 SELECT '1'
1298 FROM
1299 igf_ap_attend_map_v
1300 WHERE
1301 cl_att_code = p_enrl_code AND
1302 sequence_number = p_seq_number AND
1303 cal_type = p_cal_type;
1304
1305 lv_enrl VARCHAR2(1);
1306
1307 -- FA 122 Loan Enhancements
1308 CURSOR cur_chk_rel_code (p_cal_type VARCHAR2,
1309 p_seq_number NUMBER,
1310 p_rel_code VARCHAR2)
1311 IS
1312 SELECT relationship_cd
1313 FROM
1314 igf_sl_cl_setup
1315 WHERE
1316 ci_cal_type = p_cal_type AND
1317 ci_sequence_number = p_seq_number AND
1318 NVL(relationship_cd,'*') = p_rel_code;
1319
1320 l_chk_rel_code cur_chk_rel_code%ROWTYPE;
1321
1322 CURSOR c_get_alternate_code(cp_cal_type VARCHAR2,
1323 cp_seq_number NUMBER)
1324 IS
1325 SELECT alternate_code
1326 FROM igs_ca_inst
1327 WHERE cal_type = cp_cal_type
1328 AND sequence_number = cp_seq_number;
1329
1330 l_get_alternate_code c_get_alternate_code%ROWTYPE;
1331
1332 -- Cursor to validate School Non Educational Branch Id.
1333 CURSOR c_source_or_branch_id(cp_sch_non_ed_brc_id VARCHAR2, cp_source_type VARCHAR2)
1334 IS
1335 SELECT 1
1336 FROM hz_parties hz,
1337 igs_or_org_alt_ids oli,
1338 igs_or_org_alt_idtyp olt
1339 WHERE oli.org_structure_id = hz.party_number
1340 AND oli.org_alternate_id_type = olt.org_alternate_id_type
1341 AND SYSDATE BETWEEN oli.start_date AND NVL(oli.end_date, SYSDATE)
1342 AND hz.status = 'A'
1343 AND oli.org_alternate_id = cp_sch_non_ed_brc_id
1344 AND system_id_type = cp_source_type;
1345
1346 l_source_or_branch_id c_source_or_branch_id%ROWTYPE;
1347
1348 -- FACR116
1349 CURSOR c_get_fund_code ( cp_alt_loan_code igf_aw_fund_cat_all.alt_loan_code%TYPE,
1350 cp_alt_rel_code igf_aw_fund_cat_all.alt_rel_code%TYPE,
1351 cp_fund_code igf_aw_fund_cat_all.fund_code%TYPE
1352 )
1353
1354 IS
1355 SELECT fund_code
1356 FROM igf_aw_fund_cat_all
1357 WHERE NVL(alt_loan_code,'*') = cp_alt_loan_code
1358 AND NVL(alt_rel_code,'*') = cp_alt_rel_code
1359 AND fund_code = cp_fund_code;
1360
1361 l_get_fund_code c_get_fund_code%ROWTYPE;
1362 PROCEDURE set_message_and_flag( p_message_name VARCHAR,
1363 p_val VARCHAR,
1364 p_cosigner_number NUMBER) AS
1365 BEGIN
1366 fnd_message.set_name('IGF', p_message_name);
1367 fnd_message.set_token('VAL', p_val);
1368 fnd_message.set_token('CS_NO', p_cosigner_number);
1369 g_tab_index := g_tab_index + 1;
1370 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1371 p_status := FALSE;
1372 END set_message_and_flag;
1373
1374
1375 PROCEDURE validate_alt_loan_cosigner (p_cosigner_number NUMBER,
1376 p_ssn_txt igf_sl_li_orig_ints.cs1_ssn_txt%TYPE,
1377 p_citizenship_status igf_sl_li_orig_ints.cs1_citizenship_status%TYPE,
1378 p_state_txt igf_sl_li_orig_ints.cs1_state_txt%TYPE,
1379 p_drv_license_state_txt igf_sl_li_orig_ints.cs1_drv_license_state_txt%TYPE,
1380 p_signature_code_txt igf_sl_li_orig_ints.cs1_signature_code_txt%TYPE,
1381 p_credit_auth_code_txt igf_sl_li_orig_ints.cs1_credit_auth_code_txt%TYPE,
1382 p_elect_sig_ind_code_txt igf_sl_li_orig_ints.cs1_elect_sig_ind_code_txt%TYPE,
1383 p_rel_to_student_flag igf_sl_li_orig_ints.cs1_rel_to_student_flag%TYPE
1384 ) AS
1385 --
1386 --
1387 -- This procedure is used to validate the cosigner data
1388 -- which is expected to be validated only for
1389 -- ALT loans.
1390 -- FA 157 - Bug# - 4382371
1391 --
1392 -- mnade 6/15/2005 Creation of the procedure.
1393 --
1394 --
1395 CURSOR c_citizenship_codes (cp_lookup_code VARCHAR2) IS
1396 SELECT lookup_code
1397 FROM igf_aw_lookups_view
1398 WHERE
1399 lookup_type = 'IGF_SL_ALT_CS_US_CT_ST_CODE'
1400 AND cal_type = p_cal_type
1401 AND sequence_number = p_seq_number
1402 AND enabled_flag = 'Y'
1403 AND lookup_code = cp_lookup_code;
1404
1405 CURSOR c_state_codes (cp_lookup_code VARCHAR2) IS
1406 SELECT lookup_code
1407 FROM igf_aw_lookups_view
1408 WHERE
1409 lookup_type = 'IGF_AP_STATE_CODES'
1410 AND cal_type = p_cal_type
1411 AND sequence_number = p_seq_number
1412 AND enabled_flag = 'Y'
1413 AND lookup_code NOT IN ('BL', 'CN', 'MX', 'OT')
1414 AND lookup_code = cp_lookup_code;
1415
1416 CURSOR c_yes_no_codes (cp_lookup_code VARCHAR2) IS -- Used for Signature/Credit Aut/Elect Sig validations.
1417 SELECT lookup_code
1418 FROM igf_aw_lookups_view
1419 WHERE
1420 lookup_type = 'YES_NO'
1421 AND cal_type = p_cal_type
1422 AND sequence_number = p_seq_number
1423 AND enabled_flag = 'Y'
1424 AND lookup_code = cp_lookup_code;
1425
1426 CURSOR c_relationship_codes (cp_lookup_code VARCHAR2) IS
1427 SELECT lookup_code
1428 FROM igf_aw_lookups_view
1429 WHERE
1430 lookup_type = 'IGF_SL_ALT_CS_STUDENT_RELATION'
1431 AND cal_type = p_cal_type
1432 AND sequence_number = p_seq_number
1433 AND enabled_flag = 'Y'
1434 AND lookup_code = cp_lookup_code;
1435
1436 l_lookup_code igf_aw_lookups_view.lookup_code%TYPE;
1437
1438 BEGIN
1439 IF SUBSTR(p_ssn_txt,1,1) = '8' OR -- SSN Validations - CL Spec - 8/9/000 at start not permitted.
1440 SUBSTR(p_ssn_txt,1,1) = '9' OR
1441 SUBSTR(p_ssn_txt,1,3) = '000' OR
1442 LENGTH(NVL(p_ssn_txt, '123456789')) <> 9 THEN
1443 set_message_and_flag('IGF_SL_CL_ALT_CS_INV_SSN', p_ssn_txt, p_cosigner_number);
1444 END IF; -- END SSN Validations - CL Spec - 8/9/000 at start not permitted.
1445
1446 -- Citizenship Validations
1447 OPEN c_citizenship_codes (p_citizenship_status);
1448 FETCH c_citizenship_codes INTO l_lookup_code;
1449 IF c_citizenship_codes%NOTFOUND AND p_citizenship_status IS NOT NULL THEN
1450 set_message_and_flag('IGF_SL_CL_ALT_CS_INV_CT_STATUS', p_citizenship_status, p_cosigner_number);
1451 END IF;
1452 CLOSE c_citizenship_codes;
1453
1454 -- State Validations
1455 OPEN c_state_codes (p_state_txt);
1456 FETCH c_state_codes INTO l_lookup_code;
1457 IF c_state_codes%NOTFOUND AND p_state_txt IS NOT NULL THEN
1458 set_message_and_flag('IGF_SL_CL_ALT_CS_INV_STATE', p_state_txt, p_cosigner_number);
1459 ELSE
1460 IF l_lookup_code = 'FC' THEN
1461 fnd_message.set_name('IGF', 'IGF_SL_CL_ALT_CS_STATE_COUNTRY');
1462 g_tab_index := g_tab_index + 1;
1463 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1464 END IF;
1465 END IF;
1466 CLOSE c_state_codes;
1467
1468 -- Drivers State Validations
1469 OPEN c_state_codes (p_drv_license_state_txt);
1470 FETCH c_state_codes INTO l_lookup_code;
1471 IF c_state_codes%NOTFOUND AND p_drv_license_state_txt IS NOT NULL THEN
1472 set_message_and_flag('IGF_SL_CL_ALT_CS_INV_LIC_STATE', p_drv_license_state_txt, p_cosigner_number);
1473 END IF;
1474 CLOSE c_state_codes;
1475
1476 -- Signature Code Validations
1477 OPEN c_yes_no_codes (p_signature_code_txt);
1478 FETCH c_yes_no_codes INTO l_lookup_code;
1479 IF c_yes_no_codes%NOTFOUND AND p_signature_code_txt IS NOT NULL THEN
1480 set_message_and_flag('IGF_SL_CL_ALT_CS_INV_SIG_CODE', p_signature_code_txt, p_cosigner_number);
1481 END IF;
1482 CLOSE c_yes_no_codes;
1483
1484 -- Relationship Validations
1485 OPEN c_relationship_codes (p_rel_to_student_flag);
1486 FETCH c_relationship_codes INTO l_lookup_code;
1487 IF c_relationship_codes%NOTFOUND AND p_rel_to_student_flag IS NOT NULL THEN
1488 set_message_and_flag('IGF_SL_CL_ALT_CS_INV_REL_CODE', p_rel_to_student_flag, p_cosigner_number);
1489 END IF;
1490 CLOSE c_relationship_codes;
1491
1492 IF g_rel_version = 'RELEASE-5' THEN -- CL5 ALT loans specific validations
1493
1494 -- Credit Autcode Validations
1495 OPEN c_yes_no_codes (p_credit_auth_code_txt);
1496 FETCH c_yes_no_codes INTO l_lookup_code;
1497 IF c_yes_no_codes%NOTFOUND AND p_credit_auth_code_txt IS NOT NULL THEN
1498 set_message_and_flag('IGF_SL_CL_ALT_CS_INV_CRD_AUTH', p_credit_auth_code_txt, p_cosigner_number);
1499 END IF;
1500 CLOSE c_yes_no_codes;
1501
1502 -- Elect Sig Code Validations
1503 OPEN c_yes_no_codes (p_elect_sig_ind_code_txt);
1504 FETCH c_yes_no_codes INTO l_lookup_code;
1505 IF c_yes_no_codes%NOTFOUND AND p_elect_sig_ind_code_txt IS NOT NULL THEN
1506 set_message_and_flag('IGF_SL_CL_ALT_CS_INV_ELECT_SIG', p_elect_sig_ind_code_txt, p_cosigner_number);
1507 END IF;
1508 CLOSE c_yes_no_codes;
1509
1510 END IF; -- END CL5 ALT loans specific validations
1511
1512 END validate_alt_loan_cosigner;
1513
1514 BEGIN
1515
1516 g_tab_index := 0;
1517 l_valid := is_valid(p_interface.loan_number_txt,p_cal_type,p_seq_number);
1518
1519 IF NOT l_valid THEN
1520
1521 fnd_message.set_name('IGF','IGF_SL_CL_INV_LOAN_NUM');
1522 g_tab_index := g_tab_index + 1;
1523 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1524 p_status := FALSE;
1525
1526 END IF;
1527
1528 l_get_alternate_code := NULL;
1529 OPEN c_get_alternate_code(p_cal_type,p_seq_number);
1530 FETCH c_get_alternate_code INTO l_get_alternate_code;
1531 CLOSE c_get_alternate_code;
1532
1533 -- FA 122 Loans Enhancements Check for the relationship code
1534 IF p_interface.relationship_cd IS NULL THEN
1535 fnd_message.set_name('IGF','IGF_SL_CL_RELATION_CD_FAIL');
1536 fnd_message.set_token('REL_CODE','NULL');
1537 fnd_message.set_token('AWD_YR',l_get_alternate_code.alternate_code);
1538 g_tab_index := g_tab_index + 1;
1539 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1540 p_status := FALSE;
1541 ELSE
1542 l_chk_rel_code := NULL;
1543 OPEN cur_chk_rel_code(p_cal_type,p_seq_number,p_interface.relationship_cd);
1544 FETCH cur_chk_rel_code INTO l_chk_rel_code;
1545 CLOSE cur_chk_rel_code;
1546 IF l_chk_rel_code.relationship_cd IS NULL THEN
1547 fnd_message.set_name('IGF','IGF_SL_CL_RELATION_CD_FAIL');
1548 fnd_message.set_token('REL_CODE',p_interface.relationship_cd);
1549 fnd_message.set_token('AWD_YR',l_get_alternate_code.alternate_code);
1550 g_tab_index := g_tab_index + 1;
1551 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1552 p_status := FALSE;
1553 END IF;
1554 END IF;
1555 l_get_fund_code := NULL;
1556 -- FACR116 Grant Loan Changes
1557 -- 1. Check if the alt_prg_type_cd is not null for 'ALT' loan
1558 -- 2. If the alt_prg_type_cd and the relationship_cd are assosiated in the fund code setup
1559 IF p_fed_fund_cd = 'ALT' THEN
1560 IF p_interface.alt_prog_type_cd IS NULL THEN
1561 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1562 fnd_message.set_token('FIELD','ALT_PROG_TYPE_CD');
1563 g_tab_index := g_tab_index + 1;
1564 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1565 p_status := FALSE;
1566 END IF;
1567 OPEN c_get_fund_code(p_interface.alt_prog_type_cd,p_interface.relationship_cd,l_get_award.fund_code);
1568 FETCH c_get_fund_code INTO l_get_fund_code;
1569 CLOSE c_get_fund_code;
1570 IF l_get_fund_code.fund_code IS NULL THEN
1571 fnd_message.set_name('IGF','IGF_SL_ALT_INV_SETUP');
1572 fnd_message.set_token('FUND_CODE',l_get_award.fund_code);
1573 fnd_message.set_token('ALT_LOAN_CODE',p_interface.alt_prog_type_cd);
1574 fnd_message.set_token('REL_CODE',p_interface.relationship_cd);
1575 g_tab_index := g_tab_index + 1;
1576 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1577 p_status := FALSE;
1578 END IF;
1579 ELSIF p_interface.alt_prog_type_cd IS NOT NULL THEN -- If fund_code <> 'ALT' then alt_prog_type_cd shd be NULL
1580 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1581 fnd_message.set_token('FIELD','ALT_PROG_TYPE_CD');
1582 g_tab_index := g_tab_index + 1;
1583 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1584 p_status := FALSE;
1585 END IF;
1586
1587 -- Validate release information : FA 134
1588 -- bvisvana - Bug # 4732538 - Validation of Fed appl form code based on Release type and fed fund code
1589 -- Added p_fed_fund_cd as a new parameter to the function
1590 p_status := validate_release (p_interface,p_cal_type,p_seq_number,p_fed_fund_cd); -- set error if the function returns false
1591
1592 -- credit decision can be 01 Unknown
1593 -- 05 Not applicable
1594 -- 10 Awaiting Credit
1595 -- 15 Credit check performed
1596 -- 20 Credit denied
1597 -- 25 Credit on appeal
1598 -- 30 Appeal denied
1599 -- 35 Credit approved
1600
1601 -- FA134 : guarnt_status_code, lend_status_code, pnote_status_code are Release -5 field only
1602 IF g_rel_version = 'RELEASE-5' THEN
1603 IF ( p_open_flag = TRUE ) THEN
1604 IF (p_interface.loan_status_code = 'A') AND
1605 (( p_interface.prc_type_code <> 'GP') OR (p_interface.guarnt_status_code <> '40')
1606 OR (p_interface.lend_status_code <> '45') OR (p_interface.pnote_status_code <> '60')
1607 OR (p_interface.credit_status_code NOT IN ('01','05','10','15','20','25','30','35') ) )
1608 THEN
1609
1610 fnd_message.set_name('IGF','IGF_SL_CL_LOAN_STATUS_ERR');
1611 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
1612 p_status := FALSE;
1613
1614 END IF;
1615 END IF;
1616 END IF;
1617
1618 IF ( p_fed_fund_cd NOT IN('ALT','FLP','GPLUSFL') ) AND (p_interface.borr_person_number IS NOT NULL)
1619 THEN
1620
1621 fnd_message.set_name('IGF','IGF_SL_CL_BORW_NOT_REQD');
1622 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
1623 p_status := FALSE;
1624
1625 END IF;
1626
1627 IF (p_fed_fund_cd IN ('ALT','FLP','GPLUSFL')) AND (p_interface.borr_person_number IS NULL )
1628 THEN
1629
1630 fnd_message.set_name('IGF','IGF_SL_CL_BOR_NUM_REQD');
1631 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
1632 p_status := FALSE;
1633
1634 END IF;
1635
1636 IF p_fed_fund_cd <> 'ALT' AND p_interface.b_stu_indicator_flag IS NOT NULL THEN
1637 fnd_message.set_name('IGF','IGF_SL_CL_INV_BOR_STU_IND');
1638 g_tab_index := g_tab_index + 1;
1639 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1640 p_status := FALSE;
1641
1642 ELSIF p_fed_fund_cd = 'ALT' AND p_interface.loan_status_code = 'A' AND p_interface.b_stu_indicator_flag IS NULL THEN
1643 fnd_message.set_name('IGF','IGF_SL_CL_INV_BOR_STU_IND');
1644 g_tab_index := g_tab_index + 1;
1645 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1646 p_status := FALSE;
1647 END IF;
1648
1649 IF p_fed_fund_cd = 'ALT' AND p_interface.b_stu_indicator_flag IS NOT NULL THEN
1650 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_interface.b_stu_indicator_flag) IS NULL THEN
1651 g_tab_index := g_tab_index + 1;
1652 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1653 fnd_message.set_token('FIELD','B_STU_INDICATOR_FLAG');
1654 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1655 p_status := FALSE;
1656 END IF;
1657 END IF;
1658
1659 IF p_fed_fund_cd IN ('ALT')
1660 AND p_interface.borr_person_number IS NOT NULL
1661 AND NVL(p_interface.b_stu_indicator_flag,'X') = 'Y'
1662 AND p_interface.borr_person_number <> p_interface.person_number
1663 THEN
1664
1665 fnd_message.set_name('IGF','IGF_SL_CL_S_BOR_NOT_SAME');
1666 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
1667 p_status := FALSE;
1668
1669 END IF;
1670
1671 --FA 163 : For Federal Graduate plus loans, borrower and student should be same
1672 IF p_fed_fund_cd IN ('GPLUSFL') THEN
1673 IF p_interface.borr_person_number <> p_interface.person_number THEN
1674 fnd_message.set_name('IGF','IGF_SL_CL_STU_BOR_DIFFER');
1675 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
1676 p_status := FALSE;
1677 ELSE
1678 igf_ap_gen.check_person(p_interface.borr_person_number,NULL,NULL,lv_person_id,lv_base_id);
1679 IF lv_person_id IS NULL THEN
1680 fnd_message.set_name('IGF','IGF_SL_LI_INVALID_BORR');
1681 fnd_message.set_token('PERS_NUM', p_interface.borr_person_number);
1682 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
1683 p_status := FALSE;
1684 ELSE
1685 g_p_person_id := lv_person_id;
1686 END IF;
1687 END IF;
1688 END IF;
1689
1690
1691 IF p_fed_fund_cd IN ('ALT','FLP')
1692 AND p_interface.borr_person_number IS NOT NULL
1693 AND NVL(p_interface.b_stu_indicator_flag,'X') <> 'Y'
1694 THEN
1695
1696 igf_ap_gen.check_person(p_interface.borr_person_number,NULL,NULL,lv_person_id,lv_base_id);
1697
1698 IF lv_person_id IS NULL THEN
1699 fnd_message.set_name('IGF','IGF_SL_LI_INVALID_BORR');
1700 fnd_message.set_token('PERS_NUM', p_interface.borr_person_number);
1701 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
1702 p_status := FALSE;
1703 ELSE
1704
1705 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1706 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.validate_loan_orig_int.debug','Borr Person ID ' || lv_person_id);
1707 END IF;
1708 g_p_person_id := lv_person_id;
1709
1710 OPEN c_relationship(p_interface.person_number,p_interface.borr_person_number);
1711 FETCH c_relationship INTO l_relationship;
1712 IF (c_relationship%NOTFOUND) THEN
1713 CLOSE c_relationship;
1714 fnd_message.set_name('IGF','IGF_SL_CL_INV_BOR_REL');
1715 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
1716 p_status := FALSE;
1717 ELSE
1718 CLOSE c_relationship;
1719 END IF;
1720 END IF;
1721 END IF;
1722
1723 IF p_interface.loan_seq_num IS NOT NULL THEN
1724 IF (p_interface.loan_seq_num <= 0) OR (p_interface.loan_seq_num > 99) THEN
1725 fnd_message.set_name('IGF','IGF_SL_CL_INV_LOAN_SEQ_NUM');
1726 g_tab_index := g_tab_index + 1;
1727 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1728 p_status := FALSE;
1729 END IF;
1730 END IF;
1731
1732 IF (p_interface.loan_per_end_date < p_interface.loan_per_begin_date) THEN
1733 fnd_message.set_name('IGF','IGF_SL_CL_LOAN_INV_END_DT');
1734 g_tab_index := g_tab_index + 1;
1735 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1736 p_status := FALSE;
1737 END IF;
1738
1739 IF (p_interface.loan_status_code IN ('B','C','R','S','T'))
1740 OR (igf_ap_gen.get_aw_lookup_meaning('IGF_SL_LOAN_STATUS',p_interface.loan_status_code,g_sys_award_year)) IS NULL THEN
1741 g_tab_index := g_tab_index + 1;
1742 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1743 fnd_message.set_token('FIELD','LOAN_STATUS_CODE');
1744 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1745 p_status := FALSE;
1746 END IF;
1747
1748 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_interface.active_flag) IS NULL THEN
1749 g_tab_index := g_tab_index + 1;
1750 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1751 fnd_message.set_token('FIELD','ACTIVE_FLAG');
1752 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1753 p_status := FALSE;
1754 END IF;
1755
1756 IF p_interface.defer_req_flag IS NOT NULL THEN
1757 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_interface.defer_req_flag) IS NULL THEN
1758 g_tab_index := g_tab_index + 1;
1759 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1760 fnd_message.set_token('FIELD','DEFER_REQ_FLAG');
1761 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1762 p_status := FALSE;
1763 END IF;
1764
1765 END IF;
1766
1767 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_REC_TYPE_IND',p_interface.record_code,g_sys_award_year) IS NULL THEN
1768 g_tab_index := g_tab_index + 1;
1769 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1770 fnd_message.set_token('FIELD','RECORD_CODE');
1771 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1772 p_status := FALSE;
1773 END IF;
1774
1775
1776 IF (p_interface.loan_status_code = 'A') AND (p_interface.req_loan_amt IS NULL) THEN
1777 fnd_message.set_name('IGF','IGF_SL_CL_REQ_LOAN_AMT_REQD');
1778 g_tab_index := g_tab_index + 1;
1779 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1780 p_status := FALSE;
1781 ELSIF (p_interface.req_loan_amt IS NOT NULL) THEN
1782
1783 l_amt := l_get_award.accepted_amt;
1784
1785 IF (l_amt IS NULL) OR (l_amt <> p_interface.req_loan_amt) THEN
1786 fnd_message.set_name('IGF','IGF_SL_CL_INV_REQ_LOAN_AMT');
1787 g_tab_index := g_tab_index + 1;
1788 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1789 p_status := FALSE;
1790 END IF;
1791 END IF;
1792
1793 IF (p_interface.borw_interest_flag IS NOT NULL) THEN
1794 IF (igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_interface.borw_interest_flag) IS NULL) THEN
1795 g_tab_index := g_tab_index + 1;
1796 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1797 fnd_message.set_token('FIELD','BORW_INTEREST_FLAG');
1798 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1799 p_status := FALSE;
1800 END IF;
1801 END IF;
1802
1803 IF p_interface.b_signature_flag IS NOT NULL THEN
1804 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_interface.b_signature_flag) IS NULL THEN
1805 g_tab_index := g_tab_index + 1;
1806 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1807 fnd_message.set_token('FIELD','B_SIGNATURE_FLAG');
1808 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1809 p_status := FALSE;
1810 END IF;
1811 END IF;
1812
1813 IF (p_fed_fund_cd NOT IN ('FLP','ALT','GPLUSFL')) AND ((p_interface.b_default_status_flag IS NOT NULL)) THEN
1814 fnd_message.set_name('IGF','IGF_SL_CL_INV_DEF_RETURN_CD');
1815 g_tab_index := g_tab_index + 1;
1816 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1817 p_status := FALSE;
1818
1819 ELSIF (p_fed_fund_cd IN ('FLP','ALT','GPLUSFL')) AND (p_interface.b_default_status_flag IS NOT NULL) THEN
1820 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_interface.b_default_status_flag) IS NULL THEN
1821 g_tab_index := g_tab_index + 1;
1822 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1823 fnd_message.set_token('FIELD','B_DEFAULT_STATUS_FLAG');
1824 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1825 p_status := FALSE;
1826 END IF;
1827 END IF;
1828
1829 IF (p_fed_fund_cd NOT IN ('FLP','ALT','GPLUSFL')) AND ((p_interface.borw_outstd_loan_flag IS NOT NULL)) THEN
1830 fnd_message.set_name('IGF','IGF_SL_CL_BORW_OUTSTD_LOAN_CD');
1831 g_tab_index := g_tab_index + 1;
1832 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1833 p_status := FALSE;
1834
1835 ELSIF (p_fed_fund_cd IN ('FLP','ALT','GPLUSFL')) AND (p_interface.borw_outstd_loan_flag IS NOT NULL) THEN
1836 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_interface.borw_outstd_loan_flag) IS NULL THEN
1837 g_tab_index := g_tab_index + 1;
1838 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1839 fnd_message.set_token('FIELD','BORW_OUTSTD_LOAN_FLAG');
1840 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1841 p_status := FALSE;
1842 END IF;
1843 END IF;
1844
1845 IF (p_fed_fund_cd NOT IN ('FLP','ALT','GPLUSFL')) AND ((p_interface.s_default_status_flag IS NOT NULL)) THEN
1846 fnd_message.set_name('IGF','IGF_SL_CL_STUD_DEF_REFND_CD');
1847 g_tab_index := g_tab_index + 1;
1848 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1849 p_status := FALSE;
1850
1851 ELSIF (p_fed_fund_cd IN ('FLP','ALT','GPLUSFL')) AND (p_interface.s_default_status_flag IS NOT NULL) THEN
1852 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_interface.s_default_status_flag) IS NULL THEN
1853 g_tab_index := g_tab_index + 1;
1854 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1855 fnd_message.set_token('FIELD','S_DEFAULT_STATUS_FLAG');
1856 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1857 p_status := FALSE;
1858 END IF;
1859 END IF;
1860
1861 IF (p_fed_fund_cd NOT IN ('FLP','ALT','GPLUSFL')) AND ((p_interface.s_signature_flag IS NOT NULL)) THEN
1862 fnd_message.set_name('IGF','IGF_SL_CL_INV_STU_SIGNATURE');
1863 g_tab_index := g_tab_index + 1;
1864 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1865 p_status := FALSE;
1866
1867 ELSIF (p_fed_fund_cd IN ('FLP','ALT','GPLUSFL')) AND (p_interface.s_signature_flag IS NOT NULL) THEN
1868 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_interface.s_signature_flag) IS NULL THEN
1869 g_tab_index := g_tab_index + 1;
1870 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1871 fnd_message.set_token('FIELD','S_SIGNATURE_FLAG');
1872 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1873 p_status := FALSE;
1874 END IF;
1875 END IF;
1876
1877 IF p_interface.grade_level_code IS NULL THEN
1878 fnd_message.set_name('IGF','IGF_SL_CL_GRADE_LVL_REQD');
1879 g_tab_index := g_tab_index + 1;
1880 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1881 p_status := FALSE;
1882 ELSIF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_GRADE_LEVEL',p_interface.grade_level_code,g_sys_award_year) IS NULL THEN
1883 g_tab_index := g_tab_index + 1;
1884 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1885 fnd_message.set_token('FIELD','GRADE_LEVEL_CODE');
1886 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1887 p_status := FALSE;
1888
1889 ELSE
1890 OPEN cur_chk_grd (p_cal_type,
1891 p_seq_number,
1892 p_interface.grade_level_code);
1893 FETCH cur_chk_grd INTO lv_grd;
1894 CLOSE cur_chk_grd;
1895 IF NVL(lv_grd,'*') <> '1' THEN
1896 g_tab_index := g_tab_index + 1;
1897 fnd_message.set_name('IGF','IGF_SL_INV_GRD_VAL');
1898 fnd_message.set_token('GRD_LVL',p_interface.grade_level_code);
1899 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1900 p_status := FALSE;
1901 END IF;
1902 END IF;
1903
1904 IF p_interface.borr_sign_flag IS NOT NULL THEN
1905 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_interface.borr_sign_flag) IS NULL THEN
1906 g_tab_index := g_tab_index + 1;
1907 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1908 fnd_message.set_token('FIELD','BORR_SIGN_FLAG');
1909 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1910 p_status := FALSE;
1911 END IF;
1912 END IF;
1913
1914 IF p_interface.eft_auth_flag IS NOT NULL THEN
1915 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_interface.eft_auth_flag) IS NULL THEN
1916 g_tab_index := g_tab_index + 1;
1917 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1918 fnd_message.set_token('FIELD','EFT_AUTH_FLAG');
1919 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1920 p_status := FALSE;
1921 END IF;
1922 END IF;
1923
1924 IF (p_interface.loan_status_code = 'A') AND (p_interface.anticip_compl_date IS NULL) THEN
1925 g_tab_index := g_tab_index + 1;
1926 fnd_message.set_name('IGF','IGF_SL_INV_ANT_COM');
1927 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1928 p_status := FALSE;
1929 END IF;
1930
1931 IF (p_interface.loan_status_code = 'A') AND (p_interface.enrollment_code IS NULL) THEN
1932 fnd_message.set_name('IGF','IGF_SL_CL_ENRL_CD_REQD');
1933 g_tab_index := g_tab_index + 1;
1934 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1935 p_status := FALSE;
1936
1937 ELSIF p_interface.enrollment_code IS NOT NULL THEN
1938
1939 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_ENROL_STATUS',p_interface.enrollment_code,g_sys_award_year) IS NULL THEN
1940 g_tab_index := g_tab_index + 1;
1941 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1942 fnd_message.set_token('FIELD','ENROLLMENT_CODE');
1943 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1944 p_status := FALSE;
1945 ELSE
1946 --
1947 -- Check if enrollment code mapping is done
1948 --
1949 OPEN cur_chk_enrl(p_cal_type,p_seq_number,p_interface.enrollment_code);
1950 FETCH cur_chk_enrl INTO lv_enrl;
1951 CLOSE cur_chk_enrl;
1952
1953 IF NVL(lv_enrl,'*') <> '1' THEN
1954 g_tab_index := g_tab_index + 1;
1955 fnd_message.set_name('IGF','IGF_SL_INV_ENRL_CODE');
1956 fnd_message.set_token('ENRL_CODE',p_interface.enrollment_code);
1957 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1958 p_status := FALSE;
1959 END IF;
1960 END IF;
1961
1962 END IF;
1963
1964 IF (p_fed_fund_cd NOT IN ('ALT')) AND (p_interface.alt_appl_ver_code_num IS NOT NULL) THEN
1965 fnd_message.set_name('IGF','IGF_SL_CL_INV_ALT_APPL_VER_CD');
1966 g_tab_index := g_tab_index + 1;
1967 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1968 p_status := FALSE;
1969 END IF;
1970
1971 IF p_interface.req_serial_loan_code IS NOT NULL THEN
1972 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_SERIAL_LOAN_CODE',p_interface.req_serial_loan_code,g_sys_award_year) IS NULL THEN
1973 g_tab_index := g_tab_index + 1;
1974 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1975 fnd_message.set_token('FIELD','REQ_SERIAL_LOAN_CODE');
1976 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1977 p_status := FALSE;
1978 END IF;
1979 END IF;
1980
1981 IF p_interface.borr_credit_auth_flag IS NOT NULL THEN
1982 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_interface.borr_credit_auth_flag) IS NULL THEN
1983 g_tab_index := g_tab_index + 1;
1984 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
1985 fnd_message.set_token('FIELD','BORR_CREDIT_AUTH_FLAG');
1986 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
1987 p_status := FALSE;
1988 END IF;
1989 END IF;
1990
1991 -- FA 134 : STUD_SIGN_FLAG is a Release -5 field only
1992 IF g_rel_version = 'RELEASE-5' THEN
1993 IF (p_fed_fund_cd NOT IN ('FLP','ALT','GPLUSFL')) AND ((p_interface.stud_sign_flag IS NOT NULL)) THEN
1994 fnd_message.set_name('IGF','IGF_SL_INV_STUD_SIGN_CODE');
1995 g_tab_index := g_tab_index + 1;
1996 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
1997 p_status := FALSE;
1998
1999 ELSIF (p_fed_fund_cd IN ('FLP','ALT','GPLUSFL')) AND (p_interface.stud_sign_flag IS NOT NULL) THEN
2000 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_interface.stud_sign_flag) IS NULL THEN
2001 g_tab_index := g_tab_index + 1;
2002 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2003 fnd_message.set_token('FIELD','STUD_SIGN_FLAG');
2004 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2005 p_status := FALSE;
2006 END IF;
2007 END IF;
2008 END IF;
2009
2010 IF p_interface.prc_type_code IS NULL THEN
2011 fnd_message.set_name('IGF','IGF_SL_CL_PRC_TYP_CD_REQD');
2012 g_tab_index := g_tab_index + 1;
2013 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2014 p_status := FALSE;
2015
2016 ELSIF p_interface.prc_type_code NOT IN ('GP', 'GO') THEN
2017 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_PRC_TYPE_CODE',p_interface.prc_type_code,g_sys_award_year) IS NULL THEN
2018 g_tab_index := g_tab_index + 1;
2019 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2020 fnd_message.set_token('FIELD','PRC_TYPE_CODE');
2021 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2022 p_status := FALSE;
2023 END IF;
2024 END IF;
2025
2026 -- Check for the combination of processing type and record code
2027
2028 IF (p_interface.prc_type_code ='GO' AND p_interface.record_code IN ('A', 'C', 'T' ))
2029 OR (p_interface.prc_type_code ='GP' AND p_interface.record_code IN ('A', 'C', 'T','R' ))
2030
2031 THEN
2032 -- Valid Combination
2033 NULL;
2034 ELSE
2035 g_tab_index := g_tab_index + 1;
2036 fnd_message.set_name('IGF','IGF_SL_CL_INV_COMB_PT_RC');
2037 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2038 p_status := FALSE;
2039 END IF;
2040
2041
2042
2043 IF p_interface.service_type_code IS NOT NULL THEN
2044 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_SERV_CD',p_interface.service_type_code,g_sys_award_year) IS NULL THEN
2045 g_tab_index := g_tab_index + 1;
2046 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2047 fnd_message.set_token('FIELD','SERVICE_TYPE_CODE');
2048 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2049 p_status := FALSE;
2050 END IF;
2051 END IF;
2052
2053 IF p_interface.rev_notice_of_guarnt_code IS NOT NULL THEN
2054 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_REV_GUARNT_CD',p_interface.rev_notice_of_guarnt_code,g_sys_award_year) IS NULL THEN
2055 g_tab_index := g_tab_index + 1;
2056 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2057 fnd_message.set_token('FIELD','REV_NOTICE_OF_GUARNT_CODE');
2058 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2059 p_status := FALSE;
2060 END IF;
2061 END IF;
2062
2063 IF p_interface.pnote_delivery_code IS NOT NULL THEN
2064 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_PNOTE_DELIVERY',p_interface.pnote_delivery_code,g_sys_award_year) IS NULL THEN
2065 g_tab_index := g_tab_index + 1;
2066 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2067 fnd_message.set_token('FIELD','PNOTE_DELIVERY_CODE');
2068 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2069 p_status := FALSE;
2070 END IF;
2071 END IF;
2072
2073 IF (p_interface.loan_status_code = 'N' OR p_interface.loan_status_code = 'G') AND (p_interface.guarnt_adj_flag IS NOT NULL) THEN
2074 fnd_message.set_name('IGF','IGF_SL_CL_INV_GUARNT_ADJ_FLG');
2075 g_tab_index := g_tab_index + 1;
2076 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2077 p_status := FALSE;
2078 ELSIF p_interface.guarnt_adj_flag IS NOT NULL THEN
2079 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_interface.guarnt_adj_flag) IS NULL THEN
2080 g_tab_index := g_tab_index + 1;
2081 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2082 fnd_message.set_token('FIELD','GUARNT_ADJ_FLAG');
2083 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2084 p_status := FALSE;
2085 END IF;
2086 END IF;
2087
2088 IF (p_interface.loan_status_code = 'N' OR p_interface.loan_status_code = 'G') AND (p_interface.guarantee_date IS NOT NULL) THEN
2089 fnd_message.set_name('IGF','IGF_SL_CL_INV_GUARNT_DATE');
2090 g_tab_index := g_tab_index + 1;
2091 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2092 p_status := FALSE;
2093 ELSIF (p_interface.loan_status_code = 'A') AND (p_interface.guarantee_date IS NULL) THEN
2094 fnd_message.set_name('IGF','IGF_SL_CL_INV_GUARNT_DATE');
2095 g_tab_index := g_tab_index + 1;
2096 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2097 p_status := FALSE;
2098 END IF;
2099
2100 IF (p_interface.loan_status_code = 'N' OR p_interface.loan_status_code = 'G') AND (p_interface.guarantee_amt IS NOT NULL) THEN
2101 fnd_message.set_name('IGF','IGF_SL_CL_INV_GUARNT_AMT');
2102 g_tab_index := g_tab_index + 1;
2103 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2104 p_status := FALSE;
2105 ELSIF (p_interface.loan_status_code = 'A') AND (p_interface.guarantee_amt IS NULL) THEN
2106 fnd_message.set_name('IGF','IGF_SL_CL_INV_GUARNT_AMT');
2107 g_tab_index := g_tab_index + 1;
2108 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2109 p_status := FALSE;
2110 END IF;
2111
2112 IF p_interface.borw_confirm_flag IS NOT NULL THEN
2113 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_BORW_CONFIRM',p_interface.borw_confirm_flag,g_sys_award_year) IS NULL THEN
2114 g_tab_index := g_tab_index + 1;
2115 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2116 fnd_message.set_token('FIELD','BORW_CONFIRM_FLAG');
2117 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2118 p_status := FALSE;
2119 END IF;
2120 END IF;
2121
2122 IF p_interface.last_resort_lender_flag IS NOT NULL THEN
2123 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_interface.last_resort_lender_flag) IS NULL THEN
2124 g_tab_index := g_tab_index + 1;
2125 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2126 fnd_message.set_token('FIELD','LAST_RESORT_LENDER_FLAG');
2127 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2128 p_status := FALSE;
2129 END IF;
2130 END IF;
2131
2132 IF p_interface.resp_to_orig_flag IS NOT NULL THEN
2133 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_interface.resp_to_orig_flag) IS NULL THEN
2134 g_tab_index := g_tab_index + 1;
2135 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2136 fnd_message.set_token('FIELD','RESP_TO_ORIG_FLAG');
2137 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2138 p_status := FALSE;
2139 END IF;
2140 END IF;
2141
2142 IF (p_interface.loan_status_code = 'N' OR p_interface.loan_status_code = 'G') AND (p_interface.guarnt_amt_redn_code IS NOT NULL) THEN
2143 fnd_message.set_name('IGF','IGF_SL_CL_INV_G_AMT_REDN_CD');
2144 g_tab_index := g_tab_index + 1;
2145 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2146 p_status := FALSE;
2147 ELSIF p_interface.guarnt_amt_redn_code IS NOT NULL THEN
2148 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_GUARNT_AMT_RED_CODE',p_interface.guarnt_amt_redn_code,g_sys_award_year) IS NULL THEN
2149 g_tab_index := g_tab_index + 1;
2150 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2151 fnd_message.set_token('FIELD','GUARNT_AMT_REDN_CODE');
2152 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2153 p_status := FALSE;
2154 END IF;
2155 END IF;
2156
2157 -- FA 134 : GUARNT_STATUS_CODE is a Release -5 field only
2158 IF g_rel_version = 'RELEASE-5' THEN
2159 IF (p_interface.loan_status_code = 'N' OR p_interface.loan_status_code = 'G') AND (p_interface.guarnt_status_code IS NOT NULL) THEN
2160 fnd_message.set_name('IGF','IGF_SL_CL_INV_G_STATUS_CODE');
2161 g_tab_index := g_tab_index + 1;
2162 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2163 p_status := FALSE;
2164 ELSIF (p_interface.loan_status_code = 'A') AND (p_interface.guarnt_status_code IS NULL) THEN
2165 fnd_message.set_name('IGF','IGF_SL_CL_INV_G_STATUS_CODE');
2166 g_tab_index := g_tab_index + 1;
2167 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2168 p_status := FALSE;
2169 ELSIF p_interface.guarnt_status_code IS NOT NULL THEN
2170 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_GUARNT_STATUS',p_interface.guarnt_status_code,g_sys_award_year) IS NULL THEN
2171 g_tab_index := g_tab_index + 1;
2172 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2173 fnd_message.set_token('FIELD','GUARNT_STATUS_CODE');
2174 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2175 p_status := FALSE;
2176 END IF;
2177 END IF;
2178 END IF;
2179
2180 -- FA 134: is a Release -5 field only
2181 IF g_rel_version = 'RELEASE-5' THEN
2182 IF (p_interface.loan_status_code = 'N' OR p_interface.loan_status_code = 'G') AND
2183 (p_interface.guarnt_status_date IS NOT NULL) THEN
2184
2185 fnd_message.set_name('IGF','IGF_SL_CL_INV_G_STATUS_DATE');
2186 g_tab_index := g_tab_index + 1;
2187 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2188 p_status := FALSE;
2189
2190 ELSIF (p_interface.loan_status_code = 'A') AND (p_interface.guarnt_status_date IS NULL) THEN
2191
2192 fnd_message.set_name('IGF','IGF_SL_CL_INV_G_STATUS_DATE');
2193 g_tab_index := g_tab_index + 1;
2194 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2195 p_status := FALSE;
2196
2197 END IF;
2198 END IF;
2199
2200 -- FA 134: lend_status_code is a Release -5 field only
2201 IF g_rel_version = 'RELEASE-5' THEN
2202 IF (p_interface.loan_status_code = 'N' OR p_interface.loan_status_code = 'G') AND (p_interface.lend_status_code IS NOT NULL) THEN
2203 fnd_message.set_name('IGF','IGF_SL_CL_INV_L_STATUS_CODE');
2204 g_tab_index := g_tab_index + 1;
2205 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2206 p_status := FALSE;
2207 ELSIF (p_interface.loan_status_code = 'A') AND (p_interface.lend_status_code IS NULL) THEN
2208 fnd_message.set_name('IGF','IGF_SL_CL_INV_L_STATUS_CODE');
2209 g_tab_index := g_tab_index + 1;
2210 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2211 p_status := FALSE;
2212 ELSIF p_interface.lend_status_code IS NOT NULL THEN
2213 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_LEND_STATUS',p_interface.lend_status_code,g_sys_award_year) IS NULL THEN
2214 g_tab_index := g_tab_index + 1;
2215 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2216 fnd_message.set_token('FIELD','LEND_STATUS_CODE');
2217 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2218 p_status := FALSE;
2219 END IF;
2220 END IF;
2221 END IF;
2222
2223 -- FA 134:lend_status_date is a Release -5 field only
2224 IF g_rel_version = 'RELEASE-5' THEN
2225 IF (p_interface.loan_status_code = 'N' OR p_interface.loan_status_code = 'G') AND
2226 (p_interface.lend_status_date IS NOT NULL) THEN
2227
2228 fnd_message.set_name('IGF','IGF_SL_CL_INV_L_STATUS_DATE');
2229 g_tab_index := g_tab_index + 1;
2230 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2231 p_status := FALSE;
2232
2233 ELSIF (p_interface.loan_status_code = 'A') AND (p_interface.lend_status_date IS NULL) THEN
2234
2235 fnd_message.set_name('IGF','IGF_SL_CL_INV_L_STATUS_DATE');
2236 g_tab_index := g_tab_index + 1;
2237 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2238 p_status := FALSE;
2239
2240 END IF;
2241 END IF;
2242
2243 -- FA 134: PNOTE_STATUS is a Release -5 field only
2244 IF g_rel_version = 'RELEASE-5' THEN
2245 IF (p_interface.loan_status_code = 'N' OR p_interface.loan_status_code = 'G') AND (p_interface.pnote_status_code IS NOT NULL) THEN
2246 fnd_message.set_name('IGF','IGF_SL_CL_INV_PNOTE_STATUS');
2247 g_tab_index := g_tab_index + 1;
2248 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2249 p_status := FALSE;
2250 ELSIF (p_interface.loan_status_code = 'A') AND (p_interface.pnote_status_code IS NULL) THEN
2251 fnd_message.set_name('IGF','IGF_SL_CL_INV_PNOTE_STATUS');
2252 g_tab_index := g_tab_index + 1;
2253 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2254 p_status := FALSE;
2255 ELSIF p_interface.pnote_status_code IS NOT NULL THEN
2256 IF p_interface.pnote_status_code IN ('A','C','F','G','I','M','N','P','Q','R','S','X')
2257 OR (igf_ap_gen.get_aw_lookup_meaning('IGF_SL_PNOTE_STATUS',p_interface.pnote_status_code,g_sys_award_year) IS NULL) THEN
2258
2259 g_tab_index := g_tab_index + 1;
2260 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2261 fnd_message.set_token('FIELD','PNOTE_STATUS_CODE');
2262 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2263 p_status := FALSE;
2264 END IF;
2265 END IF;
2266 END IF;
2267
2268 -- FA 134: is a Release -5 field only
2269 IF g_rel_version = 'RELEASE-5' THEN
2270 IF (p_interface.loan_status_code = 'N' OR p_interface.loan_status_code = 'G') AND
2271 (p_interface.pnote_status_date IS NOT NULL) THEN
2272
2273 fnd_message.set_name('IGF','IGF_SL_CL_INV_P_STATUS_DATE');
2274 g_tab_index := g_tab_index + 1;
2275 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2276 p_status := FALSE;
2277
2278 ELSIF (p_interface.loan_status_code = 'A') AND (p_interface.pnote_status_date IS NULL) THEN
2279
2280 fnd_message.set_name('IGF','IGF_SL_CL_INV_P_STATUS_DATE');
2281 g_tab_index := g_tab_index + 1;
2282 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2283 p_status := FALSE;
2284
2285 END IF;
2286 END IF;
2287
2288 -- FA 134: credit_status_code is a Release -5 field only
2289 IF g_rel_version = 'RELEASE-5' THEN
2290 IF (p_interface.loan_status_code = 'N' OR p_interface.loan_status_code = 'G') AND
2291 (p_interface.credit_status_code IS NOT NULL) THEN
2292 fnd_message.set_name('IGF','IGF_SL_CL_INV_C_STATUS_CODE');
2293 g_tab_index := g_tab_index + 1;
2294 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2295 p_status := FALSE;
2296
2297 ELSIF (p_interface.loan_status_code = 'A') AND (p_interface.credit_status_code IS NULL) THEN
2298 fnd_message.set_name('IGF','IGF_SL_CL_INV_C_STATUS_CODE');
2299 g_tab_index := g_tab_index + 1;
2300 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2301 p_status := FALSE;
2302
2303 ELSIF p_interface.credit_status_code IS NOT NULL THEN
2304 IF p_interface.credit_status_code IN ('C','D','E','N')
2305 OR (igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CREDIT_OVERRIDE',p_interface.credit_status_code,g_sys_award_year) IS NULL) THEN
2306 g_tab_index := g_tab_index + 1;
2307 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2308 fnd_message.set_token('FIELD','CREDIT_STATUS_CODE');
2309 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2310 p_status := FALSE;
2311 END IF;
2312 END IF;
2313 END IF;
2314
2315 -- FA 134: credit_status_date is a Release -5 field only
2316 IF g_rel_version = 'RELEASE-5' THEN
2317 IF (p_interface.loan_status_code = 'N' OR p_interface.loan_status_code = 'G') AND
2318 (p_interface.credit_status_date IS NOT NULL) THEN
2319
2320 fnd_message.set_name('IGF','IGF_SL_CL_INV_C_STATUS_DATE');
2321 g_tab_index := g_tab_index + 1;
2322 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2323 p_status := FALSE;
2324
2325 ELSIF (p_interface.loan_status_code = 'A') AND (p_interface.credit_status_date IS NULL) THEN
2326
2327 fnd_message.set_name('IGF','IGF_SL_CL_INV_C_STATUS_DATE');
2328 g_tab_index := g_tab_index + 1;
2329 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2330 p_status := FALSE;
2331
2332 END IF;
2333 END IF;
2334
2335 IF p_fed_fund_cd = 'ALT' AND p_interface.crdt_undr_difft_name_flag IS NOT NULL THEN
2336 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_interface.crdt_undr_difft_name_flag) IS NULL THEN
2337 g_tab_index := g_tab_index + 1;
2338 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2339 fnd_message.set_token('FIELD','CRDT_UNDR_DIFFT_NAME_FLAG');
2340 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2341 p_status := FALSE;
2342 END IF;
2343 ELSIF p_fed_fund_cd <> 'ALT' AND p_interface.crdt_undr_difft_name_flag IS NOT NULL THEN
2344 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2345 fnd_message.set_token('FIELD','CRDT_UNDR_DIFFT_NAME_FLAG');
2346 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2347 p_status := FALSE;
2348 END IF;
2349
2350 -- FA 134:ACT_SERIAL_LOAN_CODE is a Release -5 field only
2351 IF g_rel_version = 'RELEASE-5' THEN
2352 IF p_interface.act_serial_loan_code IS NOT NULL THEN
2353 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_SERIAL_LOAN_CODE',p_interface.act_serial_loan_code,g_sys_award_year) IS NULL THEN
2354 g_tab_index := g_tab_index + 1;
2355 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2356 fnd_message.set_token('FIELD','ACT_SERIAL_LOAN_CODE');
2357 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2358 p_status := FALSE;
2359 END IF;
2360 END IF;
2361 END IF;
2362
2363 IF p_interface.int_rate_opt_code IS NOT NULL THEN
2364 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_ALT_INT_RATE_OPTION',p_interface.int_rate_opt_code,g_sys_award_year) IS NULL THEN
2365 g_tab_index := g_tab_index + 1;
2366 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2367 fnd_message.set_token('FIELD','INT_RATE_OPT_CODE');
2368 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2369 p_status := FALSE;
2370 END IF;
2371 END IF;
2372
2373 IF p_interface.repayment_opt_code IS NOT NULL THEN
2374 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_ALT_REPAY_OPTION',p_interface.repayment_opt_code,g_sys_award_year) IS NULL THEN
2375 g_tab_index := g_tab_index + 1;
2376 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2377 fnd_message.set_token('FIELD','REPAYMENT_OPT_CODE');
2378 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2379 p_status := FALSE;
2380 END IF;
2381 END IF;
2382
2383 IF (p_fed_fund_cd = 'ALT' AND NVL(p_interface.alt_borw_tot_stu_loan_debt_amt,0) < 0 ) OR (
2384 p_fed_fund_cd <> 'ALT' AND p_interface.alt_borw_tot_stu_loan_debt_amt IS NOT NULL ) THEN
2385 g_tab_index := g_tab_index + 1;
2386 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2387 fnd_message.set_token('FIELD','ALT_BORW_TOT_STU_LOAN_DEBT_AMT');
2388 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2389 p_status := FALSE;
2390 END IF;
2391
2392 IF NVL(p_interface.reinst_avail_amt,0) < 0 THEN
2393 g_tab_index := g_tab_index + 1;
2394 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2395 fnd_message.set_token('FIELD','REINST_AVAIL_AMT');
2396 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2397 p_status := FALSE;
2398 END IF;
2399
2400 IF (p_fed_fund_cd = 'ALT' AND NVL(p_interface.borw_gross_annual_sal_amt,0) < 0) OR (
2401 p_fed_fund_cd <> 'ALT' AND p_interface.borw_gross_annual_sal_amt IS NOT NULL ) THEN
2402 g_tab_index := g_tab_index + 1;
2403 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2404 fnd_message.set_token('FIELD','BORW_GROSS_ANNUAL_SAL_AMT');
2405 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2406 p_status := FALSE;
2407 END IF;
2408
2409 IF (p_fed_fund_cd = 'ALT' AND NVL(p_interface.borw_other_income_amt,0) < 0 ) OR (
2410 p_fed_fund_cd <> 'ALT' AND p_interface.borw_other_income_amt IS NOT NULL ) THEN
2411 g_tab_index := g_tab_index + 1;
2412 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2413 fnd_message.set_token('FIELD','BORW_OTHER_INCOME_AMT');
2414 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2415 p_status := FALSE;
2416 END IF;
2417
2418 IF NVL(p_interface.coa_amt,0) < 0 THEN
2419 g_tab_index := g_tab_index + 1;
2420 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2421 fnd_message.set_token('FIELD','COA_AMT');
2422 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2423 p_status := FALSE;
2424 END IF;
2425
2426 IF NVL(p_interface.efc_amt,0) < 0 THEN
2427 g_tab_index := g_tab_index + 1;
2428 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2429 fnd_message.set_token('FIELD','EFC_AMT');
2430 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2431 p_status := FALSE;
2432 END IF;
2433
2434 IF NVL(p_interface.est_fa_amt,0) < 0 THEN
2435 g_tab_index := g_tab_index + 1;
2436 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2437 fnd_message.set_token('FIELD','EST_FA_AMT');
2438 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2439 p_status := FALSE;
2440 END IF;
2441
2442 IF NVL(p_interface.alt_approved_amt,0) < 0 THEN
2443 g_tab_index := g_tab_index + 1;
2444 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2445 fnd_message.set_token('FIELD','ALT_APPROVED_AMT');
2446 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2447 p_status := FALSE;
2448 END IF;
2449
2450 IF p_fed_fund_cd <> 'ALT' AND p_interface.alt_approved_amt IS NOT NULL THEN
2451 g_tab_index := g_tab_index + 1;
2452 fnd_message.set_name('IGF','IGF_SL_INV_ALT_APP_AMT');
2453 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2454 p_status := FALSE;
2455 END IF;
2456
2457 IF p_fed_fund_cd = 'ALT' AND p_interface.alt_approved_amt IS NULL THEN
2458 g_tab_index := g_tab_index + 1;
2459 fnd_message.set_name('IGF','IGF_SL_INV_ALT_APP_AMT_1');
2460 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2461 p_status := FALSE;
2462 END IF;
2463
2464 IF NVL(p_interface.flp_approved_amt,0) < 0 THEN
2465 g_tab_index := g_tab_index + 1;
2466 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2467 fnd_message.set_token('FIELD','FLP_APPROVED_AMT');
2468 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2469 p_status := FALSE;
2470 END IF;
2471
2472 IF p_fed_fund_cd NOT IN ('FLP','GPLUSFL') AND p_interface.flp_approved_amt IS NOT NULL THEN
2473 g_tab_index := g_tab_index + 1;
2474 fnd_message.set_name('IGF','IGF_SL_INV_FLP_APP_AMT');
2475 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2476 p_status := FALSE;
2477 END IF;
2478
2479 IF p_fed_fund_cd IN ('FLP','GPLUSFL') AND p_interface.flp_approved_amt IS NULL THEN
2480 g_tab_index := g_tab_index + 1;
2481 fnd_message.set_name('IGF','IGF_SL_INV_FLP_APP_AMT_1');
2482 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2483 p_status := FALSE;
2484 END IF;
2485
2486 IF NVL(p_interface.fls_approved_amt,0) < 0 THEN
2487 g_tab_index := g_tab_index + 1;
2488 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2489 fnd_message.set_token('FIELD','FLS_APPROVED_AMT');
2490 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2491 p_status := FALSE;
2492 END IF;
2493
2494 IF p_fed_fund_cd <> 'FLS' AND p_interface.fls_approved_amt IS NOT NULL THEN
2495 g_tab_index := g_tab_index + 1;
2496 fnd_message.set_name('IGF','IGF_SL_INV_FLS_APP_AMT');
2497 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2498 p_status := FALSE;
2499 END IF;
2500
2501 IF p_fed_fund_cd = 'FLS' AND p_interface.fls_approved_amt IS NULL THEN
2502 g_tab_index := g_tab_index + 1;
2503 fnd_message.set_name('IGF','IGF_SL_INV_FLS_APP_AMT_1');
2504 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2505 p_status := FALSE;
2506 END IF;
2507
2508 IF NVL(p_interface.flu_approved_amt,0) < 0 THEN
2509 g_tab_index := g_tab_index + 1;
2510 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2511 fnd_message.set_token('FIELD','FLU_APPROVED_AMT');
2512 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2513 p_status := FALSE;
2514 END IF;
2515
2516 IF p_fed_fund_cd <> 'FLU' AND p_interface.flu_approved_amt IS NOT NULL THEN
2517 g_tab_index := g_tab_index + 1;
2518 fnd_message.set_name('IGF','IGF_SL_INV_FLU_APP_AMT');
2519 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2520 p_status := FALSE;
2521 END IF;
2522
2523 IF p_fed_fund_cd = 'FLU' AND p_interface.flu_approved_amt IS NULL THEN
2524 g_tab_index := g_tab_index + 1;
2525 fnd_message.set_name('IGF','IGF_SL_INV_FLU_APP_AMT_1');
2526 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2527 p_status := FALSE;
2528 END IF;
2529
2530 IF NVL(p_interface.alt_cert_amt,0) < 0 THEN
2531 g_tab_index := g_tab_index + 1;
2532 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2533 fnd_message.set_token('FIELD','ALT_CERT_AMT');
2534 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2535 p_status := FALSE;
2536 END IF;
2537
2538 IF p_fed_fund_cd <> 'ALT' AND p_interface.alt_cert_amt IS NOT NULL THEN
2539 g_tab_index := g_tab_index + 1;
2540 fnd_message.set_name('IGF','IGF_SL_INV_ALT_CRT_AMT_1');
2541 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2542 p_status := FALSE;
2543 END IF;
2544
2545 IF p_fed_fund_cd = 'ALT' AND p_interface.loan_status_code = 'A' AND p_interface.alt_cert_amt IS NULL THEN
2546 g_tab_index := g_tab_index + 1;
2547 fnd_message.set_name('IGF','IGF_SL_INV_ALT_CRT_AMT_2');
2548 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2549 p_status := FALSE;
2550 END IF;
2551
2552 IF NVL(p_interface.flp_cert_amt,0) < 0 THEN
2553 g_tab_index := g_tab_index + 1;
2554 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2555 fnd_message.set_token('FIELD','FLP_CERT_AMT');
2556 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2557 p_status := FALSE;
2558 END IF;
2559
2560 IF p_fed_fund_cd NOT IN ('FLP','GPLUSFL') AND p_interface.flp_cert_amt IS NOT NULL THEN
2561 g_tab_index := g_tab_index + 1;
2562 fnd_message.set_name('IGF','IGF_SL_INV_FLP_CRT_AMT_1');
2563 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2564 p_status := FALSE;
2565 END IF;
2566
2567 IF p_fed_fund_cd IN ('FLP','GPLUSFL') AND p_interface.loan_status_code = 'A' AND p_interface.flp_cert_amt IS NULL THEN
2568 g_tab_index := g_tab_index + 1;
2569 fnd_message.set_name('IGF','IGF_SL_INV_FLP_CRT_AMT_2');
2570 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2571 p_status := FALSE;
2572 END IF;
2573
2574 IF NVL(p_interface.fls_cert_amt,0) < 0 THEN
2575 g_tab_index := g_tab_index + 1;
2576 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2577 fnd_message.set_token('FIELD','FLS_CERT_AMT');
2578 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2579 p_status := FALSE;
2580 END IF;
2581
2582 IF p_fed_fund_cd <> 'FLS' AND p_interface.fls_cert_amt IS NOT NULL THEN
2583 g_tab_index := g_tab_index + 1;
2584 fnd_message.set_name('IGF','IGF_SL_INV_FLS_CRT_AMT_1');
2585 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2586 p_status := FALSE;
2587 END IF;
2588
2589 IF p_fed_fund_cd = 'FLS' AND p_interface.loan_status_code = 'A' AND p_interface.fls_cert_amt IS NULL THEN
2590 g_tab_index := g_tab_index + 1;
2591 fnd_message.set_name('IGF','IGF_SL_INV_FLS_CRT_AMT_2');
2592 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2593 p_status := FALSE;
2594 END IF;
2595
2596 IF NVL(p_interface.flu_cert_amt,0) < 0 THEN
2597 g_tab_index := g_tab_index + 1;
2598 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2599 fnd_message.set_token('FIELD','FLU_CERT_AMT');
2600 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2601 p_status := FALSE;
2602 END IF;
2603
2604 IF p_fed_fund_cd <> 'FLU' AND p_interface.flu_cert_amt IS NOT NULL THEN
2605 g_tab_index := g_tab_index + 1;
2606 fnd_message.set_name('IGF','IGF_SL_INV_FLU_CRT_AMT_1');
2607 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2608 p_status := FALSE;
2609 END IF;
2610
2611 IF p_fed_fund_cd = 'FLU' AND p_interface.loan_status_code = 'A' AND p_interface.flu_cert_amt IS NULL THEN
2612 g_tab_index := g_tab_index + 1;
2613 fnd_message.set_name('IGF','IGF_SL_INV_FLU_CRT_AMT_2');
2614 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2615 p_status := FALSE;
2616 END IF;
2617
2618 IF NVL(p_interface.guarantee_amt,0) < 0 THEN
2619 g_tab_index := g_tab_index + 1;
2620 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2621 fnd_message.set_token('FIELD','GUARANTEE_AMT');
2622 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2623 p_status := FALSE;
2624 END IF;
2625
2626 IF NVL(p_interface.req_loan_amt,0) < 0 THEN
2627 g_tab_index := g_tab_index + 1;
2628 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2629 fnd_message.set_token('FIELD','REQ_LOAN_AMT');
2630 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2631 p_status := FALSE;
2632 END IF;
2633
2634 IF NVL(p_interface.sch_refund_amt,0) < 0 THEN
2635 g_tab_index := g_tab_index + 1;
2636 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2637 fnd_message.set_token('FIELD','SCH_REFUND_AMT');
2638 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2639 p_status := FALSE;
2640 END IF;
2641
2642 IF NVL(p_interface.tot_outstd_plus_amt,0) < 0 THEN
2643 g_tab_index := g_tab_index + 1;
2644 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2645 fnd_message.set_token('FIELD','TOT_OUTSTD_PLUS_AMT');
2646 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2647 p_status := FALSE;
2648 END IF;
2649
2650 IF NVL(p_interface.tot_outstd_stafford_amt,0) < 0 THEN
2651 g_tab_index := g_tab_index + 1;
2652 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2653 fnd_message.set_token('FIELD','TOT_OUTSTD_STAFFORD_AMT');
2654 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2655 p_status := FALSE;
2656 END IF;
2657
2658 -- ALT
2659
2660 IF (p_fed_fund_cd = 'ALT' AND NVL(p_interface.fed_sls_debt_amt,0) < 0) OR (
2661 p_fed_fund_cd <> 'ALT' AND p_interface.fed_sls_debt_amt IS NOT NULL ) THEN
2662 g_tab_index := g_tab_index + 1;
2663 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2664 fnd_message.set_token('FIELD','FED_SLS_DEBT_AMT');
2665 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2666 p_status := FALSE;
2667 END IF;
2668
2669 IF NVL(p_interface.fed_stafford_loan_debt_amt,0) < 0 THEN
2670 g_tab_index := g_tab_index + 1;
2671 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2672 fnd_message.set_token('FIELD','FED_STAFFORD_LOAN_DEBT_AMT');
2673 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2674 p_status := FALSE;
2675 END IF;
2676
2677 IF (p_fed_fund_cd = 'ALT' AND NVL(p_interface.heal_debt_amt,0) < 0 ) OR (
2678 p_fed_fund_cd <> 'ALT' AND p_interface.heal_debt_amt IS NOT NULL ) THEN
2679 g_tab_index := g_tab_index + 1;
2680 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2681 fnd_message.set_token('FIELD','HEAL_DEBT_AMT');
2682 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2683 p_status := FALSE;
2684 END IF;
2685
2686 IF (p_fed_fund_cd = 'ALT' AND NVL(p_interface.other_debt_amt,0) < 0 ) OR (
2687 p_fed_fund_cd <> 'ALT' AND p_interface.other_debt_amt IS NOT NULL ) THEN
2688 g_tab_index := g_tab_index + 1;
2689 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2690 fnd_message.set_token('FIELD','OTHER_DEBT_AMT');
2691 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2692 p_status := FALSE;
2693 END IF;
2694
2695 IF (p_fed_fund_cd = 'ALT' AND NVL(p_interface.perkins_debt_amt,0) < 0 ) OR (
2696 p_fed_fund_cd <> 'ALT' AND p_interface.perkins_debt_amt IS NOT NULL) THEN
2697 g_tab_index := g_tab_index + 1;
2698 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2699 fnd_message.set_token('FIELD','PERKINS_DEBT_AMT');
2700 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2701 p_status := FALSE;
2702 END IF;
2703
2704 IF (p_fed_fund_cd = 'ALT' AND NVL(p_interface.stud_mth_auto_pymt_amt,0) < 0 ) OR (
2705 p_fed_fund_cd <> 'ALT' AND p_interface.stud_mth_auto_pymt_amt IS NOT NULL ) THEN
2706 g_tab_index := g_tab_index + 1;
2707 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2708 fnd_message.set_token('FIELD','STUD_MTH_AUTO_PYMT_AMT');
2709 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2710 p_status := FALSE;
2711 END IF;
2712
2713 -- FA 134: STUD_MTH_CRDTCARD_PYMT_AMT,STUD_MTH_ED_LOAN_PYMT_AMT,STUD_MTH_HOUSING_PYMT_AMT,STUD_MTH_OTHER_PYMT_AMT is a Release -5 field only
2714 IF g_rel_version = 'RELEASE-5' THEN
2715 IF NVL(p_interface.stud_mth_crdtcard_pymt_amt,0) < 0 THEN
2716 g_tab_index := g_tab_index + 1;
2717 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2718 fnd_message.set_token('FIELD','STUD_MTH_CRDTCARD_PYMT_AMT');
2719 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2720 p_status := FALSE;
2721 END IF;
2722
2723 IF NVL(p_interface.stud_mth_ed_loan_pymt_amt,0) < 0 THEN
2724 g_tab_index := g_tab_index + 1;
2725 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2726 fnd_message.set_token('FIELD','STUD_MTH_ED_LOAN_PYMT_AMT');
2727 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2728 p_status := FALSE;
2729 END IF;
2730
2731 IF NVL(p_interface.stud_mth_housing_pymt_amt,0) < 0 THEN
2732 g_tab_index := g_tab_index + 1;
2733 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2734 fnd_message.set_token('FIELD','STUD_MTH_HOUSING_PYMT_AMT');
2735 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2736 p_status := FALSE;
2737 END IF;
2738
2739 IF NVL(p_interface.stud_mth_other_pymt_amt,0) < 0 THEN
2740 g_tab_index := g_tab_index + 1;
2741 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2742 fnd_message.set_token('FIELD','STUD_MTH_OTHER_PYMT_AMT');
2743 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2744 p_status := FALSE;
2745 END IF;
2746 END IF;
2747
2748 IF p_interface.err_mesg_1_cd IS NOT NULL THEN
2749 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_ERROR',p_interface.err_mesg_1_cd,g_sys_award_year) IS NULL THEN
2750 g_tab_index := g_tab_index + 1;
2751 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2752 fnd_message.set_token('FIELD','ERR_MESG_1_CD');
2753 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2754 p_status := FALSE;
2755 END IF;
2756 END IF;
2757
2758 IF p_interface.err_mesg_2_cd IS NOT NULL THEN
2759 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_ERROR',p_interface.err_mesg_2_cd,g_sys_award_year) IS NULL THEN
2760 g_tab_index := g_tab_index + 1;
2761 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2762 fnd_message.set_token('FIELD','ERR_MESG_2_CD');
2763 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2764 p_status := FALSE;
2765 END IF;
2766 END IF;
2767
2768 IF p_interface.err_mesg_3_cd IS NOT NULL THEN
2769 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_ERROR',p_interface.err_mesg_3_cd,g_sys_award_year) IS NULL THEN
2770 g_tab_index := g_tab_index + 1;
2771 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2772 fnd_message.set_token('FIELD','ERR_MESG_3_CD');
2773 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2774 p_status := FALSE;
2775 END IF;
2776 END IF;
2777
2778 IF p_interface.err_mesg_4_cd IS NOT NULL THEN
2779 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_ERROR',p_interface.err_mesg_4_cd,g_sys_award_year) IS NULL THEN
2780 g_tab_index := g_tab_index + 1;
2781 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2782 fnd_message.set_token('FIELD','ERR_MESG_4_CD');
2783 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2784 p_status := FALSE;
2785 END IF;
2786 END IF;
2787
2788 IF p_interface.err_mesg_5_cd IS NOT NULL THEN
2789 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_ERROR',p_interface.err_mesg_5_cd,g_sys_award_year) IS NULL THEN
2790 g_tab_index := g_tab_index + 1;
2791 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2792 fnd_message.set_token('FIELD','ERR_MESG_5_CD');
2793 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2794 p_status := FALSE;
2795 END IF;
2796 END IF;
2797
2798 IF p_interface.fed_appl_form_type IS NOT NULL THEN
2799 IF p_fed_fund_cd = 'ALT' THEN
2800 g_tab_index := g_tab_index + 1;
2801 fnd_message.set_name('IGF','IGF_SL_INV_FED_FORM_1');
2802 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2803 p_status := FALSE;
2804 END IF;
2805 END IF;
2806
2807 IF p_interface.fed_appl_form_type IS NULL THEN
2808 IF p_interface.loan_status_code NOT IN ('G','N') AND p_fed_fund_cd <> 'ALT' THEN
2809 g_tab_index := g_tab_index + 1;
2810 fnd_message.set_name('IGF','IGF_SL_INV_FED_FORM_2');
2811 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2812 p_status := FALSE;
2813 END IF;
2814 END IF;
2815
2816 IF p_interface.lend_blkt_guarnt_flag IS NOT NULL AND p_interface.lend_blkt_guarnt_flag <> 'Y' THEN
2817 g_tab_index := g_tab_index + 1;
2818 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2819 fnd_message.set_token('FIELD','LEND_BLKT_GUARNT_FLAG');
2820 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2821 p_status := FALSE;
2822 END IF;
2823
2824 IF p_interface.b_reference_flag IS NOT NULL THEN
2825 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_interface.b_reference_flag ) IS NULL THEN
2826 g_tab_index := g_tab_index + 1;
2827 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2828 fnd_message.set_token('FIELD','B_REFERENCE_FLAG');
2829 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2830 p_status := FALSE;
2831 END IF;
2832 END IF;
2833
2834 -- Validate if the source_id_txt is part of the loan number and also present in the
2835 -- system as OPE_ID_NUM value.
2836 IF(p_interface.source_id_txt IS NOT NULL)THEN
2837 -- the source id txt should match with the substrign of the loan number txt
2838 IF(p_interface.source_id_txt <> substr(p_interface.loan_number_txt,1,8))THEN
2839 g_tab_index := g_tab_index + 1;
2840 FND_MESSAGE.SET_NAME('IGF', 'IGF_SL_LNUM_SCHBCH_NMTCH');
2841 FND_MESSAGE.SET_TOKEN('LNUM', p_interface.loan_number_txt);
2842 FND_MESSAGE.SET_TOKEN('FIELD','SOURCE_ID_TXT');
2843 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2844 p_status := FALSE;
2845 END IF;
2846 OPEN c_source_or_branch_id(p_interface.source_id_txt, 'OPE_ID_NUM');
2847 FETCH c_source_or_branch_id INTO l_source_or_branch_id;
2848 IF (c_source_or_branch_id%NOTFOUND) THEN
2849 CLOSE c_source_or_branch_id;
2850 g_tab_index := g_tab_index + 1;
2851 FND_MESSAGE.SET_NAME('IGF', 'IGF_AP_INV_FLD_VAL');
2852 FND_MESSAGE.SET_TOKEN('FIELD', 'SOURCE_ID_TXT');
2853 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2854 p_status := FALSE;
2855 ELSE
2856 CLOSE c_source_or_branch_id;
2857 END IF;
2858 END IF;
2859
2860 -- Validate if the school_non_ed_brc_id_txt is a valid Source Non Ed Brc Id that is setup
2861 -- as alternate_identifier in the system. Bug 3102439.
2862 -- FA134 SCH_NON_ED_BRC_ID_TXT is a realease 5 field only
2863 IF g_rel_version = 'RELEASE-5' THEN
2864 IF(p_interface.sch_non_ed_brc_id_txt IS NOT NULL)THEN
2865 -- the school non ed branch id should be the same as the substr of loan number txt
2866 IF(p_interface.sch_non_ed_brc_id_txt <> substr(p_interface.loan_number_txt,7,4))THEN
2867 g_tab_index := g_tab_index + 1;
2868 FND_MESSAGE.SET_NAME('IGF', 'IGF_SL_LNUM_SCHBCH_NMTCH');
2869 FND_MESSAGE.SET_TOKEN('LNUM', p_interface.loan_number_txt);
2870 FND_MESSAGE.SET_TOKEN('FIELD','SCH_NON_ED_BRC_ID_TXT');
2871 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2872 p_status := FALSE;
2873 END IF;
2874 OPEN c_source_or_branch_id(p_interface.sch_non_ed_brc_id_txt, 'SCH_NON_ED_BRC_ID');
2875 FETCH c_source_or_branch_id INTO l_source_or_branch_id;
2876 IF (c_source_or_branch_id%NOTFOUND) THEN
2877 CLOSE c_source_or_branch_id;
2878 g_tab_index := g_tab_index + 1;
2879 FND_MESSAGE.SET_NAME('IGF', 'IGF_AP_INV_FLD_VAL');
2880 FND_MESSAGE.SET_TOKEN('FIELD', 'SCH_NON_ED_BRC_ID_TXT');
2881 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2882 p_status := FALSE;
2883 ELSE
2884 CLOSE c_source_or_branch_id;
2885 END IF;
2886 END IF;
2887 END IF;
2888
2889 IF p_fed_fund_cd = 'ALT' THEN -- FA 157 - Cosigner Data validations for ALT loans
2890 validate_alt_loan_cosigner (1,
2891 p_interface.cs1_ssn_txt ,
2892 p_interface.cs1_citizenship_status ,
2893 p_interface.cs1_state_txt ,
2894 p_interface.cs1_drv_license_state_txt ,
2895 p_interface.cs1_signature_code_txt ,
2896 p_interface.cs1_credit_auth_code_txt ,
2897 p_interface.cs1_elect_sig_ind_code_txt ,
2898 p_interface.cs1_rel_to_student_flag);
2899 validate_alt_loan_cosigner (2,
2900 p_interface.cs2_ssn_txt ,
2901 p_interface.cs2_citizenship_status ,
2902 p_interface.cs2_state_txt ,
2903 p_interface.cs2_drv_license_state_txt ,
2904 p_interface.cs2_signature_code_txt ,
2905 p_interface.cs2_credit_auth_code_txt ,
2906 p_interface.cs2_elect_sig_ind_code_txt ,
2907 p_interface.cs2_rel_to_student_flag);
2908 END IF; -- END FA 157 - Cosigner Data validations for ALT loans
2909
2910
2911 IF NVL(p_status,TRUE) <> FALSE THEN
2912 p_status := TRUE;
2913 END IF;
2914
2915 EXCEPTION
2916 WHEN OTHERS THEN
2917
2918 fnd_message.set_name('IGF','IGF_GE_UNHANDLED_EXP');
2919 fnd_message.set_token('NAME','IGF_SL_CL_LI_IMP_PKG.VALIDATE_LOAN_ORIG_INT');
2920 fnd_file.put_line(fnd_file.log,fnd_message.get);
2921
2922 IF fnd_log.level_exception >= fnd_log.g_current_runtime_level THEN
2923 fnd_log.string(fnd_log.level_exception,'igf.plsql.igf_sl_cl_imp_pkg.validate_loan_orig_int.exception','VALIDATE_LOAN_ORIG_INT ' || SQLERRM);
2924 END IF;
2925
2926 RAISE IMPORT_ERROR;
2927
2928
2929 END validate_loan_orig_int;
2930
2931 PROCEDURE validate_loan_disb( p_disb_interface IN c_disb_interface%ROWTYPE,
2932 p_award_id IN NUMBER,
2933 p_d_status OUT NOCOPY BOOLEAN)
2934 AS
2935 --
2936 -- Created By : gmuralid
2937 -- Created On : 24-JUN-2003
2938 -- Purpose : This procedure is used to validate the loan origination disbursement interface record
2939 -- Known limitations, enhancements or remarks :
2940 -- Change History :
2941 -- Who When What
2942 -- (reverse chronological order - newest change first)
2943 -- veramach 16-SEP-2003 1.Validation for disbursement_hld_release_flag changed to look into 'F','N'
2944 -- 2. Validation for record type changed to look into IGF_SL_CL_REC_TYPE_CD
2945
2946 CURSOR c_gross_amt(cp_award_id NUMBER,
2947 cp_disb_num NUMBER)
2948 IS
2949 SELECT disb_accepted_amt disb_gross_amt
2950 FROM igf_aw_awd_disb_all
2951 WHERE award_id = cp_award_id
2952 AND disb_num = cp_disb_num;
2953
2954 l_gross_amt c_gross_amt%ROWTYPE;
2955 lv_disb_net_amt NUMBER;
2956
2957 l_result VARCHAR2(1);
2958
2959 BEGIN
2960
2961 g_tab_index := 0;
2962
2963 IF p_disb_interface.record_type IS NULL THEN
2964 fnd_message.set_name('IGF','IGF_SL_DISB_REC_TYP_REQD');
2965 fnd_message.set_token('DISB_NUM',p_disb_interface.disbursement_num);
2966 g_tab_index := g_tab_index + 1;
2967 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2968 p_d_status := FALSE;
2969 ELSE
2970 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_REC_TYPE_CD',p_disb_interface.record_type,g_sys_award_year) IS NULL THEN
2971 g_tab_index := g_tab_index + 1;
2972 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
2973 fnd_message.set_token('FIELD','RECORD_TYPE');
2974 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
2975 p_d_status := FALSE;
2976 END IF;
2977
2978 END IF;
2979
2980 IF (p_disb_interface.disbursement_num < 0) OR (p_disb_interface.disbursement_num > 99) THEN
2981 fnd_message.set_name('IGF','IGF_SL_CL_INV_DISB_NUM');
2982 fnd_message.set_token('DISB_NUM',p_disb_interface.disbursement_num);
2983 g_tab_index := g_tab_index + 1;
2984 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2985 p_d_status := FALSE;
2986 END IF;
2987
2988 IF p_disb_interface.gross_disbursement_amt IS NOT NULL THEN
2989 OPEN c_gross_amt(p_award_id,p_disb_interface.disbursement_num);
2990 FETCH c_gross_amt INTO l_gross_amt;
2991 CLOSE c_gross_amt;
2992
2993 IF (l_gross_amt.disb_gross_amt IS NULL) OR (l_gross_amt.disb_gross_amt <> p_disb_interface.gross_disbursement_amt) THEN
2994 fnd_message.set_name('IGF','IGF_SL_CL_INV_DISB_AMT');
2995 g_tab_index := g_tab_index + 1;
2996 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
2997 p_d_status := FALSE;
2998 END IF;
2999 END IF;
3000
3001 IF p_disb_interface.origination_fee_amt IS NOT NULL THEN
3002 IF (p_disb_interface.origination_fee_amt < 0) THEN
3003 fnd_message.set_name('IGF','IGF_SL_CL_INV_ORG_FEE_AMT');
3004 g_tab_index := g_tab_index + 1;
3005 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
3006 p_d_status := FALSE;
3007 END IF;
3008 END IF;
3009
3010 IF p_disb_interface.guarantee_fee_amt IS NOT NULL THEN
3011 IF (p_disb_interface.guarantee_fee_amt < 0) THEN
3012 fnd_message.set_name('IGF','IGF_SL_CL_INV_GUA_FEE_AMT');
3013 g_tab_index := g_tab_index + 1;
3014 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
3015 p_d_status := FALSE;
3016 END IF;
3017 END IF;
3018
3019 IF NVL(p_disb_interface.outstd_cancel_amt,0) < 0 THEN
3020 g_tab_index := g_tab_index + 1;
3021 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
3022 fnd_message.set_token('FIELD','OUTSTD_CANCEL_AMT');
3023 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
3024 p_d_status := FALSE;
3025 END IF;
3026
3027 IF NVL(p_disb_interface.netted_cancel_amt,0) < 0 THEN
3028 g_tab_index := g_tab_index + 1;
3029 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
3030 fnd_message.set_token('FIELD','NETTED_CANCEL_AMT');
3031 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
3032 p_d_status := FALSE;
3033 END IF;
3034
3035 IF NVL(p_disb_interface.net_cancel_amt,0) < 0 THEN
3036 g_tab_index := g_tab_index + 1;
3037 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
3038 fnd_message.set_token('FIELD','NET_CANCEL_AMT');
3039 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
3040 p_d_status := FALSE;
3041 END IF;
3042
3043 -- FA 134 Enhancements : guarantee_fees_paid_amt is release 5 field only
3044 -- FA 163 guarantee_fees_paid_amt is valid for realease 4 also
3045 IF g_rel_version IN ('RELEASE-5','RELEASE-4') AND NVL(p_disb_interface.guarantee_fees_paid_amt,0) < 0 THEN
3046 g_tab_index := g_tab_index + 1;
3047 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
3048 fnd_message.set_token('FIELD','GUARANTEE_FEES_PAID_AMT');
3049 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
3050 p_d_status := FALSE;
3051 END IF;
3052
3053 IF NVL(p_disb_interface.guarantee_amt,0) < 0 THEN
3054 g_tab_index := g_tab_index + 1;
3055 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
3056 fnd_message.set_token('FIELD','GUARANTEE_AMT');
3057 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
3058 p_d_status := FALSE;
3059 END IF;
3060
3061 IF NVL(p_disb_interface.sch_disbursement_num,0) < 0 THEN
3062 g_tab_index := g_tab_index + 1;
3063 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
3064 fnd_message.set_token('FIELD','SCH_DISBURSEMENT_NUM');
3065 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
3066 p_d_status := FALSE;
3067 END IF;
3068
3069 -- FA 163 : direct_to_borr_flag should be either Y or N
3070 IF p_disb_interface.direct_to_borr_flag IS NOT NULL THEN
3071 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_disb_interface.direct_to_borr_flag) IS NULL THEN
3072 g_tab_index := g_tab_index + 1;
3073 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
3074 fnd_message.set_token('FIELD','DIRECT_TO_BORR_FLAG');
3075 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
3076 p_d_status := FALSE;
3077 END IF;
3078 END IF;
3079
3080 --
3081 -- Check the net amount, should not be negative
3082 --
3083
3084 lv_disb_net_amt := NVL(p_disb_interface.gross_disbursement_amt,0) - NVL(p_disb_interface.guarantee_fee_amt,0) - NVL(p_disb_interface.origination_fee_amt,0)
3085 + NVL(p_disb_interface.guarantee_fees_paid_amt,0) + NVL(p_disb_interface.origination_fees_paid_amt,0);
3086
3087 IF lv_disb_net_amt < 0 THEN
3088 fnd_message.set_name('IGF','IGF_DB_INVALID_NET_AMT');
3089 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
3090 p_d_status := FALSE;
3091 END IF;
3092
3093 IF p_disb_interface.fund_dist_mthd_type IS NOT NULL THEN
3094 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_DB_FUND_DISB_METH',p_disb_interface.fund_dist_mthd_type,g_sys_award_year) IS NULL THEN
3095 g_tab_index := g_tab_index + 1;
3096 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
3097 fnd_message.set_token('FIELD','FUND_DIST_MTHD_TYPE');
3098 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
3099 p_d_status := FALSE;
3100 END IF;
3101 END IF;
3102
3103 IF p_disb_interface.late_disbursement_flag IS NOT NULL THEN
3104 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_disb_interface.late_disbursement_flag) IS NULL THEN
3105 g_tab_index := g_tab_index + 1;
3106 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
3107 fnd_message.set_token('FIELD','LATE_DISBURSEMENT_FLAG');
3108 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
3109 p_d_status := FALSE;
3110 END IF;
3111 END IF;
3112
3113 IF p_disb_interface.prev_reported_flag IS NOT NULL THEN
3114 IF igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_disb_interface.prev_reported_flag) IS NULL THEN
3115 g_tab_index := g_tab_index + 1;
3116 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
3117 fnd_message.set_token('FIELD','PREV_REPORTED_FLAG');
3118 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
3119 p_d_status := FALSE;
3120 END IF;
3121 END IF;
3122
3123 IF p_disb_interface.disbursement_hld_release_flag IS NOT NULL THEN
3124 IF p_disb_interface.disbursement_hld_release_flag IN ('H','R') OR
3125 (igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_DB_HOLD_REL_IND',p_disb_interface.disbursement_hld_release_flag,g_sys_award_year)) IS NULL
3126 THEN
3127 g_tab_index := g_tab_index + 1;
3128 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
3129 fnd_message.set_token('FIELD','DISBURSEMENT_HLD_RELEASE_FLAG');
3130 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
3131 p_d_status := FALSE;
3132 END IF;
3133 END IF;
3134
3135 IF p_disb_interface.pnote_code IS NULL THEN
3136 fnd_message.set_name('IGF','IGF_SL_CL_PNOTE_STAT_REQD');
3137 g_tab_index := g_tab_index + 1;
3138 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
3139 p_d_status := FALSE;
3140
3141 ELSIF p_disb_interface.pnote_code IN ('A','C','F','G','I','M','N','P','Q','R','S','X')
3142 OR (igf_ap_gen.get_aw_lookup_meaning('IGF_SL_PNOTE_STATUS',p_disb_interface.pnote_code,g_sys_award_year) IS NULL)
3143 THEN
3144
3145 g_tab_index := g_tab_index + 1;
3146 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
3147 fnd_message.set_token('FIELD','PNOTE_CODE');
3148 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
3149 p_d_status := FALSE;
3150
3151 END IF;
3152
3153 -- FA 134: is a Release -5 field only
3154 IF g_rel_version = 'RELEASE-5' THEN
3155 IF p_disb_interface.pnote_status_date IS NULL THEN
3156 fnd_message.set_name('IGF','IGF_SL_CL_P_STAT_DT_REQD');
3157 g_tab_index := g_tab_index + 1;
3158 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
3159 p_d_status := FALSE;
3160 END IF;
3161 END IF;
3162
3163 IF p_disb_interface.origination_fees_paid_amt IS NOT NULL THEN
3164 IF (p_disb_interface.origination_fees_paid_amt < 0) THEN
3165 fnd_message.set_name('IGF','IGF_SL_CL_INV_ORG_FEE_AMT');
3166 g_tab_index := g_tab_index + 1;
3167 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
3168 p_d_status := FALSE;
3169 END IF;
3170 END IF;
3171
3172
3173 IF p_disb_interface.disbursement_status_code IS NOT NULL THEN
3174 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_DISB_STATUS',p_disb_interface.disbursement_status_code,g_sys_award_year) IS NULL THEN
3175 g_tab_index := g_tab_index + 1;
3176 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
3177 fnd_message.set_token('FIELD','DISBURSEMENT_STATUS_CODE');
3178 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
3179 p_d_status := FALSE;
3180 END IF;
3181 END IF;
3182
3183 IF p_disb_interface.fund_status_code IS NOT NULL THEN
3184 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_DB_FUND_STATUS',p_disb_interface.fund_status_code,g_sys_award_year) IS NULL THEN
3185 g_tab_index := g_tab_index + 1;
3186 fnd_message.set_name('IGF','IGF_SL_CL_INV_FND_STATUS');
3187 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11) || fnd_message.get;
3188 p_d_status := FALSE;
3189 END IF;
3190 END IF;
3191
3192 IF p_disb_interface.err_mesg_1_cd IS NOT NULL THEN
3193 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_ERROR',p_disb_interface.err_mesg_1_cd,g_sys_award_year) IS NULL THEN
3194 g_tab_index := g_tab_index + 1;
3195 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
3196 fnd_message.set_token('FIELD','ERR_MESG_1_CD');
3197 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
3198 p_d_status := FALSE;
3199 END IF;
3200 END IF;
3201
3202 IF p_disb_interface.err_mesg_2_cd IS NOT NULL THEN
3203 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_ERROR',p_disb_interface.err_mesg_2_cd,g_sys_award_year) IS NULL THEN
3204 g_tab_index := g_tab_index + 1;
3205 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
3206 fnd_message.set_token('FIELD','ERR_MESG_2_CD');
3207 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
3208 p_d_status := FALSE;
3209 END IF;
3210 END IF;
3211
3212 IF p_disb_interface.err_mesg_3_cd IS NOT NULL THEN
3213 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_ERROR',p_disb_interface.err_mesg_3_cd,g_sys_award_year) IS NULL THEN
3214 g_tab_index := g_tab_index + 1;
3215 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
3216 fnd_message.set_token('FIELD','ERR_MESG_3_CD');
3217 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
3218 p_d_status := FALSE;
3219 END IF;
3220 END IF;
3221
3222 IF p_disb_interface.err_mesg_4_cd IS NOT NULL THEN
3223 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_ERROR',p_disb_interface.err_mesg_4_cd,g_sys_award_year) IS NULL THEN
3224 g_tab_index := g_tab_index + 1;
3225 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
3226 fnd_message.set_token('FIELD','ERR_MESG_4_CD');
3227 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
3228 p_d_status := FALSE;
3229 END IF;
3230 END IF;
3231
3232 IF p_disb_interface.err_mesg_5_cd IS NOT NULL THEN
3233 IF igf_ap_gen.get_aw_lookup_meaning('IGF_SL_CL_ERROR',p_disb_interface.err_mesg_5_cd,g_sys_award_year) IS NULL THEN
3234 g_tab_index := g_tab_index + 1;
3235 fnd_message.set_name('IGF','IGF_AP_INV_FLD_VAL');
3236 fnd_message.set_token('FIELD','ERR_MESG_5_CD');
3237 g_igf_sl_msg_table(g_tab_index).msg_text := RPAD(g_error,11)|| fnd_message.get;
3238 p_d_status := FALSE;
3239 END IF;
3240 END IF;
3241
3242
3243 IF NVL(p_d_status,TRUE) <> FALSE THEN
3244 p_d_status := TRUE;
3245 END IF;
3246
3247 EXCEPTION
3248 WHEN OTHERS THEN
3249
3250 fnd_message.set_name('IGF','IGF_GE_UNHANDLED_EXP');
3251 fnd_message.set_token('NAME','IGF_SL_CL_LI_IMP_PKG.VALIDATE_LOAN_DISB');
3252 fnd_file.put_line(fnd_file.log,fnd_message.get);
3253
3254 IF fnd_log.level_exception >= fnd_log.g_current_runtime_level THEN
3255 fnd_log.string(fnd_log.level_exception,'igf.plsql.igf_sl_cl_imp_pkg.validate_loan_disb.exception','Unhandled exception : '||SQLERRM);
3256 END IF;
3257 RAISE IMPORT_ERROR;
3258
3259 END validate_loan_disb;
3260
3261 PROCEDURE write_logfile(p_log IN VARCHAR2)
3262 AS
3263 --
3264 -- Created By : gmuralid
3265 -- Created On : 24-JUN-2003
3266 -- Purpose : This procedure is used to write the messages into log file
3267 -- Known limitations, enhancements or remarks :
3268 -- Change History :
3269 -- Who When What
3270 -- (reverse chronological order - newest change first)
3271 --
3272
3273 indx NUMBER;
3274
3275 BEGIN
3276
3277 IF g_igf_sl_msg_table.COUNT <> 0 THEN
3278 FOR indx IN g_igf_sl_msg_table.FIRST..g_igf_sl_msg_table.LAST
3279 LOOP
3280 IF p_log = 'D' THEN
3281 fnd_file.put_line(fnd_file.log,LPAD(' ',11) || g_igf_sl_msg_table(indx).msg_text);
3282 ELSE
3283 fnd_file.put_line(fnd_file.log,g_igf_sl_msg_table(indx).msg_text);
3284 END IF;
3285 END LOOP;
3286 END IF;
3287
3288 g_igf_sl_msg_table.DELETE;
3289
3290 EXCEPTION
3291 WHEN OTHERS THEN
3292
3293 fnd_message.set_name('IGF','IGF_GE_UNHANDLED_EXP');
3294 fnd_message.set_token('NAME','IGF_SL_CL_LI_IMP_PKG.WRITE_LOGFILE');
3295 fnd_file.put_line(fnd_file.log,fnd_message.get);
3296
3297 IF fnd_log.level_exception >= fnd_log.g_current_runtime_level THEN
3298 fnd_log.string(fnd_log.level_exception,'igf.plsql.igf_sl_cl_imp_pkg.write_logfile.exception','unhandled exception : '||SQLERRM);
3299 END IF;
3300 RAISE IMPORT_ERROR;
3301
3302 END write_logfile;
3303
3304
3305 PROCEDURE delete_records ( p_rowid ROWID,
3306 p_loan_id NUMBER,
3307 p_loan_number VARCHAR2)
3308 IS
3309
3310
3311 l_award_id igf_aw_award_all.award_id%TYPE;
3312
3313 l_lor_orig_id NUMBER;
3314 l_resp_r1_clrp1_id NUMBER;
3315
3316 l_lor_rowid ROWID;
3317 l_loc_rowid ROWID;
3318 l_alt_rowid ROWID;
3319 l_disb_rowid ROWID;
3320 l_resp_r1_rowid ROWID;
3321 l_resp_r4_rowid ROWID;
3322 l_resp_r8_rowid ROWID;
3323 l_disb_resp_rowid ROWID;
3324
3325 CURSOR c_lor(cp_loan_id NUMBER)
3326 IS
3327 SELECT
3328 rowid,
3329 origination_id
3330 FROM igf_sl_lor_all
3331 WHERE loan_id = cp_loan_id;
3332
3333 l_lor c_lor%ROWTYPE;
3334
3335 CURSOR c_lor_loc(cp_orig_id NUMBER)
3336 IS
3337 SELECT rowid
3338 FROM igf_sl_lor_loc_all
3339 WHERE origination_id = cp_orig_id;
3340
3341 l_lor_loc c_lor_loc%ROWTYPE;
3342
3343 CURSOR c_alt_borw(cp_loan_id NUMBER)
3344 IS
3345 SELECT rowid
3346 FROM igf_sl_alt_borw_all
3347 WHERE loan_id = cp_loan_id;
3348
3349 l_alt_borw c_alt_borw%ROWTYPE;
3350
3351 CURSOR c_disb_loc(cp_award_id NUMBER)
3352 IS
3353 SELECT rowid
3354 FROM igf_sl_awd_disb_loc_all
3355 WHERE award_id = cp_award_id;
3356
3357 l_disb_loc c_disb_loc%ROWTYPE;
3358
3359 CURSOR c_resp_r1(cp_loan_number VARCHAR2)
3360 IS
3361 SELECT rowid,clrp1_id
3362 FROM igf_sl_cl_resp_r1_all
3363 WHERE loan_number = cp_loan_number;
3364
3365 l_resp_r1 c_resp_r1%ROWTYPE;
3366
3367 CURSOR c_resp_r4(cp_rp1_id NUMBER)
3368 IS
3369 SELECT rowid
3370 FROM igf_sl_cl_resp_r4_all
3371 WHERE clrp1_id = cp_rp1_id;
3372
3373 l_resp_r4 c_resp_r4%ROWTYPE;
3374
3375 CURSOR c_resp_r8(cp_rp1_id NUMBER)
3376 IS
3377 SELECT rowid
3378 FROM igf_sl_cl_resp_r8_all
3379 WHERE clrp1_id = cp_rp1_id;
3380
3381 l_resp_r8 c_resp_r8%ROWTYPE;
3382
3383 CURSOR c_disb_resp(cp_loan_number VARCHAR2)
3384 IS
3385 SELECT rowid
3386 FROM igf_db_cl_disb_resp_all
3387 WHERE loan_number = cp_loan_number;
3388
3389 l_disb_resp c_disb_resp%ROWTYPE;
3390
3391
3392 CURSOR c_pnote_hist(cp_loan_id NUMBER)
3393 IS
3394 SELECT
3395 rowid
3396 FROM igf_sl_pnote_stat_h
3397 WHERE loan_id = cp_loan_id;
3398
3399 l_pnote_hist c_pnote_hist%ROWTYPE;
3400
3401
3402 BEGIN
3403
3404 OPEN c_lor(p_loan_id);
3405 FETCH c_lor INTO l_lor;
3406 IF (c_lor%FOUND) THEN
3407 CLOSE c_lor;
3408 l_lor_rowid := l_lor.rowid;
3409 l_lor_orig_id := l_lor.origination_id;
3410 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3411 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.delete_record.debug','DELETE_RECORDS: Before c_pnote_hist OPEN');
3412 END IF;
3413
3414 FOR l_pnote_hist IN c_pnote_hist(p_loan_id)
3415 LOOP
3416 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3417 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.delete_records.debug','DELETE_RECORDS: c_pnote_hist ROWID ' || l_pnote_hist.rowid);
3418 END IF;
3419 igf_sl_pnote_stat_h_pkg.delete_row(l_pnote_hist.rowid);
3420 END LOOP;
3421
3422 OPEN c_lor_loc(l_lor_orig_id);
3423 FETCH c_lor_loc INTO l_lor_loc;
3424 IF (c_lor_loc%FOUND) THEN
3425 CLOSE c_lor_loc;
3426 l_loc_rowid := l_lor_loc.rowid;
3427 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3428 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.delete_record.debug','l_lor_rowid.rowid:'||l_lor_rowid);
3429 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.delete_record.debug','l_loc_rowid.rowid:'||l_loc_rowid);
3430 END IF;
3431 igf_sl_lor_loc_pkg.delete_row(l_loc_rowid);
3432 igf_sl_lor_pkg.delete_row(l_lor_rowid);
3433 ELSE
3434 CLOSE c_lor_loc;
3435 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3436 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.delete_record.debug','l_lor_rowid.rowid:'||l_lor_rowid);
3437 END IF;
3438 igf_sl_lor_pkg.delete_row(l_lor_rowid);
3439 END IF;
3440 ELSE
3441 CLOSE c_lor;
3442 l_lor_rowid := NULL;
3443 l_lor_orig_id := NULL;
3444 END IF;
3445
3446 OPEN c_alt_borw(p_loan_id);
3447 FETCH c_alt_borw INTO l_alt_borw;
3448 IF (c_alt_borw%FOUND) THEN
3449 CLOSE c_alt_borw;
3450 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3451 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_li_imp_pkg.delete_records.debug','l_alt_borw ROWID '|| l_alt_borw.rowid);
3452 END IF;
3453 igf_sl_alt_borw_pkg.delete_row(x_ROWID => l_alt_borw.rowid);
3454 ELSE
3455 CLOSE c_alt_borw;
3456 END IF;
3457
3458 FOR l_disb_loc IN c_disb_loc(l_award_id) LOOP
3459 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3460 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_li_imp_pkg.delete_records.debug','l_disb_loc ROWID ' || l_disb_loc.rowid);
3461 END IF;
3462 igf_sl_awd_disb_loc_pkg.delete_row(x_ROWID => l_disb_loc.rowid);
3463 END LOOP;
3464
3465 IF (p_loan_number IS NOT NULL) THEN
3466 OPEN c_resp_r1(p_loan_number);
3467 FETCH c_resp_r1 INTO l_resp_r1;
3468 IF (c_resp_r1%FOUND) THEN
3469 CLOSE c_resp_r1;
3470 l_resp_r1_rowid := l_resp_r1.rowid;
3471 l_resp_r1_clrp1_id := l_resp_r1.clrp1_id;
3472
3473 OPEN c_resp_r4(l_resp_r1_clrp1_id);
3474 FETCH c_resp_r4 INTO l_resp_r4;
3475 IF (c_resp_r4%FOUND) THEN
3476 CLOSE c_resp_r4;
3477 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3478 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.delete_record.debug','l_resp_r4 ROWID ' || l_resp_r4.rowid);
3479 END IF;
3480 igf_sl_cl_resp_r4_pkg.delete_row(l_resp_r4.rowid);
3481 ELSE
3482 CLOSE c_resp_r4;
3483 END IF;
3484
3485 FOR l_resp_r8 IN c_resp_r8(l_resp_r1_clrp1_id) LOOP
3486 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3487 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.delete_record.debug','l_resp_r8 ROWID ' || l_resp_r8.rowid);
3488 END IF;
3489 igf_sl_cl_resp_r8_pkg.delete_row(x_ROWID => l_resp_r8.rowid);
3490 END LOOP;
3491 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3492 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.delete_record.debug','l_resp_r1 ROWID ' || l_resp_r1.rowid);
3493 END IF;
3494 igf_sl_cl_resp_r1_pkg.delete_row(x_ROWID => l_resp_r1_rowid);
3495
3496 ELSE
3497 CLOSE c_resp_r1;
3498 END IF;
3499
3500 FOR l_disb_resp IN c_disb_resp(p_loan_number) LOOP
3501 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3502 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.delete_record.debug','l_disb_resp ROWID ' || l_disb_resp.rowid);
3503 END IF;
3504 igf_db_cl_disb_resp_pkg.delete_row(x_ROWID => l_disb_resp.rowid);
3505 END LOOP;
3506
3507 END IF;
3508
3509 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3510 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.delete_record.debug','igf_sl_loans ROWID ' || p_rowid);
3511 END IF;
3512 igf_sl_loans_pkg.delete_row(p_rowid);
3513
3514 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3515 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.delete_record.debug','Deletion Complete');
3516 END IF;
3517
3518
3519 EXCEPTION
3520 WHEN OTHERS THEN
3521
3522 IF fnd_log.level_exception >= fnd_log.g_current_runtime_level THEN
3523 fnd_log.string(fnd_log.level_exception,'igf.plsql.igf_sl_cl_imp_pkg.delete_records.exception','Exception ' || SQLERRM);
3524 END IF;
3525 fnd_message.set_name('IGF','IGF_GE_UNHANDLED_EXP');
3526 fnd_message.set_token('NAME','IGF_SL_CL_LI_IMP_PKG.DELETE_RECORDS');
3527
3528 RAISE IMPORT_ERROR;
3529
3530
3531 END delete_records;
3532
3533 PROCEDURE insert_records(p_interface IN c_interface%ROWTYPE,
3534 p_award_id IN NUMBER,
3535 p_fed_fund IN VARCHAR2,
3536 p_student_person_id IN NUMBER)
3537 AS
3538 --
3539 -- Created By : gmuralid
3540 -- Created On : 24-JUN-2003
3541 -- Purpose : This procedure is used to perform the dml operation on every table
3542 -- Known limitations, enhancements or remarks :
3543 -- Change History :
3544 -- Who When What
3545 -- (reverse chronological order - newest change first)
3546 -- bkkumar 07-oct-2003 Bug 3104228 FA 122 Loans Enhancements
3547 -- a) Impact of obsoleting GUARANTOR_ID_TXT,
3548 -- LENDER_ID_TXT,LEND_NON_ED_BRC_ID_TXT,RECIPIENT_ID_TXT,
3549 -- RECIPIENT_TYPE,RECIPIENT_NON_ED_BRC_ID_TXT from the
3550 -- interface table and also adding a new column relationship_cd
3551 -- b) Impact of adding the relationship_cd
3552 -- in igf_sl_lor_all table and obsoleting
3553 -- BORW_LENDER_ID, DUNS_BORW_LENDER_ID,
3554 -- GUARANTOR_ID, DUNS_GUARNT_ID,
3555 -- LENDER_ID, DUNS_LENDER_ID
3556 -- LEND_NON_ED_BRC_ID, RECIPIENT_ID
3557 -- RECIPIENT_TYPE,DUNS_RECIP_ID
3558 -- RECIP_NON_ED_BRC_ID columns.
3559 -- c) The DUNS_BORW_LENDER_ID
3560 -- DUNS_GUARNT_ID
3561 -- DUNS_LENDER_ID
3562 -- DUNS_RECIP_ID columns are osboleted from the
3563 -- igf_sl_lor_loc_all table.
3564 -- veramach 23-SEP-2003 Bug 3104228:
3565 -- 1. Obsoleted lend_apprv_denied_code,lend_apprv_denied_date,cl_rec_status_last_update,
3566 -- cl_rec_status,mpn_confirm_code,appl_loan_phase_code_chg,appl_loan_phase_code,
3567 -- p_ssn_chg_date,p_dob_chg_date,s_ssn_chg_date,s_dob_chg_date,s_local_addr_chg_date,
3568 -- chg_batch_id,appl_send_error_codes from igf_sl_lor
3569 -- 2. Obsoleted lend_apprv_denied_code,lend_apprv_denied_date,cl_rec_status_last_update,
3570 -- cl_rec_status,mpn_confirm_code,appl_loan_phase_code_chg,appl_loan_phase_code,
3571 -- p_ssn_chg_date,p_dob_chg_date,s_ssn_chg_date,s_dob_chg_date,s_local_addr_chg_date,
3572 -- chg_batch_id from igf_sl_lor_loc
3573 -- veramach 16-SEP-2003 FA 122 loan enhancements
3574 -- Changed c_loan_dtls cursor.it does not select borrower information.igf_sl_gen.get_person_details is used for this
3575
3576
3577 ln_rowid ROWID;
3578 lor_rowid ROWID;
3579 loc_rowid ROWID;
3580 alt_rowid ROWID;
3581
3582
3583 l_b_permt_zip NUMBER(30);
3584 l_b_permt_zip_suffix NUMBER(30);
3585
3586 l_b_dob DATE;
3587 l_b_legal_res_date DATE;
3588 l_b_signature_date DATE;
3589
3590 l_p_default_status VARCHAR2(30);
3591 l_b_first_name VARCHAR2(150);
3592 l_b_last_name VARCHAR2(150);
3593 l_b_middle_name VARCHAR2(150);
3594 l_b_ssn VARCHAR2(9);
3595 l_b_permt_addr1 VARCHAR2(240);
3596 l_b_permt_addr2 VARCHAR2(240);
3597 l_b_permt_city VARCHAR2(60);
3598 l_b_permt_state VARCHAR2(60);
3599 l_b_permt_phone VARCHAR2(60);
3600 l_b_signature_code VARCHAR2(30);
3601 l_b_citizenship_status VARCHAR2(30);
3602 l_b_state_of_legal_res VARCHAR2(30);
3603 l_b_default_status VARCHAR2(30);
3604 l_b_license_state VARCHAR2(30);
3605 l_b_license_number VARCHAR2(30);
3606
3607 ln_loan_id igf_sl_loans.loan_id%TYPE;
3608 ln_albw_id igf_sl_alt_borw_all.albw_id%TYPE;
3609 ln_origination_id igf_sl_lor_all.origination_id%TYPE;
3610
3611 -- FA 122 Loans Enhancements
3612 CURSOR c_get_base_id ( cp_award_id igf_aw_award.award_id%TYPE)
3613 IS
3614 SELECT base_id,
3615 ci_cal_type,
3616 ci_sequence_number
3617 FROM igf_aw_award_v
3618 WHERE award_id = cp_award_id;
3619
3620 l_get_base_id c_get_base_id%ROWTYPE;
3621 -- cursor to get the est_orig_fee_perct for the given set up FA 122 Loans Enhancemtns
3622 CURSOR c_setup (
3623 cp_cal_type igs_ca_inst_all.cal_type%TYPE,
3624 cp_sequence_number igs_ca_inst_all.sequence_number%TYPE,
3625 cp_rel_code igf_sl_cl_setup.relationship_cd%TYPE
3626
3627 )
3628 IS
3629 SELECT est_orig_fee_perct
3630 FROM igf_sl_cl_setup
3631 WHERE ci_cal_type = cp_cal_type
3632 AND ci_sequence_number = cp_sequence_number
3633 AND cp_rel_code = NVL(relationship_cd,'*');
3634
3635 l_setup c_setup%ROWTYPE;
3636
3637 CURSOR c_loan_dtls(p_loan_id NUMBER,
3638 cp_origination_id NUMBER) IS
3639 SELECT loans.row_id,
3640 loans.loan_id,
3641 lor.s_default_status,
3642 lor.p_default_status,
3643 lor.p_person_id,
3644 lor.recipient_id,
3645 lor.lender_id,
3646 lor.guarantor_id,
3647 lor.lend_non_ed_brc_id,
3648 lor.recip_non_ed_brc_id,
3649 lor.recipient_type,
3650 fabase.person_id student_id
3651 FROM igf_sl_loans loans,
3652 igf_sl_lor_v lor,
3653 igf_aw_award awd,
3654 igf_ap_fa_base_rec fabase
3655 WHERE fabase.base_id = awd.base_id
3656 AND loans.award_id = awd.award_id
3657 AND loans.loan_id = lor.loan_id
3658 AND loans.loan_id = p_loan_id;
3659
3660
3661 loan_rec c_loan_dtls%ROWTYPE;
3662
3663 student_dtl_rec igf_sl_gen.person_dtl_rec;
3664 student_dtl_cur igf_sl_gen.person_dtl_cur;
3665
3666 parent_dtl_rec igf_sl_gen.person_dtl_rec;
3667 parent_dtl_cur igf_sl_gen.person_dtl_cur;
3668
3669 CURSOR cur_isir_depend_status (cp_person_id NUMBER)
3670 IS
3671 SELECT isir.dependency_status
3672 FROM igf_ap_fa_base_rec fabase,
3673 igf_ap_isir_matched isir
3674 WHERE isir.payment_isir = 'Y'
3675 AND isir.system_record_type = 'ORIGINAL'
3676 AND isir.base_id = fabase.base_id
3677 AND fabase.person_id = cp_person_id;
3678
3679 l_student_license cur_isir_depend_status%ROWTYPE;
3680
3681 CURSOR c_disb_det (cp_disb_num NUMBER)
3682 IS
3683 SELECT
3684 ROWID,
3685 adisb.*
3686 FROM
3687 igf_aw_awd_disb_all adisb
3688 WHERE
3689 adisb.award_id = p_award_id AND
3690 adisb.disb_num = cp_disb_num;
3691
3692 l_disb_det c_disb_det%ROWTYPE;
3693
3694 CURSOR chk_batch_id(cp_orig_ack_batch_id_txt VARCHAR2)
3695 IS
3696 SELECT cbth_id
3697 FROM igf_sl_cl_batch_all
3698 WHERE batch_id = cp_orig_ack_batch_id_txt;
3699
3700 l_batch_id chk_batch_id%ROWTYPE;
3701
3702 lv_cl_loan_type VARCHAR2(2);
3703 lv_s_citizenship_status VARCHAR2(30);
3704
3705
3706 lv_p_permt_phone igf_sl_lor_loc_all.s_permt_phone%TYPE;
3707 lv_p_citizenship_status igf_ap_isir_matched_all.citizenship_status%TYPE;
3708 lv_p_foreign_postal_code igf_sl_lor_loc_all.s_foreign_postal_code%TYPE;
3709 lv_s_permt_phone igf_sl_lor_loc_all.s_permt_phone%TYPE;
3710 lv_s_license_number igf_ap_isir_matched.driver_license_number%TYPE;
3711 lv_s_license_state igf_ap_isir_matched.driver_license_state%TYPE;
3712 lv_alien_reg_num igf_ap_isir_matched.alien_reg_number%TYPE;
3713 lv_dependency_status igf_ap_isir_matched.dependency_status%TYPE;
3714 lv_s_legal_res_date igf_ap_isir_matched.s_legal_resd_date%TYPE;
3715 lv_s_legal_res_state igf_ap_isir_matched.s_state_legal_residence%TYPE;
3716 ln_cbth_id igf_sl_cl_batch_all.cbth_id%TYPE;
3717 l_clrp1_id igf_sl_cl_resp_r1_all.clrp1_id%TYPE;
3718
3719 l_disb_interface c_disb_interface%ROWTYPE;
3720
3721
3722 awdloc_rowid ROWID;
3723 clb_rowid ROWID;
3724 l_rl_row_id ROWID;
3725 l_r4_row_id ROWID;
3726 l_r8_row_id ROWID;
3727 l_rost_rowid ROWID;
3728
3729 i NUMBER;
3730 l_cdbr_id NUMBER;
3731 lv_disb_net_amt NUMBER;
3732
3733 BEGIN
3734
3735 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3736 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_record.debug','Before insert into loans IGF_SL_LOANS_ALL');
3737 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg..debug','Values :' ||
3738 ' Award ID ' ||
3739 p_award_id ||
3740 ' Loan Seq Number ' ||
3741 p_interface.loan_seq_num ||
3742 ' Loan Number ' ||
3743 p_interface.loan_number_txt);
3744 END IF;
3745
3746 -- FA 122 Loans Enhancements
3747 OPEN c_get_base_id(p_award_id);
3748 FETCH c_get_base_id INTO l_get_base_id;
3749 CLOSE c_get_base_id;
3750
3751 OPEN c_setup(l_get_base_id.ci_cal_type,l_get_base_id.ci_sequence_number,p_interface.relationship_cd);
3752 FETCH c_setup INTO l_setup;
3753 CLOSE c_setup;
3754
3755 ln_loan_id := NULL;
3756 ln_rowid := NULL;
3757
3758 igf_sl_loans_pkg.insert_row (
3759 x_mode => 'R',
3760 x_rowid => ln_rowid,
3761 x_loan_id => ln_loan_id,
3762 x_award_id => p_award_id,
3763 x_seq_num => p_interface.loan_seq_num,
3764 x_loan_number => p_interface.loan_number_txt,
3765 x_loan_per_begin_date => p_interface.loan_per_begin_date,
3766 x_loan_per_end_date => p_interface.loan_per_end_date,
3767 x_loan_status => p_interface.loan_status_code,
3768 x_loan_status_date => p_interface.loan_status_date,
3769 x_loan_chg_status => NULL,
3770 x_loan_chg_status_date => NULL,
3771 x_active => p_interface.active_flag,
3772 x_active_date => p_interface.active_date,
3773 x_borw_detrm_code => NULL,
3774 x_legacy_record_flag => 'Y',
3775 x_external_loan_id_txt => p_interface.external_loan_id_txt
3776
3777 );
3778
3779 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3780 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','After Insert into IGF_SL_LOANS LOAN_ID ' || ln_loan_id);
3781 END IF;
3782
3783
3784 IF p_fed_fund = 'FLU' THEN
3785 lv_cl_loan_type := 'SU';
3786 ELSIF p_fed_fund = 'FLS' THEN
3787 lv_cl_loan_type := 'SF';
3788 ELSIF p_fed_fund = 'FLP' THEN
3789 lv_cl_loan_type := 'PL';
3790 ELSIF p_fed_fund = 'ALT' THEN
3791 lv_cl_loan_type := 'AL';
3792 ELSIF p_fed_fund = 'GPLUSFL' THEN
3793 lv_cl_loan_type := 'GB';
3794 END IF;
3795
3796 IF (NVL(p_interface.b_stu_indicator_flag,'X') = 'Y') AND (p_fed_fund = 'ALT') THEN
3797 l_p_default_status := p_interface.s_default_status_flag;
3798 g_p_person_id := p_student_person_id;
3799 ELSE
3800 l_p_default_status := p_interface.b_default_status_flag;
3801 END IF;
3802
3803 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3804 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','Before insert into IGF_SL_LOR');
3805 END IF;
3806
3807 lor_rowid := NULL;
3808 ln_origination_id := NULL;
3809
3810 igf_sl_lor_pkg.insert_row (
3811 x_mode => 'R',
3812 x_rowid => lor_rowid,
3813 x_origination_id => ln_origination_id,
3814 x_loan_id => ln_loan_id,
3815 x_sch_cert_date => p_interface.sch_cert_date,
3816 x_orig_status_flag => NULL,--This is applicable for Direct Loans
3817 x_orig_batch_id => p_interface.orig_batch_id_txt,
3818 x_orig_batch_date => p_interface.orig_batch_date,
3819 x_chg_batch_id => NULL,--This is applicable for Direct Loans
3820 x_orig_ack_date => p_interface.orig_ack_date,
3821 x_credit_override => NULL, -- FA 149 Credit status override changed to crdt_decision_status
3822 x_credit_decision_date => p_interface.credit_status_date,
3823 x_req_serial_loan_code => p_interface.req_serial_loan_code,
3824 x_act_serial_loan_code => p_interface.act_serial_loan_code,
3825 x_pnote_delivery_code => p_interface.pnote_delivery_code,
3826 x_pnote_status => p_interface.pnote_status_code,
3827 x_pnote_status_date => p_interface.pnote_status_date,
3828 x_pnote_id => NULL,--This is applicable for Direct Loans
3829 x_pnote_print_ind => NULL,--This is applicable for Direct Loans
3830 x_pnote_accept_amt => NULL,--This is applicable for Direct Loans
3831 x_pnote_accept_date => NULL,--This is applicable for Direct Loans
3832 x_unsub_elig_for_heal => NULL,--This is applicable for Direct Loans
3833 x_disclosure_print_ind => NULL,--This is applicable for Direct Loans
3834 x_orig_fee_perct => l_setup.est_orig_fee_perct,
3835 x_borw_confirm_ind => p_interface.borw_confirm_flag,
3836 x_borw_interest_ind => p_interface.borw_interest_flag,
3837 x_borw_outstd_loan_code => p_interface.borw_outstd_loan_flag,
3838 x_unsub_elig_for_depnt => NULL,--This is applicable for Direct Loans
3839 x_guarantee_amt => p_interface.guarantee_amt,
3840 x_guarantee_date => p_interface.guarantee_date,
3841 x_guarnt_amt_redn_code => p_interface.guarnt_amt_redn_code,
3842 x_guarnt_status_code => p_interface.guarnt_status_code,
3843 x_guarnt_status_date => p_interface.guarnt_status_date,
3844 x_lend_apprv_denied_code => p_interface.lend_apprv_denied_code,
3845 x_lend_apprv_denied_date => p_interface.lend_apprv_denied_date,
3846 x_lend_status_code => p_interface.lend_status_code,
3847 x_lend_status_date => p_interface.lend_status_date,
3848 x_guarnt_adj_ind => p_interface.guarnt_adj_flag,
3849 x_grade_level_code => p_interface.grade_level_code,
3850 x_enrollment_code => p_interface.enrollment_code,
3851 x_anticip_compl_date => p_interface.anticip_compl_date,
3852 x_borw_lender_id => NULL,
3853 x_duns_borw_lender_id => NULL,
3854 x_guarantor_id => NULL,
3855 x_duns_guarnt_id => NULL,
3856 x_prc_type_code => p_interface.prc_type_code,
3857 x_cl_seq_number => p_interface.cl_seq_num,
3858 x_last_resort_lender => p_interface.last_resort_lender_flag,
3859 x_lender_id => NULL,
3860 x_duns_lender_id => NULL,
3861 x_lend_non_ed_brc_id => NULL,
3862 x_recipient_id => NULL,
3863 x_recipient_type => NULL,
3864 x_duns_recip_id => NULL,
3865 x_recip_non_ed_brc_id => NULL,
3866 x_rec_type_ind => p_interface.record_code,
3867 x_cl_loan_type => lv_cl_loan_type,
3868 x_cl_rec_status => p_interface.cl_rec_status,
3869 x_cl_rec_status_last_update => p_interface.cl_rec_status_last_update,
3870 x_alt_prog_type_code => p_interface.alt_prog_type_cd,
3871 x_alt_appl_ver_code => p_interface.alt_appl_ver_code_num,
3872 x_mpn_confirm_code => p_interface.mpn_confirm_code,-- May be Obsolete field
3873 x_resp_to_orig_code => p_interface.resp_to_orig_flag,
3874 x_appl_loan_phase_code => p_interface.appl_loan_phase_code,
3875 x_appl_loan_phase_code_chg => p_interface.appl_loan_phase_code_chg,
3876 x_appl_send_error_codes => NULL,-- May be Obsolete field
3877 x_tot_outstd_stafford => p_interface.tot_outstd_stafford_amt,
3878 x_tot_outstd_plus => p_interface.tot_outstd_plus_amt,
3879 x_alt_borw_tot_debt => p_interface.alt_borw_tot_stu_loan_debt_amt,
3880 x_act_interest_rate => p_interface.act_interest_rate_num,
3881 x_service_type_code => p_interface.service_type_code,
3882 x_rev_notice_of_guarnt => p_interface.rev_notice_of_guarnt_code,
3883 x_sch_refund_amt => p_interface.sch_refund_amt,
3884 x_sch_refund_date => p_interface.sch_refund_date,
3885 x_uniq_layout_vend_code => p_interface.uniq_layout_vend_code,
3886 x_uniq_layout_ident_code => p_interface.uniq_layout_ident_code,
3887 x_p_person_id => g_p_person_id,
3888 x_p_ssn_chg_date => NULL,--Change Field for Direct Loan
3889 x_p_dob_chg_date => NULL,--Change Field for Direct Loan
3890 x_p_permt_addr_chg_date => NULL,--Change Field for Direct Loan
3891 x_p_default_status => l_p_default_status,
3892 x_p_signature_code => p_interface.b_signature_flag,
3893 x_p_signature_date => p_interface.b_signature_date,
3894 x_s_ssn_chg_date => NULL,--Change Field for Direct Loan
3895 x_s_dob_chg_date => NULL,--Change Field for Direct Loan
3896 x_s_permt_addr_chg_date => NULL,--Change Field for Direct Loan
3897 x_s_local_addr_chg_date => NULL,--Change Field for Direct Loan
3898 x_s_default_status => p_interface.s_default_status_flag,
3899 x_s_signature_code => p_interface.s_signature_flag,
3900 x_pnote_batch_id => NULL,--This is applicable for Direct Loans
3901 x_pnote_ack_date => NULL,--This is applicable for Direct Loans
3902 x_pnote_mpn_ind => NULL,--This is applicable for Direct Loans
3903 x_elec_mpn_ind => NULL,--This is applicable for Direct Loans
3904 x_borr_sign_ind => p_interface.borr_sign_flag ,
3905 x_stud_sign_ind => p_interface.stud_sign_flag,
3906 x_borr_credit_auth_code => p_interface.borr_credit_auth_flag,
3907 x_relationship_cd => p_interface.relationship_cd,
3908 x_interest_rebate_percent_num => NULL,
3909 x_cps_trans_num => NULL,
3910 x_atd_entity_id_txt => NULL,
3911 x_rep_entity_id_txt => NULL,
3912 x_crdt_decision_status => p_interface.credit_status_code,
3913 x_note_message => NULL,
3914 x_book_loan_amt => NULL,
3915 x_book_loan_amt_date => NULL,
3916 x_pymt_servicer_amt => NULL,
3917 x_pymt_servicer_date => NULL,
3918 x_external_loan_id_txt => p_interface.external_loan_id_txt,
3919 x_alt_approved_amt => p_interface.alt_approved_amt,
3920 x_flp_approved_amt => p_interface.flp_approved_amt,
3921 x_fls_approved_amt => p_interface.fls_approved_amt,
3922 x_flu_approved_amt => p_interface.flu_approved_amt,
3923 x_guarantor_use_txt => p_interface.guarantor_use_txt,
3924 x_lender_use_txt => p_interface.lender_use_txt,
3925 x_loan_app_form_code => p_interface.fed_appl_form_type,
3926 x_reinstatement_amt => p_interface.reinst_avail_amt,
3927 x_requested_loan_amt => p_interface.req_loan_amt,
3928 x_school_use_txt => p_interface.school_use_txt,
3929 x_deferment_request_code => p_interface.defer_req_flag,
3930 x_eft_authorization_code => p_interface.eft_auth_flag,
3931 x_actual_record_type_code => p_interface.actual_record_type_code,
3932 x_override_grade_level_code => NULL,
3933 x_acad_begin_date => NULL,
3934 x_acad_end_date => NULL,
3935 x_b_alien_reg_num_txt => NULL,
3936 x_esign_src_typ_cd => p_interface.esign_src_typ_cd
3937 );
3938 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3939 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','After insert into IGF_SL_LOR ln_origination_id ' || ln_origination_id);
3940 END IF;
3941
3942 IF p_fed_fund = 'ALT' THEN
3943
3944 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3945 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','Before insert into IGF_SL_ALT_BORW_ALL');
3946 END IF;
3947
3948 ln_albw_id := NULL;
3949 alt_rowid := NULL;
3950
3951 igf_sl_alt_borw_pkg.insert_row (
3952 x_mode => 'R',
3953 x_rowid => alt_rowid,
3954 x_stud_mth_auto_pymt => p_interface.stud_mth_auto_pymt_amt,
3955 x_stud_mth_ed_loan_pymt => p_interface.stud_mth_ed_loan_pymt_amt ,
3956 x_stud_mth_other_pymt => p_interface.stud_mth_other_pymt_amt ,
3957 x_stud_mth_crdtcard_pymt => p_interface.stud_mth_crdtcard_pymt_amt ,
3958 x_repayment_opt_code => p_interface.repayment_opt_code,
3959 x_stud_mth_housing_pymt => p_interface.stud_mth_housing_pymt_amt ,
3960 x_albw_id => ln_albw_id,
3961 x_loan_id => ln_loan_id,
3962 x_fed_stafford_loan_debt => p_interface.fed_stafford_loan_debt_amt ,
3963 x_fed_sls_debt => p_interface.fed_sls_debt_amt,
3964 x_heal_debt => p_interface.heal_debt_amt,
3965 x_perkins_debt => p_interface.perkins_debt_amt,
3966 x_other_debt => p_interface.other_debt_amt,
3967 x_crdt_undr_difft_name => p_interface.crdt_undr_difft_name_flag,
3968 x_borw_gross_annual_sal => p_interface.borw_gross_annual_sal_amt,
3969 x_borw_other_income => p_interface.borw_other_income_amt,
3970 x_student_major => p_interface.student_major_txt,
3971 x_int_rate_opt => p_interface.int_rate_opt_code,
3972 x_other_loan_amt => p_interface.other_loan_amt,
3973 x_cs1_lname => p_interface.cs1_lname,
3974 x_cs1_fname => p_interface.cs1_fname,
3975 x_cs1_mi_txt => p_interface.cs1_mi_txt,
3976 x_cs1_ssn_txt => p_interface.cs1_ssn_txt,
3977 x_cs1_citizenship_status => p_interface.cs1_citizenship_status,
3978 x_cs1_address_line_1_txt => p_interface.cs1_address_line_1_txt,
3979 x_cs1_address_line_2_txt => p_interface.cs1_address_line_2_txt,
3980 x_cs1_city_txt => p_interface.cs1_city_txt,
3981 x_cs1_state_txt => p_interface.cs1_state_txt,
3982 x_cs1_zip_txt => p_interface.cs1_zip_txt,
3983 x_cs1_zip_suffix_txt => p_interface.cs1_zip_suffix_txt,
3984 x_cs1_telephone_number_txt => p_interface.cs1_telephone_number_txt,
3985 x_cs1_signature_code_txt => p_interface.cs1_signature_code_txt,
3986 x_cs2_lname => p_interface.cs2_lname,
3987 x_cs2_fname => p_interface.cs2_fname,
3988 x_cs2_mi_txt => p_interface.cs2_mi_txt,
3989 x_cs2_ssn_txt => p_interface.cs2_ssn_txt,
3990 x_cs2_citizenship_status => p_interface.cs2_citizenship_status,
3991 x_cs2_address_line_1_txt => p_interface.cs2_address_line_1_txt,
3992 x_cs2_address_line_2_txt => p_interface.cs2_address_line_2_txt,
3993 x_cs2_city_txt => p_interface.cs2_city_txt,
3994 x_cs2_state_txt => p_interface.cs2_state_txt,
3995 x_cs2_zip_txt => p_interface.cs2_zip_txt,
3996 x_cs2_zip_suffix_txt => p_interface.cs2_zip_suffix_txt,
3997 x_cs2_telephone_number_txt => p_interface.cs2_telephone_number_txt,
3998 x_cs2_signature_code_txt => p_interface.cs2_signature_code_txt,
3999 x_cs1_credit_auth_code_txt => p_interface.cs1_credit_auth_code_txt,
4000 x_cs1_birth_date => p_interface.cs1_birth_date,
4001 x_cs1_drv_license_num_txt => p_interface.cs1_drv_license_num_txt,
4002 x_cs1_drv_license_state_txt => p_interface.cs1_drv_license_state_txt,
4003 x_cs1_elect_sig_ind_code_txt => p_interface.cs1_elect_sig_ind_code_txt,
4004 x_cs1_frgn_postal_code_txt => p_interface.cs1_frgn_postal_code_txt,
4005 x_cs1_frgn_tel_num_prefix_txt => p_interface.cs1_frgn_tel_num_prefix_txt,
4006 x_cs1_gross_annual_sal_num => p_interface.cs1_gross_annual_sal_num,
4007 x_cs1_mthl_auto_pay_txt => p_interface.cs1_mthl_auto_pay_txt,
4008 x_cs1_mthl_cc_pay_txt => p_interface.cs1_mthl_cc_pay_txt,
4009 x_cs1_mthl_edu_loan_pay_txt => p_interface.cs1_mthl_edu_loan_pay_txt,
4010 x_cs1_mthl_housing_pay_txt => p_interface.cs1_mthl_housing_pay_txt,
4011 x_cs1_mthl_other_pay_txt => p_interface.cs1_mthl_other_pay_txt,
4012 x_cs1_other_income_amt => p_interface.cs1_other_income_amt,
4013 x_cs1_rel_to_student_flag => p_interface.cs1_rel_to_student_flag,
4014 x_cs1_suffix_txt => p_interface.cs1_suffix_txt,
4015 x_cs1_years_at_address_txt => p_interface.cs1_years_at_address_txt,
4016 x_cs2_credit_auth_code_txt => p_interface.cs2_credit_auth_code_txt,
4017 x_cs2_birth_date => p_interface.cs2_birth_date,
4018 x_cs2_drv_license_num_txt => p_interface.cs2_drv_license_num_txt,
4019 x_cs2_drv_license_state_txt => p_interface.cs2_drv_license_state_txt,
4020 x_cs2_elect_sig_ind_code_txt => p_interface.cs2_elect_sig_ind_code_txt,
4021 x_cs2_frgn_postal_code_txt => p_interface.cs2_frgn_postal_code_txt,
4022 x_cs2_frgn_tel_num_prefix_txt => p_interface.cs2_frgn_tel_num_prefix_txt,
4023 x_cs2_gross_annual_sal_num => p_interface.cs2_gross_annual_sal_num,
4024 x_cs2_mthl_auto_pay_txt => p_interface.cs2_mthl_auto_pay_txt,
4025 x_cs2_mthl_cc_pay_txt => p_interface.cs2_mthl_cc_pay_txt,
4026 x_cs2_mthl_edu_loan_pay_txt => p_interface.cs2_mthl_edu_loan_pay_txt,
4027 x_cs2_mthl_housing_pay_txt => p_interface.cs2_mthl_housing_pay_txt,
4028 x_cs2_mthl_other_pay_txt => p_interface.cs2_mthl_other_pay_txt,
4029 x_cs2_other_income_amt => p_interface.cs2_other_income_amt,
4030 x_cs2_rel_to_student_flag => p_interface.cs2_rel_to_student_flag,
4031 x_cs2_suffix_txt => p_interface.cs2_suffix_txt,
4032 x_cs2_years_at_address_txt => p_interface.cs2_years_at_address_txt
4033 );
4034
4035 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4036 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','After insert into IGF_SL_ALT_BORW_ALL albw_id ' || ln_albw_id);
4037 END IF;
4038
4039 END IF;
4040
4041 OPEN c_loan_dtls(ln_loan_id,ln_origination_id);
4042 FETCH c_loan_dtls INTO loan_rec;
4043
4044 igf_sl_gen.get_person_details(loan_rec.student_id,student_dtl_cur);
4045 FETCH student_dtl_cur INTO student_dtl_rec;
4046 igf_sl_gen.get_person_details(loan_rec.p_person_id,parent_dtl_cur);
4047 FETCH parent_dtl_cur INTO parent_dtl_rec;
4048
4049
4050 CLOSE c_loan_dtls;
4051 CLOSE student_dtl_cur;
4052 CLOSE parent_dtl_cur;
4053
4054 OPEN cur_isir_depend_status(loan_rec.student_id);
4055 FETCH cur_isir_depend_status INTO lv_dependency_status;
4056 CLOSE cur_isir_depend_status;
4057
4058 lv_s_permt_phone := igf_sl_gen.get_person_phone(loan_rec.student_id);
4059 lv_p_permt_phone := igf_sl_gen.get_person_phone(loan_rec.p_person_id);
4060
4061 --Code added for bug 3603289 start
4062 lv_s_license_number := student_dtl_rec.p_license_num;
4063 lv_s_license_state := student_dtl_rec.p_license_state;
4064 lv_s_citizenship_status := student_dtl_rec.p_citizenship_status;
4065 lv_alien_reg_num := student_dtl_rec.p_alien_reg_num;
4066 lv_s_legal_res_date := student_dtl_rec.p_legal_res_date;
4067 lv_s_legal_res_state := student_dtl_rec.p_state_of_legal_res;
4068 --Code added for bug 3603289 end
4069
4070 IF p_fed_fund = 'ALT' AND NVL(p_interface.b_stu_indicator_flag,'X') = 'Y' THEN
4071
4072 parent_dtl_rec.p_citizenship_status := lv_s_citizenship_status;
4073 parent_dtl_rec.p_state_of_legal_res := lv_s_legal_res_state;
4074 parent_dtl_rec.p_legal_res_date := lv_s_legal_res_date;
4075 loan_rec.p_default_status := loan_rec.s_default_status;
4076 parent_dtl_rec.p_license_num := lv_s_license_number;
4077 parent_dtl_rec.p_license_state := lv_s_license_state;
4078 lv_p_permt_phone := lv_s_permt_phone;
4079
4080 END IF;
4081
4082
4083 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4084 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_record.debug','Before insert into IGF_SL_LOR_LOC_ALL');
4085 END IF;
4086
4087 loc_rowid := NULL;
4088
4089 igf_sl_lor_loc_pkg.insert_row (
4090 x_rowid => loc_rowid,
4091 x_loan_id => ln_loan_id,
4092 x_origination_id => ln_origination_id,
4093 x_loan_number => p_interface.loan_number_txt,
4094 x_loan_type => p_fed_fund,
4095 x_loan_amt_offered => l_get_award.offered_amt,
4096 x_loan_amt_accepted => l_get_award.accepted_amt,
4097 x_loan_per_begin_date => p_interface.loan_per_begin_date,
4098 x_loan_per_end_date => p_interface.loan_per_end_date,
4099 x_acad_yr_begin_date => NULL,--This is applicable for Direct Loans
4100 x_acad_yr_end_date => NULL,--This is applicable for Direct Loans
4101 x_loan_status => p_interface.loan_status_code,
4102 x_loan_status_date => p_interface.loan_status_date,
4103 x_loan_chg_status => NULL,--This is applicable for Direct Loans
4104 x_loan_chg_status_date => NULL,--This is applicable for Direct Loans
4105 x_req_serial_loan_code => p_interface.req_serial_loan_code,
4106 x_act_serial_loan_code => p_interface.act_serial_loan_code,
4107 x_active => p_interface.active_flag,
4108 x_active_date => p_interface.active_date,
4109 x_sch_cert_date => p_interface.sch_cert_date,
4110 x_orig_status_flag => NULL,--This is applicable for Direct Loans
4111 x_orig_batch_id => p_interface.orig_batch_id_txt,
4112 x_orig_batch_date => p_interface.orig_batch_date,
4113 x_chg_batch_id => NULL,--This is applicable for Direct Loans
4114 x_orig_ack_date => p_interface.orig_ack_date,
4115 x_credit_override => NULL,
4116 x_credit_decision_date => p_interface.credit_status_date,
4117 x_pnote_delivery_code => p_interface.pnote_delivery_code,
4118 x_pnote_status => p_interface.pnote_status_code,
4119 x_pnote_status_date => p_interface.pnote_status_date,
4120 x_pnote_id => NULL,--This is applicable for Direct Loans
4121 x_pnote_print_ind => NULL,--This is applicable for Direct Loans
4122 x_pnote_accept_amt => NULL,--This is applicable for Direct Loans
4123 x_pnote_accept_date => NULL,--This is applicable for Direct Loans
4124 x_p_signature_code => p_interface.b_signature_flag,
4125 x_p_signature_date => p_interface.b_signature_date,
4126 x_s_signature_code => p_interface.s_signature_flag,
4127 x_unsub_elig_for_heal => NULL,--This is applicable for Direct Loans
4128 x_disclosure_print_ind => NULL,--This is applicable for Direct Loans
4129 x_orig_fee_perct => l_setup.est_orig_fee_perct,
4130 x_borw_confirm_ind => p_interface.borw_confirm_flag,
4131 x_borw_interest_ind => p_interface.borw_interest_flag ,
4132 x_unsub_elig_for_depnt => NULL,--This is applicable for Direct Loans
4133 x_guarantee_amt => p_interface.guarantee_amt,
4134 x_guarantee_date => p_interface.guarantee_date,
4135 x_guarnt_adj_ind => p_interface.guarnt_adj_flag,
4136 x_guarnt_amt_redn_code => p_interface.guarnt_amt_redn_code,
4137 x_guarnt_status_code => p_interface.guarnt_status_code,
4138 x_guarnt_status_date => p_interface.guarnt_status_date,
4139 x_lend_apprv_denied_code => p_interface.lend_apprv_denied_code,
4140 x_lend_apprv_denied_date => p_interface.lend_apprv_denied_date,
4141 x_lend_status_code => p_interface.lend_status_code,
4142 x_lend_status_date => p_interface.lend_status_date,
4143 x_grade_level_code => p_interface.grade_level_code,
4144 x_enrollment_code => p_interface.enrollment_code,
4145 x_anticip_compl_date => p_interface.anticip_compl_date,
4146 x_borw_lender_id => loan_rec.lender_id,
4147 x_duns_borw_lender_id => NULL,
4148 x_guarantor_id => loan_rec.guarantor_id,
4149 x_duns_guarnt_id => NULL,
4150 x_prc_type_code => p_interface.prc_type_code,
4151 x_rec_type_ind => p_interface.record_code,
4152 x_cl_loan_type => lv_cl_loan_type,
4153 x_cl_seq_number => p_interface.cl_seq_num,
4154 x_last_resort_lender => p_interface.last_resort_lender_flag,
4155 x_lender_id => loan_rec.lender_id,
4156 x_duns_lender_id => NULL,
4157 x_lend_non_ed_brc_id => loan_rec.lend_non_ed_brc_id,
4158 x_recipient_id => loan_rec.recipient_id,
4159 x_recipient_type => loan_rec.recipient_type,
4160 x_duns_recip_id => NULL,
4161 x_recip_non_ed_brc_id => loan_rec.recip_non_ed_brc_id,
4162 x_cl_rec_status => p_interface.cl_rec_status,
4163 x_cl_rec_status_last_update => p_interface.cl_rec_status_last_update,
4164 x_alt_prog_type_code => p_interface.alt_prog_type_cd,
4165 x_alt_appl_ver_code => p_interface.alt_appl_ver_code_num,
4166 x_borw_outstd_loan_code => p_interface.borw_outstd_loan_flag,
4167 x_mpn_confirm_code => p_interface.mpn_confirm_code,
4168 x_resp_to_orig_code => p_interface.resp_to_orig_flag,
4169 x_appl_loan_phase_code => p_interface.appl_loan_phase_code,
4170 x_appl_loan_phase_code_chg => p_interface.appl_loan_phase_code_chg,
4171 x_tot_outstd_stafford => p_interface.tot_outstd_stafford_amt,
4172 x_tot_outstd_plus => p_interface.tot_outstd_plus_amt,
4173 x_alt_borw_tot_debt => p_interface.alt_borw_tot_stu_loan_debt_amt,
4174 x_act_interest_rate => p_interface.act_interest_rate_num,
4175 x_service_type_code => p_interface.service_type_code,
4176 x_rev_notice_of_guarnt => p_interface.rev_notice_of_guarnt_code,
4177 x_sch_refund_amt => p_interface.sch_refund_amt,
4178 x_sch_refund_date => p_interface.sch_refund_date,
4179 x_uniq_layout_vend_code => p_interface.uniq_layout_vend_code,
4180 x_uniq_layout_ident_code => p_interface.uniq_layout_ident_code,
4181 x_p_person_id => loan_rec.p_person_id,
4182 x_p_ssn => SUBSTR(parent_dtl_rec.p_ssn,1,9),
4183 x_p_ssn_chg_date => NULL,-- Change field
4184 x_p_last_name => parent_dtl_rec.p_last_name,
4185 x_p_first_name => parent_dtl_rec.p_first_name,
4186 x_p_middle_name => parent_dtl_rec.p_middle_name,
4187 x_p_permt_addr1 => parent_dtl_rec.p_permt_addr1,
4188 x_p_permt_addr2 => parent_dtl_rec.p_permt_addr2,
4189 x_p_permt_city => parent_dtl_rec.p_permt_city,
4190 x_p_permt_state => parent_dtl_rec.p_permt_state,
4191 x_p_permt_zip => parent_dtl_rec.p_permt_zip,
4192 x_p_permt_addr_chg_date => NULL,-- Change field
4193 x_p_permt_phone => lv_p_permt_phone,
4194 x_p_email_addr => parent_dtl_rec.p_email_addr,
4195 x_p_date_of_birth => parent_dtl_rec.p_date_of_birth,
4196 x_p_dob_chg_date => NULL,-- Change field
4197 x_p_license_num => parent_dtl_rec.p_license_num,
4198 x_p_license_state => parent_dtl_rec.p_license_state,
4199 x_p_citizenship_status => parent_dtl_rec.p_citizenship_status,
4200 x_p_alien_reg_num => parent_dtl_rec.p_alien_reg_num,
4201 x_p_default_status => loan_rec.p_default_status,
4202 x_p_foreign_postal_code => p_interface.b_foreign_postal_cd,
4203 x_p_state_of_legal_res => parent_dtl_rec.p_state_of_legal_res,
4204 x_p_legal_res_date => parent_dtl_rec.p_legal_res_date,
4205 x_s_ssn => SUBSTR(student_dtl_rec.p_ssn,1,9),
4206 x_s_ssn_chg_date => NULL,-- Change field
4207 x_s_last_name => student_dtl_rec.p_last_name,
4208 x_s_first_name => student_dtl_rec.p_first_name,
4209 x_s_middle_name => student_dtl_rec.p_middle_name,
4210 x_s_permt_addr1 => student_dtl_rec.p_permt_addr1,
4211 x_s_permt_addr2 => student_dtl_rec.p_permt_addr2,
4212 x_s_permt_city => student_dtl_rec.p_permt_city,
4213 x_s_permt_state => student_dtl_rec.p_permt_state,
4214 x_s_permt_zip => student_dtl_rec.p_permt_zip,
4215 x_s_permt_addr_chg_date => NULL,-- Change field
4216 x_s_permt_phone => lv_s_permt_phone,
4217 x_s_local_addr1 => student_dtl_rec.p_local_addr1,
4218 x_s_local_addr2 => student_dtl_rec.p_local_addr2,
4219 x_s_local_city => student_dtl_rec.p_local_city,
4220 x_s_local_state => student_dtl_rec.p_local_state,
4221 x_s_local_zip => student_dtl_rec.p_local_zip,
4222 x_s_local_addr_chg_date => NULL,-- Change field
4223 x_s_email_addr => student_dtl_rec.p_email_addr,
4224 x_s_date_of_birth => student_dtl_rec.p_date_of_birth,
4225 x_s_dob_chg_date => NULL,-- Change field
4226 x_s_license_num => lv_s_license_number,
4227 x_s_license_state => lv_s_license_state,
4228 x_s_depncy_status => lv_dependency_status,
4229 x_s_default_status => p_interface.s_default_status_flag,
4230 x_s_citizenship_status => lv_s_citizenship_status,
4231 x_s_alien_reg_num => lv_alien_reg_num,
4232 x_s_foreign_postal_code => p_interface.b_foreign_postal_cd,
4233 x_mode => 'R',
4234 x_pnote_batch_id => NULL,
4235 x_pnote_ack_date => NULL,
4236 x_pnote_mpn_ind => NULL,
4237 x_award_id => p_award_id,
4238 x_base_id => l_get_base_id.base_id,
4239 x_document_id_txt => NULL,
4240 x_loan_key_num => NULL,
4241 x_interest_rebate_percent_num=> NULL,
4242 x_fin_award_year => NULL,
4243 x_cps_trans_num => NULL,
4244 x_atd_entity_id_txt => NULL,
4245 x_rep_entity_id_txt => NULL,
4246 x_source_entity_id_txt => NULL,
4247 x_pymt_servicer_amt => NULL,
4248 x_pymt_servicer_date => NULL,
4249 x_book_loan_amt => NULL,
4250 x_book_loan_amt_date => NULL,
4251 x_s_chg_birth_date => NULL,
4252 x_s_chg_ssn => NULL,
4253 x_s_chg_last_name => NULL,
4254 x_b_chg_birth_date => NULL,
4255 x_b_chg_ssn => NULL,
4256 x_b_chg_last_name => NULL,
4257 x_note_message => NULL,
4258 x_full_resp_code => NULL,
4259 x_s_permt_county => NULL,
4260 x_b_permt_county => NULL,
4261 x_s_permt_country => NULL,
4262 x_b_permt_country => NULL,
4263 x_crdt_decision_status => p_interface.credit_status_code,
4264 x_actual_record_type_code => p_interface.actual_record_type_code,
4265 x_alt_approved_amt => p_interface.alt_approved_amt,
4266 x_alt_borrower_ind_flag => p_interface.b_stu_indicator_flag,
4267 x_borower_credit_authoriz_flag => p_interface.borr_credit_auth_flag,
4268 x_borower_electronic_sign_flag => p_interface.borr_sign_flag,
4269 x_cost_of_attendance_amt => p_interface.coa_amt,
4270 x_deferment_request_code => p_interface.defer_req_flag,
4271 x_eft_authorization_code => p_interface.eft_auth_flag,
4272 x_established_fin_aid_amount => p_interface.est_fa_amt,
4273 x_expect_family_contribute_amt => p_interface.efc_amt,
4274 x_external_loan_id_txt => p_interface.external_loan_id_txt,
4275 x_flp_approved_amt => p_interface.flp_approved_amt,
4276 x_fls_approved_amt => p_interface.fls_approved_amt,
4277 x_flu_approved_amt => p_interface.flu_approved_amt,
4278 x_guarantor_use_txt => p_interface.guarantor_use_txt,
4279 x_lender_use_txt => p_interface.lender_use_txt,
4280 x_loan_app_form_code => p_interface.fed_appl_form_type,
4281 x_mpn_type_flag => NULL,
4282 x_reinstatement_amt => p_interface.reinst_avail_amt,
4283 x_requested_loan_amt => p_interface.req_loan_amt,
4284 x_school_id_txt => SUBSTR(p_interface.loan_number_txt,1,8),
4285 x_school_use_txt => p_interface.school_use_txt,
4286 x_student_electronic_sign_flag => p_interface.stud_sign_flag,
4287 x_esign_src_typ_cd => p_interface.esign_src_typ_cd
4288 );
4289
4290 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4291 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_record.debug','After insert into IGF_SL_LOR_LOC_ALL');
4292 END IF;
4293
4294 IF ( p_fed_fund in ('ALT','FLP','GPLUSFL') ) AND (NVL(p_interface.b_stu_indicator_flag,'X') <> 'Y') THEN
4295 l_b_last_name := parent_dtl_rec.p_last_name;
4296 l_b_first_name := parent_dtl_rec.p_first_name;
4297 l_b_middle_name := parent_dtl_rec.p_middle_name;
4298 l_b_ssn := SUBSTR(parent_dtl_rec.p_ssn,1,9);
4299 l_b_permt_addr1 := parent_dtl_rec.p_permt_addr1;
4300 l_b_permt_addr2 := parent_dtl_rec.p_permt_addr2;
4301 l_b_permt_city := parent_dtl_rec.p_permt_city;
4302 l_b_permt_state := parent_dtl_rec.p_permt_state;
4303 l_b_permt_zip := parent_dtl_rec.p_permt_zip;
4304 l_b_permt_zip_suffix := NULL;
4305 l_b_permt_phone := lv_p_permt_phone;
4306 l_b_signature_code := p_interface.b_signature_flag;
4307 l_b_signature_date := p_interface.b_signature_date;
4308 l_b_citizenship_status := parent_dtl_rec.p_citizenship_status;
4309 l_b_state_of_legal_res := parent_dtl_rec.p_state_of_legal_res;
4310 l_b_legal_res_date := parent_dtl_rec.p_legal_res_date;
4311 l_b_default_status := p_interface.b_default_status_flag ;
4312 l_b_license_state := p_interface.b_license_state_code;
4313 l_b_license_number := p_interface.b_license_number_txt;
4314 l_b_dob := parent_dtl_rec.p_date_of_birth;
4315 ELSE
4316 l_b_last_name := student_dtl_rec.p_last_name;
4317 l_b_first_name := student_dtl_rec.p_first_name;
4318 l_b_middle_name := student_dtl_rec.p_middle_name;
4319 l_b_ssn := SUBSTR(student_dtl_rec.p_ssn,1,9);
4320 l_b_permt_addr1 := student_dtl_rec.p_permt_addr1;
4321 l_b_permt_addr2 := student_dtl_rec.p_permt_addr2;
4322 l_b_permt_city := student_dtl_rec.p_permt_city;
4323 l_b_permt_state := student_dtl_rec.p_permt_state;
4324 l_b_permt_zip := student_dtl_rec.p_permt_zip;
4325 l_b_permt_zip_suffix := NULL;
4326 l_b_permt_phone := lv_s_permt_phone;
4327 l_b_signature_code := p_interface.s_signature_flag;
4328 l_b_signature_date := p_interface.b_signature_date;
4329 l_b_citizenship_status := lv_s_citizenship_status;
4330 l_b_state_of_legal_res := lv_s_legal_res_state;
4331 l_b_legal_res_date := lv_s_legal_res_date;
4332 l_b_default_status := p_interface.s_default_status_flag;
4333 l_b_license_state := lv_s_license_state;
4334 l_b_license_number := lv_s_license_number;
4335 l_b_dob := student_dtl_rec.p_date_of_birth;
4336 END IF;
4337
4338 IF NVL(p_interface.send_resp_code,'X') = 'S' THEN
4339 ln_cbth_id := NULL;
4340
4341 OPEN chk_batch_id(p_interface.orig_send_batch_id_txt);
4342 FETCH chk_batch_id INTO l_batch_id;
4343
4344 IF (chk_batch_id%NOTFOUND) THEN
4345 CLOSE chk_batch_id;
4346 clb_rowid := NULL;
4347
4348 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4349 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','Before insert into IGF_SL_CL_BATCH_ALL - I');
4350 END IF;
4351
4352 igf_sl_cl_batch_pkg.insert_row (
4353 x_rowid => clb_rowid,
4354 x_cbth_id => ln_cbth_id,
4355 x_batch_id => p_interface.orig_send_batch_id_txt,
4356 x_file_creation_date => p_interface.file_creation_date,
4357 x_file_trans_date => p_interface.file_trans_date ,
4358 x_file_ident_code => 'A005P',
4359 x_recipient_id => NULL,
4360 x_recip_non_ed_brc_id => NULL,
4361 x_source_id => p_interface.source_id_txt,
4362 x_source_non_ed_brc_id => p_interface.source_non_ed_brc_id_txt,
4363 x_send_resp => p_interface.send_resp_code,
4364 x_mode => 'R',
4365 x_record_count_num => NULL,
4366 x_total_net_disb_amt => NULL,
4367 x_total_net_eft_amt => NULL,
4368 x_total_net_non_eft_amt => NULL,
4369 x_total_reissue_amt => NULL,
4370 x_total_cancel_amt => NULL,
4371 x_total_deficit_amt => NULL,
4372 x_total_net_cancel_amt => NULL,
4373 x_total_net_out_cancel_amt => NULL);
4374
4375 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4376 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','After insert into IGF_SL_CL_BATCH_ALL - I ln_cbth_id ' || ln_cbth_id);
4377 END IF;
4378 ELSE
4379 CLOSE chk_batch_id;
4380 END IF;
4381
4382 END IF;
4383
4384 IF NVL(p_interface.send_resp_code,'X') = 'R' AND
4385 p_interface.loan_status_code NOT IN ('G','N')
4386
4387 THEN
4388
4389 ln_cbth_id := NULL;
4390
4391 OPEN chk_batch_id(p_interface.orig_ack_batch_id_txt);
4392 FETCH chk_batch_id INTO l_batch_id;
4393
4394 IF (chk_batch_id%NOTFOUND) THEN
4395 CLOSE chk_batch_id;
4396 clb_rowid := NULL;
4397
4398 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4399 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_record.debug','Before insert into IGF_SL_CL_BATCH_ALL');
4400 END IF;
4401
4402 igf_sl_cl_batch_pkg.insert_row (
4403 x_rowid => clb_rowid,
4404 x_cbth_id => ln_cbth_id,
4405 x_batch_id => p_interface.orig_ack_batch_id_txt ,
4406 x_file_creation_date => p_interface.file_creation_date,
4407 x_file_trans_date => p_interface.file_trans_date ,
4408 x_file_ident_code => 'R005P',
4409 x_recipient_id => NULL,
4410 x_recip_non_ed_brc_id => NULL,
4411 x_source_id => p_interface.source_id_txt,
4412 x_source_non_ed_brc_id => p_interface.source_non_ed_brc_id_txt,
4413 x_send_resp => p_interface.send_resp_code,
4414 x_mode => 'R',
4415 x_record_count_num => NULL,
4416 x_total_net_disb_amt => NULL,
4417 x_total_net_eft_amt => NULL,
4418 x_total_net_non_eft_amt => NULL,
4419 x_total_reissue_amt => NULL,
4420 x_total_cancel_amt => NULL,
4421 x_total_deficit_amt => NULL,
4422 x_total_net_cancel_amt => NULL,
4423 x_total_net_out_cancel_amt => NULL);
4424
4425 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4426 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','Before insert into IGF_SL_CL_BATCH_ALL ln_cbth_id ' || ln_cbth_id);
4427 END IF;
4428 ELSE
4429 CLOSE chk_batch_id;
4430 END IF;
4431
4432 -- POPULATE R1 AND R4
4433 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4434 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','Before insert into IGF_SL_CL_RESP_R1');
4435 END IF;
4436
4437 l_rl_row_id := NULL;
4438
4439 IF ln_cbth_id IS NULL THEN
4440 ln_cbth_id := l_batch_id.cbth_id;
4441 END IF;
4442
4443 l_clrp1_id := NULL;
4444
4445 igf_sl_cl_resp_r1_pkg.insert_row (
4446 x_mode => 'R',
4447 x_rowid => l_rl_row_id,
4448 x_clrp1_id => l_clrp1_id, -- generated by sequence and value returned
4449 x_cbth_id => ln_cbth_id,
4450 x_rec_code => '@1',
4451 x_rec_type_ind => p_interface.record_code,
4452 x_b_last_name => l_b_last_name,
4453 x_b_first_name => l_b_first_name,
4454 x_b_middle_name => l_b_middle_name,
4455 x_b_ssn => TO_NUMBER(l_b_ssn),
4456 x_b_permt_addr1 => l_b_permt_addr1,
4457 x_b_permt_addr2 => l_b_permt_addr2,
4458 x_b_permt_city => l_b_permt_city,
4459 x_b_permt_state => l_b_permt_state,
4460 x_b_permt_zip => l_b_permt_zip,
4461 x_b_permt_zip_suffix => l_b_permt_zip_suffix,
4462 x_b_permt_phone => l_b_permt_phone,
4463 x_b_date_of_birth => l_b_dob,
4464 x_cl_loan_type => lv_cl_loan_type,
4465 x_req_loan_amt => p_interface.req_loan_amt,
4466 x_defer_req_code => p_interface.defer_req_flag,
4467 x_borw_interest_ind => p_interface.borw_interest_flag,
4468 x_eft_auth_code => p_interface.eft_auth_flag,
4469 x_b_signature_code => l_b_signature_code,
4470 x_b_signature_date => l_b_signature_date,
4471 x_loan_number => p_interface.loan_number_txt,
4472 x_cl_seq_number => p_interface.cl_seq_num,
4473 x_borr_credit_auth_code => p_interface.borr_credit_auth_flag,
4474 x_b_citizenship_status => l_b_citizenship_status,
4475 x_b_state_of_legal_res => l_b_state_of_legal_res,
4476 x_b_legal_res_date => l_b_legal_res_date,
4477 x_b_default_status => l_b_default_status,
4478 x_b_outstd_loan_code => p_interface.borw_outstd_loan_flag,
4479 x_b_indicator_code => p_interface.b_stu_indicator_flag,
4480 x_s_last_name => student_dtl_rec.p_last_name,
4481 x_s_first_name => student_dtl_rec.p_first_name,
4482 x_s_middle_name => student_dtl_rec.p_middle_name,
4483 x_s_ssn => TO_NUMBER(SUBSTR(student_dtl_rec.p_ssn,1,9)),
4484 x_s_date_of_birth => student_dtl_rec.p_date_of_birth,
4485 x_s_citizenship_status => lv_s_citizenship_status,
4486 x_s_default_code => p_interface.s_default_status_flag,
4487 x_s_signature_code => p_interface.s_signature_flag,
4488 x_school_id => SUBSTR(p_interface.loan_number_txt,1,8),
4489 x_loan_per_begin_date => p_interface.loan_per_begin_date,
4490 x_loan_per_end_date => p_interface.loan_per_end_date,
4491 x_grade_level_code => p_interface.grade_level_code,
4492 x_borr_sign_ind => p_interface.borr_sign_flag,
4493 x_enrollment_code => p_interface.enrollment_code,
4494 x_anticip_compl_date => p_interface.anticip_compl_date,
4495 x_coa_amt => p_interface.coa_amt,
4496 x_efc_amt => p_interface.efc_amt,
4497 x_est_fa_amt => p_interface.est_fa_amt,
4498 x_fls_cert_amt => p_interface.fls_cert_amt,
4499 x_flu_cert_amt => p_interface.flu_cert_amt,
4500 x_flp_cert_amt => p_interface.flp_cert_amt,
4501 x_sch_cert_date => p_interface.sch_cert_date,
4502 x_alt_cert_amt => p_interface.alt_cert_amt,
4503 x_alt_appl_ver_code => p_interface.alt_appl_ver_code_num,
4504 x_duns_school_id => NULL,
4505 x_lender_id => NULL,
4506 x_fls_approved_amt => p_interface.fls_approved_amt,
4507 x_flu_approved_amt => p_interface.flu_approved_amt,
4508 x_flp_approved_amt => p_interface.flp_approved_amt,
4509 x_alt_approved_amt => p_interface.alt_approved_amt,
4510 x_duns_lender_id => NULL,
4511 x_guarantor_id => NULL,
4512 x_fed_appl_form_code => p_interface.fed_appl_form_type,
4513 x_duns_guarnt_id => NULL,
4514 x_lend_blkt_guarnt_ind => p_interface.lend_blkt_guarnt_flag,
4515 x_lend_blkt_guarnt_appr_date => p_interface.lend_blkt_guarnt_appr_date,
4516 x_guarnt_adj_ind => p_interface.guarnt_adj_flag,
4517 x_guarantee_date => p_interface.guarantee_date,
4518 x_guarantee_amt => p_interface.guarantee_amt,
4519 x_req_serial_loan_code => p_interface.req_serial_loan_code,
4520 x_borw_confirm_ind => p_interface.borw_confirm_flag,
4521 x_b_license_state => l_b_license_state,
4522 x_b_license_number => l_b_license_number,
4523 x_b_ref_code => p_interface.b_reference_flag,
4524 x_pnote_delivery_code => p_interface.pnote_delivery_code,
4525 x_b_foreign_postal_code => p_interface.b_foreign_postal_cd,
4526 x_stud_sign_ind => p_interface.stud_sign_flag,
4527 x_lend_non_ed_brc_id => NULL,
4528 x_last_resort_lender => p_interface.last_resort_lender_flag,
4529 x_resp_to_orig_code => p_interface.resp_to_orig_flag,
4530 x_err_mesg_1 => p_interface.err_mesg_1_cd,
4531 x_err_mesg_2 => p_interface.err_mesg_2_cd,
4532 x_err_mesg_3 => p_interface.err_mesg_3_cd,
4533 x_err_mesg_4 => p_interface.err_mesg_4_cd,
4534 x_err_mesg_5 => p_interface.err_mesg_5_cd,
4535 x_guarnt_amt_redn_code => p_interface.guarnt_amt_redn_code,
4536 x_tot_outstd_stafford => p_interface.tot_outstd_stafford_amt,
4537 x_tot_outstd_plus => p_interface.tot_outstd_plus_amt,
4538 x_b_permt_addr_chg_date => p_interface.b_permt_addr_chg_date,
4539 x_alt_prog_type_code => p_interface.alt_prog_type_cd,
4540 x_alt_borw_tot_debt => p_interface.alt_borw_tot_stu_loan_debt_amt,
4541 x_act_interest_rate => p_interface.act_interest_rate_num,
4542 x_prc_type_code => p_interface.prc_type_code,
4543 x_service_type_code => p_interface.service_type_code,
4544 x_rev_notice_of_guarnt => p_interface.rev_notice_of_guarnt_code,
4545 x_sch_refund_amt => p_interface.sch_refund_amt,
4546 x_sch_refund_date => p_interface.sch_refund_date,
4547 x_guarnt_status_code => p_interface.guarnt_status_code,
4548 x_lender_status_code => p_interface.lend_status_code,
4549 x_pnote_status_code => p_interface.pnote_status_code,
4550 x_credit_status_code => p_interface.credit_status_code,
4551 x_guarnt_status_date => p_interface.guarnt_status_date,
4552 x_lender_status_date => p_interface.lend_status_date,
4553 x_pnote_status_date => p_interface.pnote_status_date,
4554 x_credit_status_date => p_interface.credit_status_date,
4555 x_act_serial_loan_code => p_interface.act_serial_loan_code,
4556 x_amt_avail_for_reinst => p_interface.reinst_avail_amt,
4557 x_sch_non_ed_brc_id => p_interface.source_non_ed_brc_id_txt,
4558 x_uniq_layout_vend_code => p_interface.uniq_layout_vend_code,
4559 x_uniq_layout_ident_code => p_interface.uniq_layout_ident_code,
4560 x_resp_record_status => 'Y',
4561 x_appl_loan_phase_code => p_interface.appl_loan_phase_code,
4562 x_appl_loan_phase_code_chg => p_interface.appl_loan_phase_code_chg,
4563 x_cl_rec_status => p_interface.cl_rec_status,
4564 x_cl_rec_status_last_update => p_interface.cl_rec_status_last_update,
4565 x_cl_version_code => g_rel_version,
4566 x_guarantor_use_txt => p_interface.guarantor_use_txt,
4567 x_lend_apprv_denied_code => p_interface.lend_apprv_denied_code,
4568 x_lend_apprv_denied_date => p_interface.lend_apprv_denied_date,
4569 x_lender_use_txt => p_interface.lender_use_txt,
4570 x_mpn_confirm_ind => p_interface.mpn_confirm_code,
4571 x_school_use_txt => p_interface.school_use_txt,
4572 x_b_alien_reg_num_txt => NULL,
4573 x_esign_src_typ_cd => p_interface.esign_src_typ_cd
4574 );
4575
4576 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4577 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','After insert into IGF_SL_CL_RESP_R1 l_clrp1_id ' || l_clrp1_id);
4578 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','Before insert into IGF_SL_CL_RESP_R4');
4579 END IF;
4580
4581 l_r4_row_id := NULL;
4582
4583 igf_sl_cl_resp_r4_pkg.insert_row (
4584 x_mode => 'R',
4585 x_rowid => l_r4_row_id,
4586 x_clrp1_id => l_clrp1_id,
4587 x_loan_number => p_interface.loan_number_txt,
4588 x_fed_stafford_loan_debt => p_interface.fed_stafford_loan_debt_amt,
4589 x_fed_sls_debt => p_interface.fed_sls_debt_amt ,
4590 x_heal_debt => p_interface.heal_debt_amt ,
4591 x_perkins_debt => p_interface.perkins_debt_amt ,
4592 x_other_debt => p_interface.other_debt_amt ,
4593 x_crdt_undr_difft_name => p_interface.crdt_undr_difft_name_flag,
4594 x_borw_gross_annual_sal => p_interface.borw_gross_annual_sal_amt,
4595 x_borw_other_income => p_interface.borw_other_income_amt ,
4596 x_student_major => p_interface.student_major_txt ,
4597 x_int_rate_opt => p_interface.int_rate_opt_code,
4598 x_repayment_opt_code => p_interface.repayment_opt_code,
4599 x_stud_mth_housing_pymt => p_interface.stud_mth_housing_pymt_amt ,
4600 x_stud_mth_crdtcard_pymt => p_interface.stud_mth_crdtcard_pymt_amt ,
4601 x_stud_mth_auto_pymt => p_interface.stud_mth_auto_pymt_amt ,
4602 x_stud_mth_ed_loan_pymt => p_interface.stud_mth_ed_loan_pymt_amt ,
4603 x_stud_mth_other_pymt => p_interface.stud_mth_other_pymt_amt ,
4604 x_cosnr_1_last_name => NULL,
4605 x_cosnr_1_first_name => NULL,
4606 x_cosnr_1_middle_name => NULL,
4607 x_cosnr_1_ssn => NULL,
4608 x_cosnr_1_citizenship => NULL,
4609 x_cosnr_1_addr_line1 => NULL,
4610 x_cosnr_1_addr_line2 => NULL,
4611 x_cosnr_1_city => NULL,
4612 x_cosnr_1_state => NULL,
4613 x_cosnr_1_zip => NULL,
4614 x_cosnr_1_zip_suffix => NULL,
4615 x_cosnr_1_phone => NULL,
4616 x_cosnr_1_sig_code => NULL,
4617 x_cosnr_1_gross_anl_sal => NULL,
4618 x_cosnr_1_other_income => NULL,
4619 x_cosnr_1_forn_postal_code => NULL,
4620 x_cosnr_1_forn_phone_prefix => NULL,
4621 x_cosnr_1_dob => NULL,
4622 x_cosnr_1_license_state => NULL,
4623 x_cosnr_1_license_num => NULL,
4624 x_cosnr_1_relationship_to => NULL,
4625 x_cosnr_1_years_at_addr => NULL,
4626 x_cosnr_1_mth_housing_pymt => NULL,
4627 x_cosnr_1_mth_crdtcard_pymt => NULL,
4628 x_cosnr_1_mth_auto_pymt => NULL,
4629 x_cosnr_1_mth_ed_loan_pymt => NULL,
4630 x_cosnr_1_mth_other_pymt => NULL,
4631 x_cosnr_1_crdt_auth_code => NULL,
4632 x_cosnr_2_last_name => NULL,
4633 x_cosnr_2_first_name => NULL,
4634 x_cosnr_2_middle_name => NULL,
4635 x_cosnr_2_ssn => NULL,
4636 x_cosnr_2_citizenship => NULL,
4637 x_cosnr_2_addr_line1 => NULL,
4638 x_cosnr_2_addr_line2 => NULL,
4639 x_cosnr_2_city => NULL,
4640 x_cosnr_2_state => NULL,
4641 x_cosnr_2_zip => NULL,
4642 x_cosnr_2_zip_suffix => NULL,
4643 x_cosnr_2_phone => NULL,
4644 x_cosnr_2_sig_code => NULL,
4645 x_cosnr_2_gross_anl_sal => NULL,
4646 x_cosnr_2_other_income => NULL,
4647 x_cosnr_2_forn_postal_code => NULL,
4648 x_cosnr_2_forn_phone_prefix => NULL,
4649 x_cosnr_2_dob => NULL,
4650 x_cosnr_2_license_state => NULL,
4651 x_cosnr_2_license_num => NULL,
4652 x_cosnr_2_relationship_to => NULL,
4653 x_cosnr_2_years_at_addr => NULL,
4654 x_cosnr_2_mth_housing_pymt => NULL,
4655 x_cosnr_2_mth_crdtcard_pymt => NULL,
4656 x_cosnr_2_mth_auto_pymt => NULL,
4657 x_cosnr_2_mth_ed_loan_pymt => NULL,
4658 x_cosnr_2_mth_other_pymt => NULL,
4659 x_cosnr_2_crdt_auth_code => NULL,
4660 x_other_loan_amt => p_interface.other_loan_amt,
4661 x_alt_layout_owner_code_txt => NULL,
4662 x_alt_layout_identi_code_txt => NULL,
4663 x_student_school_phone_txt => NULL,
4664 x_first_csgnr_elec_sign_flag => NULL,
4665 x_second_csgnr_elec_sign_flag => NULL
4666 );
4667
4668 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4669 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','Before insert into IGF_SL_CL_RESP_R4 l_clrp1_id ' || l_clrp1_id);
4670 END IF;
4671 -- THEN R8 BASED ON RECORD RETRIEVED THRU R1
4672 i := 0;
4673
4674 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4675 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','Before insert into IGF_SL_CL_RESP_R8');
4676 END IF;
4677
4678 FOR l_disb_interface IN c_disb_interface( p_interface.ci_alternate_code,
4679 p_interface.person_number,
4680 p_interface.award_number_txt,
4681 p_interface.loan_number_txt
4682 ) LOOP
4683 i := i+1;
4684
4685 lv_disb_net_amt := NVL(l_disb_interface.gross_disbursement_amt,0) - NVL(l_disb_interface.guarantee_fee_amt,0) - NVL(l_disb_interface.origination_fee_amt,0)
4686 + NVL(l_disb_interface.guarantee_fees_paid_amt,0) + NVL(l_disb_interface.origination_fees_paid_amt,0);
4687
4688 OPEN c_disb_det(l_disb_interface.disbursement_num);
4689 FETCH c_disb_det INTO l_disb_det;
4690 CLOSE c_disb_det;
4691
4692 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4693 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','Before Update IGF_AW_AWD_DISB');
4694 END IF;
4695
4696 igf_aw_awd_disb_pkg.update_row (
4697 x_mode => 'R',
4698 x_rowid => l_disb_det.rowid,
4699 x_award_id => l_disb_det.award_id,
4700 x_disb_num => l_disb_det.disb_num,
4701 x_tp_cal_type => l_disb_det.tp_cal_type,
4702 x_tp_sequence_number => l_disb_det.tp_sequence_number ,
4703 x_disb_gross_amt => l_disb_det.disb_gross_amt,
4704 x_fee_1 => l_disb_interface.origination_fee_amt,
4705 x_fee_2 => l_disb_interface.guarantee_fee_amt,
4706 x_disb_net_amt => lv_disb_net_amt,
4707 x_disb_date => l_disb_det.disb_date,
4708 x_trans_type => l_disb_det.trans_type,
4709 x_elig_status => l_disb_det.elig_status,
4710 x_elig_status_date => l_disb_det.elig_status_date,
4711 x_affirm_flag => l_disb_det.affirm_flag,
4712 x_hold_rel_ind => l_disb_interface.disbursement_hld_release_flag,
4713 x_manual_hold_ind => l_disb_det.manual_hold_ind,
4714 x_disb_status => l_disb_interface.disbursement_status_code,
4715 x_disb_status_date => l_disb_interface.disbursement_status_date,
4716 x_late_disb_ind => l_disb_interface.late_disbursement_flag,
4717 x_fund_dist_mthd => l_disb_interface.fund_dist_mthd_type,
4718 x_prev_reported_ind => l_disb_interface.prev_reported_flag,
4719 x_fund_release_date => l_disb_interface.fund_release_date,
4720 x_fund_status => l_disb_interface.fund_status_code,
4721 x_fund_status_date => l_disb_interface.fund_status_date,
4722 x_fee_paid_1 => l_disb_interface.origination_fees_paid_amt,
4723 x_fee_paid_2 => l_disb_interface.guarantee_fees_paid_amt,
4724 x_cheque_number => l_disb_interface.check_number_txt,
4725 x_ld_cal_type => l_disb_det.ld_cal_type,
4726 x_ld_sequence_number => l_disb_det.ld_sequence_number,
4727 x_disb_accepted_amt => l_disb_det.disb_accepted_amt,
4728 x_disb_paid_amt => l_disb_det.disb_paid_amt,
4729 x_rvsn_id => l_disb_det.rvsn_id,
4730 x_int_rebate_amt => l_disb_det.int_rebate_amt,
4731 x_force_disb => l_disb_det.force_disb,
4732 x_min_credit_pts => l_disb_det.min_credit_pts,
4733 x_disb_exp_dt => l_disb_det.disb_exp_dt,
4734 x_verf_enfr_dt => l_disb_det.verf_enfr_dt,
4735 x_fee_class => l_disb_det.fee_class,
4736 x_show_on_bill => l_disb_det.show_on_bill,
4737 x_attendance_type_code => l_disb_det.attendance_type_code,
4738 x_base_attendance_type_code => l_disb_det.base_attendance_type_code,
4739 x_change_type_code => l_disb_det.change_type_code,
4740 x_fund_return_mthd_code => l_disb_det.fund_return_mthd_code,
4741 x_payment_prd_st_date => l_disb_det.payment_prd_st_date,
4742 x_direct_to_borr_flag => l_disb_interface.direct_to_borr_flag
4743 );
4744
4745 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4746 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','Before insert into IGF_SL_CL_RESP_R8 - LOOP');
4747 END IF;
4748
4749 igf_sl_cl_resp_r8_pkg.insert_row (
4750 x_mode => 'R',
4751 x_rowid => l_r8_row_id,
4752 x_clrp1_id => l_clrp1_id,
4753 x_clrp8_id => i,
4754 x_disb_date => l_disb_interface.disbursement_date,
4755 x_disb_gross_amt => l_disb_interface.gross_disbursement_amt,
4756 x_orig_fee => l_disb_interface.origination_fee_amt,
4757 x_guarantee_fee => l_disb_interface.guarantee_fee_amt,
4758 x_net_disb_amt => lv_disb_net_amt,
4759 x_disb_hold_rel_ind => l_disb_interface.disbursement_hld_release_flag,
4760 x_disb_status => l_disb_interface.disbursement_status_code,
4761 x_guarnt_fee_paid => l_disb_interface.guarantee_fees_paid_amt,
4762 x_orig_fee_paid => l_disb_interface.origination_fees_paid_amt,
4763 x_resp_record_status => 'Y',
4764 x_layout_owner_code_txt => NULL,
4765 x_layout_version_code_txt => NULL,
4766 x_record_code_txt => NULL,
4767 x_direct_to_borr_flag => l_disb_interface.direct_to_borr_flag);
4768
4769 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4770 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','Before insert into IGF_SL_CL_RESP_R8 - LOOP l_clrp1_id ' || l_clrp1_id || ' i ' || i);
4771 END IF;
4772 clb_rowid := NULL;
4773 ln_cbth_id := NULL;
4774
4775 IF NVL(l_disb_interface.send_resp_code,'X') = 'D' THEN
4776
4777 OPEN chk_batch_id(l_disb_interface.roster_batch_id);
4778 FETCH chk_batch_id INTO l_batch_id;
4779
4780 IF (chk_batch_id%NOTFOUND) THEN
4781 CLOSE chk_batch_id;
4782
4783 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4784 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','Before insert into IGF_SL_CL_BATCH');
4785 END IF;
4786
4787 ln_cbth_id := NULL;
4788 clb_rowid := NULL;
4789
4790 igf_sl_cl_batch_pkg.insert_row (
4791 x_rowid => clb_rowid,
4792 x_cbth_id => ln_cbth_id,
4793 x_batch_id => l_disb_interface.roster_batch_id,
4794 x_file_creation_date => l_disb_interface.file_creation_date,
4795 x_file_trans_date => l_disb_interface.file_trans_date ,
4796 x_file_ident_code => 'E005P',
4797 x_recipient_id => l_disb_interface.recipient_id_txt,
4798 x_recip_non_ed_brc_id => l_disb_interface.recipient_non_ed_brc_id_txt,
4799 x_source_id => l_disb_interface.source_id_txt,
4800 x_source_non_ed_brc_id => l_disb_interface.source_non_ed_brc_id_txt,
4801 x_send_resp => l_disb_interface.send_resp_code,
4802 x_mode => 'R',
4803 x_record_count_num => NULL,
4804 x_total_net_disb_amt => NULL,
4805 x_total_net_eft_amt => NULL,
4806 x_total_net_non_eft_amt => NULL,
4807 x_total_reissue_amt => NULL,
4808 x_total_cancel_amt => NULL,
4809 x_total_deficit_amt => NULL,
4810 x_total_net_cancel_amt => NULL,
4811 x_total_net_out_cancel_amt => NULL);
4812 ELSE
4813 CLOSE chk_batch_id;
4814 END IF;
4815
4816 IF ln_cbth_id IS NULL THEN
4817 ln_cbth_id := l_batch_id.cbth_id;
4818 END IF;
4819
4820 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4821 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','After insert into IGF_SL_CL_BATCH ln_cbth_id ' || ln_cbth_id);
4822 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','Before insert into IGF_DB_CL_DISB_RESP');
4823 END IF;
4824
4825 l_rost_rowid := NULL;
4826 l_cdbr_id := NULL;
4827
4828 igf_db_cl_disb_resp_pkg.insert_row (
4829 x_mode => 'R',
4830 x_rowid => l_rost_rowid,
4831 x_cdbr_id => l_cdbr_id,
4832 x_cbth_id => ln_cbth_id,
4833 x_record_type => l_disb_interface.record_type,
4834 x_loan_number => l_disb_interface.loan_number_txt,
4835 x_cl_seq_number => p_interface.cl_seq_num,
4836 x_b_last_name => l_b_last_name,
4837 x_b_first_name => l_b_first_name,
4838 x_b_middle_name => l_b_middle_name,
4839 x_b_ssn => l_b_ssn,
4840 x_b_addr_line_1 => l_b_permt_addr1,
4841 x_b_addr_line_2 => l_b_permt_addr2,
4842 x_b_city => l_b_permt_city,
4843 x_b_state => l_b_permt_state,
4844 x_b_zip => l_b_permt_zip,
4845 x_b_zip_suffix => NULL,
4846 x_b_addr_chg_date => NULL,
4847 x_eft_auth_code => p_interface.eft_auth_flag,
4848 x_s_last_name => student_dtl_rec.p_last_name,
4849 x_s_first_name => student_dtl_rec.p_first_name,
4850 x_s_middle_initial => student_dtl_rec.p_middle_name,
4851 x_s_ssn => SUBSTR(student_dtl_rec.p_ssn,1,9),
4852 x_school_id => SUBSTR(p_interface.loan_number_txt,1,8),
4853 x_school_use => l_disb_interface.school_use_txt,
4854 x_loan_per_start_date => p_interface.loan_per_begin_date ,
4855 x_loan_per_end_date => p_interface.loan_per_end_date ,
4856 x_cl_loan_type => lv_cl_loan_type,
4857 x_alt_prog_type_code => p_interface.alt_prog_type_cd ,
4858 x_lender_id => NULL,
4859 x_lend_non_ed_brc_id => NULL,
4860 x_lender_use => l_disb_interface.lender_use_txt,
4861 x_borw_confirm_ind => p_interface.borw_confirm_flag,
4862 x_tot_sched_disb => l_disb_interface.sch_disbursement_num,
4863 x_fund_release_date => l_disb_interface.fund_release_date,
4864 x_disb_num => l_disb_interface.disbursement_num,
4865 x_guarantor_id => NULL,
4866 x_guarantor_use => l_disb_interface.guarantor_use_txt,
4867 x_guarantee_date => l_disb_interface.guarantee_date,
4868 x_guarantee_amt => l_disb_interface.guarantee_amt,
4869 x_gross_disb_amt => l_disb_interface.gross_disbursement_amt,
4870 x_fee_1 => l_disb_interface.origination_fee_amt,
4871 x_fee_2 => l_disb_interface.guarantee_fee_amt,
4872 x_net_disb_amt => lv_disb_net_amt,
4873 x_fund_dist_mthd => l_disb_interface.fund_dist_mthd_type,
4874 x_check_number => l_disb_interface.check_number_txt,
4875 x_late_disb_ind => l_disb_interface.late_disbursement_flag,
4876 x_prev_reported_ind => l_disb_interface.prev_reported_flag,
4877 x_err_code1 => l_disb_interface.err_mesg_1_cd,
4878 x_err_code2 => l_disb_interface.err_mesg_2_cd,
4879 x_err_code3 => l_disb_interface.err_mesg_3_cd,
4880 x_err_code4 => l_disb_interface.err_mesg_4_cd,
4881 x_err_code5 => l_disb_interface.err_mesg_5_cd,
4882 x_fee_paid_2 => l_disb_interface.guarantee_fees_paid_amt,
4883 x_lender_name => l_disb_interface.lender_name,
4884 x_net_cancel_amt => l_disb_interface.net_cancel_amt,
4885 x_duns_lender_id => NULL,
4886 x_duns_guarnt_id => NULL,
4887 x_hold_rel_ind => l_disb_interface.disbursement_hld_release_flag,
4888 x_pnote_code => SUBSTR(l_disb_interface.pnote_code,1,2),
4889 x_pnote_status_date => l_disb_interface.pnote_status_date ,
4890 x_fee_paid_1 => l_disb_interface.origination_fees_paid_amt,
4891 x_netted_cancel_amt => l_disb_interface.netted_cancel_amt,
4892 x_outstd_cancel_amt => l_disb_interface.outstd_cancel_amt,
4893 x_sch_non_ed_brc_id => p_interface.source_non_ed_brc_id_txt,
4894 x_status => 'Y',
4895 x_esign_src_typ_cd => NULL,
4896 x_direct_to_borr_flag => l_disb_interface.direct_to_borr_flag);
4897 END IF;
4898 END LOOP;
4899 ELSE
4900 --
4901 -- Update Disbursement Related Information
4902 --
4903 FOR l_disb_interface IN c_disb_interface( p_interface.ci_alternate_code,
4904 p_interface.person_number,
4905 p_interface.award_number_txt,
4906 p_interface.loan_number_txt
4907 ) LOOP
4908 i := i+1;
4909
4910 lv_disb_net_amt := NVL(l_disb_interface.gross_disbursement_amt,0) - NVL(l_disb_interface.guarantee_fee_amt,0) - NVL(l_disb_interface.origination_fee_amt,0)
4911 + NVL(l_disb_interface.guarantee_fees_paid_amt,0) + NVL(l_disb_interface.origination_fees_paid_amt,0);
4912
4913 OPEN c_disb_det(l_disb_interface.disbursement_num);
4914 FETCH c_disb_det INTO l_disb_det;
4915 CLOSE c_disb_det;
4916
4917 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4918 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','Before Update IGF_AW_AWD_DISB');
4919 END IF;
4920
4921 igf_aw_awd_disb_pkg.update_row (
4922 x_mode => 'R',
4923 x_rowid => l_disb_det.rowid,
4924 x_award_id => l_disb_det.award_id,
4925 x_disb_num => l_disb_det.disb_num,
4926 x_tp_cal_type => l_disb_det.tp_cal_type,
4927 x_tp_sequence_number => l_disb_det.tp_sequence_number ,
4928 x_disb_gross_amt => l_disb_det.disb_gross_amt,
4929 x_fee_1 => l_disb_interface.origination_fee_amt,
4930 x_fee_2 => l_disb_interface.guarantee_fee_amt,
4931 x_disb_net_amt => lv_disb_net_amt,
4932 x_disb_date => l_disb_det.disb_date,
4933 x_trans_type => l_disb_det.trans_type,
4934 x_elig_status => l_disb_det.elig_status,
4935 x_elig_status_date => l_disb_det.elig_status_date,
4936 x_affirm_flag => l_disb_det.affirm_flag,
4937 x_hold_rel_ind => l_disb_interface.disbursement_hld_release_flag,
4938 x_manual_hold_ind => l_disb_det.manual_hold_ind,
4939 x_disb_status => l_disb_interface.disbursement_status_code,
4940 x_disb_status_date => l_disb_interface.disbursement_status_date,
4941 x_late_disb_ind => l_disb_interface.late_disbursement_flag,
4942 x_fund_dist_mthd => l_disb_interface.fund_dist_mthd_type,
4943 x_prev_reported_ind => l_disb_interface.prev_reported_flag,
4944 x_fund_release_date => l_disb_interface.fund_release_date,
4945 x_fund_status => l_disb_interface.fund_status_code,
4946 x_fund_status_date => l_disb_interface.fund_status_date,
4947 x_fee_paid_1 => l_disb_interface.origination_fees_paid_amt,
4948 x_fee_paid_2 => l_disb_interface.guarantee_fees_paid_amt,
4949 x_cheque_number => l_disb_interface.check_number_txt,
4950 x_ld_cal_type => l_disb_det.ld_cal_type,
4951 x_ld_sequence_number => l_disb_det.ld_sequence_number,
4952 x_disb_accepted_amt => l_disb_det.disb_accepted_amt,
4953 x_disb_paid_amt => l_disb_det.disb_paid_amt,
4954 x_rvsn_id => l_disb_det.rvsn_id,
4955 x_int_rebate_amt => l_disb_det.int_rebate_amt,
4956 x_force_disb => l_disb_det.force_disb,
4957 x_min_credit_pts => l_disb_det.min_credit_pts,
4958 x_disb_exp_dt => l_disb_det.disb_exp_dt,
4959 x_verf_enfr_dt => l_disb_det.verf_enfr_dt,
4960 x_fee_class => l_disb_det.fee_class,
4961 x_show_on_bill => l_disb_det.show_on_bill,
4962 x_attendance_type_code => l_disb_det.attendance_type_code,
4963 x_base_attendance_type_code => l_disb_det.base_attendance_type_code,
4964 x_change_type_code => l_disb_det.change_type_code,
4965 x_fund_return_mthd_code => l_disb_det.fund_return_mthd_code,
4966 x_payment_prd_st_date => l_disb_det.payment_prd_st_date,
4967 x_direct_to_borr_flag => l_disb_interface.direct_to_borr_flag
4968 );
4969
4970 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4971 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','After insert into IGF_SL_CL_RESP_R8 - LOOP');
4972 END IF;
4973 END LOOP;
4974 END IF;
4975
4976 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4977 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','Before insert into IGF_SL_AWD_DISB_LOC');
4978 END IF;
4979
4980 DECLARE
4981
4982 lv_row_id VARCHAR2(25);
4983
4984 CURSOR c_loc_cur IS
4985 SELECT *
4986 FROM igf_sl_awd_disb_loc
4987 WHERE award_id = p_award_id;
4988
4989 CURSOR c_awd_cur IS
4990 SELECT *
4991 FROM igf_aw_awd_disb
4992 WHERE award_id = p_award_id;
4993
4994 BEGIN
4995
4996 FOR tbh_rec IN c_loc_cur LOOP
4997 igf_sl_awd_disb_loc_pkg.delete_row (tbh_rec.row_id);
4998 END LOOP;
4999
5000 FOR tbh_rec IN c_awd_cur LOOP
5001
5002 lv_row_id := NULL;
5003
5004 igf_sl_awd_disb_loc_pkg.insert_row (
5005 x_mode => 'R',
5006 x_rowid => lv_row_id,
5007 x_award_id => tbh_rec.award_id,
5008 x_disb_num => tbh_rec.disb_num,
5009 x_disb_gross_amt => tbh_rec.disb_accepted_amt,
5010 x_fee_1 => tbh_rec.fee_1,
5011 x_fee_2 => tbh_rec.fee_2,
5012 x_disb_net_amt => tbh_rec.disb_net_amt,
5013 x_disb_date => tbh_rec.disb_date,
5014 x_hold_rel_ind => tbh_rec.hold_rel_ind,
5015 x_fee_paid_1 => tbh_rec.fee_paid_1,
5016 x_fee_paid_2 => tbh_rec.fee_paid_2);
5017
5018 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5019 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug',' After insert into IGF_SL_AWD_DISB_LOC');
5020 END IF;
5021
5022 END LOOP;
5023
5024 END;
5025
5026 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5027 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.debug','DML Complete');
5028 END IF;
5029
5030 EXCEPTION
5031 WHEN OTHERS THEN
5032
5033 IF fnd_log.level_exception >= fnd_log.g_current_runtime_level THEN
5034 fnd_log.string(fnd_log.level_exception,'igf.plsql.igf_sl_cl_imp_pkg.insert_records.exception','Exception ' || SQLERRM);
5035 END IF;
5036 fnd_message.set_name('IGF','IGF_GE_UNHANDLED_EXP');
5037 fnd_message.set_token('NAME','IGF_SL_CL_LI_IMP_PKG.INSERT_RECORDS');
5038
5039 RAISE IMPORT_ERROR;
5040
5041 END insert_records;
5042
5043
5044
5045 PROCEDURE run ( errbuf IN OUT NOCOPY VARCHAR2,
5046 retcode IN OUT NOCOPY NUMBER,
5047 p_awd_yr IN VARCHAR2,
5048 p_batch_id IN NUMBER,
5049 p_delete_flag IN VARCHAR2
5050 )
5051 IS
5052 --
5053 -- Created By : gmuralid
5054 -- Created On : 24-JUN-2003
5055 -- Purpose : This procedure is the main procedure invoked via concurrent program to import legacy data.
5056 -- Known limitations, enhancements or remarks :
5057 -- Change History :
5058 -- Who When What
5059 -- tsailaja 15/Jan/2006 Bug 4947880 Added invocation of igf_aw_gen.set_org_id(NULL);
5060 -- bvisvana 07-July-2005 Bug # 4008991 - IGF_GR_BATCH_DOES_NOT_EXIST replaced by IGF_SL_GR_BATCH_DOES_NO_EXIST
5061 -- (reverse chronological order - newest change first
5062 --
5063
5064
5065 p_d_status BOOLEAN;
5066 p_l_status BOOLEAN;
5067 p_status BOOLEAN;
5068 lb_isir_flag BOOLEAN := TRUE;
5069 g_error_flag BOOLEAN := FALSE;
5070 lb_open_flag BOOLEAN := FALSE;
5071
5072 l_total_record_cnt NUMBER;
5073 lb_base_id NUMBER;
5074 g_error_record_cnt NUMBER := 0;
5075 l_success_record_cnt NUMBER := 0;
5076
5077 result1 VARCHAR2(1);
5078 result2 VARCHAR2(1);
5079 l_award_year_status VARCHAR2(80);
5080 l_batch_desc VARCHAR2(80);
5081 l_chk_profile VARCHAR2(1);
5082 l_chk_batch VARCHAR2(1);
5083
5084 l_cal_type igf_ap_fa_base_rec_all.ci_cal_type%TYPE;
5085 l_seq_number igf_ap_fa_base_rec_all.ci_sequence_number%TYPE;
5086 l_award_id igf_aw_award_all.award_id%TYPE;
5087 l_fed_fund_cd igf_aw_fund_cat.fed_fund_code%TYPE;
5088 lv_person_id igs_pe_hz_parties.party_id%TYPE;
5089 lv_base_id igf_ap_fa_base_rec_all.base_id%TYPE;
5090
5091 l_interface c_interface%ROWTYPE;
5092 l_disb_interface c_disb_interface%ROWTYPE;
5093
5094 CURSOR c_get_batch_desc(cp_batch_num NUMBER)
5095 IS
5096 SELECT batch_desc
5097 FROM igf_ap_li_bat_ints
5098 WHERE batch_num = cp_batch_num;
5099
5100 l_get_batch_desc c_get_batch_desc%ROWTYPE;
5101
5102 CURSOR c_get_alternate_code(cp_cal_type VARCHAR2,
5103 cp_seq_number NUMBER)
5104 IS
5105 SELECT alternate_code
5106 FROM igs_ca_inst
5107 WHERE cal_type = cp_cal_type
5108 AND sequence_number = cp_seq_number;
5109
5110 l_get_alternate_code c_get_alternate_code%ROWTYPE;
5111
5112
5113 CURSOR c_award_det(cp_cal_type VARCHAR2,
5114 cp_seq_number NUMBER)
5115 IS
5116 SELECT batch_year,
5117 award_year_status_code,
5118 sys_award_year
5119 FROM igf_ap_batch_aw_map_v
5120 WHERE ci_cal_type = cp_cal_type
5121 AND ci_sequence_number = cp_seq_number;
5122
5123 l_award_det c_award_det%ROWTYPE;
5124
5125
5126 CURSOR c_act_isir(cp_base_id NUMBER)
5127 IS
5128 SELECT 1
5129 FROM igf_ap_isir_matched isir
5130 WHERE isir.base_id = cp_base_id
5131 AND isir.active_isir = 'Y';
5132
5133 l_act_isir c_act_isir%ROWTYPE;
5134
5135
5136 CURSOR c_chk_loan_exist (cp_award_id NUMBER)
5137 IS
5138 SELECT
5139 rowid row_id,
5140 loan_id,
5141 award_id,
5142 loan_number,
5143 legacy_record_flag
5144 FROM
5145 igf_sl_loans_all
5146 WHERE
5147 award_id = cp_award_id;
5148
5149 l_chk_loan_exist c_chk_loan_exist%ROWTYPE;
5150
5151 CURSOR c_chk_loan_number (cp_loan_number VARCHAR2)
5152 IS
5153 SELECT
5154 rowid row_id,
5155 loan_id,
5156 award_id,
5157 loan_number,
5158 legacy_record_flag
5159 FROM
5160 igf_sl_loans_all
5161 WHERE
5162 loan_number = cp_loan_number;
5163
5164 l_chk_loan_number c_chk_loan_number%ROWTYPE;
5165
5166 CURSOR c_disb_det(cp_award_id NUMBER,
5167 cp_disb_num NUMBER)
5168 IS
5169 SELECT 1
5170 FROM igf_aw_awd_disb_all adisb
5171 WHERE adisb.award_id = cp_award_id
5172 AND adisb.disb_num = cp_disb_num;
5173
5174 l_disb_det c_disb_det%ROWTYPE;
5175
5176 BEGIN
5177 igf_aw_gen.set_org_id(NULL);
5178 errbuf := NULL;
5179 retcode := 0;
5180 g_error := ' ';
5181 l_chk_profile := 'N';
5182 l_chk_batch := 'Y';
5183 l_cal_type := LTRIM(RTRIM(SUBSTR(p_awd_yr,1,10)));
5184 l_seq_number := TO_NUMBER(SUBSTR(p_awd_yr,11));
5185
5186 --
5187 -- Get batch description and display it
5188 --
5189 OPEN c_get_batch_desc(p_batch_id);
5190 FETCH c_get_batch_desc INTO l_get_batch_desc;
5191 CLOSE c_get_batch_desc;
5192
5193 l_batch_desc := p_batch_id ||' - ' || l_get_batch_desc.batch_desc ;
5194 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5195 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','l_batch_desc ' || l_batch_desc);
5196 END IF;
5197
5198 l_get_alternate_code := NULL;
5199
5200 OPEN c_get_alternate_code(l_cal_type,l_seq_number);
5201 FETCH c_get_alternate_code INTO l_get_alternate_code;
5202 CLOSE c_get_alternate_code;
5203
5204 log_parameters( l_get_alternate_code.alternate_code,p_batch_id,igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_delete_flag));
5205
5206 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5207 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','l_cal_type:'||l_cal_type ||' l_seq_number:'||l_seq_number);
5208 END IF;
5209
5210 l_chk_profile := igf_ap_gen.check_profile;
5211
5212 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5213 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','l_chk_profile ' || l_chk_profile);
5214 END IF;
5215
5216
5217 IF l_chk_profile = 'N' THEN
5218 fnd_message.set_name('IGF','IGF_AP_LGCY_PROC_NOT_RUN');
5219 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5220 RETURN;
5221 END IF;
5222
5223 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5224 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','l_get_alternate_code.alternate_code ' || l_get_alternate_code.alternate_code);
5225 END IF;
5226
5227 IF (l_get_alternate_code.alternate_code IS NULL) THEN
5228 fnd_message.set_name('IGF','IGF_SL_NO_CALENDAR');
5229 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5230 RETURN;
5231 END IF;
5232
5233 l_chk_batch := igf_ap_gen.check_batch(p_batch_id,'LOANS');
5234 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5235 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','l_chk_batch ' || l_chk_batch);
5236 END IF;
5237
5238 IF l_chk_batch = 'N' THEN
5239 -- Bug # 4008991
5240 fnd_message.set_name('IGF','IGF_SL_GR_BATCH_DOES_NO_EXIST');
5241 fnd_message.set_token('BATCH_ID',p_batch_id);
5242 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5243 RETURN;
5244 END IF;
5245
5246
5247 OPEN c_award_det(l_cal_type,l_seq_number);
5248 FETCH c_award_det INTO l_award_det;
5249 IF c_award_det%NOTFOUND THEN
5250 fnd_message.set_name('IGF','IGF_AP_AWD_YR_NOT_FOUND');
5251 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5252 fnd_file.new_line(fnd_file.log,1);
5253 CLOSE c_award_det;
5254 RETURN;
5255 ELSE
5256 CLOSE c_award_det;
5257 END IF;
5258
5259 l_award_year_status := l_award_det.award_year_status_code;
5260 g_sys_award_year := l_award_det.sys_award_year;
5261
5262 fnd_file.put_line(fnd_file.log,RPAD(g_award_year_status_desc,40)|| ' : '
5263 || igf_aw_gen.lookup_desc('IGF_AWARD_YEAR_STATUS',l_award_year_status));
5264 fnd_file.new_line(fnd_file.log,1);
5265 fnd_file.put_line(fnd_file.log, '--------------------------------------------------------');
5266
5267 IF l_award_det.award_year_status_code NOT IN ('LD','O') THEN
5268 fnd_message.set_name('IGF','IGF_AP_LG_INVALID_STAT');
5269 fnd_message.set_token('AWARD_STATUS',igf_aw_gen.lookup_desc('IGF_AWARD_YEAR_STATUS',l_award_year_status));
5270 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5271 fnd_file.new_line(fnd_file.log,1);
5272 RETURN;
5273 END IF;
5274
5275 IF (l_award_year_status = 'O') THEN
5276 lb_open_flag := TRUE;
5277 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5278 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','lb_open_flag : TRUE');
5279 END IF;
5280 ELSE
5281 lb_open_flag := FALSE;
5282 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5283 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','lb_open_flag : FALSE');
5284 END IF;
5285 END IF;
5286
5287 FOR l_interface IN c_interface(p_batch_id,l_get_alternate_code.alternate_code,'U','R') LOOP
5288
5289 BEGIN
5290
5291 SAVEPOINT sp1;
5292
5293 fnd_file.new_line(fnd_file.log,1);
5294 fnd_file.put_line(fnd_file.log,g_processing ||
5295 ' ' ||
5296 g_person_number ||
5297 ' ' ||
5298 l_interface.person_number);
5299 --
5300 -- Check if person exists in OSS
5301 --
5302 igf_ap_gen.check_person(l_interface.person_number,l_cal_type,l_seq_number,lv_person_id,lv_base_id);
5303
5304 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5305 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','lv_person_id ' || lv_person_id||' lv_base_id ' || lv_base_id);
5306 END IF;
5307
5308 IF lv_person_id IS NULL THEN
5309 fnd_message.set_name('IGF','IGF_SL_LI_PERSON_NOT_FND');
5310 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5311 fnd_file.new_line(fnd_file.log,1);
5312 g_error_flag := TRUE;
5313 ELSE
5314 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5315 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','Pesron Number check passed');
5316 END IF;
5317 --
5318 -- Check if base record present
5319 --
5320 IF lv_base_id IS NULL THEN
5321 fnd_message.set_name('IGF','IGF_AP_FABASE_NOT_FOUND');
5322 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5323 fnd_file.new_line(fnd_file.log,1);
5324 g_error_flag := TRUE;
5325
5326 ELSE
5327 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5328 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','Base record check passed');
5329 END IF;
5330 --
5331 -- Check if corresponding award is present in the awards table
5332 --
5333 fnd_file.put_line(fnd_file.log, g_processing ||
5334 ' ' ||
5335 g_loan_record||
5336 ' ' ||
5337 l_interface.loan_number_txt);
5338
5339 OPEN c_get_award(lv_base_id,l_interface.award_number_txt);
5340 FETCH c_get_award INTO l_get_award;
5341 IF (c_get_award%NOTFOUND) THEN
5342 CLOSE c_get_award;
5343 fnd_message.set_name('IGF','IGF_SL_CL_LI_NO_AW_REF');
5344 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5345 g_error_flag := TRUE;
5346 ELSE
5347 CLOSE c_get_award;
5348
5349 l_award_id := l_get_award.award_id;
5350
5351 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5352 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','Award ID ' || l_award_id);
5353 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','Award Reference check passed');
5354 END IF;
5355
5356 lb_isir_flag := TRUE;
5357
5358 IF ( lb_open_flag = TRUE ) THEN
5359 --
5360 -- Check for active isir only if open award year
5361 --
5362 OPEN c_act_isir(lv_base_id);
5363 FETCH c_act_isir INTO l_act_isir;
5364
5365 IF (c_act_isir%NOTFOUND) THEN
5366 CLOSE c_act_isir;
5367 fnd_message.set_name('IGF','IGF_AP_NO_ACTIVE_ISIR');
5368 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5369 lb_isir_flag := FALSE;
5370 g_error_flag := TRUE;
5371 ELSE
5372 CLOSE c_act_isir;
5373 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5374 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','Active ISIR for Open Award Year check passed');
5375 END IF;
5376 END IF; -- c_act_isir IF
5377 END IF; -- lb_open_flag IF
5378
5379 IF (lb_isir_flag = TRUE) THEN
5380
5381 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5382 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','Loan status and active isir check passed');
5383 END IF;
5384 --
5385 -- Check for the fed fund code and based on this check the person borrower relationship
5386 --
5387 l_fed_fund_cd := l_get_award.fed_fund_code;
5388 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5389 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','Fed Fund Code ' || l_fed_fund_cd);
5390 END IF;
5391
5392 IF (l_fed_fund_cd IS NULL) OR (l_fed_fund_cd NOT IN ('FLP','FLS','FLU','ALT','GPLUSFL'))
5393 THEN
5394 fnd_message.set_name('IGF','IGF_SL_CL_INV_FED_FND_CD');
5395 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5396 g_error_flag := TRUE;
5397 ELSE
5398 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5399 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','Person Borrower relationship check passed');
5400 END IF;
5401
5402
5403 validate_loan_orig_int(l_interface,
5404 l_award_id,
5405 p_status,
5406 l_cal_type,
5407 l_seq_number,
5408 lb_open_flag,
5409 l_fed_fund_cd);
5410
5411 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5412 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','After calling validate_loan_orig_int');
5413 END IF;
5414 END IF; -- Fund Code IF
5415
5416
5417 IF p_status = FALSE OR g_error_flag THEN
5418 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5419 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','Validation of interface record failed');
5420 END IF;
5421 g_error_flag := TRUE;
5422 write_logfile('O');
5423 ELSE
5424 OPEN c_disb_interface(l_interface.ci_alternate_code,l_interface.person_number,l_interface.award_number_txt,l_interface.loan_number_txt);
5425 FETCH c_disb_interface INTO l_disb_interface;
5426
5427 IF (c_disb_interface%NOTFOUND) THEN
5428 CLOSE c_disb_interface;
5429 p_d_status := FALSE;
5430 g_error_flag := TRUE;
5431 fnd_message.set_name('IGF','IGF_SL_CL_NO_DIS_REC');
5432 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5433 ELSE
5434 CLOSE c_disb_interface;
5435 l_disb_interface := NULL;
5436 p_d_status := TRUE;
5437 p_l_status := TRUE;
5438
5439 FOR l_disb_interface IN
5440 c_disb_interface(l_interface.ci_alternate_code,
5441 l_interface.person_number,
5442 l_interface.award_number_txt,
5443 l_interface.loan_number_txt)
5444 LOOP
5445
5446 fnd_file.put_line(fnd_file.log,LPAD(' ',11)
5447 ||g_processing
5448 ||' '
5449 ||g_loan_disb
5450 ||' '
5451 ||l_disb_interface.disbursement_num);
5452
5453 OPEN c_disb_det(l_award_id,l_disb_interface.disbursement_num);
5454 FETCH c_disb_det INTO l_disb_det;
5455
5456 IF (c_disb_det%NOTFOUND) THEN
5457 CLOSE c_disb_det;
5458 g_error_flag := TRUE;
5459 fnd_message.set_name('IGF','IGF_SL_CL_DISB_REC_NO_EXIST');
5460 fnd_message.set_token('DISB_NUM',l_disb_interface.disbursement_num);
5461 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5462 p_d_status := FALSE;
5463 ELSE
5464 CLOSE c_disb_det;
5465 --
5466 -- Validate disb
5467 --
5468 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5469 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','Before calling validate_loan_disb');
5470 END IF;
5471 validate_loan_disb( l_disb_interface,l_award_id,p_d_status);
5472 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5473 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','After calling validate_loan_disb');
5474 END IF;
5475
5476 END IF;
5477
5478 IF p_d_status = FALSE THEN
5479 p_l_status := FALSE;
5480 g_error_flag := TRUE;
5481 write_logfile('D');
5482 END IF;
5483
5484 END LOOP;
5485
5486 IF p_l_status = FALSE THEN
5487 p_d_status := FALSE;
5488 END IF;
5489
5490 IF p_d_status = FALSE THEN
5491 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5492 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','Validation of Disbursement interface record failed');
5493 END IF;
5494 g_error_flag := TRUE;
5495 ELSIF p_d_status = TRUE AND p_status = TRUE THEN
5496
5497 OPEN c_chk_loan_exist(l_award_id);
5498 FETCH c_chk_loan_exist INTO l_chk_loan_exist;
5499 --
5500 -- If interface record does not exist log message
5501 --
5502 IF (c_chk_loan_exist%NOTFOUND) THEN
5503
5504 CLOSE c_chk_loan_exist;
5505
5506 IF (NVL(l_interface.import_record_type,'X') = 'U' ) THEN
5507 fnd_message.set_name('IGF','IGF_AP_ORIG_REC_NOT_FOUND');
5508 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5509 g_error_flag := TRUE;
5510 END IF;
5511
5512 ELSIF (c_chk_loan_exist%FOUND) THEN
5513
5514 CLOSE c_chk_loan_exist;
5515
5516 IF (NVL(l_interface.import_record_type,'X') <> 'U' ) THEN
5517 fnd_message.set_name('IGF','IGF_SL_CL_RECORD_EXIST');
5518 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5519 g_error_flag := TRUE;
5520 END IF;
5521
5522 IF (NVL(l_chk_loan_exist.legacy_record_flag,'N') = 'N') THEN
5523 fnd_message.set_name('IGF','IGF_SL_CL_UPD_OPEN');
5524 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5525 g_error_flag := TRUE;
5526 END IF;
5527
5528 IF (NVL(l_interface.import_record_type,'X') = 'U' ) THEN
5529 IF l_chk_loan_exist.loan_number <> l_interface.loan_number_txt THEN
5530 fnd_message.set_name('IGF','IGF_SL_LI_LOAN_NUM_MISMTCH');
5531 fnd_message.set_token('SYS_LOAN_NUM',l_chk_loan_exist.loan_number);
5532 fnd_message.set_token('INT_LOAN_NUM',l_interface.loan_number_txt);
5533 fnd_message.set_token('AWARD_ID',l_award_id);
5534 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5535 g_error_flag := TRUE;
5536 END IF;
5537 END IF;
5538
5539 END IF;
5540
5541 OPEN c_chk_loan_number(l_interface.loan_number_txt);
5542 FETCH c_chk_loan_number INTO l_chk_loan_number;
5543 CLOSE c_chk_loan_number;
5544
5545 IF NVL(l_chk_loan_number.award_id,l_award_id) <> l_award_id THEN
5546 fnd_message.set_name('IGF','IGF_SL_DUP_LOAN');
5547 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5548 g_error_flag := TRUE;
5549 END IF;
5550
5551 IF NOT g_error_flag AND l_chk_loan_exist.loan_id IS NOT NULL THEN
5552 delete_records(l_chk_loan_exist.row_id,
5553 l_chk_loan_exist.loan_id,
5554 l_chk_loan_exist.loan_number);
5555 END IF;
5556
5557 IF NOT g_error_flag THEN
5558 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5559 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','Record to be updated deleted successfully');
5560 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','l_award_id ' || l_award_id);
5561 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','l_fed_fund_cd ' || l_fed_fund_cd);
5562 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','lv_person_id ' || lv_person_id);
5563 END IF;
5564
5565
5566 insert_records(l_interface,
5567 l_award_id,
5568 l_fed_fund_cd,
5569 lv_person_id);
5570 END IF;
5571 END IF; -- PD STATUS IF
5572 END IF; -- DISBURSEMENT RECORDS FOUND IF
5573 END IF; -- P STATUS FLAG IF
5574 END IF; -- ISIR PASS IF
5575 END IF; -- AWARD REF IF
5576 END IF; -- BASE ID IF
5577 END IF; -- PERSON ID IF
5578
5579 EXCEPTION
5580
5581 WHEN IMPORT_ERROR THEN
5582 g_error_flag := TRUE;
5583 fnd_message.set_name('IGF','IGF_SL_CL_LI_UPD_FLD');
5584 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5585 fnd_file.new_line(fnd_file.log,1);
5586 ROLLBACK TO sp1;
5587
5588 WHEN OTHERS THEN
5589 RAISE;
5590 END;
5591
5592 BEGIN -- Block for updating Interface Record
5593
5594 IF g_error_flag = TRUE OR
5595 p_status = FALSE OR
5596 p_d_status = FALSE
5597
5598 THEN
5599 g_error_flag := FALSE;
5600 --
5601 -- update the legacy interface table column import_status to 'E'
5602 --
5603 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5604 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','Before update of interface table : status E');
5605 END IF;
5606 UPDATE
5607 igf_sl_li_orig_ints
5608 SET
5609 import_status_type = 'E',
5610 last_update_date = SYSDATE,
5611 last_update_login = fnd_global.login_id,
5612 request_id = fnd_global.conc_request_id,
5613 program_id = fnd_global.conc_program_id,
5614 program_application_id = fnd_global.prog_appl_id,
5615 program_update_date = SYSDATE
5616 WHERE
5617 ROWID = l_interface.ROWID;
5618
5619 g_error_record_cnt := g_error_record_cnt + 1;
5620 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5621 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','After update of interface table : status E');
5622 END IF;
5623 fnd_file.new_line(fnd_file.log,1);
5624 fnd_message.set_name('IGF','IGF_SL_LI_SKIPPING_AWD');
5625 fnd_file.put_line(fnd_file.log,fnd_message.get);
5626 fnd_file.new_line(fnd_file.log,1);
5627 ELSE
5628
5629 IF p_delete_flag = 'Y' THEN
5630
5631 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5632 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','Before deleting disb interface table record');
5633 END IF;
5634
5635 DELETE
5636 FROM
5637 igf_sl_li_org_disb_ints
5638 WHERE
5639 ci_alternate_code = l_interface.ci_alternate_code AND
5640 person_number = l_interface.person_number AND
5641 award_number_txt = l_interface.award_number_txt;
5642
5643 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5644 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','Before deleting orig interface table record');
5645 END IF;
5646
5647 DELETE
5648 FROM
5649 igf_sl_li_orig_ints
5650 WHERE
5651 ROWID = l_interface.ROWID;
5652
5653 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5654 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','After deleting orig interface table record');
5655 END IF;
5656
5657 ELSE
5658 --
5659 -- update the legacy interface table column import_status to 'I'
5660 --
5661
5662 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5663 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','Before update of interface table : status I');
5664 END IF;
5665
5666 UPDATE
5667 igf_sl_li_orig_ints
5668 SET
5669 import_status_type = 'I',
5670 last_update_date = SYSDATE,
5671 last_update_login = fnd_global.login_id,
5672 request_id = fnd_global.conc_request_id,
5673 program_id = fnd_global.conc_program_id,
5674 program_application_id = fnd_global.prog_appl_id,
5675 program_update_date = SYSDATE
5676 WHERE
5677 ROWID = l_interface.ROWID;
5678
5679 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5680 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','After update of interface table : status I');
5681 END IF;
5682
5683 END IF;
5684
5685 l_success_record_cnt := l_success_record_cnt + 1;
5686 fnd_message.set_name('IGF','IGF_SL_LI_IMP_SUCCES');
5687 fnd_file.put_line(fnd_file.log, fnd_message.get);
5688 fnd_file.new_line(fnd_file.log,1);
5689
5690 END IF;
5691
5692 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
5693 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_sl_cl_imp_pkg.run.debug','Before COMMIT');
5694 END IF;
5695
5696 COMMIT;
5697 fnd_file.new_line(fnd_file.log,1);
5698 END;
5699
5700
5701 END LOOP;
5702
5703 IF l_success_record_cnt = 0 AND g_error_record_cnt = 0 THEN
5704 fnd_message.set_name('IGF','IGF_SL_CL_LI_NO_RECORDS');
5705 fnd_message.set_token('AID_YR', l_get_alternate_code.alternate_code);
5706 fnd_message.set_token('BATCH_ID',p_batch_id);
5707 fnd_file.put_line(fnd_file.log,RPAD(g_error,11) || fnd_message.get);
5708 RETURN;
5709 END IF;
5710
5711 l_total_record_cnt := l_success_record_cnt + g_error_record_cnt;
5712 fnd_file.put_line(fnd_file.output,' ' );
5713 fnd_file.put_line(fnd_file.output, RPAD('-',50,'-'));
5714 fnd_file.put_line(fnd_file.output,' ' );
5715 fnd_file.put_line(fnd_file.output, RPAD(igf_ap_gen.get_lookup_meaning('IGF_GE_PARAMETERS','RECORDS_PROCESSED'), 40) || ' : ' || l_total_record_cnt);
5716 fnd_file.put_line(fnd_file.output, RPAD(igf_ap_gen.get_lookup_meaning('IGF_GE_PARAMETERS','RECORDS_SUCCESSFUL'), 40) || ' : ' || l_success_record_cnt);
5717 fnd_file.put_line(fnd_file.output, RPAD(igf_ap_gen.get_lookup_meaning('IGF_GE_PARAMETERS','RECORDS_REJECTED'), 40) || ' : ' || g_error_record_cnt);
5718 fnd_file.put_line(fnd_file.output,' ' );
5719 fnd_file.put_line(fnd_file.output, RPAD('-',50,'-'));
5720 fnd_file.put_line(fnd_file.output,' ' );
5721
5722
5723 EXCEPTION
5724
5725 WHEN others THEN
5726 ROLLBACK;
5727
5728 IF fnd_log.level_exception >= fnd_log.g_current_runtime_level THEN
5729 fnd_log.string(fnd_log.level_exception,'igf.plsql.igf_sl_cl_imp_pkg.run.exception','Exception'|| SQLERRM);
5730 END IF;
5731 fnd_message.set_name('IGF','IGF_GE_UNHANDLED_EXP');
5732 fnd_message.set_token('NAME','IGF_SL_CL_LI_IMP_PKG.RUN');
5733 fnd_file.put_line(fnd_file.log,fnd_message.get);
5734 retcode := 2;
5735 errbuf := fnd_message.get;
5736 igs_ge_msg_stack.conc_exception_hndl;
5737 END run;
5738
5739 END IGF_SL_CL_LI_IMP_PKG;