[Home] [Help]
36: gurprsin 29-Aug-2005 Bug 3392088, Added max_chg_elements column to the IGS_FI_F_TYP_CA_INST_PKG.Insert_Row
37: svuppala 22-Aug-2005 Enh 3392095, Added waiver_calc_flag column to the IGS_FI_F_CAT_FEE_LBL_Pkg.Insert_Row
38: gurprsin 28-Jun-2005 Bug# 3392088 Modified the rollover process to incorporate
39: sub element ranges and rates table rollover.
40: svuppala 03-Jun-2005 Enh# 3442712 - Modified TBH calls to table IGS_FI_FEE_AS_RATE to include
41: 5 new Unit Level Attributes in insert_row method
42: gurprsin 03-Jun-2005 Enh# 3442712 - Modified TBH calls to table IGS_FI_FTCI_ACCTS to include 4 new Unit Level Attributes i.e. in insert_row method
43: svuppala 11-Mar-2004 Bug 4224379 - Changed the function 'finp_ins_roll_uft'.
44: New cursor 'c_alt_cd' is created to get "Alternate code" from
50: Bug 3771151 - Removed references to log table IGS_GE_S_LOG_ENTRY and code to log - IGS_GE_GEN_003.GENP_INS_LOG_ENTRY
51: Bug 3771163 - Removed logging of message IGS_FI_FTCI_NO_REC_FOUND when FTCI has already been rolled over
52: uudayapr 16-oct-2003 Enh 3117341 Modified finp_ins_roll_ftci Procedure as a part of audit and special fees build.
53: pathipat 11-Sep-2003 Enh 3108052 - Add Unit Sets to Rate Table
54: Modified finp_ins_roll_far() - TBH call igs_fi_fee_as_rate_pkg modified
55: pathipat 26-Jun-2003 Bug:2992967 - Table validation value set for segments
56: Modified finp_prc_fee_rollvr() and finpl_ins_roll_over_ftci_accts()
57: shtatiko 26-MAY-2003 Enh# 2831572, Added procedures log_parameters and finpl_ins_roll_over_ftci_accts.
58: Modified procedures finp_ins_roll_ftci, finp_ins_roll_fcci and finp_prc_fee_rollvr.
188: -- Removed the function for Charge Method Apportion rollover
189:
190: -- Routine to rollover fee assessment rates between cal instances
191: FUNCTION finp_ins_roll_far(
192: p_fee_type IN IGS_FI_FEE_AS_RATE.fee_type%TYPE ,
193: p_source_cal_type IN IGS_CA_INST.cal_type%TYPE ,
194: p_source_sequence_number IN IGS_CA_INST.sequence_number%TYPE ,
195: p_dest_cal_type IN IGS_CA_INST.cal_type%TYPE ,
196: p_dest_sequence_number IN IGS_CA_INST.sequence_number%TYPE ,
193: p_source_cal_type IN IGS_CA_INST.cal_type%TYPE ,
194: p_source_sequence_number IN IGS_CA_INST.sequence_number%TYPE ,
195: p_dest_cal_type IN IGS_CA_INST.cal_type%TYPE ,
196: p_dest_sequence_number IN IGS_CA_INST.sequence_number%TYPE ,
197: p_relation_type IN IGS_FI_FEE_AS_RATE.s_relation_type%TYPE ,
198: p_fee_cat IN IGS_FI_FEE_AS_RATE.fee_cat%TYPE ,
199: p_message_name OUT NOCOPY VARCHAR2 )
200: RETURN BOOLEAN;
201: --
194: p_source_sequence_number IN IGS_CA_INST.sequence_number%TYPE ,
195: p_dest_cal_type IN IGS_CA_INST.cal_type%TYPE ,
196: p_dest_sequence_number IN IGS_CA_INST.sequence_number%TYPE ,
197: p_relation_type IN IGS_FI_FEE_AS_RATE.s_relation_type%TYPE ,
198: p_fee_cat IN IGS_FI_FEE_AS_RATE.fee_cat%TYPE ,
199: p_message_name OUT NOCOPY VARCHAR2 )
200: RETURN BOOLEAN;
201: --
202: -- Routine to rollover elements ranges between cal instances
691: e_resource_busy EXCEPTION;
692: PRAGMA EXCEPTION_INIT(e_resource_busy, -54);
693: cst_active CONSTANT IGS_FI_FEE_STR_STAT.s_fee_structure_status%TYPE :=
694: 'ACTIVE';
695: cst_ftci CONSTANT IGS_FI_FEE_AS_RATE.s_relation_type%TYPE := 'FTCI';
696: v_message_name VARCHAR2(30);
697: v_message_warning VARCHAR2(30);
698: v_ftci_inserted_ind BOOLEAN;
699: v_ftci_exists_ind BOOLEAN; -- used for performing rollover of retn schds. etc. IF accnt code is alrdy rolled over.
795: -- * fee_refund_schedule
796: -- * IGS_FI_FEE_RET_SCHD
797: -- * IGS_FI_FEE_ENCMB
798: -- * IGS_FI_CHG_MTH_APP
799: -- * IGS_FI_FEE_AS_RATE
800: -- * IGS_FI_ELM_RANGE
801: -- The assumption is being made that the "destination" IGS_CA_INST
802: -- is open and active - it is the responsibility of the calling routine
803: -- to check for this.
1202: gv_other_detail VARCHAR2(255);
1203: BEGIN
1204: DECLARE
1205: cst_active CONSTANT IGS_FI_FEE_STR_STAT.s_fee_structure_status%TYPE :='ACTIVE';
1206: cst_fcci CONSTANT IGS_FI_FEE_AS_RATE.s_relation_type%TYPE := 'FCCI';
1207: v_message_name VARCHAR2(30);
1208: v_message_warning VARCHAR2(30);
1209: v_fcci_inserted_ind BOOLEAN;
1210: v_fcci_exists_ind BOOLEAN;
1733: BEGIN
1734: DECLARE
1735: cst_active CONSTANT IGS_FI_FEE_STR_STAT.s_fee_structure_status%TYPE :=
1736: 'ACTIVE';
1737: cst_fcfl CONSTANT IGS_FI_FEE_AS_RATE.s_relation_type%TYPE := 'FCFL';
1738: v_message_name VARCHAR2(30);
1739: v_message_warning VARCHAR2(30);
1740: v_fcfl_inserted_ind BOOLEAN;
1741: v_fcfl_exists_ind BOOLEAN;
1797: -- * fee_refund_schedule
1798: -- * IGS_FI_FEE_RET_SCHD
1799: -- * IGS_FI_FEE_ENCMB
1800: -- * IGS_FI_CHG_MTH_APP
1801: -- * IGS_FI_FEE_AS_RATE
1802: -- * IGS_FI_ELM_RANGE
1803: -- The assumption is being made that the "destination" IGS_CA_INST
1804: -- is open and active - it is the responsibility of the calling routine
1805: -- to check for this.
2070: -- Removed the function for Charge Method Apportion rollover
2071: --
2072: -- Routine to rollover fee assessment rates between cal instances
2073: FUNCTION finp_ins_roll_far(
2074: p_fee_type IN IGS_FI_FEE_AS_RATE.fee_type%TYPE ,
2075: p_source_cal_type IN IGS_CA_INST.cal_type%TYPE ,
2076: p_source_sequence_number IN IGS_CA_INST.sequence_number%TYPE ,
2077: p_dest_cal_type IN IGS_CA_INST.cal_type%TYPE ,
2078: p_dest_sequence_number IN IGS_CA_INST.sequence_number%TYPE ,
2075: p_source_cal_type IN IGS_CA_INST.cal_type%TYPE ,
2076: p_source_sequence_number IN IGS_CA_INST.sequence_number%TYPE ,
2077: p_dest_cal_type IN IGS_CA_INST.cal_type%TYPE ,
2078: p_dest_sequence_number IN IGS_CA_INST.sequence_number%TYPE ,
2079: p_relation_type IN IGS_FI_FEE_AS_RATE.s_relation_type%TYPE ,
2080: p_fee_cat IN IGS_FI_FEE_AS_RATE.fee_cat%TYPE ,
2081: p_message_name OUT NOCOPY VARCHAR2 )
2082: RETURN BOOLEAN AS
2083: /*******************************************************************/
2076: p_source_sequence_number IN IGS_CA_INST.sequence_number%TYPE ,
2077: p_dest_cal_type IN IGS_CA_INST.cal_type%TYPE ,
2078: p_dest_sequence_number IN IGS_CA_INST.sequence_number%TYPE ,
2079: p_relation_type IN IGS_FI_FEE_AS_RATE.s_relation_type%TYPE ,
2080: p_fee_cat IN IGS_FI_FEE_AS_RATE.fee_cat%TYPE ,
2081: p_message_name OUT NOCOPY VARCHAR2 )
2082: RETURN BOOLEAN AS
2083: /*******************************************************************/
2084: --Change History
2090: -- defined at FCFL level and vice-versa.
2091: --svuppala 03-Jun-2005 Enh# 3442712 Added Unit Program Type Level, Unit Mode, Unit Code,
2092: -- Unit Version and Unit Level
2093: --pathipat 11-Sep-2003 Enh 3108052 - Add Unit Sets to Rate Table
2094: -- Modified cursor c_far_source, call to igs_fi_fee_as_rate_pkg.insert_row
2095: /*******************************************************************/
2096: gv_other_detail VARCHAR2(255);
2097: BEGIN
2098: DECLARE
2098: DECLARE
2099: v_record_inserted_ind BOOLEAN;
2100: v_record_exists_ind BOOLEAN;
2101: v_message_name VARCHAR2(30);
2102: v_rate_number IGS_FI_FEE_AS_RATE.rate_number%TYPE;
2103: v_logical_delete_dt IGS_FI_FEE_AS_RATE.logical_delete_dt%TYPE;
2104: v_FAR_ID NUMBER;
2105: l_rowid VARCHAR2(25);
2106: l_b_ftci_fcci_clash_ind BOOLEAN := TRUE;
2099: v_record_inserted_ind BOOLEAN;
2100: v_record_exists_ind BOOLEAN;
2101: v_message_name VARCHAR2(30);
2102: v_rate_number IGS_FI_FEE_AS_RATE.rate_number%TYPE;
2103: v_logical_delete_dt IGS_FI_FEE_AS_RATE.logical_delete_dt%TYPE;
2104: v_FAR_ID NUMBER;
2105: l_rowid VARCHAR2(25);
2106: l_b_ftci_fcci_clash_ind BOOLEAN := TRUE;
2107: CURSOR c_far_source IS
2127: far.unit_version_number,
2128: far.unit_level,
2129: far.unit_type_id,
2130: far.unit_mode
2131: FROM IGS_FI_FEE_AS_RATE far
2132: WHERE far.fee_type = p_fee_type AND
2133: far.fee_cal_type = p_source_cal_type AND
2134: far.fee_ci_sequence_number = p_source_sequence_number AND
2135: far.s_relation_type = p_relation_type AND
2135: far.s_relation_type = p_relation_type AND
2136: far.logical_delete_dt is NULL AND
2137: (far.fee_cat = p_fee_cat OR p_fee_cat IS NULL);
2138: CURSOR c_far_dest (
2139: cp_rate_number IGS_FI_FEE_AS_RATE.rate_number%TYPE) IS
2140: SELECT far.rate_number,
2141: far.logical_delete_dt
2142: FROM IGS_FI_FEE_AS_RATE far
2143: WHERE far.fee_type = p_fee_type AND
2138: CURSOR c_far_dest (
2139: cp_rate_number IGS_FI_FEE_AS_RATE.rate_number%TYPE) IS
2140: SELECT far.rate_number,
2141: far.logical_delete_dt
2142: FROM IGS_FI_FEE_AS_RATE far
2143: WHERE far.fee_type = p_fee_type AND
2144: far.fee_cal_type = p_dest_cal_type AND
2145: far.fee_ci_sequence_number = p_dest_sequence_number AND
2146: far.s_relation_type = p_relation_type AND
2145: far.fee_ci_sequence_number = p_dest_sequence_number AND
2146: far.s_relation_type = p_relation_type AND
2147: far.rate_number = cp_rate_number;
2148: BEGIN
2149: -- This function will roll all IGS_FI_FEE_AS_RATE records underneath a
2150: -- nominated IGS_CA_INST to beneath another nominated IGS_CA_INST.
2151: -- The assumption is being made that the "destination" IGS_CA_INST
2152: -- is open and active - it is the responsibility of the calling routine to
2153: -- check for this.
2150: -- nominated IGS_CA_INST to beneath another nominated IGS_CA_INST.
2151: -- The assumption is being made that the "destination" IGS_CA_INST
2152: -- is open and active - it is the responsibility of the calling routine to
2153: -- check for this.
2154: -- IGS_GE_NOTE: If some of the IGS_FI_FEE_AS_RATE records already exist then these will
2155: -- remain unaltered.
2156: p_message_name := Null;
2157: -- 1. Process the fee assessment rate records matching the source calendar
2158: -- instance
2159: v_record_inserted_ind := FALSE;
2160: v_record_exists_ind := FALSE;
2161:
2162: FOR v_far_source_rec IN c_far_source LOOP
2163: -- Check for the existence of the IGS_FI_FEE_AS_RATE
2164: -- record under the destination calendar
2165: OPEN c_far_dest(v_far_source_rec.rate_number);
2166: FETCH c_far_dest INTO v_rate_number,
2167: v_logical_delete_dt;
2182: p_relation_type,
2183: v_message_name) THEN
2184: l_rowid := NULL; -- initialise l_rowid to null before passing into the TBH
2185: -- l_rowid with a value will throw Un-Handled Exception
2186: IGS_FI_FEE_AS_RATE_PKG.INSERT_ROW(
2187: X_ROWID => l_rowid,
2188: x_FAR_ID => v_FAR_ID,
2189: X_FEE_TYPE => v_far_source_rec.fee_type,
2190: X_FEE_CAL_TYPE => p_dest_cal_type,
2408:
2409: CURSOR c_serr_exists IS
2410: SELECT 'X'
2411: FROM IGS_FI_SUB_ER_RT serr,
2412: IGS_FI_FEE_AS_RATE far
2413: WHERE far.fee_type = p_fee_type AND
2414: far.fee_cal_type = p_source_cal_type AND
2415: far.fee_ci_sequence_number = p_source_sequence_number AND
2416: far.s_relation_type = p_relation_type AND
2419: serr.logical_delete_date IS NULL;
2420:
2421: CURSOR c_far_exists IS
2422: SELECT 'X'
2423: FROM IGS_FI_FEE_AS_RATE far
2424: WHERE far.fee_type = p_fee_type AND
2425: far.fee_cal_type = p_dest_cal_type AND
2426: far.fee_ci_sequence_number = p_dest_sequence_number AND
2427: far.s_relation_type = p_relation_type AND
2429: far.logical_delete_dt IS NULL;
2430:
2431: CURSOR c_sert_far_id_to_rt_num(cp_far_id IGS_FI_SUB_ER_RT.far_id%TYPE) IS
2432: SELECT rate_number
2433: FROM IGS_FI_FEE_AS_RATE far
2434: WHERE far.far_id = cp_far_id;
2435:
2436: BEGIN
2437: -- This function will roll all IGS_FI_ELM_RANGE and associated