[Home] [Help]
PACKAGE BODY: APPS.FA_BASIS_OVERRIDE_INIT_PKG
Source
1 PACKAGE BODY FA_BASIS_OVERRIDE_INIT_PKG as
2 /* $Header: FADBOIB.pls 120.26.12020000.2 2012/07/23 11:07:15 rmandali ship $ */
3
4 g_fy fa_deprn_periods.fiscal_year%TYPE;
5 g_p_num fa_deprn_periods.period_num%TYPE;
6 g_p_counter fa_deprn_periods.period_counter%TYPE;
7 g_book fa_deprn_periods.book_type_code%TYPE;
8
9 g_log_level_rec fa_api_types.log_level_rec_type;
10
11 FUNCTION facodda(book in varchar2,
12 used_by_adjustment in number,
13 asset_id in number,
14 bonus_rule in varchar2,
15 fyctr in number,
16 perd_ctr in number,
17 prod_rate_src_flag in number,
18 deprn_projecting_flag in number,
19 p_ytd_deprn in NUMBER,
20 p_bonus_ytd_deprn in NUMBER,
21 override_depr_amt out nocopy number,
22 override_bonus_amt out nocopy number,
23 deprn_override_flag out nocopy varchar2,
24 return_code out nocopy number,
25 p_mrc_sob_type_code in VARCHAR2,
26 p_set_of_books_id in NUMBER,
27 p_over_depreciate_option in NUMBER default null,
28 p_asset_type in VARCHAR2 default null,
29 p_deprn_rsv in NUMBER default null,
30 p_cur_adj_cost in NUMBER DEFAULT NULL
31 ) return number is
32
33 h_used_by_adjustment_bool boolean;
34 h_deprn_projecting_flag_bool boolean;
35 h_prod_rate_src_flag_bool boolean;
36 l_deprn_override_used_by varchar2(30); --Bug11886090
37
38 l_calling_fn varchar2(40) := 'fa_basis_override_init_pkg.facodda';
39 facodda_err EXCEPTION;
40
41 begin <<FACODDA>>
42
43 -- This is just cover process to call the function FAODDA on FA_CDE_PKG
44
45 if (not g_log_level_rec.initialized) then
46 if (NOT fa_util_pub.get_log_level_rec ( x_log_level_rec => g_log_level_rec)) then
47 raise facodda_err;
48 end if;
49 end if;
50
51 if (g_log_level_rec.statement_level) then
52 fa_debug_pkg.add('facodda','Just Start the cover program','', p_log_level_rec => g_log_level_rec);
53 end if;
54
55 if used_by_adjustment = 1 then
56 h_used_by_adjustment_bool := TRUE;
57 l_deprn_override_used_by := 'ADJ'; --Bug11886090
58 else
59 h_used_by_adjustment_bool := FALSE;
60 l_deprn_override_used_by := 'DEP'; --Bug11886090
61 end if;
62
63 if deprn_projecting_flag = 1 then
64 h_deprn_projecting_flag_bool := TRUE;
65 else
66 h_deprn_projecting_flag_bool := FALSE;
67 end if;
68
69 if prod_rate_src_flag = 1 then
70 h_prod_rate_src_flag_bool := TRUE;
71 else
72 h_prod_rate_src_flag_bool := FALSE;
73 end if;
74
75 if (g_log_level_rec.statement_level) then
76 fa_debug_pkg.add('facodda','Just Call the main program','faodda', p_log_level_rec => g_log_level_rec);
77 fa_debug_pkg.add('facodda','book',book, p_log_level_rec => g_log_level_rec);
78 fa_debug_pkg.add('facodda','used_by_adjustment',used_by_adjustment, p_log_level_rec => g_log_level_rec);
79 fa_debug_pkg.add('facodda','l_deprn_override_used_by',l_deprn_override_used_by, g_log_level_rec);
80 fa_debug_pkg.add('facodda','asset_id',asset_id, p_log_level_rec => g_log_level_rec);
81 fa_debug_pkg.add('facodda','bonus_rule',bonus_rule, p_log_level_rec => g_log_level_rec);
85 fa_debug_pkg.add('facodda','deprn_projecting_flag',deprn_projecting_flag, p_log_level_rec => g_log_level_rec);
82 fa_debug_pkg.add('facodda','fyctr',fyctr, p_log_level_rec => g_log_level_rec);
83 fa_debug_pkg.add('facodda','perd_ctr',perd_ctr, p_log_level_rec => g_log_level_rec);
84 fa_debug_pkg.add('facodda','prod_rate_src_flag',prod_rate_src_flag, p_log_level_rec => g_log_level_rec);
86 fa_debug_pkg.add('facodda','p_ytd_deprn', p_ytd_deprn, p_log_level_rec => g_log_level_rec);
87 fa_debug_pkg.add('facodda','p_bonus_ytd_deprn', p_bonus_ytd_deprn, p_log_level_rec => g_log_level_rec);
88 fa_debug_pkg.add('facodda','override_depr_amt',override_depr_amt, p_log_level_rec => g_log_level_rec);
89 fa_debug_pkg.add('facodda','override_bonus_amt',override_bonus_amt, p_log_level_rec => g_log_level_rec);
90 fa_debug_pkg.add('facodda','deprn_override_flag',deprn_override_flag, p_log_level_rec => g_log_level_rec);
91 fa_debug_pkg.add('facodda','return_code',return_code, p_log_level_rec => g_log_level_rec);
92 fa_debug_pkg.add('facodda','p_mrc_sob_type_code',p_mrc_sob_type_code, p_log_level_rec => g_log_level_rec);
93 end if;
94
95 if not FA_CDE_PKG.faodda(book => book,
96 Deprn_Override_Used_By => l_deprn_override_used_by, --Bug11886090
97 asset_id => asset_id,
98 bonus_rule => bonus_rule,
99 fyctr => fyctr,
100 perd_ctr => perd_ctr,
101 prod_rate_src_flag => h_prod_rate_src_flag_bool,
102 deprn_projecting_flag => h_deprn_projecting_flag_bool,
103 p_ytd_deprn => p_ytd_deprn,
104 p_bonus_ytd_deprn => p_bonus_ytd_deprn,
105 override_depr_amt => override_depr_amt,
106 override_bonus_amt => override_bonus_amt,
107 deprn_override_flag => deprn_override_flag,
108 return_code => return_code,
109 p_mrc_sob_type_code => p_mrc_sob_type_code,
110 p_set_of_books_id => p_set_of_books_id,
111 p_over_depreciate_option => p_over_depreciate_option,
112 p_asset_type => p_asset_type,
113 p_deprn_rsv => p_deprn_rsv,
114 p_cur_adj_cost => p_cur_adj_cost,
115 p_log_level_rec => g_log_level_rec) then
116 raise facodda_err;
117 end if;
118
119 if (g_log_level_rec.statement_level) then
120 fa_debug_pkg.add('facodda','deprn_projecting_flag',deprn_projecting_flag, p_log_level_rec => g_log_level_rec);
121 fa_debug_pkg.add('facodda','override_depr_amt',override_depr_amt, p_log_level_rec => g_log_level_rec);
122 fa_debug_pkg.add('facodda','override_bonus_amt',override_bonus_amt, p_log_level_rec => g_log_level_rec);
123 fa_debug_pkg.add('facodda','deprn_override_flag',deprn_override_flag, p_log_level_rec => g_log_level_rec);
124 fa_debug_pkg.add('facodda','return_code',return_code, p_log_level_rec => g_log_level_rec);
125 end if;
126
127 return 0;
128
129 exception
130 WHEN facodda_err THEN
131 fa_srvr_msg.add_message (calling_fn => l_calling_fn, p_log_level_rec => g_log_level_rec);
132
133 if (g_log_level_rec.statement_level) then
134 FA_DEBUG_PKG.dump_debug_messages(max_mesgs => 0, p_log_level_rec => g_log_level_rec);
135 end if;
136
137 return 1;
138
139 when others then
140 fa_srvr_msg.add_message (calling_fn => l_calling_fn, p_log_level_rec => g_log_level_rec);
141
142 if (g_log_level_rec.statement_level) then
143 FA_DEBUG_PKG.dump_debug_messages(max_mesgs => 0, p_log_level_rec => g_log_level_rec);
144 end if;
145
146 return 1;
147
148 end FACODDA;
149
150 /* Function to call faxcdb */
151 FUNCTION faxccdb (event_type in varchar2,
152 asset_id in number default 0,
153 group_asset_id in number default 0,
154 book_type_code in varchar2 default null,
155 asset_type in varchar2 default null,
156 depreciate_flag in varchar2 default null,
157 method_code in varchar2 default null,
158 life_in_months in number default 0,
159 method_id in number default 0,
160 method_type in varchar2 default null,
161 calc_basis in varchar2 default null,
162 adjustment_amount in number default 0,
163 transaction_flag in varchar2 default null,
164 cost in number default 0,
165 salvage_value in number default 0,
166 recoverable_cost in number default 0,
167 adjusted_cost in number default 0,
168 current_total_rsv in number default 0,
169 current_rsv in number default 0,
170 current_total_ytd in number default 0,
171 current_ytd in number default 0,
172 hyp_basis in number default 0,
173 hyp_total_rsv in number default 0,
174 hyp_rsv in number default 0,
175 hyp_total_ytd in number default 0,
176 hyp_ytd in number default 0,
177 old_adjusted_cost in number default 0,
178 old_raf in number default 0,
179 old_formula_factor in number default 0,
180 new_adjusted_cost out NOCOPY number,
181 new_raf out NOCOPY number,
182 new_formula_factor out NOCOPY number,
186 p_eofy_reserve in number default null,
183 -- new parameter for group depreciation
184 p_period_counter in number default null, -- period num
185 p_fiscal_year in number default null,
187 p_tracking_method in varchar2 default null,
188 p_allocate_to_fully_rsv_flag in varchar2 default null,
189 p_allocate_to_fully_ret_flag in varchar2 default null,
190 p_depreciation_option in varchar2 default null,
191 p_member_rollup_flag in varchar2 default null,
192 p_eofy_recoverable_cost in number default null,
193 p_eop_recoverable_cost in number default null,
194 p_eofy_salvage_value in number default null,
195 p_eop_salvage_value in number default null,
196 p_used_by_adjustment in number default null,
197 p_eofy_flag in varchar2 default null,
198 -- new parameter for polish enhancement
199 p_polish_rule in number default
200 FA_STD_TYPES.FAD_DBR_POLISH_NONE,
201 p_deprn_factor in number default null,
202 p_alternate_deprn_factor in number default null,
203 p_impairment_reserve number default 0, -- P2IAS36
204 p_mrc_sob_type_code in varchar2 default 'N',
205 p_set_of_books_id in number
206 --
207 ) return number is
208
209 h_rule_in fa_std_types.fa_deprn_rule_in_struct;
210 h_rule_out fa_std_types.fa_deprn_rule_out_struct;
211
212 -- Added for group depreciation
213 Cursor C_PERIOD_COUNTER (
214 l_book_type_code varchar2,
215 l_fiscal_year number,
216 l_period_number number)
217 is
218 select dp.period_counter
219 from FA_DEPRN_PERIODS dp
220 where dp.book_type_code = l_book_type_code
221 and dp.fiscal_year = l_fiscal_year
222 and dp.period_num = l_period_number;
223
224 Cursor C_PERIOD_COUNTER_MRC (
225 l_book_type_code varchar2,
226 l_fiscal_year number,
227 l_period_number number)
228 is
229 select dp.period_counter
230 from FA_MC_DEPRN_PERIODS dp
231 where dp.book_type_code = l_book_type_code
232 and dp.fiscal_year = l_fiscal_year
233 and dp.period_num = l_period_number
234 and dp.set_of_books_id = p_set_of_books_id;
235
236 Cursor C_METHOD_CODE (
237 l_asset_id number,
238 l_book_type_code varchar2)
239 is
240 select bk.deprn_method_code,
241 bk.life_in_months
242 from FA_BOOKS bk
243 where bk.asset_id = l_asset_id
244 and bk.book_type_code = l_book_type_code
245 and bk.date_ineffective is null;
246
247 Cursor C_METHOD_CODE_MRC (
248 l_asset_id number,
249 l_book_type_code varchar2)
250 is
251 select bk.deprn_method_code,
252 bk.life_in_months
253 from FA_MC_BOOKS bk
254 where bk.asset_id = l_asset_id
255 and bk.book_type_code = l_book_type_code
256 and bk.date_ineffective is null
257 and bk.set_of_books_id = p_set_of_books_id;
258
259 h_eofy_recoverable_cost NUMBER;
260 h_eop_recoverable_cost NUMBER;
261 h_eofy_salvage_value NUMBER;
262 h_eop_salvage_value NUMBER;
263 h_used_by_adjustment VARCHAR2(15);
264 h_eofy_flag VARCHAR2(1);
265
266 l_chk_count NUMBER;
267 l_calling_fn varchar2(40) := 'fa_basis_override_init_pkg.faxccdb';
268 faxccdb_err exception;
269
270 BEGIN <<FAXCCDB>>
271
272 -- fa_debug_pkg.initialize; -- removed to not clear the message stack.
273
274 -- This is just cover process to call the function
275 -- of faxcdb on FA_CALC_DEPRN_BASIS1_PKG
276
277 if (not g_log_level_rec.initialized) then
278 if (NOT fa_util_pub.get_log_level_rec (
279 x_log_level_rec => g_log_level_rec
280 )) then
281 raise faxccdb_err;
282 end if;
283 end if;
284
285 if (g_log_level_rec.statement_level) then
286 fa_debug_pkg.add('faxccdb','Just Start the cover program','', p_log_level_rec => g_log_level_rec);
287 end if;
288
289 -- Set default amount to out parameters
290 new_adjusted_cost := nvl(old_adjusted_cost,0);
291 new_raf := nvl(old_raf,1);
292 new_formula_factor := nvl(new_formula_factor,1);
293
294 /* set h_rule_in paremters */
295
296 h_rule_in.event_type := event_type;
297 h_rule_in.asset_id := asset_id;
298 if group_asset_id = 0 then
299 h_rule_in.group_asset_id := null;
300 else
301 h_rule_in.group_asset_id := group_asset_id;
302 end if;
303 h_rule_in.book_type_code := book_type_code;
304 h_rule_in.asset_type := asset_type;
305 h_rule_in.depreciate_flag := depreciate_flag;
306 h_rule_in.method_code := method_code;
307 h_rule_in.life_in_months := life_in_months;
308 h_rule_in.method_id := method_id;
309 h_rule_in.method_type := method_type;
310 h_rule_in.calc_basis := calc_basis;
311 h_rule_in.adjustment_amount := adjustment_amount;
312 h_rule_in.transaction_flag := transaction_flag;
313 h_rule_in.cost := cost;
314 h_rule_in.salvage_value := salvage_value;
315 h_rule_in.recoverable_cost := recoverable_cost;
319 h_rule_in.current_total_ytd := current_total_ytd;
316 h_rule_in.adjusted_cost := adjusted_cost;
317 h_rule_in.current_total_rsv := current_total_rsv;
318 h_rule_in.current_rsv := current_rsv;
320 h_rule_in.current_ytd := current_ytd;
321 h_rule_in.hyp_basis := hyp_basis;
322 h_rule_in.hyp_total_rsv := hyp_total_rsv;
323 h_rule_in.hyp_rsv := hyp_rsv;
324 h_rule_in.hyp_total_ytd := hyp_total_ytd;
325 h_rule_in.hyp_ytd := hyp_ytd;
326 h_rule_in.old_adjusted_cost := old_adjusted_cost;
327 h_rule_in.old_raf := old_raf;
328 h_rule_in.old_formula_factor := old_formula_factor;
329
330 -- Added for Group depreciation
331 h_rule_in.fiscal_year := p_fiscal_year;
332 h_rule_in.period_num := p_period_counter;
333
334 -- Added for Polish Tax depreciation
335 h_rule_in.polish_rule := p_polish_rule;
336 h_rule_in.deprn_factor := p_deprn_factor;
337 h_rule_in.alternate_deprn_factor := p_alternate_deprn_factor;
338
339 if event_type = 'AFTER_DEPRN' then
340 if p_mrc_sob_type_code <>'R' then
341 if g_book = book_type_code and
342 nvl(g_fy, -99) = p_fiscal_year and
343 nvl(g_p_num, -99) = p_period_counter then
344 h_rule_in.period_counter:= g_p_counter;
345 else
346 OPEN C_PERIOD_COUNTER(book_type_code,p_fiscal_year,p_period_counter);
347 FETCH C_PERIOD_COUNTER into h_rule_in.period_counter;
348 CLOSE C_PERIOD_COUNTER;
349
350 g_book:= book_type_code;
351 g_fy:= p_fiscal_year;
352 g_p_num:= p_period_counter;
353 g_p_counter:= h_rule_in.period_counter;
354 end if;
355 else
356 if g_book = book_type_code and
357 nvl(g_fy, -99) = p_fiscal_year and
358 nvl(g_p_num, -99) = p_period_counter then
359 h_rule_in.period_counter:= g_p_counter;
360 else
361 OPEN C_PERIOD_COUNTER_MRC(book_type_code,p_fiscal_year,p_period_counter);
362 FETCH C_PERIOD_COUNTER_MRC into h_rule_in.period_counter;
363 CLOSE C_PERIOD_COUNTER_MRC;
364
365 g_book:= book_type_code;
366 g_fy:= p_fiscal_year;
367 g_p_num:= p_period_counter;
368 g_p_counter:= h_rule_in.period_counter;
369 end if;
370 end if;
371 else
372 h_rule_in.period_counter := p_period_counter;
373 end if;
374
375 h_rule_in.eofy_reserve := p_eofy_reserve;
376 h_rule_in.tracking_method := p_tracking_method;
377 h_rule_in.allocate_to_fully_rsv_flag := p_allocate_to_fully_rsv_flag;
378 h_rule_in.allocate_to_fully_ret_flag := p_allocate_to_fully_ret_flag;
379 h_rule_in.depreciation_option := p_depreciation_option;
380 h_rule_in.member_rollup_flag := p_member_rollup_flag;
381 h_rule_in.eofy_recoverable_cost := p_eofy_recoverable_cost;
382 h_rule_in.eop_recoverable_cost := p_eop_recoverable_cost;
383 h_rule_in.eofy_salvage_value := p_eofy_salvage_value;
384 h_rule_in.eop_salvage_value := p_eop_salvage_value;
385 h_rule_in.used_by_adjustment := p_used_by_adjustment;
386 h_rule_in.eofy_flag := p_eofy_flag;
387 h_rule_in.mrc_sob_type_code := nvl(p_mrc_sob_type_code,'N');
388 h_rule_in.set_of_books_id := p_set_of_books_id;
389
390 -- Check method_code
391
392 if (g_log_level_rec.statement_level) then
393 fa_debug_pkg.add('faxccdb','h_rule_in.method_code(1)',h_rule_in.method_code);
394 fa_debug_pkg.add('faxccdb','h_rule_in.life_in_months(1)',h_rule_in.life_in_months);
395 end if;
396
397 -- select count(1)
398 -- into l_chk_count
399 -- from FA_METHODS MT
400 -- where mt.method_code = h_rule_in.method_code
401 -- and nvl(mt.life_in_months,0) = nvl(h_rule_in.life_in_months,0);
402
403 -- When l_chk_count is 0, get method_code and life_in_months
404 -- if l_chk_count =0 then
405 -- if p_mrc_sob_type_code <>'R' then
406 -- OPEN C_METHOD_CODE (asset_id, book_type_code);
407 -- FETCH C_METHOD_CODE into h_rule_in.method_code,
408 -- h_rule_in.life_in_months;
409 -- CLOSE C_METHOD_CODE;
410 -- else --MRC
411 -- OPEN C_METHOD_CODE_MRC (asset_id, book_type_code);
412 -- FETCH C_METHOD_CODE_MRC into h_rule_in.method_code,
413 -- h_rule_in.life_in_months;
414 -- CLOSE C_METHOD_CODE_MRC;
415 -- end if;
416 -- end if;
417
418 if (g_log_level_rec.statement_level) then
419 fa_debug_pkg.add('faxccdb','h_rule_in.method_code(2)',h_rule_in.method_code);
420 fa_debug_pkg.add('faxccdb','h_rule_in.life_in_months(2)',h_rule_in.life_in_months);
421 fa_debug_pkg.add('faxccdb','method_type',method_type, p_log_level_rec => g_log_level_rec);
422 fa_debug_pkg.add('faxccdb','calc_basis',calc_basis, p_log_level_rec => g_log_level_rec);
423 end if;
424
425 -- Get rate_source_rule and deprn_basis_rule
426 -- to avoid that method_type and calc_basis are set null
427 if method_type is null or calc_basis is null then
428
429 if not fa_cache_pkg.fazccmt
430 (X_method => h_rule_in.method_code,
431 X_life => h_rule_in.life_in_months
432 , p_log_level_rec => g_log_level_rec) then
433
434 raise faxccdb_err;
435
436 end if;
437
438 h_rule_in.method_id := fa_cache_pkg.fazccmt_record.method_id;
439 h_rule_in.method_type := fa_cache_pkg.fazccmt_record.rate_source_rule;
440 h_rule_in.calc_basis := fa_cache_pkg.fazccmt_record.deprn_basis_rule;
441
442 if (fa_cache_pkg.fazccmt_record.deprn_basis_rule_id is not null) then
446 -- We don't want to use this logic for Polish code.
443 h_rule_in.polish_rule := fa_cache_pkg.fazcdbr_record.polish_rule;
444 end if;
445
447 if (h_rule_in.polish_rule is not null) and
448 (h_rule_in.polish_rule <> FA_STD_TYPES.FAD_DBR_POLISH_NONE) then
449 return 0;
450 end if;
451 end if;
452
453 --
454 -- eofy and eop amounts are necessary only if deprn basis rules are following
455 -- need eop amounts: 'PERIOD END AVERAGE', 'BEGINNING PERIOD'
456 -- need eofy amounts: 'YEAR TO DATE AVERAGE', 'YEAR END BALANCE WITH HALF YEAR RULE'
457 --
458 if (fa_cache_pkg.fazcdbr_record.rule_name in ('PERIOD END AVERAGE', 'BEGINNING PERIOD',
459 'YEAR TO DATE AVERAGE',
460 'YEAR END BALANCE WITH HALF YEAR RULE')) then
461 ---------------------------------------------
462 -- Get end of fiscal year
463 -- and end of period recoverable cost
464 -- and salvage value
465 ---------------------------------------------
466 -- Get eofy recoverable cost and salvage value
467 if p_eofy_recoverable_cost is null
468 or p_eofy_salvage_value is null
469 or p_eop_recoverable_cost is null
470 or p_eop_salvage_value is null
471 then
472
473 if (not FA_CALC_DEPRN_BASIS1_PKG.GET_EOFY_EOP
474 (
475 p_asset_id => h_rule_in.asset_id,
476 p_book_type_code => h_rule_in.book_type_code,
477 p_fiscal_year => h_rule_in.fiscal_year,
478 p_period_num => h_rule_in.period_num,
479 p_asset_type => h_rule_in.asset_type,
480 p_recoverable_cost => h_rule_in.recoverable_cost,
481 p_salvage_value => h_rule_in.salvage_value,
482 p_period_counter => p_period_counter,
483 p_mrc_sob_type_code => h_rule_in.mrc_sob_type_code,
484 p_set_of_books_id => h_rule_in.set_of_books_id,
485 x_eofy_recoverable_cost => h_rule_in.eofy_recoverable_cost,
486 x_eofy_salvage_value => h_rule_in.eofy_salvage_value,
487 x_eop_recoverable_cost => h_rule_in.eop_recoverable_cost,
488 x_eop_salvage_value => h_rule_in.eop_salvage_value
489 , p_log_level_rec => g_log_level_rec))
490 then
491 h_rule_in.eofy_recoverable_cost := nvl(p_eofy_recoverable_cost,0);
492 h_rule_in.eofy_salvage_value := nvl(p_eofy_salvage_value,0);
493 h_rule_in.eop_recoverable_cost := nvl(p_eop_recoverable_cost,0);
494 h_rule_in.eop_salvage_value := nvl(p_eop_salvage_value,0);
495 end if;
496 end if; -- End of getting eofy and eop recoverable cost and salvage value
497
498 else
499 h_rule_in.eofy_recoverable_cost := 0;
500 h_rule_in.eofy_salvage_value := 0;
501 h_rule_in.eop_recoverable_cost := 0;
502 h_rule_in.eop_salvage_value := 0;
503 end if; -- (fa_cache_pkg.fazcdbr_record.rule_name in (....
504
505 --------------------------------------------
506 -- Set 0 to the end of fiscal year
507 -- and end of period recoverable cost
508 -- and salvage value if they returned 0
509 --------------------------------------------
510 h_rule_in.eofy_recoverable_cost := nvl(h_rule_in.eofy_recoverable_cost,0);
511 h_rule_in.eofy_salvage_value := nvl(h_rule_in.eofy_salvage_value,0);
512 h_rule_in.eop_recoverable_cost := nvl(h_rule_in.eop_recoverable_cost,0);
513 h_rule_in.eop_salvage_value := nvl(h_rule_in.eop_salvage_value,0);
514
515 h_rule_in.impairment_reserve := p_impairment_reserve; -- P2IAS36
516
517 -- Initialize output parameters
518
519 h_rule_out.new_adjusted_cost := 0;
520 h_rule_out.new_raf := 1;
521 h_rule_out.new_formula_factor := 1;
522
523 ------------------------------------------------------
524 -- Performance Improvement:
525 -- If method_type is FLAT, set null to life_in_months
526 -- to reduce the loop on fazccmt which faxcdb calls
527 ------------------------------------------------------
528 if h_rule_in.method_type = 'FLAT' then
529 h_rule_in.life_in_months := null;
530 end if;
531
532 --------------------------------------------------
533 -- Call Depreciable Basis Formula PL/SQL function
534 --------------------------------------------------
535
536 if not FA_CALC_DEPRN_BASIS1_PKG.faxcdb
537 (
538 rule_in => h_rule_in,
539 rule_out => h_rule_out
540 , p_log_level_rec => g_log_level_rec)
541 then
542
543 raise faxccdb_err;
544
545 END IF;
546
547 /* set rule_out parameters */
548 new_adjusted_cost := h_rule_out.new_adjusted_cost;
549 new_raf := h_rule_out.new_raf;
550 new_formula_factor := h_rule_out.new_formula_factor;
551
552 return 0;
553
554 exception
555 when faxccdb_err then
556 fa_srvr_msg.add_sql_error (calling_fn => l_calling_fn, p_log_level_rec => g_log_level_rec);
557 return 1;
558
559 when others then
560 fa_srvr_msg.add_sql_error (calling_fn => l_calling_fn, p_log_level_rec => g_log_level_rec);
561 return 1;
562
563 end faxccdb;
564
565
566 FUNCTION faoddat(deprn_override_trigger in number
567 ) return number is
568 h_deprn_override_trigger boolean;
569
570 l_calling_fn varchar2(40) := 'fa_basis_override_init_pkg.faoddat';
571
572 begin <<FAODDAT>>
573
574 -- fa_debug_pkg.initialize; -- removed to not clear the message stack.
575
576 if (not g_log_level_rec.initialized) then
577 if (NOT fa_util_pub.get_log_level_rec (
578 x_log_level_rec => g_log_level_rec
579 )) then
580 null;
581 end if;
582 end if;
583
584 if deprn_override_trigger = 1 then
585 h_deprn_override_trigger := TRUE;
586 else
587 h_deprn_override_trigger := FALSE;
588 end if;
589
590 fa_std_types.deprn_override_trigger_enabled:= h_deprn_override_trigger;
591
592 if (g_log_level_rec.statement_level) then
593 fa_debug_pkg.add('faoddat','faoddat: deprn_override_trigger_enabled', fa_std_types.deprn_override_trigger_enabled, p_log_level_rec => g_log_level_rec);
594 end if;
595
596 return 0;
597
598 exception
599 when others then
600 fa_srvr_msg.add_sql_error (calling_fn => l_calling_fn, p_log_level_rec => g_log_level_rec);
601 return 1;
602
603 end faoddat;
604 END FA_BASIS_OVERRIDE_INIT_PKG;
605