22: || getting set to 0 in this case which should not happen actually.
23: || Fixed these issues in post_award().
24: || 2) Fixed the ORDER BY sequence in merge_funds().
25: || 3) In cancel_invalid_award(), passed 0 to disb_gross_amt in
26: || igf_aw_awd_disb_pkg.update_row() call.
27: || Note: Issues 2 and 3 are additional fixes not directly related to the bug.
28: || museshad 14-Apr-2006 Bug 5042136.
29: || Origination Fee, Guarantor Fee, Interest Rebate Amount should
30: || become 0 when a disb gets cancelled. Fixed this in -
50: || ayedubat 12-OCT-2004 Changed the post_award procedure for FA 149 build bug # 3416863
51: || Fixed the GSCC warning "File.Sql.35 261, 2047, 3229, 7461-7462 - Do not assign default
52: || values in PL/SQL initialization or declaration" except for line number: 261
53: || veramach July 2004 FA 151 HR integration (bug # 3709292)
54: || Impact of obsoleting columns from igf_aw_awd_disb_pkg
55: -- sjadhav 04-Aug-2004 Corrected Group By
56: --
57: || veramach 30-Jun-2004 bug 3709109 - Added call to function check_disb to enforce the rule that FWS funds can
58: || have only one disbursement per term
738: AND awd.base_id = p_base_id
739: AND NOT EXISTS(
740: SELECT disb.ld_cal_type,
741: disb.ld_sequence_number
742: FROM igf_aw_awd_disb_all disb
743: WHERE disb.award_id = awd.award_id
744: MINUS
745: SELECT ld_cal_type,
746: ld_sequence_number
1133:
1134: -- Retrieves all simulated disbursement records
1135: CURSOR c_sim_adisb ( cp_award_id igf_aw_award_all.award_id%TYPE ) IS
1136: SELECT adisb.rowid row_id
1137: FROM igf_aw_awd_disb_all adisb
1138: WHERE adisb.award_id = cp_award_id;
1139:
1140: -- Retrieves all simulated award records
1141: CURSOR c_sim_awd ( cp_base_id igf_aw_award_all.base_id%TYPE ) IS
1155: END IF;
1156:
1157: FOR l_sim_awd IN c_sim_awd(l_base_id) LOOP
1158: FOR l_sim_adisb IN c_sim_adisb(l_sim_awd.award_id) LOOP
1159: igf_aw_awd_disb_pkg.delete_row(l_sim_adisb.row_id);
1160: END LOOP;
1161: igf_aw_award_pkg.delete_row(l_sim_awd.row_id);
1162: END LOOP;
1163: EXCEPTION
1418: cp_award_id igf_aw_award_all.award_id%TYPE
1419: ) IS
1420: SELECT disb.rowid row_id,
1421: disb.*
1422: FROM igf_aw_awd_disb_all disb
1423: WHERE award_id = cp_award_id;
1424:
1425: -- Get Fund Code from fund_id
1426: CURSOR c_fund_code(
1455: ld_cal_type,
1456: ld_sequence_number,
1457: show_on_bill,
1458: base_attendance_type_code
1459: FROM igf_aw_awd_disb disb
1460: WHERE disb.award_id = p_award_id
1461: AND ROWNUM = 1
1462: ORDER BY disb_num DESC;
1463: l_last_disb c_last_disb%ROWTYPE;
1480: fnd_file.put_line(fnd_file.log,fnd_message.get);
1481:
1482: FOR disb_rec IN c_disb(p_award_id) LOOP
1483:
1484: igf_aw_awd_disb_pkg.update_row(
1485: x_rowid => disb_rec.row_id,
1486: x_award_id => disb_rec.award_id,
1487: x_disb_num => disb_rec.disb_num,
1488: x_tp_cal_type => disb_rec.tp_cal_type,
1601:
1602: l_amount := -1 * l_amount;
1603: lv_rowid := NULL;
1604:
1605: igf_aw_awd_disb_pkg.insert_row(
1606: x_rowid => lv_rowid,
1607: x_award_id => awd_rec.award_id,
1608: x_disb_num => (l_last_disb.disb_num + 1),
1609: x_tp_cal_type => l_last_disb.tp_cal_type,
2093: || Status Date' are got at the award level (from IGF_AW_AWARD_ALL table).
2094: || Previously they were got from IGF_AP_FA_BASE_REC_ALL table. Passed
2095: || NULL to these columns in the TBH call for
2096: || IGF_AP_FA_BASE_REC_ALL table.
2097: || ayedubat 12-OCT-04 Changed the TBH calls of igf_aw_awd_disb_pkg package to add a new column,
2098: || PAYMENT_PRD_ST_DATE as part of FA 149 build bug # 3416863
2099: || bkkumar 02-04-04 FACR116 - Added the new paramter p_alt_rel_code to the
2100: || get_loan_fee1 , get_loan_fee2 , get_cl_hold_rel_ind
2101: || ,get_cl_auto_late_ind
2240:
2241: -- Get a specific disbursment for an award
2242: CURSOR c_disb(
2243: cp_award_id igf_aw_award_all.award_id%TYPE,
2244: cp_disb_num igf_aw_awd_disb_all.disb_num%TYPE
2245: ) IS
2246: SELECT rowid row_id,
2247: disb.*
2248: FROM igf_aw_awd_disb_all disb
2244: cp_disb_num igf_aw_awd_disb_all.disb_num%TYPE
2245: ) IS
2246: SELECT rowid row_id,
2247: disb.*
2248: FROM igf_aw_awd_disb_all disb
2249: WHERE award_id = cp_award_id
2250: AND disb_num = cp_disb_num;
2251:
2252: l_disb c_disb%ROWTYPE;
2266: l_disb_date DATE;
2267: l_disb_date1 DATE;
2268: l_disb_num NUMBER;
2269: l_flag VARCHAR2(30);
2270: l_hold_rel_ind igf_aw_awd_disb.hold_rel_ind%TYPE;
2271: lb_disb_update BOOLEAN := FALSE;
2272: l_auto_late_ind igf_sl_cl_setup.auto_late_disb_ind%TYPE; -- FA 122 Loans Enhancements
2273: l_log_mesg VARCHAR2(300);
2274: l_disb_dates disb_dt_tab := disb_dt_tab();
2289: ln_com_perct NUMBER;
2290: l_alt_pell_schedule igf_aw_award_all.alt_pell_schedule%TYPE;
2291: lb_awards_created BOOLEAN;
2292: lv_update_notif_stat VARCHAR(2);
2293: l_attendance_type_code igf_aw_awd_disb_all.attendance_type_code%TYPE;
2294: l_base_attendance_type_code igf_aw_awd_disb_all.base_attendance_type_code%TYPE;
2295: ln_total_disb_num NUMBER;
2296: lv_awd_notif_status VARCHAR2(1);
2297: SKIP_RECORD EXCEPTION;
2290: l_alt_pell_schedule igf_aw_award_all.alt_pell_schedule%TYPE;
2291: lb_awards_created BOOLEAN;
2292: lv_update_notif_stat VARCHAR(2);
2293: l_attendance_type_code igf_aw_awd_disb_all.attendance_type_code%TYPE;
2294: l_base_attendance_type_code igf_aw_awd_disb_all.base_attendance_type_code%TYPE;
2295: ln_total_disb_num NUMBER;
2296: lv_awd_notif_status VARCHAR2(1);
2297: SKIP_RECORD EXCEPTION;
2298:
2326:
2327: -- Get disbursements which should be cancelled
2328: CURSOR c_disb_cancel(
2329: cp_award_id igf_aw_award_all.award_id%TYPE,
2330: cp_disb_num igf_aw_awd_disb_all.disb_num%TYPE
2331: ) IS
2332: SELECT *
2333: FROM igf_aw_awd_disb
2334: WHERE award_id = cp_award_id
2329: cp_award_id igf_aw_award_all.award_id%TYPE,
2330: cp_disb_num igf_aw_awd_disb_all.disb_num%TYPE
2331: ) IS
2332: SELECT *
2333: FROM igf_aw_awd_disb
2334: WHERE award_id = cp_award_id
2335: AND disb_num > cp_disb_num;
2336:
2337: lv_locking_success VARCHAR2(1);
2338:
2339: -- Get pell disb orig
2340: CURSOR c_pell_disb_orig(
2341: cp_award_id igf_aw_award_all.award_id%TYPE,
2342: cp_disb_num igf_aw_awd_disb_all.disb_num%TYPE
2343: ) IS
2344: SELECT rfmd.ROWID row_id,
2345: rfmd.*
2346: FROM igf_gr_rfms_all rfms,
2955: l_hld_flg := 'N';
2956: END IF;
2957:
2958: IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2959: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'Before inserting into igf_aw_awd_disb table with l_attendance_type_code : '||l_attendance_type_code);
2960: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'inserting into igf_aw_awd_disb table with manual_hold_ind:'||l_hld_flg);
2961: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'Before inserting into igf_aw_awd_disb table with l_base_attendance_type_code : '||l_base_attendance_type_code);
2962: END IF;
2963:
2956: END IF;
2957:
2958: IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2959: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'Before inserting into igf_aw_awd_disb table with l_attendance_type_code : '||l_attendance_type_code);
2960: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'inserting into igf_aw_awd_disb table with manual_hold_ind:'||l_hld_flg);
2961: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'Before inserting into igf_aw_awd_disb table with l_base_attendance_type_code : '||l_base_attendance_type_code);
2962: END IF;
2963:
2964: IF (l_fmast.fed_fund_code = 'PELL' AND
2957:
2958: IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2959: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'Before inserting into igf_aw_awd_disb table with l_attendance_type_code : '||l_attendance_type_code);
2960: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'inserting into igf_aw_awd_disb table with manual_hold_ind:'||l_hld_flg);
2961: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'Before inserting into igf_aw_awd_disb table with l_base_attendance_type_code : '||l_base_attendance_type_code);
2962: END IF;
2963:
2964: IF (l_fmast.fed_fund_code = 'PELL' AND
2965: igf_sl_dl_validation.check_full_participant (l_fmast.ci_cal_type,l_fmast.ci_sequence_number,'PELL'))
2968: THEN
2969: l_hold_rel_ind := 'FALSE';
2970: END IF;
2971:
2972: igf_aw_awd_disb_pkg.insert_row(
2973: x_rowid => lv_rowid,
2974: x_award_id => l_award_id,
2975: x_disb_num => l_disb_num,
2976: x_tp_cal_type => l_awd_disb.tp_cal_type,
3060: IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3061: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id, 'Flag set - updating disb num 1 with disb date delayed by NSLDS offset: ' ||l_disb_date1);
3062: END IF;
3063:
3064: igf_aw_awd_disb_pkg.update_row(
3065: x_mode => 'R',
3066: x_rowid => l_disb.row_id,
3067: x_award_id => l_disb.award_id,
3068: x_disb_num => l_disb.disb_num,
3614: lb_disb_update := FALSE;
3615: END IF;
3616:
3617: IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3618: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'Before inserting into igf_aw_awd_disb table with l_attendance_type_code : '||l_attendance_type_code);
3619: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'inserting into igf_aw_awd_disb table with manual_hold_ind:'||l_hld_flg);
3620: END IF;
3621:
3622: lv_rowid := NULL;
3615: END IF;
3616:
3617: IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3618: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'Before inserting into igf_aw_awd_disb table with l_attendance_type_code : '||l_attendance_type_code);
3619: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'inserting into igf_aw_awd_disb table with manual_hold_ind:'||l_hld_flg);
3620: END IF;
3621:
3622: lv_rowid := NULL;
3623: IF l_fmast.fed_fund_code IN ('FWS') THEN
3637: --disbursement exists
3638: --so update
3639: CLOSE c_disb;
3640: IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3641: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'calling igf_aw_awd_disb_pkg.update_row');
3642: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'l_disb.award_id:'||l_disb.award_id);
3643: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'l_disb.disb_num:'||l_disb.disb_num);
3644: END IF;
3645:
3664: THEN
3665: l_hold_rel_ind := NVL(l_disb.hold_rel_ind,'FALSE');
3666: END IF;
3667:
3668: igf_aw_awd_disb_pkg.update_row(
3669: x_mode => 'R',
3670: x_rowid => l_disb.row_id,
3671: x_award_id => l_disb.award_id,
3672: x_disb_num => l_disb.disb_num,
3769: --disbursement non-existent
3770: --so insert
3771: CLOSE c_disb;
3772: IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3773: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'calling igf_aw_awd_disb_pkg.insert_row');
3774: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'l_disb.award_id:'||l_award_det.award_id);
3775: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'l_disb_num:'||l_disb_num);
3776: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'l_base_attendance_type_code:'||l_base_attendance_type_code);
3777: END IF;
3781: igf_sl_dl_validation.check_full_participant (l_fmast.ci_cal_type,l_fmast.ci_sequence_number,'DL'))
3782: THEN
3783: l_hold_rel_ind := 'FALSE';
3784: END IF;
3785: igf_aw_awd_disb_pkg.insert_row(
3786: x_rowid => lv_rowid,
3787: x_award_id => l_award_det.award_id,
3788: x_disb_num => l_disb_num,
3789: x_tp_cal_type => l_awd_disb.tp_cal_type,
3841: /* this PELL award has been already originated.
3842: so insert a disbursement origination record for this new disbursement
3843: we do this only for phase-in participant years - for full participant years,
3844: there will no IGF_GR_RFMS_DISB record. While sending the origination, the data
3845: is directly picked from the IGF_AW_AWD_DISB_ALL table.
3846: */
3847: lv_row_id := NULL;
3848: lv_rfmd_id := NULL;
3849:
3911: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.post_award.debug '|| g_req_id,'cancelling awd_disb for award_id:'||l_award_det.award_id||' disb_num:'||disb_cancel_rec.disb_num);
3912: END IF;
3913:
3914: -- cancel the disbursement
3915: igf_aw_awd_disb_pkg.update_row(
3916: x_rowid => disb_cancel_rec.row_id,
3917: x_award_id => disb_cancel_rec.award_id,
3918: x_disb_num => disb_cancel_rec.disb_num,
3919: x_tp_cal_type => disb_cancel_rec.tp_cal_type,
3971: IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3972: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_gen_003.create_auto_disb.debug','Flag set - updating disb num 1 with disb date delayed by NSLDS offset: ' ||l_disb_date1);
3973: END IF;
3974:
3975: igf_aw_awd_disb_pkg.update_row(
3976: x_mode => 'R',
3977: x_rowid => l_disb.row_id,
3978: x_award_id => l_disb.award_id,
3979: x_disb_num => l_disb.disb_num,
4337: -------------------------------------------------------------------
4338:
4339: CURSOR c_adisb IS
4340: SELECT 'x'
4341: FROM igf_aw_awd_disb_all
4342: WHERE award_id = p_award_id
4343: AND trans_type = 'A'
4344: AND ROWNUM = 1;
4345: l_adisb c_adisb%ROWTYPE;
4379:
4380: CURSOR c_awd IS
4381: SELECT 'x'
4382: FROM igf_aw_award_all awd,
4383: igf_aw_awd_disb_all disb,
4384: igf_aw_awd_prd_term aprd
4385: WHERE awd.fund_id = p_fund_id
4386: AND awd.base_id = p_base_id
4387: AND awd.award_status IN ('ACCEPTED','OFFERED','CANCELLED')
4538: SELECT 'x'
4539: FROM DUAL
4540: WHERE EXISTS(
4541: SELECT 'x'
4542: FROM igf_aw_awd_disb_all
4543: WHERE award_id = p_award_id
4544: AND (ld_cal_type, ld_sequence_number) IN(
4545: SELECT ld_cal_type,
4546: ld_sequence_number
4549: AND ci_sequence_number = p_ci_sequence_number
4550: AND award_prd_cd = p_awd_prd_code))
4551: AND EXISTS(
4552: SELECT 'x'
4553: FROM igf_aw_awd_disb_all
4554: WHERE award_id = p_award_id
4555: AND (ld_cal_type, ld_sequence_number) NOT IN(
4556: SELECT ld_cal_type,
4557: ld_sequence_number
4910: AND lv_fed_fund_code <> 'PELL'
4911: AND awd.award_id IN(
4912: SELECT DISTINCT awd.award_id
4913: FROM igf_aw_award_all awd,
4914: igf_aw_awd_disb_all disb,
4915: igf_aw_awd_prd_term aprd
4916: WHERE awd.fund_id = cp_fund_id
4917: AND awd.base_id = cp_base_id
4918: AND awd.award_id = disb.award_id
5764: fmast.re_pkg_verif_flag,
5765: fmast.donot_repkg_if_code
5766: FROM igf_aw_award_all awd,
5767: igf_aw_fund_mast_all fmast,
5768: igf_aw_awd_disb_all disb,
5769: igf_aw_awd_prd_term aprd
5770: WHERE fmast.fund_id = awd.fund_id
5771: AND awd.base_id = cp_base_id
5772: AND awd.award_id = disb.award_id
6673: x_award_prd_code igf_aw_awd_prd_term.award_prd_cd%TYPE
6674: ) IS
6675: SELECT COUNT(fmast.fund_code) ftotal
6676: FROM igf_aw_award_all awd,
6677: igf_aw_awd_disb_all disb,
6678: igf_aw_fund_mast_all fmast,
6679: igf_aw_awd_prd_term aprd
6680: WHERE fmast.fund_code = x_fund_code
6681: AND awd.base_id = x_base_id
7576: AND awd.base_id = p_base_id
7577: AND NOT EXISTS(
7578: SELECT disb.ld_cal_type,
7579: disb.ld_sequence_number
7580: FROM igf_aw_awd_disb_all disb
7581: WHERE disb.award_id = awd.award_id
7582: MINUS
7583: SELECT ld_cal_type,
7584: ld_sequence_number
8451: cp_fund_id igf_aw_award_all.fund_id%TYPE,
8452: cp_base_id igf_aw_award_all.base_id%TYPE
8453: ) IS
8454: SELECT SUM(disb.disb_gross_amt) yr_total
8455: FROM igf_aw_awd_disb_all disb,
8456: igf_aw_award_all awd,
8457: igf_aw_fund_mast_all fmast
8458: WHERE disb.award_id = awd.award_id
8459: AND fmast.fund_id = awd.fund_id
8484: SELECT
8485: NVL(SUM(NVL(disb.disb_gross_amt,0)),0) lf_total,
8486: COUNT(DISTINCT awd.award_id) lf_count
8487: FROM
8488: igf_aw_awd_disb_all disb,
8489: igf_aw_award_all awd,
8490: igf_aw_fund_mast_all fmast,
8491: igf_ap_fa_base_rec_all fabase
8492: WHERE fmast.fund_code = cp_fund_code
8808: disb.ld_sequence_number,
8809: disb.base_attendance_type_code,
8810: SUM(disb.disb_gross_amt) term_total,
8811: awd.adplans_id
8812: FROM igf_aw_awd_disb_all disb,
8813: igf_aw_award_all awd
8814: WHERE awd.award_id = disb.award_id
8815: AND awd.award_id = p_award_id
8816: GROUP BY disb.ld_cal_type,
8827: ) IS
8828: SELECT disb_date,
8829: tp_cal_type,
8830: tp_sequence_number
8831: FROM igf_aw_awd_disb_all
8832: WHERE award_id = cp_award_id
8833: AND ld_cal_type = cp_ld_cal_type
8834: AND ld_sequence_number = cp_ld_sequence_number
8835: AND ROWNUM = 1
11505: IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
11506: fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_aw_packaging.process_stud.debug '|| g_req_id,'inserting to igf_aw_award_t with flag:FL for base_id:'||l_fabase.base_id||' g_over_awd:'||g_over_awd);
11507: END IF;
11508: -- Insert a new consolidated record into the temp table.
11509: -- These are the actual awards to the inserted in the igf_aw_award and igf_aw_awd_disb
11510:
11511: ln_com_perct := 100;
11512: igf_aw_gen_003.get_common_perct(l_awd_grp.adplans_id,l_fabase.base_id,ln_com_perct);
11513:
12093: cp_award_id igf_aw_award_all.award_id%TYPE
12094: ) IS
12095: SELECT disb.rowid row_id,
12096: disb.*
12097: FROM igf_aw_awd_disb_all disb
12098: WHERE disb.award_id = cp_award_id
12099: AND disb.trans_type <> 'C'
12100: ORDER BY disb.disb_num;
12101: