[Home] [Help]
PACKAGE BODY: APPS.FA_RESERVE_TRANSFER_PVT
Source
1 PACKAGE BODY FA_RESERVE_TRANSFER_PVT AS
2 /* $Header: FAVRSVXB.pls 120.7 2005/07/25 10:04:05 yyoon noship $ */
3
4 FUNCTION do_adjustment
5 (px_trans_rec IN OUT NOCOPY FA_API_TYPES.trans_rec_type,
6 px_asset_hdr_rec IN OUT NOCOPY FA_API_TYPES.asset_hdr_rec_type,
7 p_asset_desc_rec IN FA_API_TYPES.asset_desc_rec_type,
8 p_asset_type_rec IN FA_API_TYPES.asset_type_rec_type,
9 p_asset_cat_rec IN FA_API_TYPES.asset_cat_rec_type,
10 p_asset_fin_rec_old IN FA_API_TYPES.asset_fin_rec_type,
11 x_asset_fin_rec_new OUT NOCOPY FA_API_TYPES.asset_fin_rec_type,
12 p_asset_deprn_rec_old IN FA_API_TYPES.asset_deprn_rec_type,
13 x_asset_deprn_rec_new OUT NOCOPY FA_API_TYPES.asset_deprn_rec_type,
14 p_period_rec IN FA_API_TYPES.period_rec_type,
15 p_mrc_sob_type_code IN VARCHAR2,
16 p_source_dest IN VARCHAR2,
17 p_amount IN NUMBER,
18 p_log_level_rec IN FA_API_TYPES.log_level_rec_type default null) RETURN BOOLEAN IS
19
20 -- used for new group code
21 l_adj fa_adjust_type_pkg.fa_adj_row_struct;
22 l_bks_rowid varchar2(30);
23 l_status BOOLEAN;
24
25 --
26 -- For calling faxama.
27 --
28 l_deprn_exp NUMBER := 0;
29 l_bonus_deprn_exp NUMBER := 0;
30 l_deprn_rsv NUMBER := 0;
31 l_asset_deprn_rec_adj FA_API_TYPES.ASSET_DEPRN_REC_TYPE;
32
33 l_calling_fn VARCHAR2(35) := 'fa_group_reserve_pvt.do_transfer';
34 adj_err EXCEPTION;
35
36 BEGIN
37
38 -- set the new structs to the old ones
39 -- (values which changes such as adjusted_cost will be set below)
40
41 x_asset_fin_rec_new := p_asset_fin_rec_old;
42 x_asset_deprn_rec_new := p_asset_deprn_rec_old;
43
44
45 -- call the category books cache for the accounts
46 if not fa_cache_pkg.fazccb(X_book => px_asset_hdr_rec.book_type_code,
47 X_cat_id => p_asset_cat_rec.category_id
48 ,p_log_level_rec => p_log_level_rec) then
49 raise adj_err;
50 end if;
51
52
53 -- call faxinaj to insert the amounts (flush them too)
54 l_adj.transaction_header_id := px_trans_rec.transaction_header_id;
55 l_adj.asset_id := px_asset_hdr_rec.asset_id;
56 l_adj.book_type_code := px_asset_hdr_rec.book_type_code;
57 l_adj.period_counter_created := fa_cache_pkg.fazcbc_record.last_period_counter + 1;
58 l_adj.period_counter_adjusted := fa_cache_pkg.fazcbc_record.last_period_counter + 1;
59 l_adj.current_units := p_asset_desc_rec.current_units;
60 l_adj.selection_mode := FA_ADJUST_TYPE_PKG.FA_AJ_ACTIVE;
61 l_adj.selection_thid := 0;
62 l_adj.selection_retid := 0;
63 l_adj.leveling_flag := TRUE;
64 l_adj.last_update_date := px_trans_rec.transaction_date_entered;
65
66 l_adj.flush_adj_flag := TRUE;
67 l_adj.gen_ccid_flag := TRUE;
68 l_adj.annualized_adjustment := 0;
69 l_adj.asset_invoice_id := 0;
70 l_adj.code_combination_id := 0;
71 l_adj.distribution_id := 0;
72
73 l_adj.deprn_override_flag:= '';
74
75 l_adj.source_type_code := 'ADJUSTMENT'; -- ???
76 l_adj.adjustment_type := 'RESERVE';
77 l_adj.adjustment_amount := p_amount;
78 l_adj.account := fa_cache_pkg.fazccb_record.deprn_reserve_acct;
79 l_adj.account_type := 'DEPRN_RESERVE_ACCT';
80 l_adj.mrc_sob_type_code := p_mrc_sob_type_code;
81
82
83
84 if (p_source_dest = 'S') then
85 l_adj.debit_credit_flag := 'DR';
86 l_adj.source_dest_code := 'SOURCE';
87 else
88 l_adj.debit_credit_flag := 'CR';
89 l_adj.source_dest_code := 'DEST';
90 end if;
91
92 if not FA_INS_ADJUST_PKG.faxinaj
93 (l_adj,
94 px_trans_rec.who_info.last_update_date,
95 px_trans_rec.who_info.last_updated_by,
96 px_trans_rec.who_info.last_update_login
97 ,p_log_level_rec => p_log_level_rec) then
98 raise adj_err;
99 end if;
100
101 -- for life based methods, this where we would need to recalculate raf, etc
102 -- should be able to use the
103 --
104 -- insure the amort start date is null and then add the amount to the old reserve
105
106 px_trans_rec.amortization_start_date := null;
107 if (p_source_dest = 'S') then
108 x_asset_deprn_rec_new.deprn_reserve := x_asset_deprn_rec_new.deprn_reserve - p_amount;
109 l_asset_deprn_rec_adj.deprn_reserve := -1 * p_amount;
110 else
111 x_asset_deprn_rec_new.deprn_reserve := x_asset_deprn_rec_new.deprn_reserve + p_amount;
112 l_asset_deprn_rec_adj.deprn_reserve := p_amount;
113 end if;
114
115 if (not FA_AMORT_PVT.faxama(
116 px_trans_rec => px_trans_rec,
117 p_asset_hdr_rec => px_asset_hdr_rec,
118 p_asset_desc_rec => p_asset_desc_rec,
119 p_asset_cat_rec => p_asset_cat_rec,
120 p_asset_type_rec => p_asset_type_rec,
121 p_asset_fin_rec_old => p_asset_fin_rec_old,
122 px_asset_fin_rec_new => x_asset_fin_rec_new,
123 p_asset_deprn_rec => p_asset_deprn_rec_old,
124 p_asset_deprn_rec_adj => l_asset_deprn_rec_adj,
125 p_period_rec => p_period_rec,
126 p_mrc_sob_type_code => p_mrc_sob_type_code,
127 p_running_mode => fa_std_types.FA_DPR_NORMAL,
128 p_used_by_revaluation => null,
129 p_reclassed_asset_id => null,
130 p_reclass_src_dest => null,
131 p_reclassed_asset_dpis => null,
132 p_update_books_summary => TRUE,
133 p_proceeds_of_sale => 0,
134 p_cost_of_removal => 0,
135 x_deprn_exp => l_deprn_exp,
136 x_bonus_deprn_exp => l_bonus_deprn_exp,
137 x_deprn_rsv => l_deprn_rsv
138 ,p_log_level_rec => p_log_level_rec)) then
139
140 raise adj_err;
141
142 end if; -- (not FA_AMORT_PVT.faxama
143
144
145 -- terminate/insert fa_books rows
146 -- terminate the active row
147 fa_books_pkg.deactivate_row
148 (X_asset_id => px_asset_hdr_rec.asset_id,
149 X_book_type_code => px_asset_hdr_rec.book_type_code,
150 X_transaction_header_id_out => px_trans_rec.transaction_header_id,
151 X_date_ineffective => px_trans_rec.who_info.last_update_date,
152 X_mrc_sob_type_code => p_mrc_sob_type_code,
153 X_Calling_Fn => l_calling_fn
154 ,p_log_level_rec => p_log_level_rec);
155
156 -- fa books
157 fa_books_pkg.insert_row
158 (X_Rowid => l_bks_rowid,
159 X_Book_Type_Code => px_asset_hdr_rec.book_type_code,
160 X_Asset_Id => px_asset_hdr_rec.asset_id,
161 X_Date_Placed_In_Service => x_asset_fin_rec_new.date_placed_in_service,
162 X_Date_Effective => px_trans_rec.who_info.last_update_date,
163 X_Deprn_Start_Date => x_asset_fin_rec_new.deprn_start_date,
164 X_Deprn_Method_Code => x_asset_fin_rec_new.deprn_method_code,
165 X_Life_In_Months => x_asset_fin_rec_new.life_in_months,
166 X_Rate_Adjustment_Factor => x_asset_fin_rec_new.rate_adjustment_factor,
167 X_Adjusted_Cost => x_asset_fin_rec_new.adjusted_cost,
168 X_Cost => x_asset_fin_rec_new.cost,
169 X_Original_Cost => x_asset_fin_rec_new.original_cost,
170 X_Salvage_Value => x_asset_fin_rec_new.salvage_value,
171 X_Prorate_Convention_Code => x_asset_fin_rec_new.prorate_convention_code,
172 X_Prorate_Date => x_asset_fin_rec_new.prorate_date,
173 X_Cost_Change_Flag => x_asset_fin_rec_new.cost_change_flag,
174 X_Adjustment_Required_Status => x_asset_fin_rec_new.adjustment_required_status,
175 X_Capitalize_Flag => x_asset_fin_rec_new.capitalize_flag,
176 X_Retirement_Pending_Flag => x_asset_fin_rec_new.retirement_pending_flag,
177 X_Depreciate_Flag => x_asset_fin_rec_new.depreciate_flag,
178 X_Disabled_Flag => x_asset_fin_rec_new.disabled_flag,--HH
179 X_Last_Update_Date => px_trans_rec.who_info.last_update_date,
180 X_Last_Updated_By => px_trans_rec.who_info.last_updated_by,
181 X_Date_Ineffective => NULL,
182 X_Transaction_Header_Id_In => px_trans_rec.transaction_header_id,
183 X_Transaction_Header_Id_Out => NULL,
184 X_Itc_Amount_Id => x_asset_fin_rec_new.itc_amount_id,
185 X_Itc_Amount => x_asset_fin_rec_new.itc_amount,
186 X_Retirement_Id => x_asset_fin_rec_new.retirement_id,
187 X_Tax_Request_Id => x_asset_fin_rec_new.tax_request_id,
188 X_Itc_Basis => x_asset_fin_rec_new.itc_basis,
189 X_Basic_Rate => x_asset_fin_rec_new.basic_rate,
190 X_Adjusted_Rate => x_asset_fin_rec_new.adjusted_rate,
191 X_Bonus_Rule => x_asset_fin_rec_new.bonus_rule,
192 X_Ceiling_Name => x_asset_fin_rec_new.ceiling_name,
193 X_Recoverable_Cost => x_asset_fin_rec_new.recoverable_cost,
194 X_Last_Update_Login => px_trans_rec.who_info.last_update_login,
195 X_Adjusted_Capacity => x_asset_fin_rec_new.adjusted_capacity,
196 X_Fully_Rsvd_Revals_Counter => x_asset_fin_rec_new.fully_rsvd_revals_counter,
197 X_Idled_Flag => x_asset_fin_rec_new.idled_flag,
198 X_Period_Counter_Capitalized => x_asset_fin_rec_new.period_counter_capitalized,
199 X_PC_Fully_Reserved => x_asset_fin_rec_new.period_counter_fully_reserved,
200 X_Period_Counter_Fully_Retired => x_asset_fin_rec_new.period_counter_fully_retired,
201 X_Production_Capacity => x_asset_fin_rec_new.production_capacity,
202 X_Reval_Amortization_Basis => x_asset_fin_rec_new.reval_amortization_basis,
203 X_Reval_Ceiling => x_asset_fin_rec_new.reval_ceiling,
204 X_Unit_Of_Measure => x_asset_fin_rec_new.unit_of_measure,
205 X_Unrevalued_Cost => x_asset_fin_rec_new.unrevalued_cost,
206 X_Annual_Deprn_Rounding_Flag => x_asset_fin_rec_new.annual_deprn_rounding_flag,
207 X_Percent_Salvage_Value => x_asset_fin_rec_new.percent_salvage_value,
208 X_Allowed_Deprn_Limit => x_asset_fin_rec_new.allowed_deprn_limit,
209 X_Allowed_Deprn_Limit_Amount => x_asset_fin_rec_new.allowed_deprn_limit_amount,
210 X_Period_Counter_Life_Complete => x_asset_fin_rec_new.period_counter_life_complete,
211 X_Adjusted_Recoverable_Cost => x_asset_fin_rec_new.adjusted_recoverable_cost,
212 X_Short_Fiscal_Year_Flag => x_asset_fin_rec_new.short_fiscal_year_flag,
213 X_Conversion_Date => x_asset_fin_rec_new.conversion_date,
214 X_Orig_Deprn_Start_Date => x_asset_fin_rec_new.orig_deprn_start_date,
215 X_Remaining_Life1 => x_asset_fin_rec_new.remaining_life1,
216 X_Remaining_Life2 => x_asset_fin_rec_new.remaining_life2,
217 X_Old_Adj_Cost => x_asset_fin_rec_new.old_adjusted_cost,
218 X_Formula_Factor => x_asset_fin_rec_new.formula_factor,
219 X_gf_Attribute1 => x_asset_fin_rec_new.global_attribute1,
220 X_gf_Attribute2 => x_asset_fin_rec_new.global_attribute2,
221 X_gf_Attribute3 => x_asset_fin_rec_new.global_attribute3,
222 X_gf_Attribute4 => x_asset_fin_rec_new.global_attribute4,
223 X_gf_Attribute5 => x_asset_fin_rec_new.global_attribute5,
224 X_gf_Attribute6 => x_asset_fin_rec_new.global_attribute6,
225 X_gf_Attribute7 => x_asset_fin_rec_new.global_attribute7,
226 X_gf_Attribute8 => x_asset_fin_rec_new.global_attribute8,
227 X_gf_Attribute9 => x_asset_fin_rec_new.global_attribute9,
228 X_gf_Attribute10 => x_asset_fin_rec_new.global_attribute10,
229 X_gf_Attribute11 => x_asset_fin_rec_new.global_attribute11,
230 X_gf_Attribute12 => x_asset_fin_rec_new.global_attribute12,
231 X_gf_Attribute13 => x_asset_fin_rec_new.global_attribute13,
232 X_gf_Attribute14 => x_asset_fin_rec_new.global_attribute14,
233 X_gf_Attribute15 => x_asset_fin_rec_new.global_attribute15,
234 X_gf_Attribute16 => x_asset_fin_rec_new.global_attribute16,
235 X_gf_Attribute17 => x_asset_fin_rec_new.global_attribute17,
236 X_gf_Attribute18 => x_asset_fin_rec_new.global_attribute18,
237 X_gf_Attribute19 => x_asset_fin_rec_new.global_attribute19,
238 X_gf_Attribute20 => x_asset_fin_rec_new.global_attribute20,
239 X_global_attribute_category => x_asset_fin_rec_new.global_attribute_category,
240 X_group_asset_id => x_asset_fin_rec_new.group_asset_id,
241 X_salvage_type => x_asset_fin_rec_new.salvage_type,
242 X_deprn_limit_type => x_asset_fin_rec_new.deprn_limit_type,
243 X_over_depreciate_option => x_asset_fin_rec_new.over_depreciate_option,
244 X_super_group_id => x_asset_fin_rec_new.super_group_id,
245 X_reduction_rate => x_asset_fin_rec_new.reduction_rate,
246 X_reduce_addition_flag => x_asset_fin_rec_new.reduce_addition_flag,
247 X_reduce_adjustment_flag => x_asset_fin_rec_new.reduce_adjustment_flag,
248 X_reduce_retirement_flag => x_asset_fin_rec_new.reduce_retirement_flag,
249 X_recognize_gain_loss => x_asset_fin_rec_new.recognize_gain_loss,
250 X_recapture_reserve_flag => x_asset_fin_rec_new.recapture_reserve_flag,
251 X_limit_proceeds_flag => x_asset_fin_rec_new.limit_proceeds_flag,
252 X_terminal_gain_loss => x_asset_fin_rec_new.terminal_gain_loss,
253 X_exclude_proceeds_from_basis => x_asset_fin_rec_new.exclude_proceeds_from_basis,
254 X_retirement_deprn_option => x_asset_fin_rec_new.retirement_deprn_option,
255 X_tracking_method => x_asset_fin_rec_new.tracking_method,
256 X_allocate_to_fully_rsv_flag => x_asset_fin_rec_new.allocate_to_fully_rsv_flag,
257 X_allocate_to_fully_ret_flag => x_asset_fin_rec_new.allocate_to_fully_ret_flag,
258 X_exclude_fully_rsv_flag => x_asset_fin_rec_new.exclude_fully_rsv_flag,
259 X_excess_allocation_option => x_asset_fin_rec_new.excess_allocation_option,
260 X_depreciation_option => x_asset_fin_rec_new.depreciation_option,
261 X_member_rollup_flag => x_asset_fin_rec_new.member_rollup_flag,
262 X_ytd_proceeds => x_asset_fin_rec_new.ytd_proceeds,
263 X_ltd_proceeds => x_asset_fin_rec_new.ltd_proceeds,
264 X_eofy_reserve => x_asset_fin_rec_new.eofy_reserve,
265 X_terminal_gain_loss_amount => x_asset_fin_rec_new.terminal_gain_loss_amount,
266 X_ltd_cost_of_removal => x_asset_fin_rec_new.ltd_cost_of_removal,
267 X_mrc_sob_type_code => p_mrc_sob_type_code,
268 X_Return_Status => l_status,
269 X_Calling_Fn => l_calling_fn
270 ,p_log_level_rec => p_log_level_rec);
271
272 if not l_status then
273 raise adj_err;
274 end if;
275
276 return true;
277
278 EXCEPTION
279 when adj_err then
280 fa_srvr_msg.add_message(calling_fn => l_calling_fn
281 ,p_log_level_rec => p_log_level_rec);
282 return false;
283 when others then
284 fa_srvr_msg.add_sql_error(calling_fn => l_calling_fn
285 ,p_log_level_rec => p_log_level_rec);
286 return false;
287
288 END do_adjustment;
289
290 END FA_RESERVE_TRANSFER_PVT;