DBA Data[Home] [Help]

PACKAGE BODY: APPS.FA_RECLASS_PVT

Source


1 PACKAGE BODY FA_RECLASS_PVT as
2 /* $Header: FAVRECB.pls 120.21.12020000.3 2012/11/30 13:47:15 spooyath ship $   */
3 
4 
5 /* ---------------------------------------------------------------
6  * Name            : Do_reclass
7  * Type            : Function
8  * Returns         : Boolean
9  * Purpose         : Perform reclass transaction for an asset
10  * Calling Details : This function expects the following parameters with
11  *                   valid data for it to perform the Reclass transaction
12  *                   successfully
13  *                   px_trans_rec.amortization_start_date
14  *                   px_asset_desc_rec.asset_number
15  *                   pxx_asset_cat_rec_new.category_id
16  * ---------------------------------------------------------------- */
17   FUNCTION do_reclass (
18             px_trans_rec           IN OUT NOCOPY   FA_API_TYPES.trans_rec_type,
19             px_asset_desc_rec      IN OUT NOCOPY   FA_API_TYPES.asset_desc_rec_type,
20             px_asset_hdr_rec       IN OUT NOCOPY   FA_API_TYPES.asset_hdr_rec_type,
21             px_asset_type_rec      IN OUT NOCOPY   FA_API_TYPES.asset_type_rec_type,
22             px_asset_cat_rec_old   IN OUT NOCOPY   FA_API_TYPES.asset_cat_rec_type,
23             px_asset_cat_rec_new   IN OUT NOCOPY   FA_API_TYPES.asset_cat_rec_type,
24             p_recl_opt_rec         IN              FA_API_TYPES.reclass_options_rec_type , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type)
25                                                    return boolean IS
26 
27       l_err_stage       varchar2(230);
28       i                 integer:= 1;
29       l_asset_dist_tbl  FA_API_TYPES.asset_dist_tbl_type;
30       l_trans_rec       FA_API_TYPES.trans_rec_type;
31 
32       l_calling_fn varchar2(40) := 'fa_reclass_pvt.do_reclass';
33       call_err  EXCEPTION;
34 
35   BEGIN
36 
37      l_err_stage:= 'validate_reclass';
38      if (p_log_level_rec.statement_level) then
39                fa_debug_pkg.add(l_calling_fn, '-', 'before '||l_err_stage, p_log_level_rec => p_log_level_rec);
40      end if;
41 
42      if NOT validate_reclass(
43                              p_trans_rec         => px_trans_rec,
44                              p_asset_desc_rec    => px_asset_desc_rec,
45                              p_asset_hdr_rec     => px_asset_hdr_rec,
46                              p_asset_type_rec    => px_asset_type_rec,
47                              p_asset_cat_rec_old => px_asset_cat_rec_old,
48                              p_asset_cat_rec_new => px_asset_cat_rec_new,
49                              p_log_level_rec     => p_log_level_rec ) then
50 
51           raise call_err;
52      end if;
53 
54      -- perform basic reclass
55      -- Populate old and new dist lines
56      l_err_stage:= 'fa_reclass_util_pvt.get_asset_distribution';
57 
58      if (p_log_level_rec.statement_level) then
59                fa_debug_pkg.add(l_calling_fn, '-', 'before '||l_err_stage, p_log_level_rec => p_log_level_rec);
60      end if;
61 
62      if NOT fa_reclass_util_pvt.get_asset_distribution(
63                                 p_trans_rec         => px_trans_rec,
64                                 p_asset_hdr_rec     => px_asset_hdr_rec,
65                                 p_asset_cat_rec_old => px_asset_cat_rec_old,
66                                 p_asset_cat_rec_new => px_asset_cat_rec_new,
67                                 px_asset_dist_tbl   => l_asset_dist_tbl,
68                                 p_calling_fn        => l_calling_fn , p_log_level_rec => p_log_level_rec) then
69              raise call_err;
70      end if;
71 
72 
73     -- populate category desc flex info based on
74     -- p_rec_opt_rec.copy_cat_desc_flag
75      l_err_stage:= 'fa_reclass_util_pvt.get_cat_desc_flex';
76      -- dbms_output.put_line(l_err_stage);
77      if (p_log_level_rec.statement_level) then
78                fa_debug_pkg.add(l_calling_fn, '-', 'before '||l_err_stage, p_log_level_rec => p_log_level_rec);
79      end if;
80 
81      if NOT fa_reclass_util_pvt.get_cat_desc_flex(
82                                 p_asset_hdr_rec      => px_asset_hdr_rec,
83                                 px_asset_desc_rec    => px_asset_desc_rec,
84                                 p_asset_cat_rec_old  => px_asset_cat_rec_old,
85                                 px_asset_cat_rec_new => px_asset_cat_rec_new,
86                                 p_recl_opt_rec       => p_recl_opt_rec,
87                                 p_calling_fn         => l_calling_fn , p_log_level_rec => p_log_level_rec) then
88             raise call_err;
89      end if;
90 
91      -- save for future use as the do_distributions api populates the
92      -- the transaction_subtype to RECLASS. This fails call to do_adjustments
93      -- as it expects EXPENSED or AMORTIZED as trx_subtype
94      l_trans_rec := px_trans_rec;
95 
96      -- BUG# 3325400
97      -- forcing selection of the thid here rather
98      -- then relying on table handler
99      select fa_transaction_headers_s.nextval
100        into px_trans_rec.transaction_header_id
101        from dual;
102 
103      -- Bug 15877517 : Reinitialize who_info as well
104      px_trans_rec.who_info.creation_date := sysdate;
105      px_trans_rec.who_info.last_update_date := sysdate;
106 
107 
108      l_err_stage:= 'fa_distribution_pvt.do_distribution';
109      -- dbms_output.put_line(l_err_stage);
110      if (p_log_level_rec.statement_level) then
111                fa_debug_pkg.add(l_calling_fn, '-', 'before '||l_err_stage, p_log_level_rec => p_log_level_rec);
112      end if;
113 
114      if not fa_distribution_pvt.do_distribution(
115                                 px_trans_rec         => px_trans_rec,
116                                 px_asset_hdr_rec     => px_asset_hdr_rec,
117                                 px_asset_cat_rec_new => px_asset_cat_rec_new,
118                                 px_asset_dist_tbl    => l_asset_dist_tbl , p_log_level_rec => p_log_level_rec) then
119             raise call_err;
120      end if;
121 
122      /*
123       * Code hook for IAC
124       */
125      if (FA_IGI_EXT_PKG.IAC_Enabled) then
126      l_err_stage:= 'FA_IGI_EXT_PKG.Do_Reclass';
127      if (p_log_level_rec.statement_level) then
128                fa_debug_pkg.add(l_calling_fn, '-', 'before '||l_err_stage, p_log_level_rec => p_log_level_rec);
129      end if;
130 
131         if not FA_IGI_EXT_PKG.Do_Reclass(
132                     p_trans_rec         => px_trans_rec,
133                     p_asset_hdr_rec     => px_asset_hdr_rec,
134                     p_asset_cat_rec_old => px_asset_cat_rec_old,
135                     p_asset_cat_rec_new => px_asset_cat_rec_new,
136                     p_asset_desc_rec    => px_asset_desc_rec,
137                     p_asset_type_rec    => px_asset_type_rec,
138                     p_calling_function  => l_calling_fn ) then
139 
140             raise call_err;
141         end if;
142      end if; -- (FA_IGI_EXT_PKG.IAC_Enabled)
143 
144      -- save the transaction date for future use
145      l_trans_rec.transaction_date_entered:= px_trans_rec.transaction_date_entered;
146 
147      if (p_log_level_rec.statement_level) then
148                fa_debug_pkg.add(l_calling_fn, 'transaction_date_entered', l_trans_rec.transaction_date_entered, p_log_level_rec => p_log_level_rec);
149      end if;
150      -- keep the rest same as original because the dist api updates few columns
151      -- which we may not need
152      l_trans_rec.transaction_header_id := px_trans_rec.transaction_header_id;
153      px_trans_rec := l_trans_rec;
154 
155      if (p_log_level_rec.statement_level) then
156                fa_debug_pkg.add(l_calling_fn, 'redefault_flag', p_recl_opt_rec.redefault_flag, p_log_level_rec => p_log_level_rec);
157      end if;
158 
159      -- perform redefault
160      if p_recl_opt_rec.redefault_flag = 'YES' then
161        -- validate redefault
162        -- dbms_output.put_line('validate redefault');
163        if NOT validate_redefault(
164                  px_trans_rec         => px_trans_rec,
165                  px_asset_desc_rec    => px_asset_desc_rec,
166                  px_asset_hdr_rec     => px_asset_hdr_rec,
167                  px_asset_type_rec    => px_asset_type_rec,
168                  px_asset_cat_rec_old => px_asset_cat_rec_old,
169                  px_asset_cat_rec_new => px_asset_cat_rec_new,
170                  p_mass_request_id    => null,
171                  p_log_level_rec     => p_log_level_rec )  then
172              raise call_err;
173          end if;
174 
175        if (p_log_level_rec.statement_level) then
176                fa_debug_pkg.add(l_calling_fn, '-', 'before do_redefault', p_log_level_rec => p_log_level_rec);
177        end if;
178        -- do_redefault
179        if NOT do_redefault(
180                  px_trans_rec         => px_trans_rec,
181                  px_asset_desc_rec    => px_asset_desc_rec,
182                  px_asset_hdr_rec     => px_asset_hdr_rec,
183                  px_asset_type_rec    => px_asset_type_rec,
184                  px_asset_cat_rec_old => px_asset_cat_rec_old,
185                  px_asset_cat_rec_new => px_asset_cat_rec_new,
186                  p_mass_request_id    => p_recl_opt_rec.mass_request_id ,
187                  p_log_level_rec     => p_log_level_rec)  then
188              raise call_err;
189          end if;
190 
191        end if;  /* p_redefault_flag */
192 
193 
194      -- dbms_output.put_line('end of fa_reclass_pvt');
195      return TRUE;
196 
197 EXCEPTION
198    when call_err then
199          fa_srvr_msg.add_message(calling_fn => l_calling_fn, p_log_level_rec => p_log_level_rec);
200       return FALSE;
201 
202    when others then
203          fa_srvr_msg.add_sql_error(calling_fn => l_calling_fn, p_log_level_rec => p_log_level_rec);
204       return FALSE;
205 
206 END do_reclass;
207 
208 
209 -- ------------------------------------------------------
210 
211 -- ------------------------------------------------------
212 FUNCTION validate_reclass (
213          p_trans_rec           IN   FA_API_TYPES.trans_rec_type,
214          p_asset_desc_rec      IN   FA_API_TYPES.asset_desc_rec_type,
215          p_asset_hdr_rec       IN   FA_API_TYPES.asset_hdr_rec_type,
216          p_asset_type_rec      IN   FA_API_TYPES.asset_type_rec_type,
217          p_asset_cat_rec_old   IN   FA_API_TYPES.asset_cat_rec_type,
218          p_asset_cat_rec_new   IN   FA_API_TYPES.asset_cat_rec_type , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) return boolean is
219 
220     l_err_stage varchar2(100);
221     l_calling_fn varchar2(40) := 'fa_reclass_pvt.validate_reclass';
222     call_err EXCEPTION;
223 BEGIN
224 
225     l_err_stage:= 'fa_reclass_util_pvt.validate_units';
226     -- dbms_output.put_line(l_err_stage);
227     if not fa_reclass_util_pvt.validate_units(
228                                 p_trans_rec.transaction_type_code,
229                                 p_asset_hdr_rec.asset_id,
230                                 l_calling_fn  , p_log_level_rec => p_log_level_rec) then
231       raise call_err;
232     end if;
233 
234     l_err_stage:= 'fa_reclass_util_pvt.validate_cat_types';
235     -- dbms_output.put_line(l_err_stage);
236     if not fa_reclass_util_pvt.validate_cat_types(
237                                p_trans_rec.transaction_type_code,
238                                p_asset_cat_rec_old.category_id,
239                                p_asset_cat_rec_new.category_id,
240                                p_asset_desc_rec.lease_id,
241                                p_asset_hdr_rec.asset_id,
242                                l_calling_fn  , p_log_level_rec => p_log_level_rec) then
243       raise call_err;
244     end if;
245 
246     -- validate CIP accounts
247     l_err_stage:= 'fa_reclass_util_pvt.validate_CIP_accounts';
248     -- dbms_output.put_line(l_err_stage);
249     if not fa_reclass_util_pvt.validate_CIP_accounts(
250                                p_trans_rec.transaction_type_code,
251                                p_asset_hdr_rec.book_type_code,
252                                p_asset_type_rec.asset_type,
253                                p_asset_cat_rec_new.category_id,
254                                l_calling_fn , p_log_level_rec => p_log_level_rec) then
255       raise call_err;
256     end if;
257 
258     l_err_stage:= 'fa_reclass_util_pvt.check_cat_book_setup';
259     -- dbms_output.put_line(l_err_stage);
260     if not fa_reclass_util_pvt.check_cat_book_setup(
261                                p_trans_rec.transaction_type_code,
262                                p_asset_cat_rec_new.category_id,
263                                p_asset_hdr_rec.asset_id,
264                                l_calling_fn  , p_log_level_rec => p_log_level_rec) then
265       raise call_err;
266     end if;
267 
268     l_err_stage:= 'fa_reclass_util_pvt.validate_pending_retire';
269     -- dbms_output.put_line(l_err_stage);
270     if not fa_reclass_util_pvt.validate_pending_retire(
271                                p_trans_rec.transaction_type_code,
272                                p_asset_hdr_rec.asset_id,
273                                l_calling_fn  , p_log_level_rec => p_log_level_rec) then
274       raise call_err;
275     end if;
276 
277     l_err_stage:= 'fa_reclass_util_pvt.validate_fully_retired';
278     -- dbms_output.put_line(l_err_stage);
279     if not fa_reclass_util_pvt.validate_fully_retired(
280                                p_trans_rec.transaction_type_code,
281                                p_asset_hdr_rec.asset_id,
282                                l_calling_fn , p_log_level_rec => p_log_level_rec) then
283       raise call_err;
284     end if;
285 
286 /*
287      -- validate transaction date
288     if not fa_reclass_util_pvt.validate_transaction_date(
289                                 p_trans_rec,
290                                 p_asset_hdr_rec.asset_id,
291                                 p_asset_hdr_rec.book_type_code,
292                                 l_calling_fn , p_log_level_rec => p_log_level_rec) then
293         raise call_err;
294     end if;
295 */
296 
297 
298      return TRUE;
299 
300 EXCEPTION
301    when call_err then
302    fa_srvr_msg.add_message(calling_fn => l_calling_fn, p_log_level_rec => p_log_level_rec);
303       return FALSE;
304 
305    when others then
306    fa_srvr_msg.add_sql_error(calling_fn => l_calling_fn, p_log_level_rec => p_log_level_rec);
307       return FALSE;
308 
309 END validate_reclass;
310 
311 -- ----------------------------------------------------
312 
313 
314 -- ----------------------------------------------------
315 
316 FUNCTION validate_redefault(
317          px_trans_rec            IN   OUT NOCOPY  FA_API_TYPES.trans_rec_type,
318          px_asset_desc_rec       IN   OUT NOCOPY  FA_API_TYPES.asset_desc_rec_type,
319          px_asset_hdr_rec        IN   OUT NOCOPY  FA_API_TYPES.asset_hdr_rec_type,
320          px_asset_type_rec       IN   OUT NOCOPY  FA_API_TYPES.asset_type_rec_type,
321          px_asset_cat_rec_old    IN   OUT NOCOPY  FA_API_TYPES.asset_cat_rec_type,
322          px_asset_cat_rec_new    IN   OUT NOCOPY  FA_API_TYPES.asset_cat_rec_type,
323          p_mass_request_id       IN        NUMBER DEFAULT null , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) return boolean IS
324 
325 
326 BEGIN
327    null;
328 
329   return TRUE;
330 END validate_redefault;
331 
332 
333 /* --------------------------------------------------------------------
334 *
335 *
336 *
337 *
338 * ---------------------------------------------------------------------- */
339 FUNCTION do_redefault(
340          px_trans_rec            IN   OUT NOCOPY  FA_API_TYPES.trans_rec_type,
341          px_asset_desc_rec       IN   OUT NOCOPY  FA_API_TYPES.asset_desc_rec_type,
342          px_asset_hdr_rec        IN   OUT NOCOPY  FA_API_TYPES.asset_hdr_rec_type,
343          px_asset_type_rec       IN   OUT NOCOPY  FA_API_TYPES.asset_type_rec_type,
344          px_asset_cat_rec_old    IN   OUT NOCOPY  FA_API_TYPES.asset_cat_rec_type,
345          px_asset_cat_rec_new    IN   OUT NOCOPY  FA_API_TYPES.asset_cat_rec_type,
346          p_mass_request_id       IN        NUMBER DEFAULT null , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) return boolean IS
347 
348     CURSOR book_cr( p_asset_id number ) IS
349             SELECT   TH.book_type_code
350             FROM  FA_BOOK_CONTROLS BC,
351                   FA_TRANSACTION_HEADERS TH
352             WHERE TH.transaction_type_code||''  IN ('ADDITION','CIP ADDITION', 'GROUP ADDITION')
353             AND      TH.asset_id = p_asset_id
354             AND      BC.book_type_code = TH.book_type_code
355             AND      nvl(BC.date_ineffective, sysdate + 1) > sysdate
356             GROUP BY TH.book_type_code
357             ORDER BY MIN(TH.date_effective);
358 
359     CURSOR get_old_rules( p_book varchar2, p_asset number ) IS
360        SELECT book_type_code,
361               date_placed_in_service, date_placed_in_service,
362               prorate_convention_code, deprn_method_code,
363               life_in_months, basic_rate, adjusted_rate,
364               production_capacity, unit_of_measure,
365               bonus_rule, NULL, ceiling_name,
366               depreciate_flag, allowed_deprn_limit,
367               allowed_deprn_limit_amount, percent_salvage_value
368        FROM   FA_BOOKS bk
369        WHERE  bk.book_type_code = p_book
370        AND    bk.asset_id = p_asset
371        AND    bk.date_ineffective IS NULL;
372 
373    l_book_type_code    varchar2(30);
374    l_amortize_flag     varchar2(3);
375    l_last_updated_by   number;
376    l_last_update_date  date;
377    l_last_update_login number;
378 
379    l_old_rules FA_LOAD_TBL_PKG.asset_deprn_info:= null;
380    l_new_rules FA_LOAD_TBL_PKG.asset_deprn_info:= null;
381    l_found BOOLEAN := FALSE;
382    l_rule_change_exists boolean;
383 
384    l_rate_source_rules VARCHAR2(10);
385    l_deprn_basis_rule  VARCHAR2(10);
386    l_prorate_date      date;
387 
388    l_trans_rec           FA_API_TYPES.trans_rec_type;
389    l_asset_hdr_rec       FA_API_TYPES.asset_hdr_rec_type;
390    l_asset_desc_rec      FA_API_TYPES.asset_desc_rec_type;
391    l_asset_type_rec      FA_API_TYPES.asset_type_rec_type;
392    l_asset_cat_rec       FA_API_TYPES.asset_cat_rec_type;
393    l_asset_fin_rec       FA_API_TYPES.asset_fin_rec_type;
394    l_asset_fin_rec_adj   FA_API_TYPES.asset_fin_rec_type;
395    l_asset_fin_rec_new   FA_API_TYPES.asset_fin_rec_type;
396    l_asset_deprn_rec     FA_API_TYPES.asset_deprn_rec_type;
397    l_asset_deprn_rec_adj FA_API_TYPES.asset_deprn_rec_type;
398    l_asset_deprn_rec_new FA_API_TYPES.asset_deprn_rec_type;
399    l_asset_dist_tbl      FA_API_TYPES.asset_dist_tbl_type;
400 
401    l_asset_fin_mrc_tbl_new     FA_API_TYPES.asset_fin_tbl_type;
402    l_asset_deprn_mrc_tbl_new   FA_API_TYPES.asset_deprn_tbl_type;
403    l_inv_trans_rec_dummy       FA_API_TYPES.inv_trans_rec_type;
404    l_inv_tbl_dummy             FA_API_TYPES.inv_tbl_type;
405    l_group_reclass_options_rec FA_API_TYPES.group_reclass_options_rec_type;
406 
407    l_return_status  VARCHAR2(1);
408    l_mesg_count      NUMBER;
409    l_mesg_data       VARCHAR2(2000);
410 
411    l_corp_book varchar2(30);
412    l_jdpis     number;
413 
414    l_calling_fn varchar2(40) := 'fa_reclass_pvt.do_redefault';
415    call_err EXCEPTION;
416 
417 BEGIN
418 
419     -- dbms_output.put_line('start do_default');
420 
421     if px_trans_rec.transaction_subtype = 'AMORTIZED' then
422       l_amortize_flag := 'YES';
423     else
424       l_amortize_flag := 'NO';
425     end if;
426 
427     if (p_log_level_rec.statement_level) then
428             fa_debug_pkg.add(l_calling_fn, 'transaction_subtype', px_trans_rec.transaction_subtype, p_log_level_rec => p_log_level_rec);
429             fa_debug_pkg.add(l_calling_fn, 'l_corp_book', px_asset_hdr_rec.book_type_code, p_log_level_rec => p_log_level_rec);
430     end if;
431     -- Always corp book is passed in the asset_hdr_rec
432     -- so save it for future use
433     l_corp_book := px_asset_hdr_rec.book_type_code;
434 
435       -- load new deprn_rules
436       -- dbms_output.put_line('load_Deprn_Rules');
437 
438       /* BUG# 3296729 - replacing this with call to common cache
439        *
440        * FA_LOAD_TBL_PKG.Load_Deprn_Rules_Tbl(
441        *                p_corp_book => l_corp_book,
442        *                p_category_id  => px_asset_cat_rec_new.category_id,
443        *                x_return_status => l_found);
444        * IF NOT l_found THEN
445        *     raise call_err;
446        * END IF;
447        */
448 
449 
450     FOR book_rec in book_cr(px_asset_hdr_rec.asset_id) LOOP
451 
452       -- validate redefault for each book
453       -- dbms_output.put_line('FA_RECLASS_UTIL_PVT.Validate_Adjustment', p_log_level_rec => p_log_level_rec);
454       -- Bug#12620567
455       if NOT FA_RECLASS_UTIL_PVT.Validate_Adjustment(
456                                  p_transaction_type_code => px_trans_rec.transaction_type_code,
457                                  p_asset_id              => px_asset_hdr_rec.asset_id,
458                                  p_book_type_code        => book_rec.book_type_code,
459                                  p_amortize_flag         => l_amortize_flag,
460                                  p_mr_req_id             => 1 , p_log_level_rec => p_log_level_rec) then
461           raise call_err;
462       end if;
463 
464       -- Get old(current) depreciation rules from the current books row.
465       -- dbms_output.put_line('get_old_rules for :'||book_rec.book_type_code);
466 
467       OPEN get_old_rules( book_rec.book_type_code, px_asset_hdr_rec.asset_id);
468       FETCH get_old_rules INTO l_old_rules;
469       CLOSE get_old_rules;
470 
471       l_found:= FALSE;
472       -- dbms_output.put_line('Get_Deprn_Rules for : '||book_rec.book_type_code);
473       -- dbms_output.put_line('start_dpis'||to_char(l_old_rules.start_dpis));
474       -- Get new depreciation rules for the cursor_book.
475 
476       /* BUG# 3296729 - replacing this with call to common cache
477        *
478        * FA_LOAD_TBL_PKG.Get_Deprn_Rules(
479        *            p_book_type_code         => book_rec.book_type_code,
480        *            p_date_placed_in_service => l_old_rules.start_dpis,
481        *            x_deprn_rules_rec        => l_new_rules,
482        *            x_found                  => l_found );
483        *  IF not l_found THEN
484        *     raise call_err;
485        *  END IF;
486        */
487 
488       l_jdpis := to_number(to_char(l_old_rules.start_dpis, 'J'));
489 
490       if not fa_cache_pkg.fazccbd
491                (X_book   => book_rec.book_type_code,
492                 X_cat_id => px_asset_cat_rec_new.category_id,
493                 X_jdpis  => l_jdpis, p_log_level_rec => p_log_level_rec) then
494          raise call_err;
495       end if;
496 
497       if (l_old_rules.deprn_method = 'JP-STL-EXTND') then
498           l_new_rules := l_old_rules;
499       else
500           -- now load cached values into the new rules table
501           l_new_rules.book_type_code          := book_rec.book_type_code;
502           l_new_rules.start_dpis              := fa_cache_pkg.fazccbd_record.start_dpis;
503           l_new_rules.end_dpis                := fa_cache_pkg.fazccbd_record.end_dpis;
504           l_new_rules.prorate_conv_code       := fa_cache_pkg.fazccbd_record.prorate_convention_code;
505           l_new_rules.deprn_method            := fa_cache_pkg.fazccbd_record.deprn_method;
506           l_new_rules.life_in_months          := fa_cache_pkg.fazccbd_record.life_in_months;
507           l_new_rules.basic_rate              := fa_cache_pkg.fazccbd_record.basic_rate;
508           l_new_rules.adjusted_rate           := fa_cache_pkg.fazccbd_record.adjusted_rate;
509           l_new_rules.production_capacity     := fa_cache_pkg.fazccbd_record.production_capacity;
510           l_new_rules.unit_of_measure         := fa_cache_pkg.fazccbd_record.unit_of_measure;
511           if (px_asset_type_rec.asset_type <> 'GROUP') then
512             l_new_rules.bonus_rule              := fa_cache_pkg.fazccbd_record.bonus_rule;
513           end if;
514           l_new_rules.itc_amount              := NULL;
515           l_new_rules.ceiling_name            := fa_cache_pkg.fazccbd_record.ceiling_name;
516           l_new_rules.depreciate_flag         := fa_cache_pkg.fazccbd_record.depreciate_flag;
517           l_new_rules.allow_deprn_limit       := fa_cache_pkg.fazccbd_record.allowed_deprn_limit;
518           l_new_rules.deprn_limit_amount      := fa_cache_pkg.fazccbd_record.special_deprn_limit_amount;
519           l_new_rules.percent_salvage_value   := fa_cache_pkg.fazccbd_record.percent_salvage_value;
520 
521       end if;
522 
523       -- dbms_output.put_line('See if any rule change is needed');
524       -- See if any rule change is needed.
525       if (p_log_level_rec.statement_level) then
526          fa_debug_pkg.add(l_calling_fn, 'l_new_rules.book_type_code       ',l_new_rules.book_type_code       , p_log_level_rec => p_log_level_rec);
527          fa_debug_pkg.add(l_calling_fn, 'l_new_rules.start_dpis           ',l_new_rules.start_dpis           , p_log_level_rec => p_log_level_rec);
528          fa_debug_pkg.add(l_calling_fn, 'l_new_rules.end_dpis             ',l_new_rules.end_dpis             , p_log_level_rec => p_log_level_rec);
529          fa_debug_pkg.add(l_calling_fn, 'l_new_rules.prorate_conv_code    ',l_new_rules.prorate_conv_code    , p_log_level_rec => p_log_level_rec);
530          fa_debug_pkg.add(l_calling_fn, 'l_old_rules.prorate_conv_code    ',l_old_rules.prorate_conv_code    , p_log_level_rec => p_log_level_rec);
531          fa_debug_pkg.add(l_calling_fn, 'l_new_rules.deprn_method         ',l_new_rules.deprn_method         , p_log_level_rec => p_log_level_rec);
532          fa_debug_pkg.add(l_calling_fn, 'l_old_rules.deprn_method         ',l_old_rules.deprn_method         , p_log_level_rec => p_log_level_rec);
533          fa_debug_pkg.add(l_calling_fn, 'l_new_rules.life_in_months       ',l_new_rules.life_in_months       , p_log_level_rec => p_log_level_rec);
534          fa_debug_pkg.add(l_calling_fn, 'l_old_rules.life_in_months       ',l_old_rules.life_in_months       , p_log_level_rec => p_log_level_rec);
535          fa_debug_pkg.add(l_calling_fn, 'l_new_rules.basic_rate           ',l_new_rules.basic_rate           , p_log_level_rec => p_log_level_rec);
536          fa_debug_pkg.add(l_calling_fn, 'l_old_rules.basic_rate           ',l_old_rules.basic_rate           , p_log_level_rec => p_log_level_rec);
537          fa_debug_pkg.add(l_calling_fn, 'l_new_rules.adjusted_rate        ',l_new_rules.adjusted_rate        , p_log_level_rec => p_log_level_rec);
538          fa_debug_pkg.add(l_calling_fn, 'l_old_rules.adjusted_rate        ',l_old_rules.adjusted_rate        , p_log_level_rec => p_log_level_rec);
539          fa_debug_pkg.add(l_calling_fn, 'l_new_rules.production_capacity  ',l_new_rules.production_capacity  , p_log_level_rec => p_log_level_rec);
540          fa_debug_pkg.add(l_calling_fn, 'l_old_rules.production_capacity  ',l_old_rules.production_capacity  , p_log_level_rec => p_log_level_rec);
541          fa_debug_pkg.add(l_calling_fn, 'l_new_rules.unit_of_measure      ',l_new_rules.unit_of_measure      , p_log_level_rec => p_log_level_rec);
542          fa_debug_pkg.add(l_calling_fn, 'l_old_rules.unit_of_measure      ',l_old_rules.unit_of_measure      , p_log_level_rec => p_log_level_rec);
543          fa_debug_pkg.add(l_calling_fn, 'l_new_rules.bonus_rule           ',l_new_rules.bonus_rule           , p_log_level_rec => p_log_level_rec);
544          fa_debug_pkg.add(l_calling_fn, 'l_old_rules.bonus_rule           ',l_old_rules.bonus_rule           , p_log_level_rec => p_log_level_rec);
545          fa_debug_pkg.add(l_calling_fn, 'l_new_rules.itc_amount           ',l_new_rules.itc_amount           , p_log_level_rec => p_log_level_rec);
546          fa_debug_pkg.add(l_calling_fn, 'l_old_rules.itc_amount           ',l_old_rules.itc_amount           , p_log_level_rec => p_log_level_rec);
547          fa_debug_pkg.add(l_calling_fn, 'l_new_rules.ceiling_name         ',l_new_rules.ceiling_name         , p_log_level_rec => p_log_level_rec);
548          fa_debug_pkg.add(l_calling_fn, 'l_old_rules.ceiling_name         ',l_old_rules.ceiling_name         , p_log_level_rec => p_log_level_rec);
549          fa_debug_pkg.add(l_calling_fn, 'l_new_rules.depreciate_flag      ',l_new_rules.depreciate_flag      , p_log_level_rec => p_log_level_rec);
550          fa_debug_pkg.add(l_calling_fn, 'l_old_rules.depreciate_flag      ',l_old_rules.depreciate_flag      , p_log_level_rec => p_log_level_rec);
551          fa_debug_pkg.add(l_calling_fn, 'l_new_rules.allow_deprn_limit    ',l_new_rules.allow_deprn_limit    , p_log_level_rec => p_log_level_rec);
552          fa_debug_pkg.add(l_calling_fn, 'l_old_rules.allow_deprn_limit    ',l_old_rules.allow_deprn_limit    , p_log_level_rec => p_log_level_rec);
553          fa_debug_pkg.add(l_calling_fn, 'l_new_rules.deprn_limit_amount   ',l_new_rules.deprn_limit_amount   , p_log_level_rec => p_log_level_rec);
554          fa_debug_pkg.add(l_calling_fn, 'l_old_rules.deprn_limit_amount   ',l_old_rules.deprn_limit_amount   , p_log_level_rec => p_log_level_rec);
555          fa_debug_pkg.add(l_calling_fn, 'l_new_rules.percent_salvage_value',l_new_rules.percent_salvage_value, p_log_level_rec => p_log_level_rec);
556          fa_debug_pkg.add(l_calling_fn, 'l_old_rules.percent_salvage_value',l_old_rules.percent_salvage_value, p_log_level_rec => p_log_level_rec);
557 
558       end if;
559 
560       IF ((l_old_rules.prorate_conv_code = l_new_rules.prorate_conv_code) AND
561           (l_old_rules.deprn_method = l_new_rules.deprn_method) AND
562            (nvl(l_old_rules.life_in_months, 99999) =
563                 nvl(l_new_rules.life_in_months, 99999)) AND
564            (nvl(l_old_rules.basic_rate, 99999) =
565                 nvl(l_new_rules.basic_rate, 99999)) AND
566            (nvl(l_old_rules.adjusted_rate, 99999) =
567                 nvl(l_new_rules.adjusted_rate, 99999)) AND
568            (nvl(l_old_rules.production_capacity, 99999) =
569                 nvl(l_new_rules.production_capacity, 99999)) AND
570            (nvl(l_old_rules.unit_of_measure, 99999) =
571                 nvl(l_new_rules.unit_of_measure, 99999)) AND
572            (nvl(l_old_rules.bonus_rule, 'NULL') =
573                 nvl(l_new_rules.bonus_rule, 'NULL')) AND
574            (nvl(l_old_rules.ceiling_name, 'NULL') =
575                 nvl(l_new_rules.ceiling_name, 'NULL')) AND
576 /* Skip this check -- we will not change depreciate flag through mass reclass.
577                (l_old_rules.depreciate_flag = l_new_rules.depreciate_flag) AND
578 */
579            (nvl(l_old_rules.percent_salvage_value, 99) =
580                 nvl(l_new_rules.percent_salvage_value, 99)))
581       THEN
582          if l_old_rules.allow_deprn_limit is not null then
583             if (nvl(l_old_rules.allow_deprn_limit, 99) =
584                 nvl(l_new_rules.allow_deprn_limit, 99))  then
585                l_rule_change_exists := FALSE;
586             else
587                l_rule_change_exists := TRUE;
588             end if;
589          elsif  l_old_rules.deprn_limit_amount is not null then
590             if (nvl(to_char(l_old_rules.deprn_limit_amount), 'NULL') =
591                 nvl(to_char(l_new_rules.deprn_limit_amount), 'NULL'))  then
592                l_rule_change_exists := FALSE;
593             else
594                l_rule_change_exists := TRUE;
595             end if;
596          elsif (l_new_rules.allow_deprn_limit is not null or
597                 l_new_rules.deprn_limit_amount is not null) then
598             l_rule_change_exists := TRUE;
599          else
600             l_rule_change_exists := FALSE;
601          end if;
602       ELSE
603          l_rule_change_exists := TRUE;
604       END IF;
605      --Bug6395440 starts
606       --Commenting the following check and adding an IF condition below
607       /*
608       IF (NOT l_rule_change_exists) then
609          return TRUE;
610       END IF;
611       */
612       IF l_rule_change_exists then
613 
614 	      /*==================================+
615 	       | Perform Redefault Transaction    |
616 	       +==================================*/
617 	       l_asset_hdr_rec:= null;
618 	       l_asset_hdr_rec:= px_asset_hdr_rec;
619 	       l_asset_hdr_rec.book_type_code := book_rec.book_type_code;
620 
621 	       -- dbms_output.put_line('populate_adjust_info');
622 	       if (p_log_level_rec.statement_level) then
623 		    fa_debug_pkg.add(l_calling_fn, '-', 'before populate_adjust_info', p_log_level_rec => p_log_level_rec);
624 	       end if;
625 	       if NOT populate_adjust_info (
626 		       px_trans_rec               => px_trans_rec,
627 		       px_asset_hdr_rec           => l_asset_hdr_rec,
628 		       px_asset_desc_rec          => px_asset_desc_rec,
629 		       px_asset_type_rec          => px_asset_type_rec,
630 		       px_asset_cat_rec           => px_asset_cat_rec_new,
631 		       px_asset_fin_rec           => l_asset_fin_rec,
632 		       px_asset_fin_rec_adj       => l_asset_fin_rec_adj,
633 		       px_asset_deprn_rec         => l_asset_deprn_rec,
634 		       px_asset_deprn_rec_adj     => l_asset_deprn_rec_adj,
635 		       p_old_rules                => l_old_rules,
636 		       p_new_rules                => l_new_rules,
637                        p_log_level_rec     => p_log_level_rec ) then
638 		   raise call_err;
639 	       end if;
640 
641 	       -- reset the header_id for next book
642 	       px_trans_rec.transaction_header_id:= null;
643 
644 	       /* Bug 2718610:
645 		  Passing the transaction_date_entered and amortization_start_date
646 		  as null to the Public Adjustments API. The Adj API will take care of
647 		  populating these values according to the current open period
648 		  of the book_type_code */
649 
650 	       /* ****** commenting this fix for bug 3446237 ***** */
651 	       -- px_trans_rec.transaction_date_entered := null; -- bug 2718610
652 	       -- px_trans_rec.amortization_start_date  := null; -- bug 2718610
653 	       /* bug 2718610 is now indirectly fixed by bug 2888021 */
654 
655 
656 	       -- dbms_output.put_line('FA_ADJUSTMENT_PUB.do_adjustment');
657 	       if (p_log_level_rec.statement_level) then
658 		    fa_debug_pkg.add(l_calling_fn, '-', 'before FA_ADJUSTMENT_PUB.do_adjustment', p_log_level_rec => p_log_level_rec);
659 	       end if;
660 	       FA_ADJUSTMENT_PUB.do_adjustment(
661 				 p_api_version             => 1.0,
662 				 p_init_msg_list           => FND_API.G_FALSE,
663 				 p_commit                  => FND_API.G_FALSE,
664 				 p_validation_level        => FND_API.G_VALID_LEVEL_FULL,
665 				 x_return_status           => l_return_status,
666 				 x_msg_count               => l_mesg_count,
667 				 x_msg_data                => l_mesg_data,
668 				 p_calling_fn              => 'FA_RECLASS_PVT.do_redefault',
669 				 px_trans_rec              => px_trans_rec,
670 				 px_asset_hdr_rec          => l_asset_hdr_rec,
671 				 p_asset_fin_rec_adj       => l_asset_fin_rec_adj,
672 				 x_asset_fin_rec_new       => l_asset_fin_rec_new,
673 				 x_asset_fin_mrc_tbl_new   => l_asset_fin_mrc_tbl_new,
674 				 px_inv_trans_rec          => l_inv_trans_rec_dummy,
675 				 px_inv_tbl                => l_inv_tbl_dummy,
676 				 p_asset_deprn_rec_adj     => l_asset_deprn_rec_adj,
677 				 x_asset_deprn_rec_new     => l_asset_deprn_rec_new,
678 				 x_asset_deprn_mrc_tbl_new => l_asset_deprn_mrc_tbl_new,
679 				 p_group_reclass_options_rec => l_group_reclass_options_rec );
680 
681 
682 	      if (l_return_status <> FND_API.G_RET_STS_SUCCESS) then
683 		 -- dbms_output.put_line('fa_adjustment_pub error');
684 		 raise call_err;
685 	      end if;
686 	END IF;
687    END LOOP;
688 
689    return TRUE;
690 
691 EXCEPTION
692    when call_err then
693       fa_srvr_msg.add_message(calling_fn => l_calling_fn, p_log_level_rec => p_log_level_rec);
694       return FALSE;
695 
696    when others then
697       fa_srvr_msg.add_sql_error(calling_fn => l_calling_fn, p_log_level_rec => p_log_level_rec);
698       return FALSE;
699 
700 END do_redefault;
701 
702 
703 FUNCTION populate_adjust_info (
704                px_trans_rec              IN OUT NOCOPY FA_API_TYPES.trans_rec_type,
705                px_asset_hdr_rec          IN OUT NOCOPY FA_API_TYPES.asset_hdr_rec_type,
706                px_asset_desc_rec         IN OUT NOCOPY FA_API_TYPES.asset_desc_rec_type,
707                px_asset_type_rec         IN OUT NOCOPY FA_API_TYPES.asset_type_rec_type,
708                px_asset_cat_rec          IN OUT NOCOPY FA_API_TYPES.asset_cat_rec_type,
709                px_asset_fin_rec          IN OUT NOCOPY FA_API_TYPES.asset_fin_rec_type,
710                px_asset_fin_rec_adj      IN OUT NOCOPY FA_API_TYPES.asset_fin_rec_type,
711                px_asset_deprn_rec        IN OUT NOCOPY FA_API_TYPES.asset_deprn_rec_type,
712                px_asset_deprn_rec_adj    IN OUT NOCOPY FA_API_TYPES.asset_deprn_rec_type,
713                p_old_rules               IN     FA_LOAD_TBL_PKG.asset_deprn_info,
714                p_new_rules               IN     FA_LOAD_TBL_PKG.asset_deprn_info
715                , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) return boolean IS
716 
717      CURSOR get_prorate_date(p_dpis date) IS
718             SELECT conv.prorate_date
719             FROM FA_CONVENTIONS conv
720             WHERE conv.prorate_convention_code = p_new_rules.prorate_conv_code
721             AND p_dpis between conv.start_date and conv.end_date;
722 
723      l_use_deprn_limits_flag    VARCHAR2(3) := 'NO';
724      l_prorate_date date;
725      l_status boolean;
726      l_fiscal_year_name varchar2(30);
727      l_period_rec        FA_API_TYPES.period_rec_type;
728 
729      l_calling_fn varchar2(40) := 'fa_reclass_pvt.populate_adjust_info';
730      call_err EXCEPTION;
731 BEGIN
732 
733 
734      if NOT FA_UTIL_PVT.get_asset_desc_rec(
735                         p_asset_hdr_rec    => px_asset_hdr_rec,
736                         px_asset_desc_rec  => px_asset_desc_rec , p_log_level_rec => p_log_level_rec) then
737          raise call_err;
738      end if;
739 
740      if NOT FA_UTIL_PVT.get_asset_type_rec(
741                         p_asset_hdr_rec    => px_asset_hdr_rec,
742                         px_asset_type_rec  => px_asset_type_rec,
743                         p_date_effective   => null , p_log_level_rec => p_log_level_rec)  then
744        raise call_err;
745      end if;
746 
747      if NOT FA_UTIL_PVT.get_asset_cat_rec(
748                         p_asset_hdr_rec  => px_asset_hdr_rec,
749                         px_asset_cat_rec => px_asset_cat_rec,
750                         p_date_effective => null , p_log_level_rec => p_log_level_rec) then
751        raise call_err;
752      end if;
753 
754      if NOT FA_UTIL_PVT.get_asset_fin_rec(
755                         p_asset_hdr_rec         => px_asset_hdr_rec,
756                         px_asset_fin_rec        => px_asset_fin_rec,
757                         p_transaction_header_id => null,
758                         p_mrc_sob_type_code     => 'P', p_log_level_rec => p_log_level_rec) then
759        raise call_err;
760      end if;
761 
762      -- copy orig record to adjusted record
763      -- px_asset_fin_rec_adj:= px_asset_fin_rec;
764 
765      if NOT FA_UTIL_PVT.get_asset_deprn_rec(
766                         p_asset_hdr_rec     => px_asset_hdr_rec,
767                         px_asset_deprn_rec  => px_asset_deprn_rec,
768                         p_period_counter    => null,
769                         p_mrc_sob_type_code => 'P', p_log_level_rec => p_log_level_rec) then
770        raise call_err;
771      end if;
772 
773      -- copy orig record to adjusted record
774      -- px_asset_deprn_rec_adj:= px_asset_deprn_rec;
775 
776 
777      -- assign new values to the adj record, based on the new rules
778      --
779      -- BUG# 3361196 - we need to populate the delta not the new values
780      -- note the premise that null values in category result in
781      -- null values in the new (don't treat null as delta here)
782 
783      px_asset_fin_rec_adj.unit_of_measure            := p_new_rules.unit_of_measure;
784      px_asset_fin_rec_adj.deprn_method_code          := p_new_rules.deprn_method;
785      px_asset_fin_rec_adj.life_in_months             := p_new_rules.life_in_months;
786      px_asset_fin_rec_adj.prorate_convention_code    := p_new_rules.prorate_conv_code;
787      -- BUG# 3930865
788      -- we should not be setting dep_flag as part of redefault
789      -- already removed from prior checks
790      -- px_asset_fin_rec_adj.depreciate_flag            := p_new_rules.depreciate_flag;
791      px_asset_fin_rec_adj.basic_rate                 := p_new_rules.basic_rate;
792      px_asset_fin_rec_adj.adjusted_rate              := p_new_rules.adjusted_rate;
793 
794 
795      -- use G_MISS_* here....
796 
797      if (p_new_rules.ceiling_name is null) then
798          px_asset_fin_rec_adj.ceiling_name           := FND_API.G_MISS_CHAR;
799      else
800          px_asset_fin_rec_adj.ceiling_name           := p_new_rules.ceiling_name;
801      end if;
802 
803      if (p_new_rules.bonus_rule is null OR
804          (px_asset_fin_rec.group_asset_id is not null and nvl(px_asset_fin_rec.member_rollup_flag,'Z') <> 'Y')
805         ) then
806         px_asset_fin_rec_adj.bonus_rule              := FND_API.G_MISS_CHAR;
807      else
808         px_asset_fin_rec_adj.bonus_rule              := p_new_rules.bonus_rule;
809      end if;
810 
811 
812      -- these are where we need to derive values using the delta
813      -- first derive the types
814      --
815      -- note the premise that null values in category result in
816      -- null values in the new (don't treat null as delta here)
817      -- the behavior on delta salvage is dabateable
818      --
819      -- (whether to remove/reverse or treat as no delta)
820      -- for now going with no delta since majority of customer
821      -- do not use percent salvage on the category
822 
823      if (p_new_rules.percent_salvage_value is not null) then
824         px_asset_fin_rec_adj.salvage_type          := 'PCT';
825         px_asset_fin_rec_adj.percent_salvage_value :=
826            p_new_rules.percent_salvage_value -
827               nvl(p_old_rules.percent_salvage_value, 0);
828      else
829         px_asset_fin_rec_adj.percent_salvage_value      := NULL;
830 
831         -- use default type  based on asset type
832         if (px_asset_type_rec.asset_type = 'GROUP') then
833            px_asset_fin_rec_adj.salvage_type := 'PCT';
834         else
835            px_asset_fin_rec_adj.salvage_type := 'AMT';
836         end if;
837      end if;
838 
839      if (p_new_rules.allow_deprn_limit is not null) then
840         px_asset_fin_rec_adj.deprn_limit_type           := 'PCT';
841         px_asset_fin_rec_adj.allowed_deprn_limit        :=
842            p_new_rules.allow_deprn_limit -
843               nvl(p_old_rules.allow_deprn_limit, 0);
844      elsif (p_new_rules.deprn_limit_amount is not null) then
845         px_asset_fin_rec_adj.deprn_limit_type           := 'AMT';
846         if (p_old_rules.allow_deprn_limit is not null) then
847            px_asset_fin_rec_adj.allowed_deprn_limit_amount :=
848               p_new_rules.deprn_limit_amount;
849         else
850            px_asset_fin_rec_adj.allowed_deprn_limit_amount :=
851               p_new_rules.deprn_limit_amount -
852                  nvl(p_old_rules.deprn_limit_amount, 0);
853         end if;
854 
855      else
856          -- type of NONE will handle the reversal from prior info
857         px_asset_fin_rec_adj.deprn_limit_type           := 'NONE';
858         px_asset_fin_rec_adj.allowed_deprn_limit        := NULL;
859         px_asset_fin_rec_adj.allowed_deprn_limit_amount := NULL;
860      end if;
861 
862      if (p_new_rules.production_capacity is not null) then
863         px_asset_fin_rec_adj.production_capacity        :=
864            p_new_rules.production_capacity -
865               nvl(p_old_rules.production_capacity, 0);
866      end if;
867 
868      -- Bug 14266323 : Redefault amortization_date also
869      if px_trans_rec.transaction_subtype = 'AMORTIZED' then
870         if not FA_UTIL_PVT.get_period_rec
871                    (p_book          => px_asset_hdr_rec.book_type_code,
872                     x_period_rec    => l_period_rec,
873                     p_log_level_rec => p_log_level_rec) then
874            raise call_err;
875         end if;
876 
877         px_trans_rec.transaction_date_entered :=
878            greatest(l_period_rec.calendar_period_open_date,
879                     least(sysdate,l_period_rec.calendar_period_close_date));
880 
881         px_trans_rec.transaction_date_entered :=
882            to_date(to_char(px_trans_rec.transaction_date_entered,'DD/MM/YYYY'),'DD/MM/YYYY');
883 
884         px_trans_rec.amortization_start_date := px_trans_rec.transaction_date_entered;
885 
886      end if;
887 
888      if (p_log_level_rec.statement_level) then
889         fa_debug_pkg.add(l_calling_fn, 'px_asset_fin_rec_adj.deprn_limit_type',px_asset_fin_rec_adj.deprn_limit_type, p_log_level_rec => p_log_level_rec);
890         fa_debug_pkg.add(l_calling_fn, 'px_asset_fin_rec_adj.allowed_deprn_limit', px_asset_fin_rec_adj.allowed_deprn_limit, p_log_level_rec => p_log_level_rec);
891         fa_debug_pkg.add(l_calling_fn, 'px_asset_fin_rec_adj.allowed_deprn_limit_amount', px_asset_fin_rec_adj.allowed_deprn_limit_amount, p_log_level_rec => p_log_level_rec);
892         fa_debug_pkg.add(l_calling_fn, 'px_asset_fin_rec_adj.salvage_type', px_asset_fin_rec_adj.salvage_type, p_log_level_rec => p_log_level_rec);
893         fa_debug_pkg.add(l_calling_fn, 'px_asset_fin_rec_adj.percent_salvage_value', px_asset_fin_rec_adj.percent_salvage_value, p_log_level_rec => p_log_level_rec);
894     end if;
895 
896      /*** this was where the old code for old trx engine call was ***/
897 
898      return TRUE;
899 
900 EXCEPTION
901   when call_err then
902       fa_srvr_msg.add_message(calling_fn => l_calling_fn, p_log_level_rec => p_log_level_rec);
903       return FALSE;
904 
905   when others then
906      fa_srvr_msg.add_sql_error(calling_fn => l_calling_fn, p_log_level_rec => p_log_level_rec);
907      return FALSE;
908 
909 END populate_adjust_info;
910 
911 
912 END FA_RECLASS_PVT;