DBA Data[Home] [Help]

PACKAGE BODY: APPS.FA_UTIL_PVT

Source


1 PACKAGE BODY FA_UTIL_PVT as
2 /* $Header: FAVUTILB.pls 120.32.12020000.2 2012/10/19 07:11:38 saalampa ship $   */
3 
4 FUNCTION get_asset_fin_rec
5    (p_asset_hdr_rec         IN     FA_API_TYPES.asset_hdr_rec_type,
6     px_asset_fin_rec        IN OUT NOCOPY FA_API_TYPES.asset_fin_rec_type,
7     p_transaction_header_id IN     FA_BOOKS.TRANSACTION_HEADER_ID_IN%TYPE DEFAULT NULL,
8     p_mrc_sob_type_code     IN     VARCHAR2
9     , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type default null
10     ) RETURN BOOLEAN IS
11 
12   error_found        EXCEPTION;
13 
14 BEGIN
15 
16    if (p_transaction_header_id is null) then
17       if (nvl(p_mrc_sob_type_code, 'P') = 'R') then
18 
19 
20          select date_placed_in_service        ,
21                 deprn_start_date              ,
22                 deprn_method_code             ,
23                 life_in_months                ,
24                 rate_adjustment_factor        ,
25                 adjusted_cost                 ,
26                 cost                          ,
27                 original_cost                 ,
28                 salvage_value                 ,
29                 prorate_convention_code       ,
30                 prorate_date                  ,
31                 cost_change_flag              ,
32                 adjustment_required_status    ,
33                 capitalize_flag               ,
34                 retirement_pending_flag       ,
35                 depreciate_flag               ,
36                 disabled_flag                 , /* HH group ed */
37                 itc_amount_id                 ,
38                 itc_amount                    ,
39                 retirement_id                 ,
40                 tax_request_id                ,
41                 itc_basis                     ,
42                 basic_rate                    ,
43                 adjusted_rate                 ,
44                 bonus_rule                    ,
45                 ceiling_name                  ,
46                 recoverable_cost              ,
47                 adjusted_capacity             ,
48                 fully_rsvd_revals_counter     ,
49                 idled_flag                    ,
50                 period_counter_capitalized    ,
51                 period_counter_fully_reserved ,
52                 period_counter_fully_retired  ,
53                 production_capacity           ,
54                 reval_amortization_basis      ,
55                 reval_ceiling                 ,
56                 unit_of_measure               ,
57                 unrevalued_cost               ,
58                 annual_deprn_rounding_flag    ,
59                 percent_salvage_value         ,
60                 allowed_deprn_limit           ,
61                 allowed_deprn_limit_amount    ,
62                 period_counter_life_complete  ,
63                 adjusted_recoverable_cost     ,
64                 annual_rounding_flag          ,
65                 eofy_adj_cost                 ,
66                 eofy_formula_factor           ,
67                 short_fiscal_year_flag        ,
68                 conversion_date               ,
69                 ORIGINAL_DEPRN_START_DATE     ,
70                 remaining_life1               ,
71                 remaining_life2               ,
72                 group_asset_id                ,
73                 old_adjusted_cost             ,
74                 formula_factor                ,
75                 global_attribute1             ,
76                 global_attribute2             ,
77                 global_attribute3             ,
78                 global_attribute4             ,
79                 global_attribute5             ,
80                 global_attribute6             ,
81                 global_attribute7             ,
82                 global_attribute8             ,
83                 global_attribute9             ,
84                 global_attribute10            ,
85                 global_attribute11            ,
86                 global_attribute12            ,
87                 global_attribute13            ,
88                 global_attribute14            ,
89                 global_attribute15            ,
90                 global_attribute16            ,
91                 global_attribute17            ,
92                 global_attribute18            ,
93                 global_attribute19            ,
94                 global_attribute20            ,
95                 global_attribute_category     ,
96                 salvage_type                  ,
97                 deprn_limit_type              ,
98                 over_depreciate_option        ,
99                 super_group_id                ,
100                 reduction_rate                ,
101                 reduce_addition_flag          ,
102                 reduce_adjustment_flag        ,
103                 reduce_retirement_flag        ,
104                 recognize_gain_loss           ,
105                 recapture_reserve_flag        ,
106                 limit_proceeds_flag           ,
107                 terminal_gain_loss            ,
108                 tracking_method               ,
109                 allocate_to_fully_rsv_flag    ,
110                 allocate_to_fully_ret_flag    ,
111                 exclude_fully_rsv_flag        ,
112                 excess_allocation_option      ,
113                 depreciation_option           ,
114                 member_rollup_flag            ,
115                 ytd_proceeds                  ,
116                 ltd_proceeds                  ,
117                 eofy_reserve                  ,
118                 cip_cost                      ,
119                 terminal_gain_loss_amount     ,
120                 ltd_cost_of_removal           ,
121                 exclude_proceeds_from_basis   ,
122                 retirement_deprn_option       ,
123 		contract_id                   ,  /* Bug8240522 */
124                 cash_generating_unit_id       ,
125 		rate_in_use                      --phase5 fetching rate_in_use also
126            into px_asset_fin_rec.date_placed_in_service        ,
127                 px_asset_fin_rec.deprn_start_date              ,
128                 px_asset_fin_rec.deprn_method_code             ,
129                 px_asset_fin_rec.life_in_months                ,
130                 px_asset_fin_rec.rate_adjustment_factor        ,
131                 px_asset_fin_rec.adjusted_cost                 ,
132                 px_asset_fin_rec.cost                          ,
133                 px_asset_fin_rec.original_cost                 ,
134                 px_asset_fin_rec.salvage_value                 ,
135                 px_asset_fin_rec.prorate_convention_code       ,
136                 px_asset_fin_rec.prorate_date                  ,
137                 px_asset_fin_rec.cost_change_flag              ,
138                 px_asset_fin_rec.adjustment_required_status    ,
139                 px_asset_fin_rec.capitalize_flag               ,
140                 px_asset_fin_rec.retirement_pending_flag       ,
141                 px_asset_fin_rec.depreciate_flag               ,
142                 px_asset_fin_rec.disabled_flag                 , /* HH group ed */
143                 px_asset_fin_rec.itc_amount_id                 ,
144                 px_asset_fin_rec.itc_amount                    ,
145                 px_asset_fin_rec.retirement_id                 ,
146                 px_asset_fin_rec.tax_request_id                ,
147                 px_asset_fin_rec.itc_basis                     ,
148                 px_asset_fin_rec.basic_rate                    ,
149                 px_asset_fin_rec.adjusted_rate                 ,
150                 px_asset_fin_rec.bonus_rule                    ,
151                 px_asset_fin_rec.ceiling_name                  ,
152                 px_asset_fin_rec.recoverable_cost              ,
153                 px_asset_fin_rec.adjusted_capacity             ,
154                 px_asset_fin_rec.fully_rsvd_revals_counter     ,
155                 px_asset_fin_rec.idled_flag                    ,
156                 px_asset_fin_rec.period_counter_capitalized    ,
157                 px_asset_fin_rec.period_counter_fully_reserved ,
158                 px_asset_fin_rec.period_counter_fully_retired  ,
159                 px_asset_fin_rec.production_capacity           ,
160                 px_asset_fin_rec.reval_amortization_basis      ,
161                 px_asset_fin_rec.reval_ceiling                 ,
162                 px_asset_fin_rec.unit_of_measure               ,
163                 px_asset_fin_rec.unrevalued_cost               ,
164                 px_asset_fin_rec.annual_deprn_rounding_flag    ,
165                 px_asset_fin_rec.percent_salvage_value         ,
166                 px_asset_fin_rec.allowed_deprn_limit           ,
167                 px_asset_fin_rec.allowed_deprn_limit_amount    ,
168                 px_asset_fin_rec.period_counter_life_complete  ,
169                 px_asset_fin_rec.adjusted_recoverable_cost     ,
170                 px_asset_fin_rec.annual_rounding_flag          ,
171                 px_asset_fin_rec.eofy_adj_cost                 ,
172                 px_asset_fin_rec.eofy_formula_factor           ,
173                 px_asset_fin_rec.short_fiscal_year_flag        ,
174                 px_asset_fin_rec.conversion_date               ,
175                 px_asset_fin_rec.orig_deprn_start_date         ,
176                 px_asset_fin_rec.remaining_life1               ,
177                 px_asset_fin_rec.remaining_life2               ,
178                 px_asset_fin_rec.group_asset_id                ,
179                 px_asset_fin_rec.old_adjusted_cost             ,
180                 px_asset_fin_rec.formula_factor                ,
181                 px_asset_fin_rec.global_attribute1            ,
182                 px_asset_fin_rec.global_attribute2            ,
183                 px_asset_fin_rec.global_attribute3            ,
184                 px_asset_fin_rec.global_attribute4            ,
185                 px_asset_fin_rec.global_attribute5            ,
186                 px_asset_fin_rec.global_attribute6            ,
187                 px_asset_fin_rec.global_attribute7            ,
188                 px_asset_fin_rec.global_attribute8            ,
189                 px_asset_fin_rec.global_attribute9            ,
190                 px_asset_fin_rec.global_attribute10           ,
191                 px_asset_fin_rec.global_attribute11           ,
192                 px_asset_fin_rec.global_attribute12           ,
193                 px_asset_fin_rec.global_attribute13           ,
194                 px_asset_fin_rec.global_attribute14           ,
195                 px_asset_fin_rec.global_attribute15           ,
196                 px_asset_fin_rec.global_attribute16           ,
197                 px_asset_fin_rec.global_attribute17           ,
198                 px_asset_fin_rec.global_attribute18           ,
199                 px_asset_fin_rec.global_attribute19           ,
200                 px_asset_fin_rec.global_attribute20           ,
201                 px_asset_fin_rec.global_attribute_category    ,
202                 px_asset_fin_rec.salvage_type                 ,
203                 px_asset_fin_rec.deprn_limit_type             ,
204                 px_asset_fin_rec.over_depreciate_option       ,
205                 px_asset_fin_rec.super_group_id               ,
206                 px_asset_fin_rec.reduction_rate               ,
207                 px_asset_fin_rec.reduce_addition_flag         ,
208                 px_asset_fin_rec.reduce_adjustment_flag       ,
209                 px_asset_fin_rec.reduce_retirement_flag       ,
210                 px_asset_fin_rec.recognize_gain_loss          ,
211                 px_asset_fin_rec.recapture_reserve_flag       ,
212                 px_asset_fin_rec.limit_proceeds_flag          ,
213                 px_asset_fin_rec.terminal_gain_loss           ,
214                 px_asset_fin_rec.tracking_method              ,
215                 px_asset_fin_rec.allocate_to_fully_rsv_flag   ,
216                 px_asset_fin_rec.allocate_to_fully_ret_flag   ,
217                 px_asset_fin_rec.exclude_fully_rsv_flag       ,
218                 px_asset_fin_rec.excess_allocation_option     ,
219                 px_asset_fin_rec.depreciation_option          ,
220                 px_asset_fin_rec.member_rollup_flag           ,
221                 px_asset_fin_rec.ytd_proceeds                 ,
222                 px_asset_fin_rec.ltd_proceeds                 ,
223                 px_asset_fin_rec.eofy_reserve                 ,
224                 px_asset_fin_rec.cip_cost                     ,
225                 px_asset_fin_rec.terminal_gain_loss_amount    ,
226                 px_asset_fin_rec.ltd_cost_of_removal          ,
227                 px_asset_fin_rec.exclude_proceeds_from_basis  ,
228                 px_asset_fin_rec.retirement_deprn_option      ,
229 		px_asset_fin_rec.contract_id                  ,  /* Bug8240522 */
230                 px_asset_fin_rec.cash_generating_unit_id      ,
231 		px_asset_fin_rec.rate_in_use                     --phase5
232            from fa_mc_books
233           where asset_id                         = p_asset_hdr_rec.asset_id
234             and book_type_code                   = p_asset_hdr_rec.book_type_code
235             and transaction_header_id_out      is null
236             and set_of_books_id                  = p_asset_hdr_rec.set_of_books_id;
237 
238       else
239          select date_placed_in_service        ,
240                 deprn_start_date              ,
241                 deprn_method_code             ,
242                 life_in_months                ,
243                 rate_adjustment_factor        ,
244                 adjusted_cost                 ,
245                 cost                          ,
246                 original_cost                 ,
247                 salvage_value                 ,
248                 prorate_convention_code       ,
249                 prorate_date                  ,
250                 cost_change_flag              ,
251                 adjustment_required_status    ,
252                 capitalize_flag               ,
253                 retirement_pending_flag       ,
254                 depreciate_flag               ,
255                 disabled_flag                 , /* HH group ed */
256                 itc_amount_id                 ,
257                 itc_amount                    ,
258                 retirement_id                 ,
259                 tax_request_id                ,
260                 itc_basis                     ,
261                 basic_rate                    ,
262                 adjusted_rate                 ,
263                 bonus_rule                    ,
264                 ceiling_name                  ,
265                 recoverable_cost              ,
266                 adjusted_capacity             ,
267                 fully_rsvd_revals_counter     ,
268                 idled_flag                    ,
269                 period_counter_capitalized    ,
270                 period_counter_fully_reserved ,
271                 period_counter_fully_retired  ,
272                 production_capacity           ,
273                 reval_amortization_basis      ,
274                 reval_ceiling                 ,
275                 unit_of_measure               ,
276                 unrevalued_cost               ,
277                 annual_deprn_rounding_flag    ,
278                 percent_salvage_value         ,
279                 allowed_deprn_limit           ,
280                 allowed_deprn_limit_amount    ,
281                 period_counter_life_complete  ,
282                 adjusted_recoverable_cost     ,
283                 annual_rounding_flag          ,
284                 eofy_adj_cost                 ,
285                 eofy_formula_factor           ,
286                 short_fiscal_year_flag        ,
287                 conversion_date               ,
288                 ORIGINAL_DEPRN_START_DATE     ,
289                 remaining_life1               ,
290                 remaining_life2               ,
291                 group_asset_id                ,
292                 old_adjusted_cost             ,
293                 formula_factor                ,
294                 global_attribute1             ,
295                 global_attribute2             ,
296                 global_attribute3             ,
297                 global_attribute4             ,
298                 global_attribute5             ,
299                 global_attribute6             ,
300                 global_attribute7             ,
301                 global_attribute8             ,
302                 global_attribute9             ,
303                 global_attribute10            ,
304                 global_attribute11            ,
305                 global_attribute12            ,
306                 global_attribute13            ,
307                 global_attribute14            ,
308                 global_attribute15            ,
309                 global_attribute16            ,
310                 global_attribute17            ,
311                 global_attribute18            ,
312                 global_attribute19            ,
313                 global_attribute20            ,
314                 global_attribute_category     ,
315                 salvage_type                  ,
316                 deprn_limit_type              ,
317                 over_depreciate_option        ,
318                 super_group_id                ,
319                 reduction_rate                ,
320                 reduce_addition_flag          ,
321                 reduce_adjustment_flag        ,
322                 reduce_retirement_flag        ,
323                 recognize_gain_loss           ,
324                 recapture_reserve_flag        ,
325                 limit_proceeds_flag           ,
326                 terminal_gain_loss            ,
327                 tracking_method               ,
328                 allocate_to_fully_rsv_flag    ,
329                 allocate_to_fully_ret_flag    ,
330                 exclude_fully_rsv_flag        ,
331                 excess_allocation_option      ,
332                 depreciation_option           ,
333                 member_rollup_flag            ,
334                 ytd_proceeds                  ,
335                 ltd_proceeds                  ,
336                 eofy_reserve                  ,
337                 cip_cost                      ,
338                 terminal_gain_loss_amount     ,
339                 ltd_cost_of_removal           ,
340                 exclude_proceeds_from_basis   ,
341                 retirement_deprn_option       ,
342 		contract_id                   ,  /* Bug8240522 */
343                 cash_generating_unit_id       ,
344 		extended_deprn_flag           ,   -- Japan Tax phase3
345 		extended_depreciation_period  ,   -- Japan Tax phase3
346 		period_counter_fully_extended ,    -- Japan Bug 6645061
347 		nbv_at_switch		      ,    -- -- Changes made as per the ER No.s 6606548 and 6606552 by Sbyreddy Start
348 		prior_deprn_limit_type	      ,
349 		prior_deprn_limit_amount      ,
350 		prior_deprn_limit	      ,
351 		prior_deprn_method	      ,
352 		prior_life_in_months	      ,
353 		prior_basic_rate	      ,
354                 prior_adjusted_rate           ,       -- Changes made as per the ER No.s 6606548 and 6606552 by Sbyreddy End
355                 rate_in_use                           --phase5
356 	   into px_asset_fin_rec.date_placed_in_service        ,
357                 px_asset_fin_rec.deprn_start_date              ,
358                 px_asset_fin_rec.deprn_method_code             ,
359                 px_asset_fin_rec.life_in_months                ,
360                 px_asset_fin_rec.rate_adjustment_factor        ,
361                 px_asset_fin_rec.adjusted_cost                 ,
362                 px_asset_fin_rec.cost                          ,
363                 px_asset_fin_rec.original_cost                 ,
364                 px_asset_fin_rec.salvage_value                 ,
365                 px_asset_fin_rec.prorate_convention_code       ,
366                 px_asset_fin_rec.prorate_date                  ,
367                 px_asset_fin_rec.cost_change_flag              ,
368                 px_asset_fin_rec.adjustment_required_status    ,
369                 px_asset_fin_rec.capitalize_flag               ,
370                 px_asset_fin_rec.retirement_pending_flag       ,
371                 px_asset_fin_rec.depreciate_flag               ,
372                 px_asset_fin_rec.disabled_flag                 , /* HH group ed */
373                 px_asset_fin_rec.itc_amount_id                 ,
374                 px_asset_fin_rec.itc_amount                    ,
375                 px_asset_fin_rec.retirement_id                 ,
376                 px_asset_fin_rec.tax_request_id                ,
377                 px_asset_fin_rec.itc_basis                     ,
378                 px_asset_fin_rec.basic_rate                    ,
379                 px_asset_fin_rec.adjusted_rate                 ,
380                 px_asset_fin_rec.bonus_rule                    ,
381                 px_asset_fin_rec.ceiling_name                  ,
382                 px_asset_fin_rec.recoverable_cost              ,
383                 px_asset_fin_rec.adjusted_capacity             ,
384                 px_asset_fin_rec.fully_rsvd_revals_counter     ,
385                 px_asset_fin_rec.idled_flag                    ,
386                 px_asset_fin_rec.period_counter_capitalized    ,
387                 px_asset_fin_rec.period_counter_fully_reserved ,
388                 px_asset_fin_rec.period_counter_fully_retired  ,
389                 px_asset_fin_rec.production_capacity           ,
390                 px_asset_fin_rec.reval_amortization_basis      ,
391                 px_asset_fin_rec.reval_ceiling                 ,
392                 px_asset_fin_rec.unit_of_measure               ,
393                 px_asset_fin_rec.unrevalued_cost               ,
394                 px_asset_fin_rec.annual_deprn_rounding_flag    ,
395                 px_asset_fin_rec.percent_salvage_value         ,
396                 px_asset_fin_rec.allowed_deprn_limit           ,
397                 px_asset_fin_rec.allowed_deprn_limit_amount    ,
398                 px_asset_fin_rec.period_counter_life_complete  ,
399                 px_asset_fin_rec.adjusted_recoverable_cost     ,
400                 px_asset_fin_rec.annual_rounding_flag          ,
401                 px_asset_fin_rec.eofy_adj_cost                 ,
402                 px_asset_fin_rec.eofy_formula_factor           ,
403                 px_asset_fin_rec.short_fiscal_year_flag        ,
404                 px_asset_fin_rec.conversion_date               ,
405                 px_asset_fin_rec.orig_deprn_start_date         ,
406                 px_asset_fin_rec.remaining_life1               ,
407                 px_asset_fin_rec.remaining_life2               ,
408                 px_asset_fin_rec.group_asset_id                ,
409                 px_asset_fin_rec.old_adjusted_cost             ,
410                 px_asset_fin_rec.formula_factor                ,
411                 px_asset_fin_rec.global_attribute1            ,
412                 px_asset_fin_rec.global_attribute2            ,
413                 px_asset_fin_rec.global_attribute3            ,
414                 px_asset_fin_rec.global_attribute4            ,
415                 px_asset_fin_rec.global_attribute5            ,
416                 px_asset_fin_rec.global_attribute6            ,
417                 px_asset_fin_rec.global_attribute7            ,
418                 px_asset_fin_rec.global_attribute8            ,
419                 px_asset_fin_rec.global_attribute9            ,
420                 px_asset_fin_rec.global_attribute10           ,
421                 px_asset_fin_rec.global_attribute11           ,
422                 px_asset_fin_rec.global_attribute12           ,
423                 px_asset_fin_rec.global_attribute13           ,
424                 px_asset_fin_rec.global_attribute14           ,
425                 px_asset_fin_rec.global_attribute15           ,
426                 px_asset_fin_rec.global_attribute16           ,
427                 px_asset_fin_rec.global_attribute17           ,
428                 px_asset_fin_rec.global_attribute18           ,
429                 px_asset_fin_rec.global_attribute19           ,
430                 px_asset_fin_rec.global_attribute20           ,
431                 px_asset_fin_rec.global_attribute_category    ,
432                 px_asset_fin_rec.salvage_type                 ,
433                 px_asset_fin_rec.deprn_limit_type             ,
434                 px_asset_fin_rec.over_depreciate_option       ,
435                 px_asset_fin_rec.super_group_id               ,
436                 px_asset_fin_rec.reduction_rate               ,
437                 px_asset_fin_rec.reduce_addition_flag         ,
438                 px_asset_fin_rec.reduce_adjustment_flag       ,
439                 px_asset_fin_rec.reduce_retirement_flag       ,
440                 px_asset_fin_rec.recognize_gain_loss          ,
441                 px_asset_fin_rec.recapture_reserve_flag       ,
442                 px_asset_fin_rec.limit_proceeds_flag          ,
443                 px_asset_fin_rec.terminal_gain_loss           ,
444                 px_asset_fin_rec.tracking_method              ,
445                 px_asset_fin_rec.allocate_to_fully_rsv_flag   ,
446                 px_asset_fin_rec.allocate_to_fully_ret_flag   ,
447                 px_asset_fin_rec.exclude_fully_rsv_flag       ,
448                 px_asset_fin_rec.excess_allocation_option     ,
449                 px_asset_fin_rec.depreciation_option          ,
450                 px_asset_fin_rec.member_rollup_flag           ,
451                 px_asset_fin_rec.ytd_proceeds                 ,
452                 px_asset_fin_rec.ltd_proceeds                 ,
453                 px_asset_fin_rec.eofy_reserve                  ,
454                 px_asset_fin_rec.cip_cost                     ,
455                 px_asset_fin_rec.terminal_gain_loss_amount    ,
456                 px_asset_fin_rec.ltd_cost_of_removal          ,
457                 px_asset_fin_rec.exclude_proceeds_from_basis  ,
458                 px_asset_fin_rec.retirement_deprn_option      ,
459 		px_asset_fin_rec.contract_id                  ,  /* Bug8240522 */
460                 px_asset_fin_rec.cash_generating_unit_id      ,
461 		px_asset_fin_rec.extended_deprn_flag          ,   -- Japan Tax phase3
462 		px_asset_fin_rec.extended_depreciation_period ,   -- Japan Tax phase3
463                 px_asset_fin_rec.period_counter_fully_extended ,   -- Japan Bug 6645061
464 		px_asset_fin_rec.nbv_at_switch		      ,    -- -- Changes made as per the ER No.s 6606548 and 6606552 by Sbyreddy Start
465 		px_asset_fin_rec.prior_deprn_limit_type	      ,
466 		px_asset_fin_rec.prior_deprn_limit_amount      ,
467 		px_asset_fin_rec.prior_deprn_limit	      ,
468 		px_asset_fin_rec.prior_deprn_method	      ,
469 		px_asset_fin_rec.prior_life_in_months	      ,
470 		px_asset_fin_rec.prior_basic_rate	      ,
471                 px_asset_fin_rec.prior_adjusted_rate          ,       -- Changes made as per the ER No.s 6606548 and 6606552 by Sbyreddy End
472                 px_asset_fin_rec.rate_in_use                          --phase5
473 	   from fa_books
474           where asset_id                         = p_asset_hdr_rec.asset_id
475             and book_type_code                   = p_asset_hdr_rec.book_type_code
476             and transaction_header_id_out      is null;
477 
478        end if;
479 
480     else
481       if (nvl(p_mrc_sob_type_code, 'P') = 'R') then
482 
483          select date_placed_in_service        ,
484                 deprn_start_date              ,
485                 deprn_method_code             ,
486                 life_in_months                ,
487                 rate_adjustment_factor        ,
488                 adjusted_cost                 ,
489                 cost                          ,
490                 original_cost                 ,
491                 salvage_value                 ,
492                 prorate_convention_code       ,
493                 prorate_date                  ,
494                 cost_change_flag              ,
495                 adjustment_required_status    ,
496                 capitalize_flag               ,
497                 retirement_pending_flag       ,
498                 depreciate_flag               ,
499                 disabled_flag                 , /* HH group ed */
500                 itc_amount_id                 ,
501                 itc_amount                    ,
502                 retirement_id                 ,
503                 tax_request_id                ,
504                 itc_basis                     ,
505                 basic_rate                    ,
506                 adjusted_rate                 ,
507                 bonus_rule                    ,
508                 ceiling_name                  ,
509                 recoverable_cost              ,
510                 adjusted_capacity             ,
511                 fully_rsvd_revals_counter     ,
512                 idled_flag                    ,
513                 period_counter_capitalized    ,
514                 period_counter_fully_reserved ,
515                 period_counter_fully_retired  ,
516                 production_capacity           ,
517                 reval_amortization_basis      ,
518                 reval_ceiling                 ,
519                 unit_of_measure               ,
520                 unrevalued_cost               ,
521                 annual_deprn_rounding_flag    ,
522                 percent_salvage_value         ,
523                 allowed_deprn_limit           ,
524                 allowed_deprn_limit_amount    ,
525                 period_counter_life_complete  ,
526                 adjusted_recoverable_cost     ,
527                 annual_rounding_flag          ,
528                 eofy_adj_cost                 ,
529                 eofy_formula_factor           ,
530                 short_fiscal_year_flag        ,
531                 conversion_date               ,
532                 ORIGINAL_DEPRN_START_DATE     ,
533                 remaining_life1               ,
534                 remaining_life2               ,
535                 group_asset_id                ,
536                 old_adjusted_cost             ,
537                 formula_factor                ,
538                 global_attribute1             ,
539                 global_attribute2             ,
540                 global_attribute3             ,
541                 global_attribute4             ,
542                 global_attribute5             ,
543                 global_attribute6             ,
544                 global_attribute7             ,
545                 global_attribute8             ,
546                 global_attribute9             ,
547                 global_attribute10            ,
548                 global_attribute11            ,
549                 global_attribute12            ,
550                 global_attribute13            ,
551                 global_attribute14            ,
552                 global_attribute15            ,
553                 global_attribute16            ,
554                 global_attribute17            ,
555                 global_attribute18            ,
556                 global_attribute19            ,
557                 global_attribute20            ,
558                 global_attribute_category     ,
559                 salvage_type                  ,
560                 deprn_limit_type              ,
561                 over_depreciate_option        ,
562                 super_group_id                ,
563                 reduction_rate                ,
564                 reduce_addition_flag          ,
565                 reduce_adjustment_flag        ,
566                 reduce_retirement_flag        ,
567                 recognize_gain_loss           ,
568                 recapture_reserve_flag        ,
569                 limit_proceeds_flag           ,
570                 terminal_gain_loss            ,
571                 tracking_method               ,
572                 allocate_to_fully_rsv_flag    ,
573                 allocate_to_fully_ret_flag    ,
574                 exclude_fully_rsv_flag        ,
575                 excess_allocation_option      ,
576                 depreciation_option           ,
577                 member_rollup_flag            ,
578                 ytd_proceeds                  ,
579                 ltd_proceeds                  ,
580                 eofy_reserve                  ,
581                 cip_cost                      ,
582                 terminal_gain_loss_amount     ,
583                 ltd_cost_of_removal           ,
584                 exclude_proceeds_from_basis   ,
585                 retirement_deprn_option       ,
586 		contract_id                   ,  /* Bug8240522 */
587                 cash_generating_unit_id       ,
588 		rate_in_use                      --phase5
589            into px_asset_fin_rec.date_placed_in_service        ,
590                 px_asset_fin_rec.deprn_start_date              ,
591                 px_asset_fin_rec.deprn_method_code             ,
592                 px_asset_fin_rec.life_in_months                ,
593                 px_asset_fin_rec.rate_adjustment_factor        ,
594                 px_asset_fin_rec.adjusted_cost                 ,
595                 px_asset_fin_rec.cost                          ,
596                 px_asset_fin_rec.original_cost                 ,
597                 px_asset_fin_rec.salvage_value                 ,
598                 px_asset_fin_rec.prorate_convention_code       ,
599                 px_asset_fin_rec.prorate_date                  ,
600                 px_asset_fin_rec.cost_change_flag              ,
601                 px_asset_fin_rec.adjustment_required_status    ,
602                 px_asset_fin_rec.capitalize_flag               ,
603                 px_asset_fin_rec.retirement_pending_flag       ,
604                 px_asset_fin_rec.depreciate_flag               ,
605                 px_asset_fin_rec.disabled_flag                 , /* HH group ed */
606                 px_asset_fin_rec.itc_amount_id                 ,
607                 px_asset_fin_rec.itc_amount                    ,
608                 px_asset_fin_rec.retirement_id                 ,
609                 px_asset_fin_rec.tax_request_id                ,
610                 px_asset_fin_rec.itc_basis                     ,
611                 px_asset_fin_rec.basic_rate                    ,
612                 px_asset_fin_rec.adjusted_rate                 ,
613                 px_asset_fin_rec.bonus_rule                    ,
614                 px_asset_fin_rec.ceiling_name                  ,
615                 px_asset_fin_rec.recoverable_cost              ,
616                 px_asset_fin_rec.adjusted_capacity             ,
617                 px_asset_fin_rec.fully_rsvd_revals_counter     ,
618                 px_asset_fin_rec.idled_flag                    ,
619                 px_asset_fin_rec.period_counter_capitalized    ,
620                 px_asset_fin_rec.period_counter_fully_reserved ,
621                 px_asset_fin_rec.period_counter_fully_retired  ,
622                 px_asset_fin_rec.production_capacity           ,
623                 px_asset_fin_rec.reval_amortization_basis      ,
624                 px_asset_fin_rec.reval_ceiling                 ,
625                 px_asset_fin_rec.unit_of_measure               ,
626                 px_asset_fin_rec.unrevalued_cost               ,
627                 px_asset_fin_rec.annual_deprn_rounding_flag    ,
628                 px_asset_fin_rec.percent_salvage_value         ,
629                 px_asset_fin_rec.allowed_deprn_limit           ,
630                 px_asset_fin_rec.allowed_deprn_limit_amount    ,
631                 px_asset_fin_rec.period_counter_life_complete  ,
632                 px_asset_fin_rec.adjusted_recoverable_cost     ,
633                 px_asset_fin_rec.annual_rounding_flag          ,
634                 px_asset_fin_rec.eofy_adj_cost                 ,
635                 px_asset_fin_rec.eofy_formula_factor           ,
636                 px_asset_fin_rec.short_fiscal_year_flag        ,
637                 px_asset_fin_rec.conversion_date               ,
638                 px_asset_fin_rec.orig_deprn_start_date         ,
639                 px_asset_fin_rec.remaining_life1               ,
640                 px_asset_fin_rec.remaining_life2               ,
641                 px_asset_fin_rec.group_asset_id                ,
642                 px_asset_fin_rec.old_adjusted_cost             ,
643                 px_asset_fin_rec.formula_factor                ,
644                 px_asset_fin_rec.global_attribute1            ,
645                 px_asset_fin_rec.global_attribute2            ,
646                 px_asset_fin_rec.global_attribute3            ,
647                 px_asset_fin_rec.global_attribute4            ,
648                 px_asset_fin_rec.global_attribute5            ,
649                 px_asset_fin_rec.global_attribute6            ,
650                 px_asset_fin_rec.global_attribute7            ,
651                 px_asset_fin_rec.global_attribute8            ,
652                 px_asset_fin_rec.global_attribute9            ,
653                 px_asset_fin_rec.global_attribute10           ,
654                 px_asset_fin_rec.global_attribute11           ,
655                 px_asset_fin_rec.global_attribute12           ,
656                 px_asset_fin_rec.global_attribute13           ,
657                 px_asset_fin_rec.global_attribute14           ,
658                 px_asset_fin_rec.global_attribute15           ,
659                 px_asset_fin_rec.global_attribute16           ,
660                 px_asset_fin_rec.global_attribute17           ,
661                 px_asset_fin_rec.global_attribute18           ,
662                 px_asset_fin_rec.global_attribute19           ,
663                 px_asset_fin_rec.global_attribute20           ,
664                 px_asset_fin_rec.global_attribute_category    ,
665                 px_asset_fin_rec.salvage_type                 ,
666                 px_asset_fin_rec.deprn_limit_type             ,
667                 px_asset_fin_rec.over_depreciate_option       ,
668                 px_asset_fin_rec.super_group_id               ,
669                 px_asset_fin_rec.reduction_rate               ,
670                 px_asset_fin_rec.reduce_addition_flag         ,
671                 px_asset_fin_rec.reduce_adjustment_flag       ,
672                 px_asset_fin_rec.reduce_retirement_flag       ,
673                 px_asset_fin_rec.recognize_gain_loss          ,
674                 px_asset_fin_rec.recapture_reserve_flag       ,
675                 px_asset_fin_rec.limit_proceeds_flag          ,
676                 px_asset_fin_rec.terminal_gain_loss           ,
677                 px_asset_fin_rec.tracking_method              ,
678                 px_asset_fin_rec.allocate_to_fully_rsv_flag   ,
679                 px_asset_fin_rec.allocate_to_fully_ret_flag   ,
680                 px_asset_fin_rec.exclude_fully_rsv_flag       ,
681                 px_asset_fin_rec.excess_allocation_option     ,
682                 px_asset_fin_rec.depreciation_option          ,
683                 px_asset_fin_rec.member_rollup_flag           ,
684                 px_asset_fin_rec.ytd_proceeds                 ,
685                 px_asset_fin_rec.ltd_proceeds                 ,
686                 px_asset_fin_rec.eofy_reserve                 ,
687                 px_asset_fin_rec.cip_cost                     ,
688                 px_asset_fin_rec.terminal_gain_loss_amount    ,
689                 px_asset_fin_rec.ltd_cost_of_removal          ,
690                 px_asset_fin_rec.exclude_proceeds_from_basis  ,
691                 px_asset_fin_rec.retirement_deprn_option      ,
692 		px_asset_fin_rec.contract_id                  ,  /* Bug8240522 */
693                 px_asset_fin_rec.cash_generating_unit_id      ,
694 		px_asset_fin_rec.rate_in_use                     --phase5
695            from fa_mc_books
696           where asset_id                         = p_asset_hdr_rec.asset_id
697             and book_type_code                   = p_asset_hdr_rec.book_type_code
698             and transaction_header_id_in         = p_transaction_header_id
699             and set_of_books_id                  = p_asset_hdr_rec.set_of_books_id;
700       else
701          select date_placed_in_service        ,
702                 deprn_start_date              ,
703                 deprn_method_code             ,
704                 life_in_months                ,
705                 rate_adjustment_factor        ,
706                 adjusted_cost                 ,
707                 cost                          ,
708                 original_cost                 ,
709                 salvage_value                 ,
710                 prorate_convention_code       ,
711                 prorate_date                  ,
712                 cost_change_flag              ,
713                 adjustment_required_status    ,
714                 capitalize_flag               ,
715                 retirement_pending_flag       ,
716                 depreciate_flag               ,
717                 disabled_flag                 , /* HH group ed */
718                 itc_amount_id                 ,
719                 itc_amount                    ,
720                 retirement_id                 ,
721                 tax_request_id                ,
722                 itc_basis                     ,
723                 basic_rate                    ,
724                 adjusted_rate                 ,
725                 bonus_rule                    ,
726                 ceiling_name                  ,
727                 recoverable_cost              ,
728                 adjusted_capacity             ,
729                 fully_rsvd_revals_counter     ,
730                 idled_flag                    ,
731                 period_counter_capitalized    ,
732                 period_counter_fully_reserved ,
733                 period_counter_fully_retired  ,
734                 production_capacity           ,
735                 reval_amortization_basis      ,
736                 reval_ceiling                 ,
737                 unit_of_measure               ,
738                 unrevalued_cost               ,
739                 annual_deprn_rounding_flag    ,
740                 percent_salvage_value         ,
741                 allowed_deprn_limit           ,
742                 allowed_deprn_limit_amount    ,
743                 period_counter_life_complete  ,
744                 adjusted_recoverable_cost     ,
745                 annual_rounding_flag          ,
746                 eofy_adj_cost                 ,
747                 eofy_formula_factor           ,
748                 short_fiscal_year_flag        ,
749                 conversion_date               ,
750                 ORIGINAL_DEPRN_START_DATE     ,
751                 remaining_life1               ,
752                 remaining_life2               ,
753                 group_asset_id                ,
754                 old_adjusted_cost             ,
755                 formula_factor                ,
756                 global_attribute1             ,
757                 global_attribute2             ,
758                 global_attribute3             ,
759                 global_attribute4             ,
760                 global_attribute5             ,
761                 global_attribute6             ,
762                 global_attribute7             ,
763                 global_attribute8             ,
764                 global_attribute9             ,
765                 global_attribute10            ,
766                 global_attribute11            ,
767                 global_attribute12            ,
768                 global_attribute13            ,
769                 global_attribute14            ,
770                 global_attribute15            ,
771                 global_attribute16            ,
772                 global_attribute17            ,
773                 global_attribute18            ,
774                 global_attribute19            ,
775                 global_attribute20            ,
776                 global_attribute_category     ,
777                 salvage_type                  ,
778                 deprn_limit_type              ,
779                 over_depreciate_option        ,
780                 super_group_id                ,
781                 reduction_rate                ,
782                 reduce_addition_flag          ,
783                 reduce_adjustment_flag        ,
784                 reduce_retirement_flag        ,
785                 recognize_gain_loss           ,
786                 recapture_reserve_flag        ,
787                 limit_proceeds_flag           ,
788                 terminal_gain_loss            ,
789                 tracking_method               ,
790                 allocate_to_fully_rsv_flag    ,
791                 allocate_to_fully_ret_flag    ,
792                 exclude_fully_rsv_flag        ,
793                 excess_allocation_option      ,
794                 depreciation_option           ,
795                 member_rollup_flag            ,
796                 ytd_proceeds                  ,
797                 ltd_proceeds                  ,
798                 eofy_reserve                  ,
799                 cip_cost                      ,
800                 terminal_gain_loss_amount     ,
801                 ltd_cost_of_removal           ,
802                 exclude_proceeds_from_basis   ,
803                 retirement_deprn_option       ,
804 		contract_id                   ,  /* Bug8240522 */
805                 cash_generating_unit_id       ,
806 		extended_deprn_flag           ,   -- Japan Tax phase3
807 		extended_depreciation_period  ,   -- Japan Tax phase3
808                 period_counter_fully_extended     -- Japan Bug 6645061
809                 period_counter_fully_extended ,    -- Japan Bug 6645061
810 		nbv_at_switch		      ,    -- -- Changes made as per the ER No.s 6606548 and 6606552 by Sbyreddy Start
811 		prior_deprn_limit_type	      ,
812 		prior_deprn_limit_amount      ,
813 		prior_deprn_limit	      ,
814 		prior_deprn_method	      ,
815 		prior_life_in_months	      ,
816 		prior_basic_rate	      ,
817                 prior_adjusted_rate           ,      -- Changes made as per the ER No.s 6606548 and 6606552 by Sbyreddy End
818                 rate_in_use                          -- phase5
819 	   into px_asset_fin_rec.date_placed_in_service        ,
820                 px_asset_fin_rec.deprn_start_date              ,
821                 px_asset_fin_rec.deprn_method_code             ,
822                 px_asset_fin_rec.life_in_months                ,
823                 px_asset_fin_rec.rate_adjustment_factor        ,
824                 px_asset_fin_rec.adjusted_cost                 ,
825                 px_asset_fin_rec.cost                          ,
826                 px_asset_fin_rec.original_cost                 ,
827                 px_asset_fin_rec.salvage_value                 ,
828                 px_asset_fin_rec.prorate_convention_code       ,
829                 px_asset_fin_rec.prorate_date                  ,
830                 px_asset_fin_rec.cost_change_flag              ,
831                 px_asset_fin_rec.adjustment_required_status    ,
832                 px_asset_fin_rec.capitalize_flag               ,
833                 px_asset_fin_rec.retirement_pending_flag       ,
834                 px_asset_fin_rec.depreciate_flag               ,
835                 px_asset_fin_rec.disabled_flag                 , /* HH group ed */
836                 px_asset_fin_rec.itc_amount_id                 ,
837                 px_asset_fin_rec.itc_amount                    ,
838                 px_asset_fin_rec.retirement_id                 ,
839                 px_asset_fin_rec.tax_request_id                ,
840                 px_asset_fin_rec.itc_basis                     ,
841                 px_asset_fin_rec.basic_rate                    ,
842                 px_asset_fin_rec.adjusted_rate                 ,
843                 px_asset_fin_rec.bonus_rule                    ,
844                 px_asset_fin_rec.ceiling_name                  ,
845                 px_asset_fin_rec.recoverable_cost              ,
846                 px_asset_fin_rec.adjusted_capacity             ,
847                 px_asset_fin_rec.fully_rsvd_revals_counter     ,
848                 px_asset_fin_rec.idled_flag                    ,
849                 px_asset_fin_rec.period_counter_capitalized    ,
850                 px_asset_fin_rec.period_counter_fully_reserved ,
851                 px_asset_fin_rec.period_counter_fully_retired  ,
852                 px_asset_fin_rec.production_capacity           ,
853                 px_asset_fin_rec.reval_amortization_basis      ,
854                 px_asset_fin_rec.reval_ceiling                 ,
855                 px_asset_fin_rec.unit_of_measure               ,
856                 px_asset_fin_rec.unrevalued_cost               ,
857                 px_asset_fin_rec.annual_deprn_rounding_flag    ,
858                 px_asset_fin_rec.percent_salvage_value         ,
859                 px_asset_fin_rec.allowed_deprn_limit           ,
860                 px_asset_fin_rec.allowed_deprn_limit_amount    ,
861                 px_asset_fin_rec.period_counter_life_complete  ,
862                 px_asset_fin_rec.adjusted_recoverable_cost     ,
863                 px_asset_fin_rec.annual_rounding_flag          ,
864                 px_asset_fin_rec.eofy_adj_cost                 ,
865                 px_asset_fin_rec.eofy_formula_factor           ,
866                 px_asset_fin_rec.short_fiscal_year_flag        ,
867                 px_asset_fin_rec.conversion_date               ,
868                 px_asset_fin_rec.orig_deprn_start_date         ,
869                 px_asset_fin_rec.remaining_life1               ,
870                 px_asset_fin_rec.remaining_life2               ,
871                 px_asset_fin_rec.group_asset_id                ,
872                 px_asset_fin_rec.old_adjusted_cost             ,
873                 px_asset_fin_rec.formula_factor                ,
874                 px_asset_fin_rec.global_attribute1            ,
875                 px_asset_fin_rec.global_attribute2            ,
876                 px_asset_fin_rec.global_attribute3            ,
877                 px_asset_fin_rec.global_attribute4            ,
878                 px_asset_fin_rec.global_attribute5            ,
879                 px_asset_fin_rec.global_attribute6            ,
880                 px_asset_fin_rec.global_attribute7            ,
881                 px_asset_fin_rec.global_attribute8            ,
882                 px_asset_fin_rec.global_attribute9            ,
883                 px_asset_fin_rec.global_attribute10           ,
884                 px_asset_fin_rec.global_attribute11           ,
885                 px_asset_fin_rec.global_attribute12           ,
886                 px_asset_fin_rec.global_attribute13           ,
887                 px_asset_fin_rec.global_attribute14           ,
888                 px_asset_fin_rec.global_attribute15           ,
889                 px_asset_fin_rec.global_attribute16           ,
890                 px_asset_fin_rec.global_attribute17           ,
891                 px_asset_fin_rec.global_attribute18           ,
892                 px_asset_fin_rec.global_attribute19           ,
893                 px_asset_fin_rec.global_attribute20           ,
894                 px_asset_fin_rec.global_attribute_category    ,
895                 px_asset_fin_rec.salvage_type                 ,
896                 px_asset_fin_rec.deprn_limit_type             ,
897                 px_asset_fin_rec.over_depreciate_option       ,
898                 px_asset_fin_rec.super_group_id               ,
899                 px_asset_fin_rec.reduction_rate               ,
900                 px_asset_fin_rec.reduce_addition_flag         ,
901                 px_asset_fin_rec.reduce_adjustment_flag       ,
902                 px_asset_fin_rec.reduce_retirement_flag       ,
903                 px_asset_fin_rec.recognize_gain_loss          ,
904                 px_asset_fin_rec.recapture_reserve_flag       ,
905                 px_asset_fin_rec.limit_proceeds_flag          ,
906                 px_asset_fin_rec.terminal_gain_loss           ,
907                 px_asset_fin_rec.tracking_method              ,
908                 px_asset_fin_rec.allocate_to_fully_rsv_flag   ,
909                 px_asset_fin_rec.allocate_to_fully_ret_flag   ,
910                 px_asset_fin_rec.exclude_fully_rsv_flag       ,
911                 px_asset_fin_rec.excess_allocation_option     ,
912                 px_asset_fin_rec.depreciation_option          ,
913                 px_asset_fin_rec.member_rollup_flag           ,
914                 px_asset_fin_rec.ytd_proceeds                 ,
915                 px_asset_fin_rec.ltd_proceeds                 ,
916                 px_asset_fin_rec.eofy_reserve                 ,
917                 px_asset_fin_rec.cip_cost                     ,
918                 px_asset_fin_rec.terminal_gain_loss_amount    ,
919                 px_asset_fin_rec.ltd_cost_of_removal          ,
920                 px_asset_fin_rec.exclude_proceeds_from_basis  ,
921                 px_asset_fin_rec.retirement_deprn_option      ,
922 		px_asset_fin_rec.contract_id                  ,  /* Bug8240522 */
923                 px_asset_fin_rec.cash_generating_unit_id      ,
924 		px_asset_fin_rec.extended_deprn_flag          ,   -- Japan Tax phase3
925 		px_asset_fin_rec.extended_depreciation_period ,   -- Japan Tax phase3
926                 px_asset_fin_rec.period_counter_fully_extended ,   -- Japan Bug 6645061
927 		px_asset_fin_rec.nbv_at_switch		      ,   -- -- Changes made as per the ER No.s 6606548 and 6606552 by Sbyreddy Start
928 		px_asset_fin_rec.prior_deprn_limit_type	      ,
929 		px_asset_fin_rec.prior_deprn_limit_amount      ,
930 		px_asset_fin_rec.prior_deprn_limit	      ,
931 		px_asset_fin_rec.prior_deprn_method	      ,
932 		px_asset_fin_rec.prior_life_in_months	      ,
933 		px_asset_fin_rec.prior_basic_rate	      ,
934                 px_asset_fin_rec.prior_adjusted_rate          ,        -- Changes made as per the ER No.s 6606548 and 6606552 by Sbyreddy End
935                 px_asset_fin_rec.rate_in_use                           --phase5
936 	   from fa_books
937           where asset_id                         = p_asset_hdr_rec.asset_id
938             and book_type_code                   = p_asset_hdr_rec.book_type_code
939             and transaction_header_id_in         = p_transaction_header_id;
940 
941        end if;
942 
943 
944     end if; --(p_transaction_header_id is null)
945 
946     return true;
947 
948 EXCEPTION
949   when error_found then
950      fa_srvr_msg.add_message(calling_fn => 'fa_util_pvt.get_asset_fin_rec', p_log_level_rec => p_log_level_rec);
951      return false;
952 
953   when others then
954      fa_srvr_msg.add_sql_error(calling_fn => 'fa_util_pvt.get_asset_fin_rec', p_log_level_rec => p_log_level_rec);
955      return false;
956 
957 END get_asset_fin_rec;
958 
959 
960 FUNCTION get_asset_deprn_rec
961    (p_asset_hdr_rec         IN     FA_API_TYPES.asset_hdr_rec_type,
962     px_asset_deprn_rec      IN OUT NOCOPY FA_API_TYPES.asset_deprn_rec_type,
963     p_period_counter        IN     FA_DEPRN_SUMMARY.period_counter%TYPE DEFAULT NULL,
964     p_mrc_sob_type_code     IN     VARCHAR2
965     , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type default null
966     ) RETURN BOOLEAN IS
967 
968    l_dpr         FA_STD_TYPES.FA_DEPRN_ROW_STRUCT;
969    l_status      BOOLEAN;
970    error_found   EXCEPTION;
971 
972 BEGIN
973 
974    l_dpr.asset_id   := p_asset_hdr_rec.asset_id;
975    l_dpr.book       := p_asset_hdr_rec.book_type_code;
976    l_dpr.period_ctr := nvl(p_period_counter, 0);
977    l_dpr.dist_id    := 0;
978    l_dpr.mrc_sob_type_code := p_mrc_sob_type_code;
979    l_dpr.set_of_books_id := p_asset_hdr_rec.set_of_books_id;
980 
981    fa_query_balances_pkg.query_balances_int(
982                            X_DPR_ROW               => l_dpr,
983                            X_RUN_MODE              => 'STANDARD',
984                            X_DEBUG                 => FALSE,
985                            X_SUCCESS               => l_status,
986                            X_CALLING_FN            => 'FA_UTIL_PVT.get_asset_deprn_rec',
987                            X_TRANSACTION_HEADER_ID => -1, p_log_level_rec => p_log_level_rec);
988 
989    if (NOT l_status) then
990       raise error_found;
991    end if;
992 
993    px_asset_deprn_rec.deprn_amount             := l_dpr.deprn_exp  ;
994    px_asset_deprn_rec.ytd_deprn                := l_dpr.ytd_deprn  ;
995    px_asset_deprn_rec.deprn_reserve            := l_dpr.deprn_rsv  ;
996    px_asset_deprn_rec.prior_fy_expense         := l_dpr.prior_fy_exp  ;
997    px_asset_deprn_rec.bonus_deprn_amount       := l_dpr.bonus_deprn_amount  ;
998    px_asset_deprn_rec.bonus_ytd_deprn          := l_dpr.bonus_ytd_deprn  ;
999    px_asset_deprn_rec.bonus_deprn_reserve      := l_dpr.bonus_deprn_rsv  ;
1000    px_asset_deprn_rec.prior_fy_bonus_expense   := l_dpr.prior_fy_bonus_exp  ;
1001    px_asset_deprn_rec.reval_amortization       := l_dpr.reval_amo  ;
1002    px_asset_deprn_rec.reval_amortization_basis := l_dpr.reval_amo_basis  ;
1003    px_asset_deprn_rec.reval_deprn_expense      := l_dpr.reval_deprn_exp  ;
1004    px_asset_deprn_rec.reval_ytd_deprn          := l_dpr.ytd_reval_deprn_exp  ;
1005    px_asset_deprn_rec.reval_deprn_reserve      := l_dpr.reval_rsv  ;
1006    px_asset_deprn_rec.production               := l_dpr.prod  ;
1007    px_asset_deprn_rec.ytd_production           := l_dpr.ytd_prod  ;
1008    px_asset_deprn_rec.ltd_production           := l_dpr.ltd_prod  ;
1009    px_asset_deprn_rec.impairment_reserve           := l_dpr.impairment_rsv;
1010    px_asset_deprn_rec.ytd_impairment           := l_dpr.ytd_impairment;
1011    px_asset_deprn_rec.impairment_amount        := l_dpr.impairment_amount;
1012 
1013 
1014    return true;
1015 
1016 EXCEPTION
1017   when error_found then
1018      fa_srvr_msg.add_message(calling_fn => 'fa_util_pvt.get_asset_deprn_rec', p_log_level_rec => p_log_level_rec);
1019      return false;
1020 
1021   when others then
1022      fa_srvr_msg.add_sql_error(calling_fn => 'fa_util_pvt.get_asset_deprn_rec', p_log_level_rec => p_log_level_rec);
1023      return false;
1024 
1025 END get_asset_deprn_rec;
1026 
1027 
1028 
1029 FUNCTION get_asset_cat_rec
1030    (p_asset_hdr_rec         IN     FA_API_TYPES.asset_hdr_rec_type,
1031     px_asset_cat_rec        IN OUT NOCOPY FA_API_TYPES.asset_cat_rec_type,
1032     p_date_effective        IN     FA_ASSET_HISTORY.date_effective%TYPE DEFAULT NULL
1033     , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type
1034     ) RETURN BOOLEAN IS
1035 
1036    l_asset_category_id   FA_ADDITIONS.asset_category_id%TYPE;
1037 
1038 BEGIN
1039 
1040     select ah.category_id,
1041            ad.asset_category_id,
1042            ad.ATTRIBUTE1 ,
1043            ad.ATTRIBUTE2 ,
1044            ad.ATTRIBUTE3 ,
1045            ad.ATTRIBUTE4 ,
1046            ad.ATTRIBUTE5 ,
1047            ad.ATTRIBUTE6 ,
1048            ad.ATTRIBUTE7 ,
1049            ad.ATTRIBUTE8 ,
1050            ad.ATTRIBUTE9 ,
1051            ad.ATTRIBUTE10,
1052            ad.ATTRIBUTE11,
1053            ad.ATTRIBUTE12,
1054            ad.ATTRIBUTE13,
1055            ad.ATTRIBUTE14,
1056            ad.ATTRIBUTE15,
1057            ad.ATTRIBUTE16,
1058            ad.ATTRIBUTE17,
1059            ad.ATTRIBUTE18,
1060            ad.ATTRIBUTE19,
1061            ad.ATTRIBUTE20,
1062            ad.ATTRIBUTE21,
1063            ad.ATTRIBUTE22,
1064            ad.ATTRIBUTE23,
1065            ad.ATTRIBUTE24,
1066            ad.ATTRIBUTE25,
1067            ad.ATTRIBUTE26,
1068            ad.ATTRIBUTE27,
1069            ad.ATTRIBUTE28,
1070            ad.ATTRIBUTE29,
1071            ad.ATTRIBUTE30,
1072            ad.ATTRIBUTE_CATEGORY_CODE,
1073            ad.CONTEXT
1074       into px_asset_cat_rec.category_id,
1075            l_asset_category_id,
1076            px_asset_cat_rec.desc_flex.attribute1,
1077            px_asset_cat_rec.desc_flex.attribute2,
1078            px_asset_cat_rec.desc_flex.attribute3,
1079            px_asset_cat_rec.desc_flex.attribute4,
1080            px_asset_cat_rec.desc_flex.attribute5,
1081            px_asset_cat_rec.desc_flex.attribute6,
1082            px_asset_cat_rec.desc_flex.attribute7,
1083            px_asset_cat_rec.desc_flex.attribute8,
1084            px_asset_cat_rec.desc_flex.attribute9,
1085            px_asset_cat_rec.desc_flex.attribute10,
1086            px_asset_cat_rec.desc_flex.attribute11,
1087            px_asset_cat_rec.desc_flex.attribute12,
1088            px_asset_cat_rec.desc_flex.attribute13,
1089            px_asset_cat_rec.desc_flex.attribute14,
1090            px_asset_cat_rec.desc_flex.attribute15,
1091            px_asset_cat_rec.desc_flex.attribute16,
1092            px_asset_cat_rec.desc_flex.attribute17,
1093            px_asset_cat_rec.desc_flex.attribute18,
1094            px_asset_cat_rec.desc_flex.attribute19,
1095            px_asset_cat_rec.desc_flex.attribute20,
1096            px_asset_cat_rec.desc_flex.attribute21,
1097            px_asset_cat_rec.desc_flex.attribute22,
1098            px_asset_cat_rec.desc_flex.attribute23,
1099            px_asset_cat_rec.desc_flex.attribute24,
1100            px_asset_cat_rec.desc_flex.attribute25,
1101            px_asset_cat_rec.desc_flex.attribute26,
1102            px_asset_cat_rec.desc_flex.attribute27,
1103            px_asset_cat_rec.desc_flex.attribute28,
1104            px_asset_cat_rec.desc_flex.attribute29,
1105            px_asset_cat_rec.desc_flex.attribute30,
1106            px_asset_cat_rec.desc_flex.attribute_category_code,
1107            px_asset_cat_rec.desc_flex.context
1108      from fa_additions_b   ad,
1109           fa_asset_history ah
1110     where ad.asset_id = p_asset_hdr_rec.asset_id
1111       and ad.asset_id = ah.asset_id
1112       and ((p_date_effective is null and
1113             ah.date_ineffective is null) or
1114            (p_date_effective is not null and
1115             p_date_effective between
1116                 ah.date_effective and nvl(ah.date_ineffective, sysdate)));
1117 
1118     /*  null out the descriptive flex if the asset was reclassed out
1119      *  of the category being returned
1120      */
1121     if (px_asset_cat_rec.category_id <> l_asset_category_id) then
1122         px_asset_cat_rec.desc_flex := NULL;
1123     end if;
1124 
1125 
1126     return true;
1127 
1128 EXCEPTION
1129   when others then
1130      fa_srvr_msg.add_sql_error(calling_fn => 'fa_util_pvt.get_asset_cat_rec', p_log_level_rec => p_log_level_rec);
1131      return false;
1132 
1133 END get_asset_cat_rec;
1134 
1135 
1136 
1137 FUNCTION get_asset_type_rec
1138    (p_asset_hdr_rec         IN     FA_API_TYPES.asset_hdr_rec_type,
1139     px_asset_type_rec       IN OUT NOCOPY FA_API_TYPES.asset_type_rec_type,
1140     p_date_effective        IN     FA_ASSET_HISTORY.date_effective%TYPE DEFAULT NULL
1141     , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type
1142     ) RETURN BOOLEAN IS
1143 
1144 BEGIN
1145 
1146    select ah.asset_type
1147      into px_asset_type_rec.asset_type
1148      from fa_additions_b   ad,
1149           fa_asset_history ah
1150     where ad.asset_id = p_asset_hdr_rec.asset_id
1151       and ad.asset_id = ah.asset_id
1152       and (ah.date_effective =  nvl(p_date_effective, to_date('01/01/0001', 'DD/MM/YYYY')) or
1153            ah.date_ineffective is null);
1154 
1155 
1156    return true;
1157 
1158 EXCEPTION
1159   when others then
1160      fa_srvr_msg.add_sql_error(calling_fn => 'fa_util_pvt.get_asset_type_rec', p_log_level_rec => p_log_level_rec);
1161      return false;
1162 
1163 END get_asset_type_rec;
1164 
1165 
1166 FUNCTION get_asset_desc_rec
1167    (p_asset_hdr_rec         IN     FA_API_TYPES.asset_hdr_rec_type,
1168     px_asset_desc_rec        IN OUT NOCOPY FA_API_TYPES.asset_desc_rec_type
1169     , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) RETURN BOOLEAN IS
1170 
1171 BEGIN
1172 
1173    select asset_number         ,
1174           description          ,
1175           tag_number           ,
1176           serial_number        ,
1177           asset_key_ccid       ,
1178           parent_asset_id      ,
1179           attribute15          , -- status               ,
1180           manufacturer_name    ,
1181           model_number         ,
1182           null                 , -- warranty_number      ,
1183           lease_id             ,
1184           in_use_flag          ,
1185           inventorial          ,
1186           property_type_code   ,
1187           property_1245_1250_code  ,
1188           owned_leased         ,
1189           new_used             ,
1190           current_units        ,
1191           unit_adjustment_flag ,
1192           add_cost_je_flag     ,
1193           null, -- ls_attribute1        ,
1194           null, -- ls_attribute2        ,
1195           null, -- ls_attribute3        ,
1196           null, -- ls_attribute4        ,
1197           null, -- ls_attribute5        ,
1198           null, -- ls_attribute6        ,
1199           null, -- ls_attribute7        ,
1200           null, -- ls_attribute8        ,
1201           null, -- ls_attribute9        ,
1202           null, -- ls_attribute10       ,
1203           null, -- ls_attribute11       ,
1204           null, -- ls_attribute12       ,
1205           null, -- ls_attribute13       ,
1206           null, -- ls_attribute14       ,
1207           null, -- ls_attribute15       ,
1208           null, -- ls_attribute_category_code,
1209           global_attribute1    ,
1210           global_attribute2    ,
1211           global_attribute3    ,
1212           global_attribute4    ,
1213           global_attribute5    ,
1214           global_attribute6    ,
1215           global_attribute7    ,
1216           global_attribute8    ,
1217           global_attribute9    ,
1218           global_attribute10   ,
1219           global_attribute11   ,
1220           global_attribute12   ,
1221           global_attribute13   ,
1222           global_attribute14   ,
1223           global_attribute15   ,
1224           global_attribute16   ,
1225           global_attribute17   ,
1226           global_attribute18   ,
1227           global_attribute19   ,
1228           global_attribute20   ,
1229           global_attribute_category,
1230 	  commitment, -- Bug : 14770709
1231 	  investment_law -- Bug:14770709
1232      into px_asset_desc_rec.asset_number         ,
1233           px_asset_desc_rec.description          ,
1234           px_asset_desc_rec.tag_number           ,
1235           px_asset_desc_rec.serial_number        ,
1236           px_asset_desc_rec.asset_key_ccid       ,
1237           px_asset_desc_rec.parent_asset_id      ,
1238           px_asset_desc_rec.status               ,
1239           px_asset_desc_rec.manufacturer_name    ,
1240           px_asset_desc_rec.model_number         ,
1241           px_asset_desc_rec.warranty_id          ,
1242           px_asset_desc_rec.lease_id             ,
1243           px_asset_desc_rec.in_use_flag          ,
1244           px_asset_desc_rec.inventorial          ,
1245           px_asset_desc_rec.property_type_code   ,
1246           px_asset_desc_rec.property_1245_1250_code,
1247           px_asset_desc_rec.owned_leased         ,
1248           px_asset_desc_rec.new_used             ,
1249           px_asset_desc_rec.current_units        ,
1250           px_asset_desc_rec.unit_adjustment_flag ,
1251           px_asset_desc_rec.add_cost_je_flag     ,
1252           px_asset_desc_rec.lease_desc_flex.attribute1,
1253           px_asset_desc_rec.lease_desc_flex.attribute2,
1254           px_asset_desc_rec.lease_desc_flex.attribute3,
1255           px_asset_desc_rec.lease_desc_flex.attribute4,
1256           px_asset_desc_rec.lease_desc_flex.attribute5,
1257           px_asset_desc_rec.lease_desc_flex.attribute6,
1258           px_asset_desc_rec.lease_desc_flex.attribute7,
1259           px_asset_desc_rec.lease_desc_flex.attribute8,
1260           px_asset_desc_rec.lease_desc_flex.attribute9,
1261           px_asset_desc_rec.lease_desc_flex.attribute10,
1262           px_asset_desc_rec.lease_desc_flex.attribute11,
1263           px_asset_desc_rec.lease_desc_flex.attribute12,
1264           px_asset_desc_rec.lease_desc_flex.attribute13,
1265           px_asset_desc_rec.lease_desc_flex.attribute14,
1266           px_asset_desc_rec.lease_desc_flex.attribute15,
1267           px_asset_desc_rec.lease_desc_flex.attribute_category_code,
1268           px_asset_desc_rec.global_desc_flex.attribute1,
1269           px_asset_desc_rec.global_desc_flex.attribute2,
1270           px_asset_desc_rec.global_desc_flex.attribute3,
1271           px_asset_desc_rec.global_desc_flex.attribute4,
1272           px_asset_desc_rec.global_desc_flex.attribute5,
1273           px_asset_desc_rec.global_desc_flex.attribute6,
1274           px_asset_desc_rec.global_desc_flex.attribute7,
1275           px_asset_desc_rec.global_desc_flex.attribute8,
1276           px_asset_desc_rec.global_desc_flex.attribute9,
1277           px_asset_desc_rec.global_desc_flex.attribute10,
1278           px_asset_desc_rec.global_desc_flex.attribute11,
1279           px_asset_desc_rec.global_desc_flex.attribute12,
1280           px_asset_desc_rec.global_desc_flex.attribute13,
1281           px_asset_desc_rec.global_desc_flex.attribute14,
1282           px_asset_desc_rec.global_desc_flex.attribute15,
1283           px_asset_desc_rec.global_desc_flex.attribute16,
1284           px_asset_desc_rec.global_desc_flex.attribute17,
1285           px_asset_desc_rec.global_desc_flex.attribute18,
1286           px_asset_desc_rec.global_desc_flex.attribute19,
1287           px_asset_desc_rec.global_desc_flex.attribute20,
1288           px_asset_desc_rec.global_desc_flex.attribute_category_code,
1289 	  px_asset_desc_rec.commitment, -- Bug:14770709
1290 	  px_asset_desc_rec.investment_law -- Bug:14770709
1291      from fa_additions_vl
1292     where asset_id = p_asset_hdr_rec.asset_id;
1293 
1294     -- Get lease since its not in the view
1295     begin
1296        if (px_asset_desc_rec.lease_id is not null) then
1297           select attribute1,
1298                  attribute2,
1299                  attribute3,
1300                  attribute4,
1301                  attribute5,
1302                  attribute6,
1303                  attribute7,
1304                  attribute8,
1305                  attribute9,
1306                  attribute10,
1307                  attribute11,
1308                  attribute12,
1309                  attribute13,
1310                  attribute14,
1311                  attribute15,
1312                  attribute_category_code
1313             into px_asset_desc_rec.lease_desc_flex.attribute1,
1314                  px_asset_desc_rec.lease_desc_flex.attribute2,
1315                  px_asset_desc_rec.lease_desc_flex.attribute3,
1316                  px_asset_desc_rec.lease_desc_flex.attribute4,
1317                  px_asset_desc_rec.lease_desc_flex.attribute5,
1318                  px_asset_desc_rec.lease_desc_flex.attribute6,
1319                  px_asset_desc_rec.lease_desc_flex.attribute7,
1320                  px_asset_desc_rec.lease_desc_flex.attribute8,
1321                  px_asset_desc_rec.lease_desc_flex.attribute9,
1322                  px_asset_desc_rec.lease_desc_flex.attribute10,
1323                  px_asset_desc_rec.lease_desc_flex.attribute11,
1324                  px_asset_desc_rec.lease_desc_flex.attribute12,
1325                  px_asset_desc_rec.lease_desc_flex.attribute13,
1326                  px_asset_desc_rec.lease_desc_flex.attribute14,
1327                  px_asset_desc_rec.lease_desc_flex.attribute15,
1328                  px_asset_desc_rec.lease_desc_flex.attribute_category_code
1329             from fa_leases
1330            where lease_id = px_asset_desc_rec.lease_id;
1331        end if;
1332 
1333     exception
1334        when no_data_found then null;
1335        when others then
1336           fa_srvr_msg.add_sql_error (
1337              calling_fn => 'fa_util_pvt.get_asset_desc_rec', p_log_level_rec => p_log_level_rec);
1338           return false;
1339     end;
1340 
1341     -- Get warranty_id since it's not in the view
1342     begin
1343        select warranty_id
1344        into   px_asset_desc_rec.warranty_id
1345        from   fa_add_warranties
1346        where  asset_id = p_asset_hdr_rec.asset_id
1347        and    date_ineffective is NULL;
1348     exception
1349        when no_data_found then
1350           px_asset_desc_rec.warranty_id := NULL;
1351        when others then
1352           fa_srvr_msg.add_sql_error (
1353              calling_fn => 'fa_util_pvt.get_asset_desc_rec', p_log_level_rec => p_log_level_rec);
1354           return false;
1355     end;
1356 
1357     return true;
1358 EXCEPTION
1359   when others then
1360      fa_srvr_msg.add_sql_error(calling_fn => 'fa_util_pvt.get_asset_desc_rec', p_log_level_rec => p_log_level_rec);
1361      return false;
1362 
1363 END get_asset_desc_rec;
1364 
1365 
1366 FUNCTION get_inv_rec
1367    (px_inv_rec              IN OUT NOCOPY FA_API_TYPES.inv_rec_type,
1368     p_mrc_sob_type_code     IN     VARCHAR2,
1369     p_set_of_books_id       IN     NUMBER,
1370     p_inv_trans_rec         IN     FA_API_TYPES.inv_trans_rec_type DEFAULT NULL
1371     , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) RETURN BOOLEAN IS
1372 
1373   error_found        EXCEPTION;
1374 
1375 BEGIN
1376 
1377    if (nvl(p_inv_trans_rec.transaction_type, 'X') = 'REINSTATEMENT') then
1378       if (p_mrc_sob_type_code = 'R') then
1379 
1380           select Po_Vendor_Id                   ,
1381                  Asset_Invoice_Id               ,
1382                  Fixed_Assets_Cost              , --
1383                  Deleted_Flag                   , --
1384                  Po_Number                      ,
1385                  Invoice_Number                 ,
1386                  Payables_Batch_Name            ,
1387                  Payables_Code_Combination_Id   ,
1388                  Feeder_System_Name             ,
1389                  Create_Batch_Date              ,
1390                  Create_Batch_Id                ,
1391                  Invoice_Date                   ,
1392                  Payables_Cost                  , --
1393                  Post_Batch_Id                  ,
1394                  Invoice_Id                     ,
1395                  Ap_Distribution_Line_Number    ,
1396                  Payables_Units                 ,
1397                  Split_Merged_Code              ,
1398                  Description                    ,
1399                  Parent_Mass_Addition_Id        ,
1400                  Attribute1                     ,
1401                  Attribute2                     ,
1402                  Attribute3                     ,
1403                  Attribute4                     ,
1404                  Attribute5                     ,
1405                  Attribute6                     ,
1406                  Attribute7                     ,
1407                  Attribute8                     ,
1408                  Attribute9                     ,
1409                  Attribute10                    ,
1410                  Attribute11                    ,
1411                  Attribute12                    ,
1412                  Attribute13                    ,
1413                  Attribute14                    ,
1414                  Attribute15                    ,
1415                  Attribute_Category_Code        ,
1416                  Unrevalued_Cost                , --
1417                  Merged_Code                    ,
1418                  Split_Code                     ,
1419                  Merge_Parent_Mass_Additions_Id ,
1420                  Split_Parent_Mass_Additions_Id ,
1421                  Project_Asset_Line_Id          ,
1422                  Project_Id                     ,
1423                  Task_Id                        ,
1424                  Depreciate_In_Group_Flag       ,
1425                  Material_Indicator_Flag        ,
1426                  NULL                           ,
1427                  Invoice_Distribution_id        ,
1428                  Invoice_Line_Number            ,
1429                  PO_Distribution_Id
1430             into px_inv_rec.Po_Vendor_Id                   ,
1431                  px_inv_rec.Asset_Invoice_Id               ,
1432                  px_inv_rec.Fixed_Assets_Cost              ,
1433                  px_inv_rec.Deleted_Flag                   ,
1434                  px_inv_rec.Po_Number                      ,
1435                  px_inv_rec.Invoice_Number                 ,
1436                  px_inv_rec.Payables_Batch_Name            ,
1437                  px_inv_rec.Payables_Code_Combination_Id   ,
1438                  px_inv_rec.Feeder_System_Name             ,
1439                  px_inv_rec.Create_Batch_Date              ,
1440                  px_inv_rec.Create_Batch_Id                ,
1441                  px_inv_rec.Invoice_Date                   ,
1442                  px_inv_rec.Payables_Cost                  ,
1443                  px_inv_rec.Post_Batch_Id                  ,
1444                  px_inv_rec.Invoice_Id                     ,
1445                  px_inv_rec.Ap_Distribution_Line_Number    ,
1446                  px_inv_rec.Payables_Units                 ,
1447                  px_inv_rec.Split_Merged_Code              ,
1448                  px_inv_rec.Description                    ,
1449                  px_inv_rec.Parent_Mass_Addition_Id        ,
1450                  px_inv_rec.Attribute1                     ,
1451                  px_inv_rec.Attribute2                     ,
1452                  px_inv_rec.Attribute3                     ,
1453                  px_inv_rec.Attribute4                     ,
1454                  px_inv_rec.Attribute5                     ,
1455                  px_inv_rec.Attribute6                     ,
1456                  px_inv_rec.Attribute7                     ,
1457                  px_inv_rec.Attribute8                     ,
1458                  px_inv_rec.Attribute9                     ,
1459                  px_inv_rec.Attribute10                    ,
1460                  px_inv_rec.Attribute11                    ,
1461                  px_inv_rec.Attribute12                    ,
1462                  px_inv_rec.Attribute13                    ,
1463                  px_inv_rec.Attribute14                    ,
1464                  px_inv_rec.Attribute15                    ,
1465                  px_inv_rec.Attribute_Category_Code        ,
1466                  px_inv_rec.Unrevalued_Cost                ,
1467                  px_inv_rec.Merged_Code                    ,
1468                  px_inv_rec.Split_Code                     ,
1469                  px_inv_rec.Merge_Parent_Mass_Additions_Id ,
1470                  px_inv_rec.Split_Parent_Mass_Additions_Id ,
1471                  px_inv_rec.Project_Asset_Line_Id          ,
1472                  px_inv_rec.Project_Id                     ,
1473                  px_inv_rec.Task_Id                        ,
1474                  px_inv_rec.Depreciate_In_Group_Flag       ,
1475                  px_inv_rec.Material_Indicator_Flag        ,
1476                  px_inv_rec.prior_source_line_id           ,
1477                  px_inv_rec.invoice_distribution_id        ,
1478                  px_inv_rec.invoice_line_number            ,
1479                  px_inv_rec.po_distribution_id
1480             from fa_mc_asset_invoices ai,
1481                  fa_invoice_transactions it
1482            where ai.source_line_id = px_inv_rec.source_line_id
1483              and it.invoice_transaction_id = ai.invoice_transaction_id_in
1484              and it.transaction_type = 'RETIREMENT'
1485              and set_of_books_id  = p_set_of_books_id;
1486 
1487    else
1488           select Po_Vendor_Id                   ,
1489                  Asset_Invoice_Id               ,
1490                  Fixed_Assets_Cost              , --
1491                  Deleted_Flag                   , --
1492                  Po_Number                      ,
1493                  Invoice_Number                 ,
1494                  Payables_Batch_Name            ,
1495                  Payables_Code_Combination_Id   ,
1496                  Feeder_System_Name             ,
1497                  Create_Batch_Date              ,
1498                  Create_Batch_Id                ,
1499                  Invoice_Date                   ,
1500                  Payables_Cost                  , --
1501                  Post_Batch_Id                  ,
1502                  Invoice_Id                     ,
1503                  Ap_Distribution_Line_Number    ,
1504                  Payables_Units                 ,
1505                  Split_Merged_Code              ,
1506                  Description                    ,
1507                  Parent_Mass_Addition_Id        ,
1508                  Attribute1                     ,
1509                  Attribute2                     ,
1510                  Attribute3                     ,
1511                  Attribute4                     ,
1512                  Attribute5                     ,
1513                  Attribute6                     ,
1514                  Attribute7                     ,
1515                  Attribute8                     ,
1516                  Attribute9                     ,
1517                  Attribute10                    ,
1518                  Attribute11                    ,
1519                  Attribute12                    ,
1520                  Attribute13                    ,
1521                  Attribute14                    ,
1522                  Attribute15                    ,
1523                  Attribute_Category_Code        ,
1524                  Unrevalued_Cost                , --
1525                  Merged_Code                    ,
1526                  Split_Code                     ,
1527                  Merge_Parent_Mass_Additions_Id ,
1528                  Split_Parent_Mass_Additions_Id ,
1529                  Project_Asset_Line_Id          ,
1530                  Project_Id                     ,
1531                  Task_Id                        ,
1532                  Source_Line_ID                 ,
1533                  Depreciate_In_Group_Flag       ,
1534                  Material_Indicator_Flag        ,
1535                  NULL                           ,
1536                  Invoice_Distribution_id        ,
1537                  Invoice_Line_Number            ,
1538                  PO_Distribution_Id
1539             into px_inv_rec.Po_Vendor_Id                   ,
1540                  px_inv_rec.Asset_Invoice_Id               ,
1541                  px_inv_rec.Fixed_Assets_Cost              ,
1542                  px_inv_rec.Deleted_Flag                   ,
1543                  px_inv_rec.Po_Number                      ,
1544                  px_inv_rec.Invoice_Number                 ,
1545                  px_inv_rec.Payables_Batch_Name            ,
1546                  px_inv_rec.Payables_Code_Combination_Id   ,
1547                  px_inv_rec.Feeder_System_Name             ,
1548                  px_inv_rec.Create_Batch_Date              ,
1549                  px_inv_rec.Create_Batch_Id                ,
1550                  px_inv_rec.Invoice_Date                   ,
1551                  px_inv_rec.Payables_Cost                  ,
1552                  px_inv_rec.Post_Batch_Id                  ,
1553                  px_inv_rec.Invoice_Id                     ,
1554                  px_inv_rec.Ap_Distribution_Line_Number    ,
1555                  px_inv_rec.Payables_Units                 ,
1556                  px_inv_rec.Split_Merged_Code              ,
1557                  px_inv_rec.Description                    ,
1558                  px_inv_rec.Parent_Mass_Addition_Id        ,
1559                  px_inv_rec.Attribute1                     ,
1560                  px_inv_rec.Attribute2                     ,
1561                  px_inv_rec.Attribute3                     ,
1562                  px_inv_rec.Attribute4                     ,
1563                  px_inv_rec.Attribute5                     ,
1564                  px_inv_rec.Attribute6                     ,
1565                  px_inv_rec.Attribute7                     ,
1566                  px_inv_rec.Attribute8                     ,
1567                  px_inv_rec.Attribute9                     ,
1568                  px_inv_rec.Attribute10                    ,
1569                  px_inv_rec.Attribute11                    ,
1570                  px_inv_rec.Attribute12                    ,
1571                  px_inv_rec.Attribute13                    ,
1572                  px_inv_rec.Attribute14                    ,
1573                  px_inv_rec.Attribute15                    ,
1574                  px_inv_rec.Attribute_Category_Code        ,
1575                  px_inv_rec.Unrevalued_Cost                ,
1576                  px_inv_rec.Merged_Code                    ,
1577                  px_inv_rec.Split_Code                     ,
1578                  px_inv_rec.Merge_Parent_Mass_Additions_Id ,
1579                  px_inv_rec.Split_Parent_Mass_Additions_Id ,
1580                  px_inv_rec.Project_Asset_Line_Id          ,
1581                  px_inv_rec.Project_Id                     ,
1582                  px_inv_rec.Task_Id                        ,
1583                  px_inv_rec.Source_Line_Id                 ,
1584                  px_inv_rec.Depreciate_In_Group_Flag       ,
1585                  px_inv_rec.Material_Indicator_Flag        ,
1586                  px_inv_rec.Prior_Source_Line_ID           ,
1587                  px_inv_rec.invoice_distribution_id        ,
1588                  px_inv_rec.invoice_line_number            ,
1589                  px_inv_rec.po_distribution_id
1590             from fa_asset_invoices  ai,
1591                  fa_invoice_transactions it
1592            where ai.source_line_id = px_inv_rec.source_line_id
1593              and it.invoice_transaction_id = ai.invoice_transaction_id_in
1594              and it.transaction_type = 'RETIREMENT';
1595 
1596       end if;
1597    else -- non reinstatement
1598       if (p_mrc_sob_type_code = 'R') then
1599 
1600           select Po_Vendor_Id                   ,
1601                  Asset_Invoice_Id               ,
1602                  Fixed_Assets_Cost              , --
1603                  Deleted_Flag                   , --
1604                  Po_Number                      ,
1605                  Invoice_Number                 ,
1606                  Payables_Batch_Name            ,
1607                  Payables_Code_Combination_Id   ,
1608                  Feeder_System_Name             ,
1609                  Create_Batch_Date              ,
1610                  Create_Batch_Id                ,
1611                  Invoice_Date                   ,
1612                  Payables_Cost                  , --
1613                  Post_Batch_Id                  ,
1614                  Invoice_Id                     ,
1615                  Ap_Distribution_Line_Number    ,
1616                  Payables_Units                 ,
1617                  Split_Merged_Code              ,
1618                  Description                    ,
1619                  Parent_Mass_Addition_Id        ,
1620                  Attribute1                     ,
1621                  Attribute2                     ,
1622                  Attribute3                     ,
1623                  Attribute4                     ,
1624                  Attribute5                     ,
1625                  Attribute6                     ,
1626                  Attribute7                     ,
1627                  Attribute8                     ,
1628                  Attribute9                     ,
1629                  Attribute10                    ,
1630                  Attribute11                    ,
1631                  Attribute12                    ,
1632                  Attribute13                    ,
1633                  Attribute14                    ,
1634                  Attribute15                    ,
1635                  Attribute_Category_Code        ,
1636                  Unrevalued_Cost                , --
1637                  Merged_Code                    ,
1638                  Split_Code                     ,
1639                  Merge_Parent_Mass_Additions_Id ,
1640                  Split_Parent_Mass_Additions_Id ,
1641                  Project_Asset_Line_Id          ,
1642                  Project_Id                     ,
1643                  Task_Id                        ,
1644                  Depreciate_In_Group_Flag       ,
1645                  Material_Indicator_Flag        ,
1646                  NULL                           ,
1647                  Invoice_Distribution_id        ,
1648                  Invoice_Line_Number            ,
1649                  PO_Distribution_Id
1650             into px_inv_rec.Po_Vendor_Id                   ,
1651                  px_inv_rec.Asset_Invoice_Id               ,
1652                  px_inv_rec.Fixed_Assets_Cost              ,
1653                  px_inv_rec.Deleted_Flag                   ,
1654                  px_inv_rec.Po_Number                      ,
1655                  px_inv_rec.Invoice_Number                 ,
1656                  px_inv_rec.Payables_Batch_Name            ,
1657                  px_inv_rec.Payables_Code_Combination_Id   ,
1658                  px_inv_rec.Feeder_System_Name             ,
1659                  px_inv_rec.Create_Batch_Date              ,
1660                  px_inv_rec.Create_Batch_Id                ,
1661                  px_inv_rec.Invoice_Date                   ,
1662                  px_inv_rec.Payables_Cost                  ,
1663                  px_inv_rec.Post_Batch_Id                  ,
1664                  px_inv_rec.Invoice_Id                     ,
1665                  px_inv_rec.Ap_Distribution_Line_Number    ,
1666                  px_inv_rec.Payables_Units                 ,
1667                  px_inv_rec.Split_Merged_Code              ,
1668                  px_inv_rec.Description                    ,
1669                  px_inv_rec.Parent_Mass_Addition_Id        ,
1670                  px_inv_rec.Attribute1                     ,
1671                  px_inv_rec.Attribute2                     ,
1672                  px_inv_rec.Attribute3                     ,
1673                  px_inv_rec.Attribute4                     ,
1674                  px_inv_rec.Attribute5                     ,
1675                  px_inv_rec.Attribute6                     ,
1676                  px_inv_rec.Attribute7                     ,
1677                  px_inv_rec.Attribute8                     ,
1678                  px_inv_rec.Attribute9                     ,
1679                  px_inv_rec.Attribute10                    ,
1680                  px_inv_rec.Attribute11                    ,
1681                  px_inv_rec.Attribute12                    ,
1682                  px_inv_rec.Attribute13                    ,
1683                  px_inv_rec.Attribute14                    ,
1684                  px_inv_rec.Attribute15                    ,
1685                  px_inv_rec.Attribute_Category_Code        ,
1686                  px_inv_rec.Unrevalued_Cost                ,
1687                  px_inv_rec.Merged_Code                    ,
1688                  px_inv_rec.Split_Code                     ,
1689                  px_inv_rec.Merge_Parent_Mass_Additions_Id ,
1690                  px_inv_rec.Split_Parent_Mass_Additions_Id ,
1691                  px_inv_rec.Project_Asset_Line_Id          ,
1692                  px_inv_rec.Project_Id                     ,
1693                  px_inv_rec.Task_Id                        ,
1694                  px_inv_rec.Depreciate_In_Group_Flag       ,
1695                  px_inv_rec.Material_Indicator_Flag        ,
1696                  px_inv_rec.prior_source_line_id           ,
1697                  px_inv_rec.invoice_distribution_id        ,
1698                  px_inv_rec.invoice_line_number            ,
1699                  px_inv_rec.po_distribution_id
1700             from fa_mc_asset_invoices
1701            where source_line_id = px_inv_rec.source_line_id
1702              and date_ineffective is null
1703              and set_of_books_id = p_set_of_books_id;
1704 
1705       else
1706           select Po_Vendor_Id                   ,
1707                  Asset_Invoice_Id               ,
1708                  Fixed_Assets_Cost              , --
1709                  Deleted_Flag                   , --
1710                  Po_Number                      ,
1711                  Invoice_Number                 ,
1712                  Payables_Batch_Name            ,
1713                  Payables_Code_Combination_Id   ,
1714                  Feeder_System_Name             ,
1715                  Create_Batch_Date              ,
1716                  Create_Batch_Id                ,
1717                  Invoice_Date                   ,
1718                  Payables_Cost                  , --
1719                  Post_Batch_Id                  ,
1720                  Invoice_Id                     ,
1721                  Ap_Distribution_Line_Number    ,
1722                  Payables_Units                 ,
1723                  Split_Merged_Code              ,
1724                  Description                    ,
1725                  Parent_Mass_Addition_Id        ,
1726                  Attribute1                     ,
1727                  Attribute2                     ,
1728                  Attribute3                     ,
1729                  Attribute4                     ,
1730                  Attribute5                     ,
1731                  Attribute6                     ,
1732                  Attribute7                     ,
1733                  Attribute8                     ,
1734                  Attribute9                     ,
1735                  Attribute10                    ,
1736                  Attribute11                    ,
1737                  Attribute12                    ,
1738                  Attribute13                    ,
1739                  Attribute14                    ,
1740                  Attribute15                    ,
1741                  Attribute_Category_Code        ,
1742                  Unrevalued_Cost                , --
1743                  Merged_Code                    ,
1744                  Split_Code                     ,
1745                  Merge_Parent_Mass_Additions_Id ,
1746                  Split_Parent_Mass_Additions_Id ,
1747                  Project_Asset_Line_Id          ,
1748                  Project_Id                     ,
1749                  Task_Id                        ,
1750                  Source_Line_ID                 ,
1751                  Depreciate_In_Group_Flag       ,
1752                  Material_Indicator_Flag        ,
1753                  NULL                           ,
1754                  Invoice_Distribution_id        ,
1755                  Invoice_Line_Number            ,
1756                  PO_Distribution_Id
1757             into px_inv_rec.Po_Vendor_Id                   ,
1758                  px_inv_rec.Asset_Invoice_Id               ,
1759                  px_inv_rec.Fixed_Assets_Cost              ,
1760                  px_inv_rec.Deleted_Flag                   ,
1761                  px_inv_rec.Po_Number                      ,
1762                  px_inv_rec.Invoice_Number                 ,
1763                  px_inv_rec.Payables_Batch_Name            ,
1764                  px_inv_rec.Payables_Code_Combination_Id   ,
1765                  px_inv_rec.Feeder_System_Name             ,
1766                  px_inv_rec.Create_Batch_Date              ,
1767                  px_inv_rec.Create_Batch_Id                ,
1768                  px_inv_rec.Invoice_Date                   ,
1769                  px_inv_rec.Payables_Cost                  ,
1770                  px_inv_rec.Post_Batch_Id                  ,
1771                  px_inv_rec.Invoice_Id                     ,
1772                  px_inv_rec.Ap_Distribution_Line_Number    ,
1773                  px_inv_rec.Payables_Units                 ,
1774                  px_inv_rec.Split_Merged_Code              ,
1775                  px_inv_rec.Description                    ,
1776                  px_inv_rec.Parent_Mass_Addition_Id        ,
1777                  px_inv_rec.Attribute1                     ,
1778                  px_inv_rec.Attribute2                     ,
1779                  px_inv_rec.Attribute3                     ,
1780                  px_inv_rec.Attribute4                     ,
1781                  px_inv_rec.Attribute5                     ,
1782                  px_inv_rec.Attribute6                     ,
1783                  px_inv_rec.Attribute7                     ,
1784                  px_inv_rec.Attribute8                     ,
1785                  px_inv_rec.Attribute9                     ,
1786                  px_inv_rec.Attribute10                    ,
1787                  px_inv_rec.Attribute11                    ,
1788                  px_inv_rec.Attribute12                    ,
1789                  px_inv_rec.Attribute13                    ,
1790                  px_inv_rec.Attribute14                    ,
1791                  px_inv_rec.Attribute15                    ,
1792                  px_inv_rec.Attribute_Category_Code        ,
1793                  px_inv_rec.Unrevalued_Cost                ,
1794                  px_inv_rec.Merged_Code                    ,
1795                  px_inv_rec.Split_Code                     ,
1796                  px_inv_rec.Merge_Parent_Mass_Additions_Id ,
1797                  px_inv_rec.Split_Parent_Mass_Additions_Id ,
1798                  px_inv_rec.Project_Asset_Line_Id          ,
1799                  px_inv_rec.Project_Id                     ,
1800                  px_inv_rec.Task_Id                        ,
1801                  px_inv_rec.Source_Line_Id                 ,
1802                  px_inv_rec.Depreciate_In_Group_Flag       ,
1803                  px_inv_rec.Material_Indicator_Flag        ,
1804                  px_inv_rec.Prior_Source_Line_ID           ,
1805                  px_inv_rec.invoice_distribution_id        ,
1806                  px_inv_rec.invoice_line_number            ,
1807                  px_inv_rec.po_distribution_id
1808             from fa_asset_invoices
1809            where source_line_id = px_inv_rec.source_line_id
1810              and date_ineffective is null;
1811 
1812       end if;
1813    end if;
1814 
1815    return true;
1816 
1817 EXCEPTION
1818   when error_found then
1819      fa_srvr_msg.add_message(calling_fn => 'fa_util_pvt.get_inv_rec', p_log_level_rec => p_log_level_rec);
1820      return false;
1821 
1822   when no_data_found then
1823      fa_srvr_msg.add_sql_error(calling_fn => 'fa_util_pvt.get_inv_rec',p_log_level_rec => p_log_level_rec);
1824      fa_srvr_msg.add_message(name       => 'FA_MASSADD_INVOICE',
1825                              token1     => 'SOURCE_LINE_ID',
1826                              value1     => px_inv_rec.source_line_id,
1827                              calling_fn => 'fa_util_pvt.get_inv_rec', p_log_level_rec => p_log_level_rec);
1828      return false;
1829 
1830   when others then
1831      fa_srvr_msg.add_sql_error(calling_fn => 'fa_util_pvt.get_inv_rec', p_log_level_rec => p_log_level_rec);
1832      return false;
1833 
1834 END get_inv_rec;
1835 
1836 
1837 -----------------------------------------------------------------------------
1838 --  NAME         check_asset_key_req                                         |
1839 --                                                                           |
1840 --  FUNCTION     checks whether the asset key flexfield has any              |
1841 --               required segments                                           |
1842 --                                                                           |
1843 --               -- fdfkfa doesn't appear to allow you to                    |
1844 --                  check the required status of a column                    |
1845 --                  so hard coding this against FND.                         |
1846 -----------------------------------------------------------------------------
1847 
1848 FUNCTION check_asset_key_req
1849    (p_asset_key_chart_id         IN     NUMBER,
1850     p_asset_key_required            OUT NOCOPY BOOLEAN,
1851     p_calling_fn                 IN     VARCHAR2
1852    , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) RETURN BOOLEAN IS
1853 
1854    cursor asset_key_req is
1855    select 1
1856    from   fnd_id_flex_segments
1857    where  application_id = 140
1858    and    id_flex_code   = 'KEY#'
1859    and    id_flex_num    =  p_asset_key_chart_id
1860    and    required_flag  = 'Y';
1861 
1862    l_asset_key_segs_required      NUMBER := 0;
1863 
1864 BEGIN
1865 
1866    open asset_key_req;
1867    loop
1868 
1869       fetch asset_key_req into l_asset_key_segs_required;
1870 
1871       if (asset_key_req%NOTFOUND) then
1872          exit;
1873       end if;
1874    end loop;
1875    close asset_key_req;
1876 
1877    if (l_asset_key_segs_required > 0) then
1878        p_asset_key_required := TRUE;
1879    else
1880        p_asset_key_required := FALSE;
1881    end if;
1882 
1883    return TRUE;
1884 
1885 EXCEPTION
1886 
1887    when others then
1888       fa_srvr_msg.add_sql_error(
1889          calling_fn => 'fa_util_pvt.check_asset_key_req', p_log_level_rec => p_log_level_rec);
1890       return FALSE;
1891 
1892 END check_asset_key_req;
1893 
1894 
1895 FUNCTION get_current_units
1896    (p_calling_fn     in  VARCHAR2
1897    ,p_asset_id       in  NUMBER
1898    ,x_current_units  out NOCOPY NUMBER
1899    , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) return BOOLEAN IS
1900 
1901 BEGIN
1902 
1903    select units
1904    into x_current_units
1905    from fa_asset_history
1906    where asset_id = p_asset_id
1907      and date_ineffective is null;
1908 
1909    return TRUE;
1910 
1911 EXCEPTION
1912 
1913    when others then
1914 
1915       fa_srvr_msg.add_message(
1916          calling_fn => 'fa_util_pvt.get_current_units',
1917          name       => 'FA_SHARED_ACTION_TABLE',
1918          token1     => 'ACTION',
1919          value1     => 'SELECT',
1920          token2     => 'TABLE',
1921          value2     => 'FA_ASSET_HISTORY', p_log_level_rec => p_log_level_rec);
1922 
1923       return FALSE;
1924 
1925 END get_current_units;
1926 
1927 FUNCTION get_latest_trans_date
1928    (p_calling_fn          in  VARCHAR2
1929    ,p_asset_id            in  NUMBER
1930    ,p_book                in  VARCHAR2
1931    ,x_latest_trans_date   out NOCOPY DATE
1932    , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) return BOOLEAN IS
1933 
1934 BEGIN
1935 
1936    /* commenting for bug 3768867
1937    select max(transaction_date_entered)
1938    into x_latest_trans_date
1939    from fa_transaction_headers
1940    where asset_id = p_asset_id
1941    and book_type_code = p_book
1942    and transaction_type_code not in ('REINSTATEMENT','FULL RETIREMENT')
1943    and transaction_type_code not like '%/VOID';
1944    */
1945 
1946   -- added for bug 3768867
1947   select max(transaction_date_entered)
1948   into x_latest_trans_date
1949   from fa_transaction_headers
1950   where asset_id = p_asset_id
1951   and book_type_code = p_book
1952   and transaction_type_code in ('TAX', 'REVALUATION');
1953 
1954    return TRUE;
1955 
1956 EXCEPTION
1957    when others then
1958       fa_srvr_msg.add_message(
1959          calling_fn => 'fa_util_pvt.get_latest_trans_date',
1960          name       => 'FA_SHARED_ACTION_TABLE',
1961          token1     => 'ACTION',
1962          value1     => 'SELECT',
1963          token2     => 'TABLE',
1964          value2     => 'FA_TRANSACTION_HEADERS', p_log_level_rec => p_log_level_rec);
1965       return FALSE;
1966 
1967 END get_latest_trans_date;
1968 
1969 
1970 FUNCTION get_period_rec
1971    (p_book           in  varchar2
1972    ,p_period_counter in  number  default null
1973    ,p_effective_date in  date    default null
1974    ,x_period_rec     out NOCOPY FA_API_TYPES.period_rec_type
1975    , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type default null) return BOOLEAN IS
1976 
1977    error_found    EXCEPTION;
1978 
1979 BEGIN
1980 
1981    if not fa_cache_pkg.fazcdp
1982            (x_book_type_code => p_book,
1983             x_period_counter => p_period_counter,
1984             x_effective_date => p_effective_date, p_log_level_rec => p_log_level_rec) then
1985       raise error_found;
1986    end if;
1987 
1988    x_period_rec.period_counter := fa_cache_pkg.fazcdp_record.period_counter;
1989    x_period_rec.period_name    := fa_cache_pkg.fazcdp_record.period_name;
1990    x_period_rec.period_open_date := fa_cache_pkg.fazcdp_record.period_open_date;
1991    x_period_rec.period_close_date := fa_cache_pkg.fazcdp_record.period_close_date;
1992    x_period_rec.calendar_period_open_date := fa_cache_pkg.fazcdp_record.calendar_period_open_date;
1993    x_period_rec.calendar_period_close_date := fa_cache_pkg.fazcdp_record.calendar_period_close_date;
1994    x_period_rec.deprn_run := fa_cache_pkg.fazcdp_record.deprn_run;
1995    x_period_rec.fiscal_year := fa_cache_pkg.fazcdp_record.fiscal_year;
1996    x_period_rec.period_num := fa_cache_pkg.fazcdp_record.period_num;
1997 
1998    if not fa_cache_pkg.fazcfy
1999           (X_fiscal_year_name => fa_cache_pkg.fazcbc_record.fiscal_year_name,
2000            X_fiscal_year => x_period_rec.fiscal_year, p_log_level_rec => p_log_level_rec) then
2001       raise error_found;
2002    end if;
2003 
2004    x_period_rec.fy_start_date := fa_cache_pkg.fazcfy_record.start_date;
2005    x_period_rec.fy_end_date   := fa_cache_pkg.fazcfy_record.end_date;
2006 
2007    return TRUE;
2008 
2009 EXCEPTION
2010    when error_found then
2011       fa_srvr_msg.add_message(calling_fn => 'fa_util_pvt.get_period_rec', p_log_level_rec => p_log_level_rec);
2012       return false;
2013 
2014    when others then
2015       fa_srvr_msg.add_sql_error(calling_fn => 'fa_util_pvt.get_period_rec', p_log_level_rec => p_log_level_rec);
2016       return false;
2017 
2018 END get_period_rec;
2019 
2020 
2021 FUNCTION get_asset_retire_rec
2022    (px_asset_retire_rec   in out NOCOPY FA_API_TYPES.asset_retire_rec_type,
2023     p_mrc_sob_type_code   IN     VARCHAR2,
2024     p_set_of_books_id     IN      NUMBER
2025     , p_log_level_rec     IN     FA_API_TYPES.log_level_rec_type default null) RETURN BOOLEAN IS
2026 
2027    error_found        EXCEPTION;
2028 
2029 BEGIN
2030 
2031    if (nvl(p_mrc_sob_type_code, 'P') = 'R') then
2032 
2033       select retirement_id
2034             ,asset_id
2035             ,book_type_code
2036             ,transaction_header_id_in
2037             ,date_retired
2038             ,cost_retired
2039             ,status
2040             ,retirement_prorate_convention
2041             ,transaction_header_id_out
2042             ,units
2043             ,cost_of_removal
2044             ,nbv_retired
2045             ,gain_loss_amount
2046             ,proceeds_of_sale
2047             ,gain_loss_type_code
2048             ,retirement_type_code
2049             ,itc_recaptured
2050             ,itc_recapture_id
2051             ,reference_num
2052             ,sold_to
2053             ,trade_in_asset_id
2054             ,stl_method_code
2055             ,stl_life_in_months
2056             ,stl_deprn_amount
2057             ,attribute1
2058             ,attribute2
2059             ,attribute3
2060             ,attribute4
2061             ,attribute5
2062             ,attribute6
2063             ,attribute7
2064             ,attribute8
2065             ,attribute9
2066             ,attribute10
2067             ,attribute11
2068             ,attribute12
2069             ,attribute13
2070             ,attribute14
2071             ,attribute15
2072             ,attribute_category_code
2073             ,reval_reserve_retired
2074             ,unrevalued_cost_retired
2075             ,bonus_reserve_retired
2076             ,recognize_gain_loss
2077             ,recapture_reserve_flag
2078             ,limit_proceeds_flag
2079             ,terminal_gain_loss
2080             ,reserve_retired
2081             ,eofy_reserve
2082             ,reduction_rate
2083             ,recapture_amount
2084             ,rowid
2085       into
2086              px_asset_retire_rec.retirement_id
2087             ,px_asset_retire_rec.detail_info.asset_id
2088             ,px_asset_retire_rec.detail_info.book_type_code
2089             ,px_asset_retire_rec.detail_info.transaction_header_id_in
2090             ,px_asset_retire_rec.date_retired
2091             ,px_asset_retire_rec.cost_retired
2092             ,px_asset_retire_rec.status
2093             ,px_asset_retire_rec.retirement_prorate_convention
2094             ,px_asset_retire_rec.detail_info.transaction_header_id_out
2095             ,px_asset_retire_rec.units_retired
2096             ,px_asset_retire_rec.cost_of_removal
2097             ,px_asset_retire_rec.detail_info.nbv_retired
2098             ,px_asset_retire_rec.detail_info.gain_loss_amount
2099             ,px_asset_retire_rec.proceeds_of_sale
2100             ,px_asset_retire_rec.detail_info.gain_loss_type_code
2101             ,px_asset_retire_rec.retirement_type_code
2102             ,px_asset_retire_rec.detail_info.itc_recaptured
2103             ,px_asset_retire_rec.detail_info.itc_recapture_id
2104             ,px_asset_retire_rec.reference_num
2105             ,px_asset_retire_rec.sold_to
2106             ,px_asset_retire_rec.trade_in_asset_id
2107             ,px_asset_retire_rec.detail_info.stl_method_code
2108             ,px_asset_retire_rec.detail_info.stl_life_in_months
2109             ,px_asset_retire_rec.detail_info.stl_deprn_amount
2110             ,px_asset_retire_rec.desc_flex.attribute1
2111             ,px_asset_retire_rec.desc_flex.attribute2
2112             ,px_asset_retire_rec.desc_flex.attribute3
2113             ,px_asset_retire_rec.desc_flex.attribute4
2114             ,px_asset_retire_rec.desc_flex.attribute5
2115             ,px_asset_retire_rec.desc_flex.attribute6
2116             ,px_asset_retire_rec.desc_flex.attribute7
2117             ,px_asset_retire_rec.desc_flex.attribute8
2118             ,px_asset_retire_rec.desc_flex.attribute9
2119             ,px_asset_retire_rec.desc_flex.attribute10
2120             ,px_asset_retire_rec.desc_flex.attribute11
2121             ,px_asset_retire_rec.desc_flex.attribute12
2122             ,px_asset_retire_rec.desc_flex.attribute13
2123             ,px_asset_retire_rec.desc_flex.attribute14
2124             ,px_asset_retire_rec.desc_flex.attribute15
2125             ,px_asset_retire_rec.desc_flex.attribute_category_code
2126             ,px_asset_retire_rec.detail_info.reval_reserve_retired
2127             ,px_asset_retire_rec.detail_info.unrevalued_cost_retired
2128             ,px_asset_retire_rec.detail_info.bonus_reserve_retired
2129             ,px_asset_retire_rec.recognize_gain_loss
2130             ,px_asset_retire_rec.recapture_reserve_flag
2131             ,px_asset_retire_rec.limit_proceeds_flag
2132             ,px_asset_retire_rec.terminal_gain_loss
2133             ,px_asset_retire_rec.reserve_retired
2134             ,px_asset_retire_rec.eofy_reserve
2135             ,px_asset_retire_rec.reduction_rate
2136             ,px_asset_retire_rec.detail_info.recapture_amount
2137             ,px_asset_retire_rec.detail_info.row_id -- used as parameter when calling fa_retirements_pkg.delete
2138       from fa_mc_retirements
2139       where retirement_id = px_asset_retire_rec.retirement_id
2140         and set_of_books_id  = p_set_of_books_id;
2141 
2142     else
2143 
2144       select retirement_id
2145             ,asset_id
2146             ,book_type_code
2147             ,transaction_header_id_in
2148             ,date_retired
2149             ,cost_retired
2150             ,status
2151             ,retirement_prorate_convention
2152             ,transaction_header_id_out
2153             ,units
2154             ,cost_of_removal
2155             ,nbv_retired
2156             ,gain_loss_amount
2157             ,proceeds_of_sale
2158             ,gain_loss_type_code
2159             ,retirement_type_code
2160             ,itc_recaptured
2161             ,itc_recapture_id
2162             ,reference_num
2163             ,sold_to
2164             ,trade_in_asset_id
2165             ,stl_method_code
2166             ,stl_life_in_months
2167             ,stl_deprn_amount
2168             ,attribute1
2169             ,attribute2
2170             ,attribute3
2171             ,attribute4
2172             ,attribute5
2173             ,attribute6
2174             ,attribute7
2175             ,attribute8
2176             ,attribute9
2177             ,attribute10
2178             ,attribute11
2179             ,attribute12
2180             ,attribute13
2181             ,attribute14
2182             ,attribute15
2183             ,attribute_category_code
2184             ,reval_reserve_retired
2185             ,unrevalued_cost_retired
2186             ,bonus_reserve_retired
2187             ,recognize_gain_loss
2188             ,recapture_reserve_flag
2189             ,limit_proceeds_flag
2190             ,terminal_gain_loss
2191             ,reserve_retired
2192             ,eofy_reserve
2193             ,reduction_rate
2194             ,recapture_amount
2195             ,rowid
2196       into
2197              px_asset_retire_rec.retirement_id
2198             ,px_asset_retire_rec.detail_info.asset_id
2199             ,px_asset_retire_rec.detail_info.book_type_code
2200             ,px_asset_retire_rec.detail_info.transaction_header_id_in
2201             ,px_asset_retire_rec.date_retired
2202             ,px_asset_retire_rec.cost_retired
2203             ,px_asset_retire_rec.status
2204             ,px_asset_retire_rec.retirement_prorate_convention
2205             ,px_asset_retire_rec.detail_info.transaction_header_id_out
2206             ,px_asset_retire_rec.units_retired
2207             ,px_asset_retire_rec.cost_of_removal
2208             ,px_asset_retire_rec.detail_info.nbv_retired
2209             ,px_asset_retire_rec.detail_info.gain_loss_amount
2210             ,px_asset_retire_rec.proceeds_of_sale
2211             ,px_asset_retire_rec.detail_info.gain_loss_type_code
2212             ,px_asset_retire_rec.retirement_type_code
2213             ,px_asset_retire_rec.detail_info.itc_recaptured
2214             ,px_asset_retire_rec.detail_info.itc_recapture_id
2215             ,px_asset_retire_rec.reference_num
2216             ,px_asset_retire_rec.sold_to
2217             ,px_asset_retire_rec.trade_in_asset_id
2218             ,px_asset_retire_rec.detail_info.stl_method_code
2219             ,px_asset_retire_rec.detail_info.stl_life_in_months
2220             ,px_asset_retire_rec.detail_info.stl_deprn_amount
2221             ,px_asset_retire_rec.desc_flex.attribute1
2222             ,px_asset_retire_rec.desc_flex.attribute2
2223             ,px_asset_retire_rec.desc_flex.attribute3
2224             ,px_asset_retire_rec.desc_flex.attribute4
2225             ,px_asset_retire_rec.desc_flex.attribute5
2226             ,px_asset_retire_rec.desc_flex.attribute6
2227             ,px_asset_retire_rec.desc_flex.attribute7
2228             ,px_asset_retire_rec.desc_flex.attribute8
2229             ,px_asset_retire_rec.desc_flex.attribute9
2230             ,px_asset_retire_rec.desc_flex.attribute10
2231             ,px_asset_retire_rec.desc_flex.attribute11
2232             ,px_asset_retire_rec.desc_flex.attribute12
2233             ,px_asset_retire_rec.desc_flex.attribute13
2234             ,px_asset_retire_rec.desc_flex.attribute14
2235             ,px_asset_retire_rec.desc_flex.attribute15
2236             ,px_asset_retire_rec.desc_flex.attribute_category_code
2237             ,px_asset_retire_rec.detail_info.reval_reserve_retired
2238             ,px_asset_retire_rec.detail_info.unrevalued_cost_retired
2239             ,px_asset_retire_rec.detail_info.bonus_reserve_retired
2240             ,px_asset_retire_rec.recognize_gain_loss
2241             ,px_asset_retire_rec.recapture_reserve_flag
2242             ,px_asset_retire_rec.limit_proceeds_flag
2243             ,px_asset_retire_rec.terminal_gain_loss
2244             ,px_asset_retire_rec.reserve_retired
2245             ,px_asset_retire_rec.eofy_reserve
2246             ,px_asset_retire_rec.reduction_rate
2247             ,px_asset_retire_rec.detail_info.recapture_amount
2248             ,px_asset_retire_rec.detail_info.row_id -- used as parameter when calling fa_retirements_pkg.delete
2249       from fa_retirements
2250       where retirement_id = px_asset_retire_rec.retirement_id;
2251 
2252    end if;
2253 
2254    return TRUE;
2255 
2256 
2257 EXCEPTION
2258    when error_found then
2259       fa_srvr_msg.add_message(calling_fn => 'fa_util_pvt.get_asset_retire_rec', p_log_level_rec => p_log_level_rec);
2260       return false;
2261 
2262    when others then
2263       fa_srvr_msg.add_sql_error(calling_fn => 'fa_util_pvt.get_asset_retire_rec', p_log_level_rec => p_log_level_rec);
2264       return false;
2265 
2266 END get_asset_retire_rec;
2267 
2268 FUNCTION get_corp_book( p_asset_id  IN     NUMBER,
2269                         p_corp_book IN OUT NOCOPY VARCHAR2
2270                       , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) return boolean IS
2271 
2272 BEGIN
2273 
2274    SELECT bc.book_type_code
2275    INTO p_corp_book
2276    FROM fa_books bks,
2277         fa_book_controls bc
2278    WHERE bks.book_type_code = bc.distribution_source_book
2279    AND   bks.book_type_code = bc.book_type_code
2280    AND   bks.asset_id       = p_asset_id
2281    AND   bks.transaction_header_id_out is null
2282    AND   rownum < 2;
2283 
2284    return TRUE;
2285 
2286 EXCEPTION
2287    when others then
2288       fa_srvr_msg.add_message(
2289          calling_fn => 'fa_util_pvt.get_corp_book',
2290          name       => 'FA_SHARED_ACTION_TABLE',
2291          token1     => 'ACTION',
2292          value1     => 'SELECT',
2293          token2     => 'TABLE',
2294          value2     => 'FA_BOOKS'
2295        , p_log_level_rec => p_log_level_rec);
2296       return FALSE;
2297 
2298 END get_corp_book;
2299 
2300 
2301 -- NOTICE: per ATG / performance team, we are changing the standards
2302 -- surrounding the principle of nulling out a column.  Originally
2303 -- the G_MISS_* values were used to indicate no change, but we've flipped
2304 -- the logic.  Null values will be treated as no change, whereas
2305 -- G_MISS_* will indicate the intent to null out a column.
2306 
2307 PROCEDURE load_char_value
2308             (p_char_old  IN     VARCHAR2,
2309              p_char_adj  IN     VARCHAR2,
2310              x_char_new  IN OUT NOCOPY VARCHAR2, p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) IS
2311 
2312 BEGIN
2313 
2314    if (p_char_adj is null) then
2315       x_char_new := p_char_old;
2316    elsif (p_char_adj = FND_API.G_MISS_CHAR)then
2317       x_char_new := NULL;
2318    else
2319       x_char_new := p_char_adj;
2320    end if;
2321 
2322 END load_char_value;
2323 
2324 PROCEDURE load_date_value
2325             (p_date_old  IN     VARCHAR2,
2326              p_date_adj  IN     VARCHAR2,
2327              x_date_new  IN OUT NOCOPY VARCHAR2, p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) IS
2328 
2329 BEGIN
2330 
2331    if (p_date_adj is null) then
2332       x_date_new := p_date_old;
2333    elsif (p_date_adj = FND_API.G_MISS_DATE) then
2334       x_date_new := NULL;
2335    else
2336       x_date_new := p_date_adj;
2337    end if;
2338 
2339 END load_date_value;
2340 
2341 PROCEDURE load_num_value
2342             (p_num_old   IN     VARCHAR2,
2343              p_num_adj   IN     VARCHAR2,
2344              x_num_new   IN OUT NOCOPY VARCHAR2, p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) IS
2345 
2346 BEGIN
2347 
2348    if (p_num_adj is null) then
2349       x_num_new := p_num_old;
2350    elsif (p_num_adj = FND_API.G_MISS_NUM) then
2351       x_num_new := NULL;
2352    else
2353       x_num_new := p_num_adj;
2354    end if;
2355 
2356 END load_num_value;
2357 
2358 -- Bug 10357699 : Use system_deprn_amount instead of deprn_amount
2359 
2360 FUNCTION check_deprn_run
2361             (X_book          IN      VARCHAR2,
2362              X_asset_id      IN      NUMBER  DEFAULT 0,
2363 	     X_deprn_amount  OUT  NOCOPY   NUMBER,
2364              p_log_level_rec IN  FA_API_TYPES.log_level_rec_type default null)
2365 return BOOLEAN IS
2366 
2367    deprn_run           VARCHAR2(1);
2368    h_count             NUMBER;
2369    h_mc_source_flag    VARCHAR2(3);
2370    h_set_of_books_id   NUMBER;
2371    h_mrc_sob_type_code VARCHAR2(3);
2372    l_deprn_amt         NUMBER;
2373 
2374 BEGIN
2375 
2376    h_mc_source_flag       := FA_CACHE_PKG.fazcbc_record.mc_source_flag;
2377    h_set_of_books_id      := FA_CACHE_PKG.fazcbc_record.set_of_books_id;
2378 
2379    if not fa_cache_pkg.fazcsob
2380            (X_set_of_books_id   => h_set_of_books_id,
2381             X_mrc_sob_type_code => h_mrc_sob_type_code,
2382 	    p_log_level_rec => p_log_level_rec) then
2383       fa_srvr_msg.add_sql_error
2384             (calling_fn => 'fa_util_pvt.check_deprn_run', p_log_level_rec => p_log_level_rec);
2385       return(FALSE);
2386    end if;
2387 
2388    if (X_asset_id = 0) then
2389       null;
2390    else
2391 
2392       SELECT nvl(ds.system_deprn_amount,0)
2393         INTO l_deprn_amt
2394         FROM fa_deprn_summary ds,
2395              fa_book_controls bc
2396        WHERE bc.book_type_code = X_book
2397          AND ds.book_type_code = bc.book_type_code
2398          AND ds.period_counter = bc.last_period_counter + 1
2399          AND ds.asset_id = X_asset_id
2400          AND ds.deprn_source_code in ('DEPRN','TRACK');
2401 
2402       if (sql%rowcount <> 0) then
2403 	 X_deprn_amount := l_deprn_amt;
2404          return TRUE;
2405       else
2406 
2407          select nvl(ds.system_deprn_amount,0)
2408 	  into l_deprn_amt
2409           FROM fa_deprn_summary ds,
2410                fa_book_controls bc,
2411                fa_books bks,
2412                fa_additions_b ad
2413          WHERE bc.book_type_code = X_Book
2414            AND ds.book_type_code = bc.book_type_code
2415            AND ds.period_counter = bc.last_period_counter + 1
2416            AND ds.asset_id = bks.asset_id
2417            AND ds.deprn_source_code in ('DEPRN','TRACK')
2418            AND bks.group_asset_id = X_Asset_ID
2419            AND bks.book_type_code = bc.book_type_code
2420            AND bks.transaction_header_id_out is null
2421            AND ad.asset_id = X_Asset_ID
2422            AND ad.asset_type = 'GROUP';
2423 
2424          if (sql%rowcount <> 0) then
2425 	    X_deprn_amount := l_deprn_amt;
2426 	    return TRUE;
2427          end if;
2428 
2429       end if;
2430 
2431       if (h_mc_source_flag = 'Y' and h_mrc_sob_type_code = 'P') then
2432          SELECT nvl(ds.system_deprn_amount, 0)
2433            INTO l_deprn_amt
2434            FROM fa_mc_deprn_summary ds,
2435                 fa_book_controls bc
2436           WHERE bc.book_type_code = X_book
2437             AND ds.book_type_code = bc.book_type_code
2438             AND ds.period_counter = bc.last_period_counter + 1
2439             AND ds.asset_id = X_asset_id
2440             AND ds.deprn_source_code in ('DEPRN','TRACK');
2441 
2442          if (sql%rowcount <> 0) then
2443 	    X_deprn_amount := l_deprn_amt;
2444 	    return TRUE;
2445          end if;
2446       end if;
2447    end if; --X_asset_id = 0
2448 X_deprn_amount := NULL;
2449 return FALSE;
2450 Exception
2451   When NO_DATA_FOUND then
2452       return FALSE;
2453 END check_deprn_run;
2454 
2455 /* Added for bug 9891692. See BCT for details */
2456    FUNCTION get_asset_deprn_resv
2457       (p_book              IN     VARCHAR2,
2458        p_asset_id          IN     NUMBER,
2459        p_set_of_books_id   IN     NUMBER,
2460        p_period_counter    IN     NUMBER default null,
2461        p_mrc_sob_type_code IN     VARCHAR2
2462        ) RETURN NUMBER is
2463       l_asset_hdr_rec     FA_API_TYPES.asset_hdr_rec_type;
2464       l_asset_deprn_rec   FA_API_TYPES.asset_deprn_rec_type;
2465       resv_err   exception;
2466    BEGIN
2467       l_asset_hdr_rec.asset_id := p_asset_id;
2468       l_asset_hdr_rec.book_type_code := p_book;
2469       l_asset_hdr_rec.set_of_books_id := p_set_of_books_id;
2470       if not fa_util_pvt.get_asset_deprn_rec (
2471                       p_asset_hdr_rec         => l_asset_hdr_rec,
2472                       px_asset_deprn_rec      => l_asset_deprn_rec,
2473                       p_period_counter        => p_period_counter,
2474                       p_mrc_sob_type_code     => p_mrc_sob_type_code,
2475                       p_log_level_rec         => null) then
2476          raise resv_err;
2477       end if;
2478       return l_asset_deprn_rec.deprn_reserve;
2479    EXCEPTION
2480       when others then
2481          raise resv_err;
2482    END get_asset_deprn_resv;
2483 
2484 END FA_UTIL_PVT;