[Home] [Help]
454: END create_disb_dtl;
455:
456: FUNCTION recal_dis_gross_amt (p_spnsr_stdnt_id igf_sp_stdnt_rel.spnsr_stdnt_id%TYPE,
457: p_chk_elig VARCHAR2,
458: p_fee_cls_id igf_sp_std_fc.fee_cls_id%TYPE
459: )
460: RETURN NUMBER
461: AS
462: ------------------------------------------------------------------------------------
487: rec_stdnt_rel c_stdnt_rel%ROWTYPE;
488:
489: -- cursor to get the charge at fee class
490: CURSOR c_std_fc (cp_spnsr_stdnt_id igf_sp_stdnt_rel.spnsr_stdnt_id%TYPE,
491: cp_fee_cls_id igf_sp_std_fc.fee_cls_id%TYPE)
492: IS
493: SELECT *
494: FROM igf_sp_std_fc
495: WHERE spnsr_stdnt_id = cp_spnsr_stdnt_id
490: CURSOR c_std_fc (cp_spnsr_stdnt_id igf_sp_stdnt_rel.spnsr_stdnt_id%TYPE,
491: cp_fee_cls_id igf_sp_std_fc.fee_cls_id%TYPE)
492: IS
493: SELECT *
494: FROM igf_sp_std_fc
495: WHERE spnsr_stdnt_id = cp_spnsr_stdnt_id
496: AND fee_cls_id = NVL(cp_fee_cls_id,fee_cls_id);
497:
498: -- cursor to get the charge at program level
1008: -- cursor to fetch the FC record
1009: CURSOR c_std_fc (cp_spnsr_stdnt_id igf_sp_stdnt_rel.spnsr_stdnt_id%TYPE)
1010: IS
1011: SELECT *
1012: FROM igf_sp_std_fc
1013: WHERE spnsr_stdnt_id = cp_spnsr_stdnt_id;
1014:
1015: l_include_as_plncrd igf_aw_fund_mast.show_on_bill%TYPE;
1016:
1359: -- amount for message IGF_SP_UPDATE_AWARD modified to handle the
1360: -- case when null values are passed.
1361: --smadathi 17-May-2002 Bug 2369173. Modified currsor c_manual_update , c_aw_awd_disb
1362: -- select statement. Added load cal type and load sequence number
1363: -- parameters to cursor c_manual_update. A new cursor c_igf_sp_std_fc
1364: -- added to fetch details from sponsor student relation table.
1365: -------------------------------------------------------------------------------------
1366: l_chk_elig VARCHAR2(1);
1367:
1408: );
1409:
1410: rec_aw_awd_disb c_aw_awd_disb%ROWTYPE;
1411:
1412: CURSOR c_igf_sp_std_fc (cp_spnsr_stdnt_id igf_sp_stdnt_rel.spnsr_stdnt_id%TYPE)
1413: IS
1414: SELECT *
1415: FROM igf_sp_std_fc
1416: WHERE spnsr_stdnt_id = cp_spnsr_stdnt_id;
1411:
1412: CURSOR c_igf_sp_std_fc (cp_spnsr_stdnt_id igf_sp_stdnt_rel.spnsr_stdnt_id%TYPE)
1413: IS
1414: SELECT *
1415: FROM igf_sp_std_fc
1416: WHERE spnsr_stdnt_id = cp_spnsr_stdnt_id;
1417: rec_c_igf_sp_std_fc c_igf_sp_std_fc%ROWTYPE;
1418: l_n_before_awd_amt igf_aw_award.accepted_amt%TYPE :=0;
1419:
1413: IS
1414: SELECT *
1415: FROM igf_sp_std_fc
1416: WHERE spnsr_stdnt_id = cp_spnsr_stdnt_id;
1417: rec_c_igf_sp_std_fc c_igf_sp_std_fc%ROWTYPE;
1418: l_n_before_awd_amt igf_aw_award.accepted_amt%TYPE :=0;
1419:
1420: l_include_as_plncrd igf_aw_fund_mast.show_on_bill%TYPE;
1421: l_v_award_type igf_aw_awd_disb.trans_type%TYPE;
1629: -- initalize the Binary Integer
1630: i := 0;
1631: g_b_award_updated := FALSE;
1632: g_b_msg_logged := FALSE;
1633: OPEN c_igf_sp_std_fc(p_spnsr_stdnt_id);
1634: LOOP
1635: FETCH c_igf_sp_std_fc INTO rec_c_igf_sp_std_fc;
1636: EXIT WHEN c_igf_sp_std_fc%NOTFOUND;
1637: -- fetch record from igf_aw_awd_disb based on award id obtained
1631: g_b_award_updated := FALSE;
1632: g_b_msg_logged := FALSE;
1633: OPEN c_igf_sp_std_fc(p_spnsr_stdnt_id);
1634: LOOP
1635: FETCH c_igf_sp_std_fc INTO rec_c_igf_sp_std_fc;
1636: EXIT WHEN c_igf_sp_std_fc%NOTFOUND;
1637: -- fetch record from igf_aw_awd_disb based on award id obtained
1638: OPEN c_aw_awd_disb(l_award_id,rec_c_igf_sp_std_fc.fee_class,NULL);
1639: FETCH c_aw_awd_disb INTO rec_aw_awd_disb;
1632: g_b_msg_logged := FALSE;
1633: OPEN c_igf_sp_std_fc(p_spnsr_stdnt_id);
1634: LOOP
1635: FETCH c_igf_sp_std_fc INTO rec_c_igf_sp_std_fc;
1636: EXIT WHEN c_igf_sp_std_fc%NOTFOUND;
1637: -- fetch record from igf_aw_awd_disb based on award id obtained
1638: OPEN c_aw_awd_disb(l_award_id,rec_c_igf_sp_std_fc.fee_class,NULL);
1639: FETCH c_aw_awd_disb INTO rec_aw_awd_disb;
1640: IF c_aw_awd_disb%FOUND THEN
1634: LOOP
1635: FETCH c_igf_sp_std_fc INTO rec_c_igf_sp_std_fc;
1636: EXIT WHEN c_igf_sp_std_fc%NOTFOUND;
1637: -- fetch record from igf_aw_awd_disb based on award id obtained
1638: OPEN c_aw_awd_disb(l_award_id,rec_c_igf_sp_std_fc.fee_class,NULL);
1639: FETCH c_aw_awd_disb INTO rec_aw_awd_disb;
1640: IF c_aw_awd_disb%FOUND THEN
1641: IF NOT (rec_aw_awd_disb.trans_type = 'A' AND p_award_type = 'P') THEN
1642: -- recalculate the disbursement amount when a disbursement record already exists
1640: IF c_aw_awd_disb%FOUND THEN
1641: IF NOT (rec_aw_awd_disb.trans_type = 'A' AND p_award_type = 'P') THEN
1642: -- recalculate the disbursement amount when a disbursement record already exists
1643: l_disb_gross_amt:= recal_dis_gross_amt(p_spnsr_stdnt_id => p_spnsr_stdnt_id,
1644: p_fee_cls_id => rec_c_igf_sp_std_fc.fee_cls_id,
1645: p_chk_elig => l_chk_elig);
1646:
1647: -- Call to igs_fi_gen_gl.get_formatted_amount formats amount by rounding off to currency precision
1648: l_disb_gross_amt := igs_fi_gen_gl.get_formatted_amount(l_disb_gross_amt);
1818: END IF;
1819: ELSE
1820: -- a new record needs to be created.
1821: l_disb_gross_amt := recal_dis_gross_amt (p_spnsr_stdnt_id => p_spnsr_stdnt_id,
1822: p_fee_cls_id => rec_c_igf_sp_std_fc.fee_cls_id,
1823: p_chk_elig => l_chk_elig);
1824:
1825: -- Call to igs_fi_gen_gl.get_formatted_amount formats amount by rounding off to currency precision
1826: l_disb_gross_amt := igs_fi_gen_gl.get_formatted_amount(l_disb_gross_amt);
1828: -- Log the fee class details
1829: IF NVL(l_disb_gross_amt ,0) = 0 THEN
1830: -- No disb gross amount
1831: i := i+1;
1832: l_v_msg(i) := g_v_disb_fee_class||' : '||igs_fi_gen_gl.get_lkp_meaning('FEE_CLASS',rec_c_igf_sp_std_fc.fee_class);
1833:
1834: i := i+1;
1835: fnd_message.set_name('IGF','IGF_SP_ELGB_FAIL');
1836: l_v_msg(i) := fnd_message.get;
1879: x_force_disb => NULL,
1880: x_min_credit_pts => NULL,
1881: x_disb_exp_dt => NULL,
1882: x_verf_enfr_dt => NULL,
1883: x_fee_class => rec_c_igf_sp_std_fc.fee_class,
1884: x_show_on_bill => l_include_as_plncrd,
1885: x_mode => 'R',
1886: x_attendance_type_code => NULL,
1887: x_base_attendance_type_code => NULL,
1895: fnd_message.set_token('DISB_TYPE',lookup_desc('IGF_DB_TRANS_TYPE',p_award_type));
1896: i := i+1;
1897: l_v_msg(i) := fnd_message.get;
1898: i := i+1;
1899: l_v_msg(i) := g_v_disb_fee_class||' : '|| igs_fi_gen_gl.get_lkp_meaning('FEE_CLASS',rec_c_igf_sp_std_fc.fee_class);
1900: i := i+1;
1901: l_v_msg(i) := g_v_disb_amount||' : '|| l_disb_gross_amt;
1902: IF p_award_type = 'A' THEN
1903: create_disb_dtl (l_award_id, l_n_disb_num);
1905: END IF;
1906: END IF;
1907: CLOSE c_aw_awd_disb;
1908: END LOOP;
1909: CLOSE c_igf_sp_std_fc;
1910:
1911:
1912: -- if the existing awards are updated then the boolean variable is set to TRUE
1913: -- log the existing award amount and the newly created award amount