19: g_message VARCHAR2(200);
20: g_calling_fn VARCHAR2(200);
21: g_calling_fn1 VARCHAR2(200);
22:
23: g_book_type_code igi_iac_transaction_headers.book_type_code%TYPE;
24: g_asset_id igi_iac_transaction_headers.asset_id%TYPE;
25: g_retirement_id NUMBER;
26: g_adj_prior_ret igi_iac_transaction_headers.adjustment_id%TYPE;
27:
20: g_calling_fn VARCHAR2(200);
21: g_calling_fn1 VARCHAR2(200);
22:
23: g_book_type_code igi_iac_transaction_headers.book_type_code%TYPE;
24: g_asset_id igi_iac_transaction_headers.asset_id%TYPE;
25: g_retirement_id NUMBER;
26: g_adj_prior_ret igi_iac_transaction_headers.adjustment_id%TYPE;
27:
28: -- define asset rec type
22:
23: g_book_type_code igi_iac_transaction_headers.book_type_code%TYPE;
24: g_asset_id igi_iac_transaction_headers.asset_id%TYPE;
25: g_retirement_id NUMBER;
26: g_adj_prior_ret igi_iac_transaction_headers.adjustment_id%TYPE;
27:
28: -- define asset rec type
29: TYPE fa_reins_rec_info IS RECORD (asset_id NUMBER,
30: book_type_code VARCHAR2(15),
63:
64:
65: -- retrieve the transaction just prior to the
66: -- retirement
67: CURSOR c_trx_prev_ret(cp_book_type_code igi_iac_transaction_headers.book_type_code%TYPE,
68: cp_asset_id igi_iac_transaction_headers.asset_id%TYPE,
69: cp_trxhdr_id_retire igi_iac_transaction_headers.transaction_header_id%TYPE)
70: IS
71: SELECT adjustment_id
64:
65: -- retrieve the transaction just prior to the
66: -- retirement
67: CURSOR c_trx_prev_ret(cp_book_type_code igi_iac_transaction_headers.book_type_code%TYPE,
68: cp_asset_id igi_iac_transaction_headers.asset_id%TYPE,
69: cp_trxhdr_id_retire igi_iac_transaction_headers.transaction_header_id%TYPE)
70: IS
71: SELECT adjustment_id
72: FROM igi_iac_transaction_headers
65: -- retrieve the transaction just prior to the
66: -- retirement
67: CURSOR c_trx_prev_ret(cp_book_type_code igi_iac_transaction_headers.book_type_code%TYPE,
68: cp_asset_id igi_iac_transaction_headers.asset_id%TYPE,
69: cp_trxhdr_id_retire igi_iac_transaction_headers.transaction_header_id%TYPE)
70: IS
71: SELECT adjustment_id
72: FROM igi_iac_transaction_headers
73: WHERE book_type_code = cp_book_type_code
68: cp_asset_id igi_iac_transaction_headers.asset_id%TYPE,
69: cp_trxhdr_id_retire igi_iac_transaction_headers.transaction_header_id%TYPE)
70: IS
71: SELECT adjustment_id
72: FROM igi_iac_transaction_headers
73: WHERE book_type_code = cp_book_type_code
74: AND asset_id = cp_asset_id
75: AND adjustment_id_out = (select min(adjustment_id)
76: from igi_iac_transaction_headers
72: FROM igi_iac_transaction_headers
73: WHERE book_type_code = cp_book_type_code
74: AND asset_id = cp_asset_id
75: AND adjustment_id_out = (select min(adjustment_id)
76: from igi_iac_transaction_headers
77: where transaction_header_id = cp_trxhdr_id_retire);
78: /*CURSOR c_trx_prev_ret(n_trx_id NUMBER)
79: IS
80: SELECT adjustment_id,
78: /*CURSOR c_trx_prev_ret(n_trx_id NUMBER)
79: IS
80: SELECT adjustment_id,
81: period_counter
82: FROM igi_iac_transaction_headers
83: WHERE adjustment_id_out = (SELECT adjustment_id
84: FROM igi_iac_transaction_headers
85: WHERE transaction_header_id = n_trx_id); */
86:
80: SELECT adjustment_id,
81: period_counter
82: FROM igi_iac_transaction_headers
83: WHERE adjustment_id_out = (SELECT adjustment_id
84: FROM igi_iac_transaction_headers
85: WHERE transaction_header_id = n_trx_id); */
86:
87: -- cursor to get the asset balances for the period
88: CURSOR c_ret_ass_bal(n_asset_id NUMBER,
349: l_cnt NUMBER;
350: BEGIN
351: SELECT count(*)
352: INTO l_cnt
353: FROM igi_iac_transaction_headers a1
354: WHERE a1.asset_id = x_asset_id
355: AND a1.book_type_code = x_book_type_code
356: AND a1.transaction_type_code = 'REVALUATION'
357: AND a1.adjustment_status NOT IN ('PREVIEW', 'OBSOLETE')
356: AND a1.transaction_type_code = 'REVALUATION'
357: AND a1.adjustment_status NOT IN ('PREVIEW', 'OBSOLETE')
358: AND a1.period_counter BETWEEN x_eff_ret_period_cnt AND x_curr_period_cnt;
359: /* AND a1.adjustment_id > (SELECT a2.adjustment_id
360: FROM igi_iac_transaction_headers a2
361: WHERE a2.transaction_header_id = x_ret_trx_hdr_id
362: AND a2.transaction_type_code = 'PARTIAL RETIRE'
363: AND a2.period_counter <= a1.period_counter
364: AND a2.asset_id = x_asset_id
394: BEGIN
395: -- get the retirement period counter
396: SELECT period_counter
397: INTO l_ret_prd_counter
398: FROM igi_iac_transaction_headers
399: WHERE adjustment_id = x_ret_adj_id;
400:
401: -- get the reinstatement period counter
402: SELECT period_counter
400:
401: -- get the reinstatement period counter
402: SELECT period_counter
403: INTO l_ren_prd_counter
404: FROM igi_iac_transaction_headers
405: WHERE adjustment_id = x_ren_adj_id;
406:
407: igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'Reinstate period counter: '||l_ren_prd_counter);
408: igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'Retire period counter: '||l_ret_prd_counter);
502:
503: -- local variables
504: l_rowid ROWID;
505:
506: l_prev_adj_id igi_iac_transaction_headers.adjustment_id%TYPE;
507: l_rsv_catchup_amt igi_iac_det_balances.deprn_period%TYPE;
508: l_gf_catchup_amt igi_iac_det_balances.general_fund_acc%TYPE;
509:
510: l_ren_dist_id igi_iac_transaction_headers.adjustment_id%TYPE;
506: l_prev_adj_id igi_iac_transaction_headers.adjustment_id%TYPE;
507: l_rsv_catchup_amt igi_iac_det_balances.deprn_period%TYPE;
508: l_gf_catchup_amt igi_iac_det_balances.general_fund_acc%TYPE;
509:
510: l_ren_dist_id igi_iac_transaction_headers.adjustment_id%TYPE;
511: l_prorate_factor NUMBER;
512: l_elapsed_periods NUMBER;
513:
514: l_adjustment_cost NUMBER := 0;
1959: l_path VARCHAR2(150);
1960:
1961: l_units_ren fa_distribution_history.units_assigned%TYPE;
1962: l_units_ret fa_distribution_history.units_assigned%TYPE;
1963: l_prev_adj_id igi_iac_transaction_headers.adjustment_id%TYPE;
1964: l_prev_dist_id igi_iac_det_balances.distribution_id%TYPE;
1965:
1966: l_retire_effect NUMBER := 0;
1967: l_prorate_factor NUMBER;
2938: iaa.period_counter,
2939: iaa.adjustment_offset_type,
2940: iaa.report_ccid
2941: FROM igi_iac_adjustments iaa,
2942: igi_iac_transaction_headers iath
2943: WHERE iaa.adjustment_id = iath.adjustment_id
2944: AND iath.transaction_header_id = p_trx_header_id;
2945:
2946: -- local variables
2944: AND iath.transaction_header_id = p_trx_header_id;
2945:
2946: -- local variables
2947: l_rowid ROWID;
2948: l_latest_trx_type igi_iac_transaction_headers.transaction_type_code%TYPE;
2949: l_latest_trx_id igi_iac_transaction_headers.transaction_header_id%TYPE;
2950: l_latest_mref_id igi_iac_transaction_headers.mass_reference_id%TYPE;
2951: l_latest_adj_id igi_iac_transaction_headers.adjustment_id%TYPE;
2952: l_latest_adj_status igi_iac_transaction_headers.adjustment_status%TYPE;
2945:
2946: -- local variables
2947: l_rowid ROWID;
2948: l_latest_trx_type igi_iac_transaction_headers.transaction_type_code%TYPE;
2949: l_latest_trx_id igi_iac_transaction_headers.transaction_header_id%TYPE;
2950: l_latest_mref_id igi_iac_transaction_headers.mass_reference_id%TYPE;
2951: l_latest_adj_id igi_iac_transaction_headers.adjustment_id%TYPE;
2952: l_latest_adj_status igi_iac_transaction_headers.adjustment_status%TYPE;
2953: l_prev_adjustment_id igi_iac_transaction_headers.adjustment_id%TYPE;
2946: -- local variables
2947: l_rowid ROWID;
2948: l_latest_trx_type igi_iac_transaction_headers.transaction_type_code%TYPE;
2949: l_latest_trx_id igi_iac_transaction_headers.transaction_header_id%TYPE;
2950: l_latest_mref_id igi_iac_transaction_headers.mass_reference_id%TYPE;
2951: l_latest_adj_id igi_iac_transaction_headers.adjustment_id%TYPE;
2952: l_latest_adj_status igi_iac_transaction_headers.adjustment_status%TYPE;
2953: l_prev_adjustment_id igi_iac_transaction_headers.adjustment_id%TYPE;
2954: l_adjust_id_reinstate igi_iac_transaction_headers.adjustment_id%TYPE;
2947: l_rowid ROWID;
2948: l_latest_trx_type igi_iac_transaction_headers.transaction_type_code%TYPE;
2949: l_latest_trx_id igi_iac_transaction_headers.transaction_header_id%TYPE;
2950: l_latest_mref_id igi_iac_transaction_headers.mass_reference_id%TYPE;
2951: l_latest_adj_id igi_iac_transaction_headers.adjustment_id%TYPE;
2952: l_latest_adj_status igi_iac_transaction_headers.adjustment_status%TYPE;
2953: l_prev_adjustment_id igi_iac_transaction_headers.adjustment_id%TYPE;
2954: l_adjust_id_reinstate igi_iac_transaction_headers.adjustment_id%TYPE;
2955: l_dr_cr_flag igi_iac_adjustments.dr_cr_flag%TYPE;
2948: l_latest_trx_type igi_iac_transaction_headers.transaction_type_code%TYPE;
2949: l_latest_trx_id igi_iac_transaction_headers.transaction_header_id%TYPE;
2950: l_latest_mref_id igi_iac_transaction_headers.mass_reference_id%TYPE;
2951: l_latest_adj_id igi_iac_transaction_headers.adjustment_id%TYPE;
2952: l_latest_adj_status igi_iac_transaction_headers.adjustment_status%TYPE;
2953: l_prev_adjustment_id igi_iac_transaction_headers.adjustment_id%TYPE;
2954: l_adjust_id_reinstate igi_iac_transaction_headers.adjustment_id%TYPE;
2955: l_dr_cr_flag igi_iac_adjustments.dr_cr_flag%TYPE;
2956: l_ren_dist_id igi_iac_det_balances.distribution_id%TYPE;
2949: l_latest_trx_id igi_iac_transaction_headers.transaction_header_id%TYPE;
2950: l_latest_mref_id igi_iac_transaction_headers.mass_reference_id%TYPE;
2951: l_latest_adj_id igi_iac_transaction_headers.adjustment_id%TYPE;
2952: l_latest_adj_status igi_iac_transaction_headers.adjustment_status%TYPE;
2953: l_prev_adjustment_id igi_iac_transaction_headers.adjustment_id%TYPE;
2954: l_adjust_id_reinstate igi_iac_transaction_headers.adjustment_id%TYPE;
2955: l_dr_cr_flag igi_iac_adjustments.dr_cr_flag%TYPE;
2956: l_ren_dist_id igi_iac_det_balances.distribution_id%TYPE;
2957: l_units_assigned fa_distribution_history.units_assigned%TYPE;
2950: l_latest_mref_id igi_iac_transaction_headers.mass_reference_id%TYPE;
2951: l_latest_adj_id igi_iac_transaction_headers.adjustment_id%TYPE;
2952: l_latest_adj_status igi_iac_transaction_headers.adjustment_status%TYPE;
2953: l_prev_adjustment_id igi_iac_transaction_headers.adjustment_id%TYPE;
2954: l_adjust_id_reinstate igi_iac_transaction_headers.adjustment_id%TYPE;
2955: l_dr_cr_flag igi_iac_adjustments.dr_cr_flag%TYPE;
2956: l_ren_dist_id igi_iac_det_balances.distribution_id%TYPE;
2957: l_units_assigned fa_distribution_history.units_assigned%TYPE;
2958:
2979: RAISE e_latest_trx_not_avail;
2980: END IF;
2981:
2982: -- insert a new row for the asset with transaction type REINSTATEMENT
2983: -- into igi_iac_transaction_headers
2984: l_adjust_id_reinstate := null;
2985: IGI_IAC_TRANS_HEADERS_PKG.Insert_Row(
2986: x_rowid => l_rowid,
2987: x_adjustment_id => l_adjust_id_reinstate, -- out parameter
3000: x_period_counter => p_fa_reins_rec_info.curr_period_counter,
3001: x_event_id => p_event_id );
3002: igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'Inserted into headers table');
3003:
3004: -- update the previous active row for the asset in igi_iac_transaction_headers
3005: -- in order to make it inactive by setting adjustment_id_out= adjustment_id of
3006: -- the active row in igi_iac_transaction_headers
3007: IGI_IAC_TRANS_HEADERS_PKG.Update_Row(
3008: x_prev_adjustment_id => l_latest_adj_id,
3002: igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'Inserted into headers table');
3003:
3004: -- update the previous active row for the asset in igi_iac_transaction_headers
3005: -- in order to make it inactive by setting adjustment_id_out= adjustment_id of
3006: -- the active row in igi_iac_transaction_headers
3007: IGI_IAC_TRANS_HEADERS_PKG.Update_Row(
3008: x_prev_adjustment_id => l_latest_adj_id,
3009: x_adjustment_id => l_adjust_id_reinstate
3010: );
3189: IS
3190:
3191: -- local variables
3192: l_rowid ROWID;
3193: l_latest_trx_type igi_iac_transaction_headers.transaction_type_code%TYPE;
3194: l_latest_trx_id igi_iac_transaction_headers.transaction_header_id%TYPE;
3195: l_latest_mref_id igi_iac_transaction_headers.mass_reference_id%TYPE;
3196: l_latest_adj_id igi_iac_transaction_headers.adjustment_id%TYPE;
3197: l_latest_adj_status igi_iac_transaction_headers.adjustment_status%TYPE;
3190:
3191: -- local variables
3192: l_rowid ROWID;
3193: l_latest_trx_type igi_iac_transaction_headers.transaction_type_code%TYPE;
3194: l_latest_trx_id igi_iac_transaction_headers.transaction_header_id%TYPE;
3195: l_latest_mref_id igi_iac_transaction_headers.mass_reference_id%TYPE;
3196: l_latest_adj_id igi_iac_transaction_headers.adjustment_id%TYPE;
3197: l_latest_adj_status igi_iac_transaction_headers.adjustment_status%TYPE;
3198: l_prev_adjustment_id igi_iac_transaction_headers.adjustment_id%TYPE;
3191: -- local variables
3192: l_rowid ROWID;
3193: l_latest_trx_type igi_iac_transaction_headers.transaction_type_code%TYPE;
3194: l_latest_trx_id igi_iac_transaction_headers.transaction_header_id%TYPE;
3195: l_latest_mref_id igi_iac_transaction_headers.mass_reference_id%TYPE;
3196: l_latest_adj_id igi_iac_transaction_headers.adjustment_id%TYPE;
3197: l_latest_adj_status igi_iac_transaction_headers.adjustment_status%TYPE;
3198: l_prev_adjustment_id igi_iac_transaction_headers.adjustment_id%TYPE;
3199: l_adjust_id_reinstate igi_iac_transaction_headers.adjustment_id%TYPE;
3192: l_rowid ROWID;
3193: l_latest_trx_type igi_iac_transaction_headers.transaction_type_code%TYPE;
3194: l_latest_trx_id igi_iac_transaction_headers.transaction_header_id%TYPE;
3195: l_latest_mref_id igi_iac_transaction_headers.mass_reference_id%TYPE;
3196: l_latest_adj_id igi_iac_transaction_headers.adjustment_id%TYPE;
3197: l_latest_adj_status igi_iac_transaction_headers.adjustment_status%TYPE;
3198: l_prev_adjustment_id igi_iac_transaction_headers.adjustment_id%TYPE;
3199: l_adjust_id_reinstate igi_iac_transaction_headers.adjustment_id%TYPE;
3200:
3193: l_latest_trx_type igi_iac_transaction_headers.transaction_type_code%TYPE;
3194: l_latest_trx_id igi_iac_transaction_headers.transaction_header_id%TYPE;
3195: l_latest_mref_id igi_iac_transaction_headers.mass_reference_id%TYPE;
3196: l_latest_adj_id igi_iac_transaction_headers.adjustment_id%TYPE;
3197: l_latest_adj_status igi_iac_transaction_headers.adjustment_status%TYPE;
3198: l_prev_adjustment_id igi_iac_transaction_headers.adjustment_id%TYPE;
3199: l_adjust_id_reinstate igi_iac_transaction_headers.adjustment_id%TYPE;
3200:
3201: l_path VARCHAR2(150);
3194: l_latest_trx_id igi_iac_transaction_headers.transaction_header_id%TYPE;
3195: l_latest_mref_id igi_iac_transaction_headers.mass_reference_id%TYPE;
3196: l_latest_adj_id igi_iac_transaction_headers.adjustment_id%TYPE;
3197: l_latest_adj_status igi_iac_transaction_headers.adjustment_status%TYPE;
3198: l_prev_adjustment_id igi_iac_transaction_headers.adjustment_id%TYPE;
3199: l_adjust_id_reinstate igi_iac_transaction_headers.adjustment_id%TYPE;
3200:
3201: l_path VARCHAR2(150);
3202:
3195: l_latest_mref_id igi_iac_transaction_headers.mass_reference_id%TYPE;
3196: l_latest_adj_id igi_iac_transaction_headers.adjustment_id%TYPE;
3197: l_latest_adj_status igi_iac_transaction_headers.adjustment_status%TYPE;
3198: l_prev_adjustment_id igi_iac_transaction_headers.adjustment_id%TYPE;
3199: l_adjust_id_reinstate igi_iac_transaction_headers.adjustment_id%TYPE;
3200:
3201: l_path VARCHAR2(150);
3202:
3203: -- exceptions
3218: RAISE e_latest_trx_not_avail;
3219: END IF;
3220:
3221: -- insert a new row for the asset with transaction type REINSTATEMENT
3222: -- into igi_iac_transaction_headers
3223: l_adjust_id_reinstate := null;
3224: IGI_IAC_TRANS_HEADERS_PKG.Insert_Row(
3225: x_rowid => l_rowid,
3226: x_adjustment_id => l_adjust_id_reinstate, -- out parameter
3240: x_event_id => p_event_id
3241: );
3242: igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'Inserted into headers table');
3243:
3244: -- update the previous active row for the asset in igi_iac_transaction_headers
3245: -- in order to make it inactive by setting adjustment_id_out= adjustment_id of
3246: -- the active row in igi_iac_transaction_headers
3247: IGI_IAC_TRANS_HEADERS_PKG.Update_Row(
3248: x_prev_adjustment_id => l_latest_adj_id,
3242: igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'Inserted into headers table');
3243:
3244: -- update the previous active row for the asset in igi_iac_transaction_headers
3245: -- in order to make it inactive by setting adjustment_id_out= adjustment_id of
3246: -- the active row in igi_iac_transaction_headers
3247: IGI_IAC_TRANS_HEADERS_PKG.Update_Row(
3248: x_prev_adjustment_id => l_latest_adj_id,
3249: x_adjustment_id => l_adjust_id_reinstate
3250: );
3411: p_asset_id fa_transaction_headers.asset_id%TYPE,
3412: P_period_counter number)
3413: IS
3414: SELECT *
3415: FROM IGI_IAC_TRANSACTION_HEADERS
3416: WHERE book_type_code = p_book_type_code
3417: AND period_counter >= p_period_counter
3418: AND asset_id = p_asset_id
3419: AND transaction_type_code='REVALUATION' and transaction_sub_type in ('OCCASSIONAL','PRFOESSIONAL');
3500: igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'Obtained GL information');
3501:
3502: -- from the p_retirement_id parameter passed in, retrieve the active
3503: -- transaction_header_id and the associated adjustment_id of the asset
3504: -- from igi_iac_transaction_headers
3505: l_ret_rec.retirement_id := p_retirement_id;
3506: l_mrc_sob_type := null;
3507: IF NOT fa_util_pvt.get_asset_retire_rec(l_ret_rec,
3508: l_mrc_sob_type,