DBA Data[Home] [Help]

PACKAGE: APPS.FA_TRACK_MEMBER_PVT

Source


1 PACKAGE FA_TRACK_MEMBER_PVT as
2 /* $Header: FAVTRACKS.pls 120.11 2005/06/24 20:32:09 hhafid noship $ */
3 
4 -- Declare for Tracking related records
5 
6 TYPE track_member_struct is RECORD (
7 		  group_asset_id		number(15) := NULL,
8 		  member_asset_id		number(15) := NULL,
9 		  period_counter		number(15) := NULL,
10 		  fiscal_year			number(15) := NULL,
11                   set_of_books_id               number := NULL,
12 		  allocation_basis		number := NULL,
13 		  total_allocation_basis 	number := NULL,
14 		  allocated_deprn_amount	number := NULL,
15 		  allocated_bonus_amount	number := NULL,
16 	          system_deprn_amount		number := NULL,
17 		  system_bonus_amount	        number := NULL,
18 		  fully_reserved_flag		varchar2(01) := NULL,
19 		  fully_retired_flag		varchar2(01) := NULL,
20 		  override_flag			varchar2(01) := NULL,
21 		  cost				number := NULL,
22 		  adjusted_cost			number := NULL,
23 		  eofy_adj_cost			number := NULL,
24 		  recoverable_cost		number := NULL,
25 		  salvage_value			number := NULL,
26 		  adjusted_recoverable_cost	number := NULL,
27 		  eofy_reserve		        number := NULL,
28                   deprn_reserve			number := NULL,
29 		  ytd_deprn			number := NULL,
30 		  bonus_deprn_reserve		number := NULL,
31 		  bonus_ytd_deprn		number := NULL,
32                   eofy_recoverable_cost         number := NULL,
33                   eop_recoverable_cost          number := NULL,
34                   eofy_salvage_value            number := NULL,
35                   eop_salvage_value             number := NULL
36 ,                 reserve_adjustment_amount     number
37         );
38 
39 TYPE track_member_eofy is RECORD (
40 		  group_asset_id		number(15) := NULL,
41 		  member_asset_id		number(15) := NULL,
42                   fiscal_year                   number := NULL,
43                   cost                          number := NULL,
44                   salvage_value                 number := NULL,
45                   recoverable_cost              number := NULL,
46                   adjusted_cost                 number := NULL,
47 		  eofy_reserve		        number := NULL,
48                   set_of_books_id               number := NULL
49         );
50 
51 TYPE track_member_type IS TABLE OF track_member_struct INDEX BY BINARY_INTEGER;
52 TYPE track_member_eofy_type IS TABLE OF track_member_eofy INDEX By BINARY_INTEGER;
53 
54 null_track_member_struct       track_member_struct;
55 p_track_member_table           track_member_type;
56 p_track_member_eofy_table      track_member_eofy_type;
57 p_track_adj_mode               boolean := FALSE;
58 
59 p_track_member_table_for_raf        track_member_type;
60 p_tracK_member_table_for_deprn      track_member_type;
61 
62 --* Update Depreciable Basis controller
63 l_process_deprn_for_member                      varchar2(3) := 'YES';
64 l_processing_member_table                       varchar2(3) := 'NO';
65 
66 --------------------------------------------------------------------------
67 --
68 --   Function: track_assets
69 --
70 --   Description:
71 --
72 -- 	Main logic to track individual asset level amounts.
73 --
74 --   Returns:
75 --
76 --      0 - No error / 1 - Error
77 --
78 --------------------------------------------------------------------------
79 FUNCTION track_assets(P_book_type_code             in varchar2,
80                       P_group_asset_id	           in number,
81                       P_period_counter             in number,
82                       P_fiscal_year                in number,
83                       P_loop_end_year              in number default null,
84                       P_loop_end_period            in number default null,
85                       P_group_deprn_basis          in varchar2,
86                       P_group_exclude_salvage      in varchar2 default NULL,
87                       P_group_bonus_rule           in varchar2 default NULL,
88                       P_group_deprn_amount         in number default 0,
89                       P_group_bonus_amount         in number default 0,
90                       P_tracking_method            in varchar2 default null,
91                       P_allocate_to_fully_ret_flag in varchar2 default null,
92                       P_allocate_to_fully_rsv_flag in varchar2 default null,
93                       P_excess_allocation_option   in varchar2 default 'REDUCE',
94                       P_depreciation_option        in varchar2 default null,
95                       P_member_rollup_flag         in varchar2 default null,
96                       P_subtraction_flag           in varchar2 default NULL,
97                       P_group_level_override       in out nocopy varchar2,
98                       P_update_override_status     in boolean default true,
99                       P_period_of_addition         in varchar2 default NULL,
100                       P_transaction_date_entered   in date default null,
101                       P_mode                       in varchar2 default NULL,
102                       p_mrc_sob_type_code          in varchar2 default 'N',
103                       X_new_deprn_amount           out nocopy number,
104                       X_new_bonus_amount           out nocopy number,
105 		      p_log_level_rec      IN     FA_API_TYPES.log_level_rec_type default null)
106   return number;
107 
108 --------------------------------------------------------------------------
109 --
110 --  Function: allocate
111 --
112 --  Description:
113 --
114 --     Calculate the allocated amount based on the parameters
115 --
116 --  Returns:
117 --
118 --     True - No error / False - error
119 --
120 --------------------------------------------------------------------------
121 
122 FUNCTION allocate(P_book_type_code             in varchar2,
123                   P_group_asset_id             in number,
124                   P_period_counter             in number,
125                   P_fiscal_year                in number,
126                   P_group_deprn_basis          in varchar2,
127                   P_group_exclude_salvage      in varchar2 default NULL,
128                   P_group_bonus_rule           in varchar2 default NULL,
129                   P_group_deprn_amount         in number default 0,
130                   P_group_bonus_amount         in number default 0,
131                   P_allocate_to_fully_ret_flag in varchar2 default NULL,
132                   P_allocate_to_fully_rsv_flag in varchar2 default NULL,
133                   P_excess_allocation_option   in varchar2 default 'REDUCE',
134                   P_subtraction_flag           in varchar2 default NULL,
135                   P_group_level_override       in out nocopy varchar2,
136                   P_update_override_status     in boolean default true,
137                   P_mrc_sob_type_code          in varchar2 default 'N',
138                   P_mode                       in varchar2 default NULL,
139                   X_new_deprn_amount           out nocopy number,
140                   X_new_bonus_amount           out nocopy number,
141 		  p_log_level_rec      IN     FA_API_TYPES.log_level_rec_type default null)
142 
143   return boolean;
144 
145 ---------------------------------------------------------------------------
146 --
147 --  Function:  check_group_amounts
148 --
149 --  Description:
150 --
151 --		This function is called when system needs to update
152 --		Group Level Amounts as a result of tracking logic.
153 --		If system cannot update the group level amounts
154 -- 		due to some reason, this function will return false.
155 --
156 --
157 --  Returns:
158 --
159 --     0 - No error / 1 - error
160 --
161 ---------------------------------------------------------------------------
162 
163 FUNCTION check_group_amounts(P_book_type_code        in varchar2,
164                            P_group_asset_id        in number,
165                            P_period_counter        in number,
166                            P_perd_deprn_exp        in number,
167                            P_year_deprn_exp        in number,
168                            P_recoverable_cost      in number,
169                            P_adj_rec_cost          in number,
170                            P_current_deprn_reserve in number,
171                            P_nbv_threshold         in number,
172                            P_nbv_thresh_amount     in number,
173                            P_rec_cost_abs_value    in number,
174                            X_life_complete_flag    out nocopy varchar2,
175                            X_fully_reserved_flag   out nocopy varchar2,
176 			   p_log_level_rec      IN     FA_API_TYPES.log_level_rec_type default null)
177   return number;
178 
179 ---------------------------------------------------------------------------
180 --
181 --  Function:  allocation_main
182 --
183 --  Description:
184 --
185 --		This function is called to allocate group level amount
186 --		to member assets. This is the main logic to allocate amounts
187 --		to members.
188 --
189 --
190 --  Returns:
191 --
192 --              True on successful retrieval. Otherwise False.
193 --
194 ----------------------------------------------------------------------------
195 
196 FUNCTION allocation_main(P_book_type_code            in varchar2,
197                          P_group_asset_id            in number,
198                          P_member_asset_id           in number,
199                          P_period_counter            in number,
200                          P_fiscal_year               in number,
201                          P_group_bonus_rule          in varchar2 default null,
202                          P_group_deprn_amount        in number,
203                          P_group_bonus_amount        in number default 0,
204                          P_allocation_basis          in number,
205                          P_total_allocation_basis    in number,
206                          P_ytd_deprn                 in number,
207                          P_bonus_ytd_deprn           in number default 0,
208                          P_track_member_in           in track_member_struct default null_track_member_struct,
209                          P_check_reserve_flag        in Varchar2 default null,
210                          P_subtraction_flag          in varchar2 default null,
211                          P_group_level_override      in out nocopy varchar2,
212                          P_update_override_status    in boolean default true,
213                          P_member_override_flag      in varchar2 default null,
214                          PX_difference_deprn_amount  in out nocopy number,
215                          PX_difference_bonus_amount  in out nocopy number,
216                          X_system_deprn_amount       out nocopy number,
217                          X_system_bonus_amount       out nocopy number,
218                          X_track_member_out          out nocopy track_member_struct,
219                          P_mrc_sob_type_code         in varchar2 default 'N',
220                          P_mode                      in Varchar2,
221                          P_rec_cost_for_odda         in number default null,
222                          P_sv_for_odda               in number default null,
223 			 p_log_level_rec      IN     FA_API_TYPES.log_level_rec_type default null)
224   return boolean;
225 
226 ----------------------------------------------------------------------------
227 --
228 --  Function:   update_depreciable_basis
229 --
230 --  Description:
231 --
232 --		This function is called to update Depreciable Basis in some cases.
233 --		The case when this function is called is that the group level depreciable
234 --		basis rule has group level check logic, such as 50% rules for CCA or India.
235 --		In these logic, system needs to check group level net amount for the specified
236 --		period to decide if 50% reduction is applied or not.
237 --		This cannot be checked at member level. So after group level depreciable basis
238 --		updated is done, Deprn Basis Rule function will call this function to update
239 --		member level depreciable basis.
240 --		to members.
241 --
242 --
243 ----------------------------------------------------------------------------
244 
245 FUNCTION update_deprn_basis(p_group_rule_in          in fa_std_types.fa_deprn_rule_in_struct,
246                             p_apply_reduction_flag   in varchar2 default NULL,
247                             p_mode                   in varchar2 default NULL,
248 			    p_log_level_rec      IN     FA_API_TYPES.log_level_rec_type default null)
249   return boolean;
250 
251 ----------------------------------------------------------------------------
252 --
253 --  Function:   ins_dd_adj
254 --
255 --  Description:
256 --
257 --              This function is called to insert allocated amount
258 --              into FA_ADJ or FA_DEPRN_DETAIL/SUMMARY in case
259 --              that Unplanned Depreciation is made.
260 --
261 --
262 --  Returns
263 --              True on successful retrieval. Otherwise False.
264 --
265 ----------------------------------------------------------------------------
266 
267 FUNCTION ins_dd_adj(P_book_type_code         in varchar2,
268                     P_group_asset_id         in number,
269                     P_period_counter         in number,
270                     P_fiscal_year            in number,
271                     P_period_of_addition     in varchar2 default NULL,
272                     P_transaction_date_entered in date default null,
273                     P_mrc_sob_type_code      in varchar2 default 'N',
274                     P_mode                   in varchar2,
275 		    p_log_level_rec      IN     FA_API_TYPES.log_level_rec_type default null)
276   return boolean;
277 
278 ----------------------------------------------------------------------------
279 --
280 --  Function:   populate previous rows
281 --
282 --  Description:
283 --
284 --              This function is called to prepare PL/SQL table to process
285 --              allocation under ADJUSTMENT mode
286 --              If PL/SQL table doesn't exist, this function will extend the
287 --              table with necessary values for member assets to be processed
288 --              at one period before the starting period made subsequently.
289 --
290 --
291 --  Returns
292 --              True on successful retrieval. Otherwise False.
293 --
294 ----------------------------------------------------------------------------
295 
296 FUNCTION populate_previous_rows(p_book_type_code     in varchar2,
297                                 p_group_asset_id     in number,
298                                 p_period_counter     in number,
299                                 p_fiscal_year        in number,
300                                 p_transaction_header_id in number default null,
301                                 p_loop_end_year      in number default null,
302                                 p_loop_end_period    in number default null,
303                                 p_allocate_to_fully_ret_flag in varchar2,
304                                 p_allocate_to_fully_rsv_flag in varchar2,
305                                 p_mrc_sob_type_code  in varchar2, -- default 'N'
306                                 p_calling_fn         in varchar2 default NULL,
307 				p_log_level_rec      IN     FA_API_TYPES.log_level_rec_type default null)
308   return boolean;
309 
310 --+=====================================================================
311 -- Function: get_member_at_start
312 --
313 --  This function will be called from adjustment engine
314 --  to poulate the member assets at the time of running faxcde
315 --  Using transaction_date_entered passed from engine,
316 --  member assets are defined.
317 --  And populate the necessary info into FA_TRACK_MEMBER table.
318 --+=====================================================================
319 
320 FUNCTION get_member_at_start(p_period_rec                 in FA_API_TYPES.period_rec_type,
321                              p_trans_rec                  in FA_API_TYPES.trans_rec_type,
322                              p_asset_hdr_rec              in FA_API_TYPES.asset_hdr_rec_type,
323                              p_asset_fin_rec              in FA_API_TYPES.asset_fin_rec_type,
324                              p_dpr_in                     in FA_STD_TYPES.dpr_struct,
325                              p_mrc_sob_type_code          in varchar2 default 'N',
326 			     p_log_level_rec      IN     FA_API_TYPES.log_level_rec_type default null)
327   return boolean;
328 
329 --+=====================================================================
330 -- Function: update_member_books
331 --
335 --  FA_BOOKS will be updated.
332 --  This function will be called from adjustment engine
333 --  to update FA_BOOKS for each member assets
334 --  Using stored adjusted_cost in FA_TRACK_MEMBERS,
336 --
337 --+=====================================================================
338 
339 FUNCTION update_member_books(p_trans_rec          in FA_API_TYPES.trans_rec_type,
340                              p_asset_hdr_rec      in FA_API_TYPES.asset_hdr_rec_type,
341                              p_dpr_in             in FA_STD_TYPES.dpr_struct,
342                              p_mrc_sob_type_code  in varchar2 default 'N',
343 			     p_log_level_rec      IN     FA_API_TYPES.log_level_rec_type default null)
344   return boolean;
345 
346 --+=====================================================================
347 -- Function: member_eofy_rsv
348 --
349 --  This function will be called to keep eofy_reserve for each member asset
350 --  during the loop of recalculation
351 --
352 --+=====================================================================
353 
354 FUNCTION member_eofy_rsv(p_asset_hdr_rec      in FA_API_TYPES.asset_hdr_rec_type,
355                          p_dpr_in             in FA_STD_TYPES.dpr_struct,
356                          p_mrc_sob_type_code  in varchar2 default 'N',
357 			 p_log_level_rec      IN     FA_API_TYPES.log_level_rec_type default null)
358   return boolean;
359 
360 --+=====================================================================
361 -- Function: populate_member_assets_table
362 --
363 --  This function will be called to extend member assets PL/SQL table
364 --  to process faxcde correctly.
365 --  When this function is called, allocation calculation will be
366 --  made from group DPIS to one period before when recalculation will start
367 --
368 --+=====================================================================
369 
370 FUNCTION populate_member_assets_table(p_asset_hdr_rec           in FA_API_TYPES.asset_hdr_rec_type,
371                                       p_asset_fin_rec_new       in FA_API_TYPES.asset_fin_rec_type,
372                                       p_populate_for_recalc_period in varchar2 default 'N',
373                                       p_amort_start_date        in date,
374                                       p_recalc_start_fy         in number,
375                                       p_recalc_start_period_num in number,
376                                       p_no_allocation_for_last  in varchar2 default 'Y',
377                                       p_mrc_sob_type_code       in varchar2 default 'N',
378 				      p_log_level_rec      IN     FA_API_TYPES.log_level_rec_type default null)
379   return boolean;
380 
381 --+=====================================================================
382 -- Function: populate_member_reserve
383 --
384 --  This function will be called to query tracked reserve amount
385 --  for group reclassification.
386 --  This function is used to skip recalculation from DPIS to reclassification
387 --  date populating member level reserve amount tracked.
388 --
389 --+=====================================================================
390 
391 FUNCTION populate_member_reserve(p_trans_rec               in FA_API_TYPES.trans_rec_type,
392                                  p_asset_hdr_rec           in FA_API_TYPES.asset_hdr_rec_type,
393                                  p_asset_fin_rec_new       in FA_API_TYPES.asset_fin_rec_type,
394                                  p_mrc_sob_type_code       in varchar2 default 'N',
395                                  x_deprn_reserve           out nocopy number,
396                                  x_eofy_reserve            out nocopy number,
397 				 p_log_level_rec      IN     FA_API_TYPES.log_level_rec_type default null)
398   return boolean;
399 
400 --+=====================================================================
401 -- Function: check_reduction_application
402 --
403 --  This function will be called to check if 50% rule is applied at group
404 --  level or not before calling deprn basis rule function for each member
405 --
406 --+=====================================================================
407 
408 FUNCTION check_reduction_application(p_rule_name           in varchar2,
409                                      p_group_asset_id      in number,
410                                      p_book_type_code      in varchar2,
411                                      p_period_counter      in number,
412                                      p_group_deprn_basis   in varchar2,
413                                      p_reduction_rate      in number,
414                                      p_group_eofy_rec_cost in number,
415                                      p_group_eofy_salvage_value in number,
416                                      p_group_eofy_reserve  in number,
417                                      p_mrc_sob_type_code   in varchar2 default 'N',
418                                      x_apply_reduction_flag out nocopy varchar2,
419 				     p_log_level_rec      IN     FA_API_TYPES.log_level_rec_type default null)
420   return boolean;
421 
422 --+=====================================================================
423 -- Function: display_debug_message
424 --
425 --  This function will be called to display debug message
426 --
427 --+=====================================================================
428 
429 FUNCTION display_debug_message(fa_rule_in                  in fa_std_types.fa_deprn_rule_in_struct,
430                                p_calling_fn                in varchar2,
431 			       p_log_level_rec      IN     FA_API_TYPES.log_level_rec_type default null)
432 
433   return boolean;
434 
435 --+=====================================================================
436 -- Function: display_debug_message2
437 --
438 --  This function will be called to display debug message
439 --  This is for p_track_member_table
440 --+=====================================================================
441 
442 FUNCTION display_debug_message2(i                  in number,
443                                 p_calling_fn       in varchar2,
444 				p_log_level_rec      IN     FA_API_TYPES.log_level_rec_type default null)
445 
446   return boolean;
447 
448 --+=====================================================================
449 -- Function: copy_member_table
450 --
451 --  This function will be called to backup the memory table
452 --  restore backuped memory table
453 --
454 --+=====================================================================
455 
456 FUNCTION copy_member_table(p_backup_restore        in varchar2,
457                            p_current_fiscal_year   in number default NULL,
458                            p_current_period_num    in number default NULL,
459 			   p_log_level_rec      IN     FA_API_TYPES.log_level_rec_type default null)
460 
461   return boolean;
462 
463 --+=====================================================================
464 -- Function: create_update_books_summary
465 --
466 --  This function will be called to insert row into fa_books_summary if not exists
467 --  update fa_books_summary row if exists
468 --
469 --+=====================================================================
470 
471 FUNCTION create_update_bs_table(p_trans_rec         in FA_API_TYPES.trans_rec_type,
472                                 p_book_type_code    in varchar2,
473                                 p_group_asset_id    in varchar2,
474                                 p_mrc_sob_type_code in varchar2 default 'N',
475                                 p_calling_fn        in varchar2,
476 				p_log_level_rec      IN     FA_API_TYPES.log_level_rec_type default null)
477 
478   return boolean;
479 
480 --+=====================================================================
481 -- Function: override_member_amount
482 --
483 --  This function will be called to override deprn amount of member assets
484 --  This is called only when populate_member_assets_table calls
485 --
486 --+=====================================================================
487 
488 FUNCTION override_member_amount(p_book_type_code        in varchar2,
489                                 p_member_asset_id       in number,
490                                 p_fiscal_year           in number,
491                                 p_period_num            in number,
492                                 p_ytd_deprn             in number,
493                                 p_bonus_ytd_deprn       in number,
494                                 x_override_deprn_amount out nocopy number,
495                                 x_override_bonus_amount out nocopy number,
496                                 x_deprn_override_flag   out nocopy varchar2,
497                                 p_calling_fn            in varchar2,
498                                 p_mrc_sob_type_code     in varchar2,
499                                 p_recoverable_cost      in number default null,
500                                 p_salvage_value         in number default null,
501 				p_log_level_rec      IN     FA_API_TYPES.log_level_rec_type default null)
502 
503   return boolean;
504 
505 
506 END FA_TRACK_MEMBER_PVT;