DBA Data[Home] [Help]

PACKAGE BODY: APPS.FA_ADJUSTMENT_PVT

Source


1 PACKAGE BODY FA_ADJUSTMENT_PVT as
2 /* $Header: FAVADJB.pls 120.48.12010000.3 2008/08/14 00:55:03 tkawamur ship $ */
3 
4 FUNCTION do_adjustment
5    (px_trans_rec              IN OUT NOCOPY FA_API_TYPES.trans_rec_type,
6     px_asset_hdr_rec          IN OUT NOCOPY FA_API_TYPES.asset_hdr_rec_type,
7     p_asset_desc_rec          IN     FA_API_TYPES.asset_desc_rec_type,
8     p_asset_type_rec          IN     FA_API_TYPES.asset_type_rec_type,
9     p_asset_cat_rec           IN     FA_API_TYPES.asset_cat_rec_type,
10     p_asset_fin_rec_old       IN     FA_API_TYPES.asset_fin_rec_type,
11     p_asset_fin_rec_adj       IN     FA_API_TYPES.asset_fin_rec_type,
12     x_asset_fin_rec_new          OUT NOCOPY FA_API_TYPES.asset_fin_rec_type,
13     p_inv_trans_rec           IN     FA_API_TYPES.inv_trans_rec_type,
14     p_asset_deprn_rec_old     IN     FA_API_TYPES.asset_deprn_rec_type,
15     p_asset_deprn_rec_adj     IN     FA_API_TYPES.asset_deprn_rec_type,
16     x_asset_deprn_rec_new        OUT NOCOPY FA_API_TYPES.asset_deprn_rec_type,
17     p_period_rec              IN     FA_API_TYPES.period_rec_type,
18     p_reclassed_asset_id      IN     NUMBER default null,
19     p_reclass_src_dest        IN     VARCHAR2 default null,
20     p_reclassed_asset_dpis    IN     DATE default null,
21     p_mrc_sob_type_code       IN     VARCHAR2,
22     p_group_reclass_options_rec IN OUT NOCOPY FA_API_TYPES.group_reclass_options_rec_type,
23     p_calling_fn              IN     VARCHAR2,
24     p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type default null) RETURN BOOLEAN IS
25 
26    l_th_rowid                        varchar2(30);
27    l_bks_rowid                       varchar2(30);
28 
29    l_status                          boolean;
30    l_ret_status                      varchar2(1);
31 
32    l_old_transaction_type_code       varchar2(30);
33    l_period_counter                  number;
34 
35    l_deprn_exp                       number;
36    l_bonus_deprn_exp                 number;
37    l_deprn_adjustment_amount         number;
38    l_deprn_exp_amort_nbv             number;
39 
40    l_raf                             number;
41 
42    l_calling_fn                      varchar2(35) := 'fa_adjustment_pvt.do_adjustment';
43    deprn_override_flag_default       varchar2(1);
44 
45    l_reserve_adjustment_amount       number;
46    l_asset_fin_rec_null              FA_API_TYPES.asset_fin_rec_type;
47 
48    adj_err                           EXCEPTION;
49 
50    -- Track Member
51    l_ret_code                     number;
52    l_group_level_override         VARCHAR2(1) := 'Y';
53    x_group_deprn_amount           number;
54    x_group_bonus_amount           number;
55 
56    --Bug3548724
57    l_asset_deprn_rec_adj          FA_API_TYPES.asset_deprn_rec_type;
58 
59    -- SLA
60    l_event_status                 varchar2(15);
61    l_event_type_code              varchar2(30);
62 
63    -- Bug 6665510: FP: Japan Tax Reform Project
64    l_method_type                  NUMBER := 0;
65    l_success                      INTEGER;
66    l_rate_in_use                  NUMBER;
67 BEGIN
68 
69    --set up transaction types for adjustments vs. addition voids
70 
71    -- SLA UPTAKE
72    -- removing section for void processing as its obsolete
73 
74    /*
75    if (px_asset_hdr_rec.period_of_addition = 'Y') then
76       if (p_asset_type_rec.asset_type = 'CIP') then
77          px_trans_rec.transaction_type_code := 'CIP ADDITION';
78          l_old_transaction_type_code := 'CIP ADDITION';
79       elsif (p_asset_type_rec.asset_type = 'GROUP') then
80          px_trans_rec.transaction_type_code := 'GROUP ADDITION';
81          l_old_transaction_type_code := 'GROUP ADDITION';
82       else
83          px_trans_rec.transaction_type_code := 'ADDITION';
84          l_old_transaction_type_code := 'ADDITION';
85       end if;
86    else
87       if (p_asset_type_rec.asset_type = 'CIP') then
88          px_trans_rec.transaction_type_code := 'CIP ADJUSTMENT';
89          l_old_transaction_type_code := 'CIP ADJUSTMENT';
90       elsif  (p_asset_type_rec.asset_type = 'GROUP') then
91          l_old_transaction_type_code := 'GROUP ADJUSTMENT';
92       else
93          px_trans_rec.transaction_type_code := 'ADJUSTMENT';
94          l_old_transaction_type_code := 'ADJUSTMENT';
95       end if;
96    end if;
97    */
98 
99    deprn_override_flag_default:= fa_std_types.FA_NO_OVERRIDE;
100 
101    -- call the calulation engine - see comments below for FA_ADJ
102 
103    if not FA_ASSET_CALC_PVT.calc_fin_info
104                  (px_trans_rec              => px_trans_rec,
105                   p_inv_trans_rec           => p_inv_trans_rec,
106                   p_asset_hdr_rec           => px_asset_hdr_rec ,
107                   p_asset_desc_rec          => p_asset_desc_rec,
108                   p_asset_type_rec          => p_asset_type_rec,
109                   p_asset_cat_rec           => p_asset_cat_rec,
110                   p_asset_fin_rec_old       => p_asset_fin_rec_old,
111                   p_asset_fin_rec_adj       => p_asset_fin_rec_adj,
112                   px_asset_fin_rec_new      => x_asset_fin_rec_new,
113                   p_asset_deprn_rec_old     => p_asset_deprn_rec_old,
114                   p_asset_deprn_rec_adj     => p_asset_deprn_rec_adj,
115                   px_asset_deprn_rec_new    => x_asset_deprn_rec_new,
116                   p_period_rec              => p_period_rec,
117                   p_reclassed_asset_id      => p_reclassed_asset_id,
118                   p_reclass_src_dest        => p_reclass_src_dest,
119                   p_reclassed_asset_dpis    => p_reclassed_asset_dpis,
120                   p_mrc_sob_type_code       => p_mrc_sob_type_code,
121                   p_group_reclass_options_rec => p_group_reclass_options_rec,
122                   p_calling_fn              => l_calling_fn
123                   ,p_log_level_rec => p_log_level_rec) then raise adj_err;
124    end if;
125 
126    -- call the table handlers to process the adjustment
127 
128    -- transaction headers
129 
130    if (p_mrc_sob_type_code <> 'R') then
131 
132       -- validate call is done from public package now
133 
134       -- do th processing
135       -- SLA UPTAKE
136       -- removing the vois process as its obsolete
137 
138       if (px_asset_hdr_rec.period_of_addition = 'Y') then
139          /*
140          FA_TRANSACTION_HEADERS_PKG.Update_Trx_Type
141                        (X_Book_Type_Code                => px_asset_hdr_rec.book_type_code,
142                         X_Asset_Id                      => px_asset_hdr_rec.asset_id,
143                         X_Transaction_Type_Code         => l_old_transaction_type_code,
144                         X_New_Transaction_Type          => l_old_transaction_type_code || '/VOID',
145                         X_Return_Status                 => l_status,
146                         X_Calling_Fn                    => l_calling_fn
147                         ,p_log_level_rec => p_log_level_rec);
148 
149          if not l_status then
150             raise adj_err;
151          end if;
152          */
153 
154          -- for amortize nbv, these need to be set correctly
155          -- outside the period of addition trx date is already the amort date
156          -- BUG# 2425540 - only set the amort_start_date for amort trxs
157 
158          -- group - this is iffy!!!!  do we want trx_date to be dpis in period of add?
159          -- whole section if iffy - why are we resetting amort start date here???
160          -- should be able to modify reclass engine to redefault the info instead
161           -- of exlcuding it here
162 /*
163          if (px_trans_rec.transaction_subtype = 'AMORTIZED' and
164              p_asset_type_rec.asset_type <> 'GROUP') then
165             px_trans_rec.amortization_start_date  := px_trans_rec.transaction_date_entered;
166          end if;
167 */
168 
169          -- SLA UPTAKE
170          -- set the trx_date to dpis only if there is a change
171          -- if (p_asset_type_rec.asset_type <> 'GROUP') then
172          if (p_asset_fin_rec_old.date_placed_in_service <> x_asset_fin_rec_new.date_placed_in_service) then
173             px_trans_rec.transaction_date_entered := x_asset_fin_rec_new.date_placed_in_service;
174          end if;
175 
176       end if;
177 
178       -- SLA UPTAKE
179       -- assign an event for the transaction
180       -- at this point key info asset/book/trx info is known from above code
181       --   *** but trx_date_entered may not be correct! - revisit ***
182       --
183       -- do not assign when this is called from invoice api for like
184       -- asset types - an event is already assigned and do not call
185       -- when this is called for a group asset from the driving member
186 
187       if (nvl(p_inv_trans_rec.transaction_type, 'X') <> 'INVOICE TRANSFER' and
188           p_calling_fn = 'fa_adjustment_pub.do_all_books' and
189           px_trans_rec.member_transaction_header_id is null) then
190 
191          if (x_asset_fin_rec_new.adjustment_required_status = 'GADJ') then
192             l_event_status := XLA_EVENTS_PUB_PKG.C_EVENT_INCOMPLETE;
193          else
194             l_event_status := null; -- default
195          end if;
196 
197          if not FA_XLA_EVENTS_PVT.create_transaction_event
198                  (p_asset_hdr_rec          => px_asset_hdr_rec,
199                   p_asset_type_rec         => p_asset_type_rec,
200                   px_trans_rec             => px_trans_rec,
201                   p_event_status           => l_event_status,
202                   p_calling_fn             => l_calling_fn
203                   ,p_log_level_rec => p_log_level_rec) then
204             raise adj_err;
205          end if;
206 
207       elsif (x_asset_fin_rec_new.adjustment_required_status = 'GADJ') then
208          -- enter here if member driven and deferred calculations
209 
210          select event_type_code
211            into l_event_type_code
212            from xla_events
213           where application_id = 140
214             and event_id       = px_trans_rec.event_id;
215 
216          if (l_event_type_code in ('SOURCE_LINE_TRANSFERS',
217                                    'CIP_SOURCE_LINE_TRANSFERS')) then
218 
219             if not fa_xla_events_pvt.update_inter_transaction_event
220                (p_ledger_id              => px_asset_hdr_rec.set_of_books_id,
221                 p_trx_reference_id       => px_trans_rec.trx_reference_id,
222                 p_book_type_code         => px_asset_hdr_rec.book_type_code,
223                 p_event_type_code        => l_event_type_code,
224                 p_event_date             => px_trans_rec.transaction_date_entered,
225                 p_event_status_code      => XLA_EVENTS_PUB_PKG.C_EVENT_INCOMPLETE,
226                 p_calling_fn             => l_calling_fn,
227                 p_log_level_rec          => p_log_level_rec) then
228               raise adj_err;
229             end if;
230 
231          else -- non inter asset trx
232 
233             if not fa_xla_events_pvt.update_transaction_event
234                (p_ledger_id              => px_asset_hdr_rec.set_of_books_id,
235                 p_transaction_header_id  => px_trans_rec.member_transaction_header_id,
236                 p_book_type_code         => px_asset_hdr_rec.book_type_code,
237                 p_event_type_code        => l_event_type_code,
238                 p_event_date             => px_trans_rec.transaction_date_entered,
239                 p_event_status_code      => XLA_EVENTS_PUB_PKG.C_EVENT_INCOMPLETE,
240                 p_calling_fn             => l_calling_fn,
241                 p_log_level_rec          => p_log_level_rec) then
242                raise adj_err;
243             end if;
244 
245          end if;
246 
247       end if;
248 
249       if (p_log_level_rec.statement_level) then
250          fa_debug_pkg.add('pvt adj api', 'trx_date before insert',
251                           px_trans_rec.transaction_date_entered,
252                           p_log_level_rec => p_log_level_rec);
253       end if;
254 
255 
256       FA_TRANSACTION_HEADERS_PKG.Insert_Row
257                       (X_Rowid                          => l_th_rowid,
258                        X_Transaction_Header_Id          => px_trans_rec.transaction_header_id,
259                        X_Book_Type_Code                 => px_asset_hdr_rec.book_type_code,
260                        X_Asset_Id                       => px_asset_hdr_rec.asset_id,
261                        X_Transaction_Type_Code          => px_trans_rec.transaction_type_code,
262                        X_Transaction_Date_Entered       => px_trans_rec.transaction_date_entered,
263                        X_Date_Effective                 => px_trans_rec.who_info.creation_date,
264                        X_Last_Update_Date               => px_trans_rec.who_info.last_update_date,
265                        X_Last_Updated_By                => px_trans_rec.who_info.last_updated_by,
266                        X_Transaction_Name               => px_trans_rec.transaction_name,
267                        X_Invoice_Transaction_Id         => p_inv_trans_rec.invoice_transaction_id ,
268                        X_Source_Transaction_Header_Id   => px_trans_rec.Source_Transaction_Header_Id,
269                        X_Mass_Reference_Id              => px_trans_rec.mass_reference_id,
270                        X_Last_Update_Login              => px_trans_rec.who_info.last_update_login,
271                        X_Transaction_Subtype            => px_trans_rec.transaction_subtype,
272                        X_Attribute1                     => px_trans_rec.desc_flex.attribute1,
273                        X_Attribute2                     => px_trans_rec.desc_flex.attribute2,
274                        X_Attribute3                     => px_trans_rec.desc_flex.attribute3,
275                        X_Attribute4                     => px_trans_rec.desc_flex.attribute4,
276                        X_Attribute5                     => px_trans_rec.desc_flex.attribute5,
277                        X_Attribute6                     => px_trans_rec.desc_flex.attribute6,
278                        X_Attribute7                     => px_trans_rec.desc_flex.attribute7,
279                        X_Attribute8                     => px_trans_rec.desc_flex.attribute8,
280                        X_Attribute9                     => px_trans_rec.desc_flex.attribute9,
281                        X_Attribute10                    => px_trans_rec.desc_flex.attribute10,
282                        X_Attribute11                    => px_trans_rec.desc_flex.attribute11,
283                        X_Attribute12                    => px_trans_rec.desc_flex.attribute12,
284                        X_Attribute13                    => px_trans_rec.desc_flex.attribute13,
285                        X_Attribute14                    => px_trans_rec.desc_flex.attribute14,
286                        X_Attribute15                    => px_trans_rec.desc_flex.attribute15,
287                        X_Attribute_Category_Code        => px_trans_rec.desc_flex.attribute_category_code,
288                        X_Transaction_Key                => px_trans_rec.transaction_key,
289                        X_Amortization_Start_Date        => px_trans_rec.amortization_start_date,
290                        X_Calling_Interface              => px_trans_rec.calling_interface,
291                        X_Mass_Transaction_ID            => px_trans_rec.mass_transaction_id,
292                        X_Member_Transaction_Header_Id   => px_trans_rec.member_transaction_header_id,
293                        X_Trx_Reference_Id               => px_trans_rec.trx_reference_id,
294                        X_Event_Id                       => px_trans_rec.event_id,
295                        X_Return_Status                  => l_status,
296                        X_Calling_Fn                     => l_calling_fn
297                        ,p_log_level_rec => p_log_level_rec);
298       if not l_status then
299          raise adj_err;
300       end if;
301    end if;
302 
303    -- terminate the active row
304    fa_books_pkg.deactivate_row
305         (X_asset_id                  => px_asset_hdr_rec.asset_id,
306          X_book_type_code            => px_asset_hdr_rec.book_type_code,
307          X_transaction_header_id_out => px_trans_rec.transaction_header_id,
308          X_date_ineffective          => px_trans_rec.who_info.last_update_date,
309          X_mrc_sob_type_code         => p_mrc_sob_type_code,
310          X_Calling_Fn                => l_calling_fn
311          ,p_log_level_rec => p_log_level_rec);
312 
313    -- fa books
314    fa_books_pkg.insert_row
315          (X_Rowid                        => l_bks_rowid,
316           X_Book_Type_Code               => px_asset_hdr_rec.book_type_code,
317           X_Asset_Id                     => px_asset_hdr_rec.asset_id,
318           X_Date_Placed_In_Service       => x_asset_fin_rec_new.date_placed_in_service,
319           X_Date_Effective               => px_trans_rec.who_info.last_update_date,
320           X_Deprn_Start_Date             => x_asset_fin_rec_new.deprn_start_date,
321           X_Deprn_Method_Code            => x_asset_fin_rec_new.deprn_method_code,
322           X_Life_In_Months               => x_asset_fin_rec_new.life_in_months,
323           X_Rate_Adjustment_Factor       => x_asset_fin_rec_new.rate_adjustment_factor,
324           X_Adjusted_Cost                => x_asset_fin_rec_new.adjusted_cost,
325           X_Cost                         => x_asset_fin_rec_new.cost,
326           X_Original_Cost                => p_asset_fin_rec_old.original_cost, -- SLA: x_asset_fin_rec_new.original_cost,
327           X_Salvage_Value                => x_asset_fin_rec_new.salvage_value,
328           X_Prorate_Convention_Code      => x_asset_fin_rec_new.prorate_convention_code,
329           X_Prorate_Date                 => x_asset_fin_rec_new.prorate_date,
330           X_Cost_Change_Flag             => x_asset_fin_rec_new.cost_change_flag,
331           X_Adjustment_Required_Status   => x_asset_fin_rec_new.adjustment_required_status,
332           X_Capitalize_Flag              => x_asset_fin_rec_new.capitalize_flag,
333           X_Retirement_Pending_Flag      => x_asset_fin_rec_new.retirement_pending_flag,
334           X_Depreciate_Flag              => x_asset_fin_rec_new.depreciate_flag,
335           X_Disabled_Flag                => x_asset_fin_rec_new.disabled_flag, --HH
336           X_Last_Update_Date             => px_trans_rec.who_info.last_update_date,
337           X_Last_Updated_By              => px_trans_rec.who_info.last_updated_by,
338           X_Date_Ineffective             => NULL,
339           X_Transaction_Header_Id_In     => px_trans_rec.transaction_header_id,
340           X_Transaction_Header_Id_Out    => NULL,
341           X_Itc_Amount_Id                => x_asset_fin_rec_new.itc_amount_id,
342           X_Itc_Amount                   => x_asset_fin_rec_new.itc_amount,
343           X_Retirement_Id                => x_asset_fin_rec_new.retirement_id,
344           X_Tax_Request_Id               => x_asset_fin_rec_new.tax_request_id,
345           X_Itc_Basis                    => x_asset_fin_rec_new.itc_basis,
346           X_Basic_Rate                   => x_asset_fin_rec_new.basic_rate,
347           X_Adjusted_Rate                => x_asset_fin_rec_new.adjusted_rate,
348           X_Bonus_Rule                   => x_asset_fin_rec_new.bonus_rule,
349           X_Ceiling_Name                 => x_asset_fin_rec_new.ceiling_name,
350           X_Recoverable_Cost             => x_asset_fin_rec_new.recoverable_cost,
351           X_Last_Update_Login            => px_trans_rec.who_info.last_update_login,
352           X_Adjusted_Capacity            => x_asset_fin_rec_new.adjusted_capacity,
353           X_Fully_Rsvd_Revals_Counter    => x_asset_fin_rec_new.fully_rsvd_revals_counter,
354           X_Idled_Flag                   => x_asset_fin_rec_new.idled_flag,
355           X_Period_Counter_Capitalized   => x_asset_fin_rec_new.period_counter_capitalized,
356           X_PC_Fully_Reserved            => x_asset_fin_rec_new.period_counter_fully_reserved,
357           X_Period_Counter_Fully_Retired => x_asset_fin_rec_new.period_counter_fully_retired,
358           X_Production_Capacity          => x_asset_fin_rec_new.production_capacity,
359           X_Reval_Amortization_Basis     => x_asset_fin_rec_new.reval_amortization_basis,
360           X_Reval_Ceiling                => x_asset_fin_rec_new.reval_ceiling,
361           X_Unit_Of_Measure              => x_asset_fin_rec_new.unit_of_measure,
362           X_Unrevalued_Cost              => x_asset_fin_rec_new.unrevalued_cost,
363           X_Annual_Deprn_Rounding_Flag   => x_asset_fin_rec_new.annual_deprn_rounding_flag,
364           X_Percent_Salvage_Value        => x_asset_fin_rec_new.percent_salvage_value,
365           X_Allowed_Deprn_Limit          => x_asset_fin_rec_new.allowed_deprn_limit,
366           X_Allowed_Deprn_Limit_Amount   => x_asset_fin_rec_new.allowed_deprn_limit_amount,
367           X_Period_Counter_Life_Complete => x_asset_fin_rec_new.period_counter_life_complete,
368           X_Adjusted_Recoverable_Cost    => x_asset_fin_rec_new.adjusted_recoverable_cost,
369           X_Short_Fiscal_Year_Flag       => x_asset_fin_rec_new.short_fiscal_year_flag,
370           X_Conversion_Date              => x_asset_fin_rec_new.conversion_date,
371           X_Orig_Deprn_Start_Date        => x_asset_fin_rec_new.orig_deprn_start_date,
372           X_Remaining_Life1              => x_asset_fin_rec_new.remaining_life1,
373           X_Remaining_Life2              => x_asset_fin_rec_new.remaining_life2,
374           X_Old_Adj_Cost                 => x_asset_fin_rec_new.old_adjusted_cost,
375           X_Formula_Factor               => x_asset_fin_rec_new.formula_factor,
376           X_gf_Attribute1                => x_asset_fin_rec_new.global_attribute1,
377           X_gf_Attribute2                => x_asset_fin_rec_new.global_attribute2,
378           X_gf_Attribute3                => x_asset_fin_rec_new.global_attribute3,
379           X_gf_Attribute4                => x_asset_fin_rec_new.global_attribute4,
380           X_gf_Attribute5                => x_asset_fin_rec_new.global_attribute5,
381           X_gf_Attribute6                => x_asset_fin_rec_new.global_attribute6,
382           X_gf_Attribute7                => x_asset_fin_rec_new.global_attribute7,
383           X_gf_Attribute8                => x_asset_fin_rec_new.global_attribute8,
384           X_gf_Attribute9                => x_asset_fin_rec_new.global_attribute9,
385           X_gf_Attribute10               => x_asset_fin_rec_new.global_attribute10,
386           X_gf_Attribute11               => x_asset_fin_rec_new.global_attribute11,
387           X_gf_Attribute12               => x_asset_fin_rec_new.global_attribute12,
388           X_gf_Attribute13               => x_asset_fin_rec_new.global_attribute13,
389           X_gf_Attribute14               => x_asset_fin_rec_new.global_attribute14,
390           X_gf_Attribute15               => x_asset_fin_rec_new.global_attribute15,
391           X_gf_Attribute16               => x_asset_fin_rec_new.global_attribute16,
392           X_gf_Attribute17               => x_asset_fin_rec_new.global_attribute17,
393           X_gf_Attribute18               => x_asset_fin_rec_new.global_attribute18,
394           X_gf_Attribute19               => x_asset_fin_rec_new.global_attribute19,
395           X_gf_Attribute20               => x_asset_fin_rec_new.global_attribute20,
396           X_global_attribute_category    => x_asset_fin_rec_new.global_attribute_category,
397           X_group_asset_id               => x_asset_fin_rec_new.group_asset_id,
398           X_salvage_type                 => x_asset_fin_rec_new.salvage_type,
399           X_deprn_limit_type             => x_asset_fin_rec_new.deprn_limit_type,
400           X_over_depreciate_option       => x_asset_fin_rec_new.over_depreciate_option,
401           X_super_group_id          => x_asset_fin_rec_new.super_group_id,
402           X_reduction_rate               => x_asset_fin_rec_new.reduction_rate,
403           X_reduce_addition_flag         => x_asset_fin_rec_new.reduce_addition_flag,
404           X_reduce_adjustment_flag       => x_asset_fin_rec_new.reduce_adjustment_flag,
405           X_reduce_retirement_flag       => x_asset_fin_rec_new.reduce_retirement_flag,
406           X_recognize_gain_loss          => x_asset_fin_rec_new.recognize_gain_loss,
407           X_recapture_reserve_flag       => x_asset_fin_rec_new.recapture_reserve_flag,
408           X_limit_proceeds_flag          => x_asset_fin_rec_new.limit_proceeds_flag,
409           X_terminal_gain_loss           => x_asset_fin_rec_new.terminal_gain_loss,
410           X_exclude_proceeds_from_basis  => x_asset_fin_rec_new.exclude_proceeds_from_basis,
411           X_retirement_deprn_option      => x_asset_fin_rec_new.retirement_deprn_option,
412           X_tracking_method              => x_asset_fin_rec_new.tracking_method,
413           X_allocate_to_fully_rsv_flag   => x_asset_fin_rec_new.allocate_to_fully_rsv_flag,
414           X_allocate_to_fully_ret_flag   => x_asset_fin_rec_new.allocate_to_fully_ret_flag,
415           X_exclude_fully_rsv_flag       => x_asset_fin_rec_new.exclude_fully_rsv_flag,
416           X_excess_allocation_option     => x_asset_fin_rec_new.excess_allocation_option,
417           X_depreciation_option          => x_asset_fin_rec_new.depreciation_option,
418           X_member_rollup_flag           => x_asset_fin_rec_new.member_rollup_flag,
419           X_ytd_proceeds                 => x_asset_fin_rec_new.ytd_proceeds,
420           X_ltd_proceeds                 => x_asset_fin_rec_new.ltd_proceeds,
421           X_eofy_reserve                 => x_asset_fin_rec_new.eofy_reserve,
422           X_cip_cost                     => x_asset_fin_rec_new.cip_cost,
423           X_terminal_gain_loss_amount    => x_asset_fin_rec_new.terminal_gain_loss_amount,
424           X_ltd_cost_of_removal          => x_asset_fin_rec_new.ltd_cost_of_removal,
425           X_contract_id                  => x_asset_fin_rec_new.contract_id, -- Bug:6021567
426           X_extended_deprn_flag          => x_asset_fin_rec_new.extended_deprn_flag, -- Japan Tax phase3
427           X_extended_depreciation_period => x_asset_fin_rec_new.extended_depreciation_period, -- Japan Tax phase3
428           X_mrc_sob_type_code            => p_mrc_sob_type_code,
429           X_Return_Status                => l_status,
430           X_Calling_Fn                   => l_calling_fn
431           ,p_log_level_rec => p_log_level_rec);
432 
433 
434    if not l_status then
435       raise adj_err;
436    end if;
437 
438    -- Bug 6665510: FP: Japan Tax Reform Project (Start)
439    if (p_log_level_rec.statement_level) then
440        fa_debug_pkg.add('pvt adj api', 'fa_cache_pkg.fazccmt_record.guarantee_rate_method_flag',
441                           fa_cache_pkg.fazccmt_record.guarantee_rate_method_flag, p_log_level_rec);
442    end if;
443 
444    if nvl(fa_cache_pkg.fazccmt_record.guarantee_rate_method_flag,'NO') = 'YES' then
445 
446       if (p_log_level_rec.statement_level) then
447          fa_debug_pkg.add('pvt adj api', 'method_code', fa_cache_pkg.fazccmt_record.method_code, p_log_level_rec);
448          fa_debug_pkg.add('pvt adj api', 'life in months', fa_cache_pkg.fazccmt_record.life_in_months, p_log_level_rec);
449       end if;
450 
451       FA_CDE_PKG.faxgfr (X_Book_Type_Code         => px_asset_hdr_rec.book_type_code,
452                          X_Asset_Id               => px_asset_hdr_rec.asset_id,
453                          X_Short_Fiscal_Year_Flag => NULL,
454                          X_Conversion_Date        => NULL,
455                          X_Prorate_Date           => NULL,
456                          X_Orig_Deprn_Start_Date  => NULL,
457                          C_Prorate_Date           => NULL,
458                          C_Conversion_Date        => NULL,
459                          C_Orig_Deprn_Start_Date  => NULL,
460                          X_Method_Code            => fa_cache_pkg.fazccmt_record.method_code,
461                          X_Life_In_Months         => fa_cache_pkg.fazccmt_record.life_in_months,
462                          X_Fiscal_Year            => -99,
463                          X_Current_Period               => -99,
464                          X_calling_interface      => 'AFTER_ADJ',
465                          X_Rate                   => l_rate_in_use,
466                          X_Method_Type            => l_method_type,
467                          X_Success                => l_success);
468 
469         if (l_success <= 0) then
470             fa_srvr_msg.add_message(calling_fn => 'fa_addition_pvt.insert_asset');
471             raise adj_err;
472         end if;
473 
474         UPDATE FA_BOOKS
475         SET rate_in_use = l_rate_in_use
476         WHERE book_type_code = px_asset_hdr_rec.book_type_code
477         AND asset_id = px_asset_hdr_rec.asset_id
478         AND date_ineffective is null;
479 
480    end if;
481    -- Bug 6665510: FP: Japan Tax Reform Project (End)
482 
483    -- update TH/BKS/DS/DD for adjustments in period of addition (i.e. voids)
484 
485    -- SLA Uptake
486    -- this section is altered to account for new period of addition
487    -- changes.
488    --
489    -- 1) Since the prior unplanned solution is obsolete, no need to
490    --    track or store deprn_adj_amount
491    -- 2) we will only be tracking updates to YTD in the info for
492    --    DS/DD, reserve remains untouched
493 
494    -- SA: *** REVISIT FOR GROUP ***
495 
496    -- Bug7017134: Added condition not to touch B(OOKS) row if group adjustment is pending
497 --   if (px_asset_hdr_rec.period_of_addition = 'Y') then -- Added condition to exclude sumup option case.
498    if (px_asset_hdr_rec.period_of_addition = 'Y') and
499       ( (p_asset_type_rec.asset_type <> 'GROUP') or
500         (p_asset_type_rec.asset_type = 'GROUP' and
501           (nvl(x_asset_fin_rec_new.member_rollup_flag,'N') <> 'Y' and
502            ( not(px_trans_rec.calling_interface = 'FAXASSET' and
503                  x_asset_fin_rec_new.adjustment_required_status = 'GADJ'))
504                                               ))
505                                                   ) then
506       if (p_log_level_rec.statement_level) then
507          fa_debug_pkg.add('pvt adj api', 'logic for update deprn detail/summary', 'Starts',
508                           p_log_level_rec => p_log_level_rec);
509       end if;
510 
511       -- we need to account for unplanned in the period of addition
512       --
513       -- also for amort nbv scenarios where we don't want to
514       -- include the catchup in the reserve amount
515 
516    -- Fix for Bug #6243777.  We are uncommenting this for period of
517    -- addition changes, but making sure we do not execute this
518    -- code for unplanned.
519    if (nvl(px_trans_rec.transaction_key, 'XX') not in ('UA', 'UE')) then
520 
521       if (p_mrc_sob_type_code <> 'R') then
522          select nvl(sum(deprn_adjustment_amount), 0)
523            into l_deprn_adjustment_amount
524            from fa_deprn_detail
525           where book_type_code = px_asset_hdr_rec.book_type_code
526             and asset_id       = px_asset_hdr_rec.asset_id
527             and deprn_source_code = 'B';
528 
529          select nvl(sum(decode(debit_credit_flag,
530                                'DR', adjustment_amount,
531                                -adjustment_amount)), 0)
532            into l_deprn_exp_amort_nbv
533            from fa_adjustments
534           where book_type_code = px_asset_hdr_rec.book_type_code
535             and asset_id       = px_asset_hdr_rec.asset_id
536             and source_type_code = 'DEPRECIATION'
537             and adjustment_type  = 'EXPENSE';
538 
539          select nvl(sum(decode(debit_credit_flag,
540                                'CR', adjustment_amount,
541                                -adjustment_amount)), 0)
542            into l_reserve_adjustment_amount
543            from fa_adjustments
544           where book_type_code = px_asset_hdr_rec.book_type_code
545             and asset_id       = px_asset_hdr_rec.asset_id
546             and source_type_code = 'ADJUSTMENT'
547             and adjustment_type  = 'RESERVE';
548 
549       else
550          select nvl(sum(deprn_adjustment_amount), 0)
551            into l_deprn_adjustment_amount
552            from fa_deprn_detail_mrc_v
553           where book_type_code = px_asset_hdr_rec.book_type_code
554             and asset_id       = px_asset_hdr_rec.asset_id
555             and deprn_source_code = 'B';
556 
557          select nvl(sum(decode(debit_credit_flag,
558                                'DR', adjustment_amount,
559                                -adjustment_amount)), 0)
560            into l_deprn_exp_amort_nbv
561            from fa_adjustments_mrc_v
562           where book_type_code = px_asset_hdr_rec.book_type_code
563             and asset_id       = px_asset_hdr_rec.asset_id
564             and source_type_code = 'DEPRECIATION'
565             and adjustment_type  = 'EXPENSE';
566 
567          select nvl(sum(decode(debit_credit_flag,
568                                'CR', adjustment_amount,
569                                -adjustment_amount)), 0)
570            into l_reserve_adjustment_amount
571            from fa_adjustments_mrc_v
572           where book_type_code = px_asset_hdr_rec.book_type_code
573             and asset_id       = px_asset_hdr_rec.asset_id
574             and source_type_code = 'ADJUSTMENT'
575             and adjustment_type  = 'RESERVE';
576 
577       end if;
578 
579       --Bug#7215625 -- Incase of group-group reclass for member asset having backdated dpis
580                     -- When manual reserve transfer is done the reserve row in fa_adj is inserted from
581 		    -- FAVGRECB.pls after update in deprn summary because of which reserve amount
582 		    -- is not considered when calculating l_reserve_adjustment_amount in above select statement
583 		    -- causing wrong value of reserve to be updated in 'BOOKS' row of deprn summary and detail.
584 
585       if p_asset_type_rec.asset_type = 'GROUP' then
586          if p_group_reclass_options_rec.group_reclass_type = 'MANUAL' then
587 
588             if p_reclass_src_dest = 'SOURCE' then
589                l_reserve_adjustment_amount := l_reserve_adjustment_amount +
590                                                  -1 * nvl(p_group_reclass_options_rec.reserve_amount,0) ;
591             elsif p_reclass_src_dest = 'DESTINATION' then
592                l_reserve_adjustment_amount := l_reserve_adjustment_amount +
593                                                  nvl(p_group_reclass_options_rec.reserve_amount,0) ;
594             end if;
595 
596          -- Bug7017134: The equation at Update Row procedure call find deprn reserve does not work in case of group reclass
597          -- for source group
598          elsif p_group_reclass_options_rec.group_reclass_type = 'CALC'  and
599             p_asset_type_rec.asset_type = 'GROUP' and
600             px_trans_rec.calling_interface <> 'FAXASSET' then
601 
602             if p_reclass_src_dest = 'SOURCE' then
603                l_reserve_adjustment_amount := l_reserve_adjustment_amount - nvl(p_group_reclass_options_rec.reserve_amount,0);
604             end if;
605          end if;
606       end if;
607       --Bug#7215625 - end
608 
609       if (p_log_level_rec.statement_level) then
610          fa_debug_pkg.add('pvt adj api', 'l_deprn_adjustment_amount', l_deprn_adjustment_amount,
611                           p_log_level_rec => p_log_level_rec);
612          fa_debug_pkg.add('pvt adj api', 'x_asset_deprn_rec_new.deprn_reserve',
613                           x_asset_deprn_rec_new.deprn_reserve ,p_log_level_rec => p_log_level_rec);
614          fa_debug_pkg.add('pvt adj api', 'l_deprn_exp_amort_nbv', l_deprn_exp_amort_nbv,
615                           p_log_level_rec => p_log_level_rec);
616          fa_debug_pkg.add('pvt adj api', 'l_reserve_adjustment_amount', l_reserve_adjustment_amount,
617                           p_log_level_rec => p_log_level_rec);
618       end if;
619 
620    end if;
621 
622       FA_DEPRN_SUMMARY_PKG.Update_Row
623                       (X_Book_Type_Code                 => px_asset_hdr_rec.book_type_code,
624                        X_Asset_Id                       => px_asset_hdr_rec.asset_id,
625                        X_Deprn_Run_Date                 => px_trans_rec.who_info.last_update_date,
626                        X_Deprn_Amount                   => x_asset_deprn_rec_new.deprn_amount,
627                        X_Ytd_Deprn                      => x_asset_deprn_rec_new.ytd_deprn -
628                                                            l_deprn_exp_amort_nbv,
629                        X_Deprn_Reserve                  => x_asset_deprn_rec_new.deprn_reserve -
630                                                            l_deprn_exp_amort_nbv -
631                                                            l_reserve_adjustment_amount,
632                        X_Deprn_Source_Code              => 'BOOKS',
633                        X_Adjusted_Cost                  => x_asset_fin_rec_new.adjusted_cost,
634                        X_Bonus_Rate                     => NULL,
635                        X_Ltd_Production                 => NULL,
636                        X_Period_Counter                 => p_period_rec.period_counter - 1,
637                        X_Production                     => NULL,
638                        X_Reval_Amortization             => x_asset_deprn_rec_new.reval_amortization,
639                        X_Reval_Amortization_Basis       => x_asset_deprn_rec_new.reval_amortization_basis,
640                        X_Reval_Deprn_Expense            => x_asset_deprn_rec_new.reval_deprn_expense,
641                        X_Reval_Reserve                  => x_asset_deprn_rec_new.reval_deprn_reserve,
642                        X_Ytd_Production                 => NULL,
643                        X_Ytd_Reval_Deprn_Expense        => x_asset_deprn_rec_new.reval_ytd_deprn,
644                        X_Bonus_Deprn_Amount             => x_asset_deprn_rec_new.bonus_deprn_amount,
645                        X_Bonus_Ytd_Deprn                => x_asset_deprn_rec_new.bonus_ytd_deprn,
646                        X_Bonus_Deprn_Reserve            => x_asset_deprn_rec_new.bonus_deprn_reserve,
647                        X_mrc_sob_type_code              => p_mrc_sob_type_code,
648                        X_Calling_Fn                     => l_calling_fn
649                        ,p_log_level_rec => p_log_level_rec);
650 
651        if not FA_INS_DETAIL_PKG.FAXINDD
652                      (X_book_type_code           => px_asset_hdr_rec.book_type_code,
653                       X_asset_id                 => px_asset_hdr_rec.asset_id,
654                       X_deprn_adjustment_amount  => l_deprn_adjustment_amount,
655                       X_mrc_sob_type_code        => p_mrc_sob_type_code
656                       ,p_log_level_rec => p_log_level_rec) then raise adj_err;
657        end if;
658 
659        -- recall the cache since faxinddb calls it for corp
660        if NOT (fa_cache_pkg.fazcbc(X_book => px_asset_hdr_rec.book_type_code
661                         ,p_log_level_rec => p_log_level_rec)) then
662           raise adj_err;
663        end if;
664 
665 /* commented the following if condition for bug 5141060
666      -- now perform amortize nbv if applicable
667 
668      if (px_trans_rec.transaction_subtype = 'AMORTIZED' and
669          p_asset_type_rec.asset_type = 'CAPITALIZED' and
670          x_asset_fin_rec_new.group_asset_id is null)  then
671 
672         -- excluding group as calc engine should handle all trxs
673         -- (p_asset_type_rec.asset_type = 'GROUP')) and
674         -- (p_calling_fn = 'fa_adjustment_pub.do_all_books') then
675 
676          -- amortization start date was previously validated from calc engine
677 
678 
679 
680          -- call faadjust
681          if not FA_ADJUST_PKG.faadjust(
682                            asset_number              =>  p_asset_desc_rec.asset_number,
683                            asset_id                  =>  px_asset_hdr_rec.asset_id,
684                            current_units             =>  p_asset_desc_rec.current_units,
685                            asset_category_id         =>  p_asset_cat_rec.category_id,
686                            asset_type                =>  p_asset_type_rec.asset_type,
687                            new_cost                  =>  x_asset_fin_rec_new.cost,
688                            salvage_value             =>  x_asset_fin_rec_new.salvage_value,
689                            new_recoverable_cost      =>  x_asset_fin_rec_new.recoverable_cost,
690                            recoverable_cost          =>  x_asset_fin_rec_new.recoverable_cost,
691                            adjusted_rate             =>  x_asset_fin_rec_new.adjusted_rate,
692                            ceiling_name              =>  x_asset_fin_rec_new.ceiling_name,
693                            bonus_rule                =>  x_asset_fin_rec_new.bonus_rule,
694                            deprn_method_code         =>  x_asset_fin_rec_new.deprn_method_code,
695                            life_in_months            =>  x_asset_fin_rec_new.life_in_months,
696                            date_placed_in_service    =>  x_asset_fin_rec_new.date_placed_in_service,
697                            prorate_date              =>  x_asset_fin_rec_new.prorate_date,
698                            deprn_start_date          =>  x_asset_fin_rec_new.deprn_start_date,
699                            depreciate_flag           =>  x_asset_fin_rec_new.depreciate_flag,
700                            production_capacity       =>  x_asset_fin_rec_new.production_capacity,
701                            book_type_code            =>  px_asset_hdr_rec.book_type_code,
702                            transaction_header_id     =>  px_trans_rec.transaction_header_id,
703                            new_adjusted_cost         =>  x_asset_fin_rec_new.adjusted_cost,
704                            new_adjusted_capacity     =>  x_asset_fin_rec_new.adjusted_capacity,
705                            rate_adjustment_factor    =>  x_asset_fin_rec_new.rate_adjustment_factor,
706                            reval_amortization_basis  =>  x_asset_fin_rec_new.reval_amortization_basis,
707                            adjust_type               =>  'AMORTIZE',
708                            amortization_start_date   =>  px_trans_rec.amortization_start_date,
709                            short_fiscal_year_flag    =>  x_asset_fin_rec_new.short_fiscal_year_flag,
710                            conversion_date           =>  x_asset_fin_rec_new.conversion_date,
711                            orig_deprn_start_date     =>  x_asset_fin_rec_new.orig_deprn_start_date,
712                            formula_factor            =>  x_asset_fin_rec_new.formula_factor,
713                            deprn_exp                 =>  l_deprn_exp,
714                            bonus_deprn_exp           =>  l_bonus_deprn_exp,
715                            ins_adjust_flag           =>  TRUE,
716                            mrc_sob_type_code         => p_mrc_sob_type_code,
717                            deprn_override_flag       => deprn_override_flag_default,
718                            last_update_date          =>  sysdate,
719                            last_updated_by           =>  -1,
720                            last_update_login         =>  -1,
721                            init_message_flag         =>  'NO') then raise adj_err;
722          end if;
723 
724 
725 
726          -- Bug3548724
727          -- It is important to pass reserve only amount in deprn_rec_adj for faxama.
728          --
729          l_asset_deprn_rec_adj.ytd_deprn           := x_asset_deprn_rec_new.ytd_deprn -
730                                                       p_asset_deprn_rec_old.deprn_amount;
731          l_asset_deprn_rec_adj.deprn_reserve       := x_asset_deprn_rec_new.deprn_reserve -
732                                                       p_asset_deprn_rec_old.deprn_amount;
733          l_asset_deprn_rec_adj.bonus_ytd_deprn     := x_asset_deprn_rec_new.bonus_ytd_deprn -
734                                                       p_asset_deprn_rec_old.bonus_deprn_amount;
735          l_asset_deprn_rec_adj.bonus_deprn_reserve := x_asset_deprn_rec_new.bonus_deprn_reserve -
736                                                       p_asset_deprn_rec_old.bonus_deprn_amount;
737 
738          if not FA_AMORT_PVT.faxama
739                   (px_trans_rec          => px_trans_rec,
740                    p_asset_hdr_rec       => px_asset_hdr_rec,
741                    p_asset_desc_rec      => p_asset_desc_rec,
742                    p_asset_cat_rec       => p_asset_cat_rec,
743                    p_asset_type_rec      => p_asset_type_rec,
744                    p_asset_fin_rec_old   => x_asset_fin_rec_new,
745                    p_asset_fin_rec_adj   => l_asset_fin_rec_null,
746                    px_asset_fin_rec_new  => x_asset_fin_rec_new,
747                    p_asset_deprn_rec     => x_asset_deprn_rec_new,
748                    p_asset_deprn_rec_adj => l_asset_deprn_rec_adj,    --bug3548724
749                    p_period_rec          => p_period_rec,
750                    p_mrc_sob_type_code   => p_mrc_sob_type_code,
751                    p_running_mode        => fa_std_types.FA_DPR_NORMAL,
752                    p_used_by_revaluation => null,
753                    x_deprn_exp           => l_deprn_exp,
754                    x_bonus_deprn_exp     => l_bonus_deprn_exp
755                    ,p_log_level_rec => p_log_level_rec) then raise adj_err;
756          end if;
757 
758 
759          -- insert the deprn amounts
760          if not FA_INS_ADJ_PVT.faxiat
761                      (p_trans_rec       => px_trans_rec,
762                       p_asset_hdr_rec   => px_asset_hdr_rec,
763                       p_asset_desc_rec  => p_asset_desc_rec,
764                       p_asset_cat_rec   => p_asset_cat_rec,
765                       p_asset_type_rec  => p_asset_type_rec,
766                       p_cost            => 0,
767                       p_clearing        => 0,
768                       p_deprn_expense   => l_deprn_exp,
769                       p_bonus_expense   => l_bonus_deprn_exp,
770                       p_ann_adj_amt     => 0,
771                       p_mrc_sob_type_code => p_mrc_sob_type_code,
772                       p_calling_fn      => l_calling_fn
773                       ,p_log_level_rec => p_log_level_rec) then raise adj_err;
774          end if;
775 
776          fa_books_pkg.update_row
777             (X_asset_id                  => px_asset_hdr_rec.asset_id,
778              X_book_type_code            => px_asset_hdr_rec.book_type_code,
779              X_rate_adjustment_factor    => x_asset_fin_rec_new.rate_adjustment_factor,
780              X_reval_amortization_basis  => x_asset_fin_rec_new.reval_amortization_basis,
781              X_adjusted_cost             => x_asset_fin_rec_new.adjusted_cost,
782              X_adjusted_capacity         => x_asset_fin_rec_new.adjusted_capacity,
783              X_formula_factor            => x_asset_fin_rec_new.formula_factor,
784              X_eofy_reserve              => x_asset_fin_rec_new.eofy_reserve,
785              X_mrc_sob_type_code         => p_mrc_sob_type_code,
786              X_calling_fn                => l_calling_fn
787              ,p_log_level_rec => p_log_level_rec);
788 
789  SLA: obsolete - must keep these since cost is inserted at addition
790 
791          -- now update the primary or reporting amounts accordingly
792          if (p_mrc_sob_type_code <> 'R') then
793 
794             delete from fa_adjustments
795              where asset_id        = px_asset_hdr_rec.asset_id
796                and book_type_code  = px_asset_hdr_rec.book_type_code
797                and adjustment_type in ('COST', 'COST CLEARING');
798 
799          else
800 
801             delete from fa_adjustments_mrc_v
802              where asset_id        = px_asset_hdr_rec.asset_id
803                and book_type_code  = px_asset_hdr_rec.book_type_code
804                and adjustment_type in ('COST', 'COST CLEARING');
805 
806          end if;
807 
808 
809          FA_DEPRN_SUMMARY_PKG.Update_Row
810                       (X_Book_Type_Code                 => px_asset_hdr_rec.book_type_code,
811                        X_Asset_Id                       => px_asset_hdr_rec.asset_id,
812                        X_Adjusted_Cost                  => x_asset_fin_rec_new.adjusted_cost,
813                        X_Period_Counter                 => p_period_rec.period_counter - 1,
814                        X_Reval_Amortization_Basis       => x_asset_deprn_rec_new.reval_amortization_basis,
815                        X_mrc_sob_type_code              => p_mrc_sob_type_code,
816                        X_Calling_Fn                     => l_calling_fn
817                        ,p_log_level_rec => p_log_level_rec);
818 
819 
820       end if;   -- end amort nbv
821 */
822 
823        -- If the processed asset is GROUP asset and tracking method is 'ALLOCATE',
824        -- Call TRACK_ASSETS to allocate unplanned amount into members.
825        -- For track member feature
826        -- Only when the unplanned depreciation is kicked from group asset whose tracking method is
827        -- ALLOCATE, system needs to allocate the entered unplanned depreciation amount into
828        -- members.
829        if x_asset_fin_rec_new.group_asset_id is null and
830           nvl(x_asset_fin_rec_new.tracking_method,'OTHER') = 'ALLOCATE' and
831           (x_asset_deprn_rec_new.deprn_reserve - l_deprn_exp_amort_nbv - l_reserve_adjustment_amount) <> 0 then
832 
833          if not fa_cache_pkg.fazccmt (x_asset_fin_rec_new.deprn_method_code,x_asset_fin_rec_new.life_in_months) then
834            fa_srvr_msg.add_message (calling_fn => l_calling_fn
835                    ,p_log_level_rec => p_log_level_rec);
836            raise adj_err;
837          end if;
838 
839          l_ret_code := FA_TRACK_MEMBER_PVT.TRACK_ASSETS
840                            (P_book_type_code             => px_asset_hdr_rec.book_type_code,
841                             P_group_asset_id             => px_asset_hdr_rec.asset_id,
842                             P_period_counter             => p_period_rec.period_num,
843                             P_fiscal_year                => p_period_rec.fiscal_year,
844                             P_group_deprn_basis          => fa_cache_pkg.fazccmt_record.deprn_basis_rule,
845                             P_group_exclude_salvage      => fa_cache_pkg.fazccmt_record.exclude_salvage_value_flag,
846                             P_group_bonus_rule           => x_asset_fin_rec_new.bonus_rule,
847                             P_group_deprn_amount         => x_asset_deprn_rec_new.deprn_reserve -
848                                                            l_deprn_exp_amort_nbv -
849                                                            l_reserve_adjustment_amount,
850                             P_group_bonus_amount         => 0,
851                             P_tracking_method            => x_asset_fin_rec_new.tracking_method,
852                             P_allocate_to_fully_ret_flag => x_asset_fin_rec_new.allocate_to_fully_ret_flag,
853                             P_allocate_to_fully_rsv_flag => x_asset_fin_rec_new.allocate_to_fully_rsv_flag,
854                             P_excess_allocation_option   => x_asset_fin_rec_new.excess_allocation_option,
855                             P_subtraction_flag           => 'N',
856                             P_group_level_override       => l_group_level_override,
857                             P_period_of_addition         => 'Y',
858                             P_transaction_date_entered   => px_trans_rec.transaction_date_entered,
859                             P_mode                       => 'UNPLANNED',
860                             X_new_deprn_amount           => x_group_deprn_amount,
861                             X_new_bonus_amount           => x_group_bonus_amount
862                             ,p_log_level_rec => p_log_level_rec);
863 
864          if l_ret_code <> 0 then
865             raise adj_err;
866          elsif x_group_deprn_amount <> (x_asset_deprn_rec_new.deprn_reserve
867                                        - l_deprn_exp_amort_nbv - l_reserve_adjustment_amount) then
868             raise adj_err;
869          end if;
870 
871        end if; -- End of Group Unplanned at period of addition
872 
873    end if;  --  end period of add
874 
875    return true;
876 
877 EXCEPTION
878 
879    when adj_err then
880       fa_srvr_msg.add_message(calling_fn => l_calling_fn
881             ,p_log_level_rec => p_log_level_rec);
882       return false;
883 
884    when others then
885       fa_srvr_msg.add_sql_error
886           (calling_fn => l_calling_fn
887                     ,p_log_level_rec => p_log_level_rec);
888       return false;
889 
890 END do_adjustment;
891 
892 
893 
894 -- this function contains check_changes_before_commit logic (from faxfa1b.pls)
895 -- insure something is changing and that the depreciate flag is not
896 -- changing in conjuction with something else.
897 --
898 -- note: main change check excludes global flex and calculated values
899 -- may need to add the global and capitalize values later
900 -- as in the calc engine need to determine intent for nullable fields
901 --
902 -- now called from the public api to avoid errors resulting from
903 -- calls from group/reclass apis that may result in no change
904 
905 FUNCTION validate_adjustment
906    (p_inv_trans_rec           IN     FA_API_TYPES.inv_trans_rec_type,
907     p_trans_rec               IN     FA_API_TYPES.trans_rec_type,
908     p_asset_type_rec          IN     FA_API_TYPES.asset_type_rec_type,
909     p_asset_fin_rec_old       IN     FA_API_TYPES.asset_fin_rec_type,
910     p_asset_fin_rec_adj       IN     FA_API_TYPES.asset_fin_rec_type,
911     p_asset_deprn_rec_old     IN     FA_API_TYPES.asset_deprn_rec_type,
912     p_asset_deprn_rec_adj     IN     FA_API_TYPES.asset_deprn_rec_type,
913     p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type default null) RETURN BOOLEAN IS
914 
915    l_no_changes_made          boolean;
916    l_no_changes_to_uom        boolean;
917    l_no_changes_to_dep_flag   boolean;
918    l_no_changes_to_method     boolean;
919    l_no_changes_to_group      boolean;
920    l_no_changes_to_reduction  boolean;
921    l_calling_fn               varchar2(35)  := 'do_adjustment_pvt.validate_adj';
922 
923 BEGIN
924 
925 if (nvl(p_trans_rec.transaction_key, 'NULL') <> 'SG') then
926    -- no need to check for changes made if driven by invoice
927    if p_inv_trans_rec.transaction_type is not null then
928       l_no_changes_made := FALSE;
929    elsif
930       (nvl(p_asset_fin_rec_adj.cost, 0)                  = 0 and
931        nvl(p_asset_fin_rec_adj.original_cost, 0)         = 0 and
932        nvl(p_asset_deprn_rec_adj.deprn_reserve, 0)       = 0 and
933        nvl(p_asset_deprn_rec_adj.ytd_deprn, 0)           = 0 and
934        nvl(p_asset_deprn_rec_adj.bonus_deprn_reserve, 0) = 0 and
935        nvl(p_asset_deprn_rec_adj.bonus_ytd_deprn, 0)     = 0 and
936        nvl(p_asset_deprn_rec_adj.reval_deprn_reserve, 0) = 0 and
937        nvl(p_asset_fin_rec_adj.reval_ceiling, 0)         = 0 and
938        nvl(p_asset_fin_rec_adj.production_capacity, 0)   = 0 and
939        nvl(p_asset_fin_rec_adj.cip_cost, 0)              = 0 and
940        nvl(p_asset_fin_rec_adj.percent_salvage_value, 0) = 0 and
941        nvl(p_asset_fin_rec_adj.allowed_deprn_limit,0)    = 0 and
942        nvl(p_asset_fin_rec_adj.allowed_deprn_limit_amount, 0) = 0 and
943        p_asset_fin_rec_old.date_placed_in_service =
944           nvl(p_asset_fin_rec_adj.date_placed_in_service,
945               p_asset_fin_rec_old.date_placed_in_service) and
946        p_asset_fin_rec_old.prorate_convention_code =
947           nvl(p_asset_fin_rec_adj.prorate_convention_code,
948               p_asset_fin_rec_old.prorate_convention_code) and
949        nvl(p_asset_fin_rec_old.salvage_value, 0) =
950           nvl(p_asset_fin_rec_adj.salvage_value,0) +
951               nvl(p_asset_fin_rec_old.salvage_value, 0) and
952        nvl(p_asset_fin_rec_old.itc_amount_id, FND_API.G_MISS_NUM) =
953           nvl(p_asset_fin_rec_adj.itc_amount_id,
954               nvl(p_asset_fin_rec_old.itc_amount_id, FND_API.G_MISS_NUM)) and
955        nvl(p_asset_fin_rec_old.ceiling_name, FND_API.G_MISS_CHAR) =
956           nvl(p_asset_fin_rec_adj.ceiling_name,
957               nvl(p_asset_fin_rec_old.ceiling_name, FND_API.G_MISS_CHAR)) and
958        nvl(p_asset_fin_rec_old.short_fiscal_year_flag, FND_API.G_MISS_CHAR) =
959           nvl(p_asset_fin_rec_adj.short_fiscal_year_flag,
960               nvl(p_asset_fin_rec_old.short_fiscal_year_flag, FND_API.G_MISS_CHAR)) and
961 
962        -- Bug:6021567
963        -- Bug:6950629,Validation not done for contract_id adjustment.
964       /* nvl(p_asset_fin_rec_old.contract_id, FND_API.G_MISS_NUM) =
965           nvl(p_asset_fin_rec_adj.contract_id,
966               nvl(p_asset_fin_rec_old.contract_id, FND_API.G_MISS_NUM)) and */
967 
968            -- group columns
969        nvl(p_asset_fin_rec_old.salvage_type, FND_API.G_MISS_CHAR) =
970           nvl(p_asset_fin_rec_adj.salvage_type,
971               nvl(p_asset_fin_rec_old.salvage_type, FND_API.G_MISS_CHAR)) and
972        nvl(p_asset_fin_rec_old.deprn_limit_type, FND_API.G_MISS_CHAR) =
973           nvl(p_asset_fin_rec_adj.deprn_limit_type,
974               nvl(p_asset_fin_rec_old.deprn_limit_type, FND_API.G_MISS_CHAR)) and
975 
976        nvl(p_asset_fin_rec_old.over_depreciate_option,FND_API.G_MISS_CHAR) =
977           nvl(p_asset_fin_rec_adj.over_depreciate_option,
978               nvl(p_asset_fin_rec_old.over_depreciate_option, FND_API.G_MISS_CHAR)) and
979        nvl(p_asset_fin_rec_old.super_group_id, FND_API.G_MISS_NUM) =
980           nvl(p_asset_fin_rec_adj.super_group_id,
981               nvl(p_asset_fin_rec_old.super_group_id, FND_API.G_MISS_NUM)) and
982 
983        -- Japan Tax phase3
984        nvl(p_asset_fin_rec_old.extended_deprn_flag, FND_API.G_MISS_CHAR) =
985           nvl(p_asset_fin_rec_adj.extended_deprn_flag,
986               nvl(p_asset_fin_rec_old.extended_deprn_flag, FND_API.G_MISS_CHAR)) and
987        nvl(p_asset_fin_rec_old.extended_depreciation_period, FND_API.G_MISS_NUM) =
988           nvl(p_asset_fin_rec_adj.extended_depreciation_period,
989               nvl(p_asset_fin_rec_old.extended_depreciation_period, FND_API.G_MISS_NUM)) and
990 
991        -- global flex columns
992        nvl(p_asset_fin_rec_old.global_attribute1, FND_API.G_MISS_CHAR) =
993           nvl(p_asset_fin_rec_adj.global_attribute1,
994               nvl(p_asset_fin_rec_old.global_attribute1, FND_API.G_MISS_CHAR)) and
995        nvl(p_asset_fin_rec_old.global_attribute2, FND_API.G_MISS_CHAR) =
996           nvl(p_asset_fin_rec_adj.global_attribute2,
997               nvl(p_asset_fin_rec_old.global_attribute2, FND_API.G_MISS_CHAR)) and
998        nvl(p_asset_fin_rec_old.global_attribute3, FND_API.G_MISS_CHAR) =
999           nvl(p_asset_fin_rec_adj.global_attribute3,
1000               nvl(p_asset_fin_rec_old.global_attribute3, FND_API.G_MISS_CHAR)) and
1001        nvl(p_asset_fin_rec_old.global_attribute4, FND_API.G_MISS_CHAR) =
1002           nvl(p_asset_fin_rec_adj.global_attribute4,
1003               nvl(p_asset_fin_rec_old.global_attribute4, FND_API.G_MISS_CHAR)) and
1004        nvl(p_asset_fin_rec_old.global_attribute5, FND_API.G_MISS_CHAR) =
1005           nvl(p_asset_fin_rec_adj.global_attribute5,
1006               nvl(p_asset_fin_rec_old.global_attribute5, FND_API.G_MISS_CHAR)) and
1007        nvl(p_asset_fin_rec_old.global_attribute6, FND_API.G_MISS_CHAR) =
1008           nvl(p_asset_fin_rec_adj.global_attribute6,
1009               nvl(p_asset_fin_rec_old.global_attribute6, FND_API.G_MISS_CHAR)) and
1010        nvl(p_asset_fin_rec_old.global_attribute7, FND_API.G_MISS_CHAR) =
1011           nvl(p_asset_fin_rec_adj.global_attribute7,
1012               nvl(p_asset_fin_rec_old.global_attribute7, FND_API.G_MISS_CHAR)) and
1013        nvl(p_asset_fin_rec_old.global_attribute8, FND_API.G_MISS_CHAR) =
1014           nvl(p_asset_fin_rec_adj.global_attribute8,
1015               nvl(p_asset_fin_rec_old.global_attribute8, FND_API.G_MISS_CHAR)) and
1016        nvl(p_asset_fin_rec_old.global_attribute9, FND_API.G_MISS_CHAR) =
1017           nvl(p_asset_fin_rec_adj.global_attribute9,
1018               nvl(p_asset_fin_rec_old.global_attribute9, FND_API.G_MISS_CHAR)) and
1019        nvl(p_asset_fin_rec_old.global_attribute10, FND_API.G_MISS_CHAR) =
1020           nvl(p_asset_fin_rec_adj.global_attribute10,
1021               nvl(p_asset_fin_rec_old.global_attribute10, FND_API.G_MISS_CHAR)) and
1022        nvl(p_asset_fin_rec_old.global_attribute11, FND_API.G_MISS_CHAR) =
1023           nvl(p_asset_fin_rec_adj.global_attribute11,
1024               nvl(p_asset_fin_rec_old.global_attribute11, FND_API.G_MISS_CHAR)) and
1025        nvl(p_asset_fin_rec_old.global_attribute12, FND_API.G_MISS_CHAR) =
1026           nvl(p_asset_fin_rec_adj.global_attribute12,
1027               nvl(p_asset_fin_rec_old.global_attribute12, FND_API.G_MISS_CHAR)) and
1028        nvl(p_asset_fin_rec_old.global_attribute13, FND_API.G_MISS_CHAR) =
1029           nvl(p_asset_fin_rec_adj.global_attribute13,
1030               nvl(p_asset_fin_rec_old.global_attribute13, FND_API.G_MISS_CHAR)) and
1031        nvl(p_asset_fin_rec_old.global_attribute14, FND_API.G_MISS_CHAR) =
1032           nvl(p_asset_fin_rec_adj.global_attribute14,
1033               nvl(p_asset_fin_rec_old.global_attribute14, FND_API.G_MISS_CHAR)) and
1034        nvl(p_asset_fin_rec_old.global_attribute15, FND_API.G_MISS_CHAR) =
1035           nvl(p_asset_fin_rec_adj.global_attribute15,
1036               nvl(p_asset_fin_rec_old.global_attribute15, FND_API.G_MISS_CHAR)) and
1037        nvl(p_asset_fin_rec_old.global_attribute16, FND_API.G_MISS_CHAR) =
1038           nvl(p_asset_fin_rec_adj.global_attribute16,
1039               nvl(p_asset_fin_rec_old.global_attribute16, FND_API.G_MISS_CHAR)) and
1040        nvl(p_asset_fin_rec_old.global_attribute17, FND_API.G_MISS_CHAR) =
1041           nvl(p_asset_fin_rec_adj.global_attribute17,
1042               nvl(p_asset_fin_rec_old.global_attribute17, FND_API.G_MISS_CHAR)) and
1043        nvl(p_asset_fin_rec_old.global_attribute18, FND_API.G_MISS_CHAR) =
1044           nvl(p_asset_fin_rec_adj.global_attribute18,
1045               nvl(p_asset_fin_rec_old.global_attribute18, FND_API.G_MISS_CHAR)) and
1046        nvl(p_asset_fin_rec_old.global_attribute19, FND_API.G_MISS_CHAR) =
1047           nvl(p_asset_fin_rec_adj.global_attribute19,
1048               nvl(p_asset_fin_rec_old.global_attribute19, FND_API.G_MISS_CHAR)) and
1049        nvl(p_asset_fin_rec_old.global_attribute20, FND_API.G_MISS_CHAR) =
1050           nvl(p_asset_fin_rec_adj.global_attribute20,
1051               nvl(p_asset_fin_rec_old.global_attribute20, FND_API.G_MISS_CHAR)) and
1052        nvl(p_asset_fin_rec_old.global_attribute_category, FND_API.G_MISS_CHAR) =
1053           nvl(p_asset_fin_rec_adj.global_attribute_category,
1054               nvl(p_asset_fin_rec_old.global_attribute_category, FND_API.G_MISS_CHAR))) then
1055          l_no_changes_made := TRUE;
1056    else
1057          l_no_changes_made := FALSE;
1058    end if;
1059 
1060    if nvl(p_asset_fin_rec_old.unit_of_measure, FND_API.G_MISS_CHAR) =
1061          nvl(p_asset_fin_rec_adj.unit_of_measure,
1062              nvl(p_asset_fin_rec_old.unit_of_measure, FND_API.G_MISS_CHAR)) then
1063       l_no_changes_to_uom := TRUE;
1064    else
1065       l_no_changes_to_uom := FALSE;
1066    end if;
1067 
1068    if (p_asset_fin_rec_old.depreciate_flag = nvl(p_asset_fin_rec_adj.depreciate_flag,
1069                                                  p_asset_fin_rec_old.depreciate_flag)) then
1070       l_no_changes_to_dep_flag := TRUE;
1071    else
1072       l_no_changes_to_dep_flag := FALSE;
1073    end if;
1074 
1075    if  p_asset_fin_rec_old.deprn_method_code =
1076           nvl(p_asset_fin_rec_adj.deprn_method_code,
1077               p_asset_fin_rec_old.deprn_method_code) and
1078        nvl(p_asset_fin_rec_old.life_in_months, FND_API.G_MISS_NUM) =
1079           nvl(p_asset_fin_rec_adj.life_in_months,
1080               nvl(p_asset_fin_rec_old.life_in_months, FND_API.G_MISS_NUM)) and
1081        nvl(p_asset_fin_rec_old.basic_rate, FND_API.G_MISS_NUM) =
1082           nvl(p_asset_fin_rec_adj.basic_rate,
1083               nvl(p_asset_fin_rec_old.basic_rate, FND_API.G_MISS_NUM)) and
1084        nvl(p_asset_fin_rec_old.adjusted_rate, FND_API.G_MISS_NUM) =
1085           nvl(p_asset_fin_rec_adj.adjusted_rate,
1086               nvl(p_asset_fin_rec_old.adjusted_rate, FND_API.G_MISS_NUM)) and
1087        nvl(p_asset_fin_rec_old.bonus_rule, FND_API.G_MISS_CHAR) =
1088           nvl(p_asset_fin_rec_adj.bonus_rule,
1089               nvl(p_asset_fin_rec_old.bonus_rule, FND_API.G_MISS_CHAR)) then
1090       l_no_changes_to_method := TRUE;
1091    else
1092       l_no_changes_to_method := FALSE;
1093    end if;
1094 
1095 
1096    if (p_asset_type_rec.asset_type =  'GROUP') then
1097       if  nvl(p_asset_fin_rec_old.recognize_gain_loss, FND_API.G_MISS_CHAR) =
1098              nvl(p_asset_fin_rec_adj.recognize_gain_loss,
1099                  nvl(p_asset_fin_rec_old.recognize_gain_loss, FND_API.G_MISS_CHAR)) and
1100           nvl(p_asset_fin_rec_old.recapture_reserve_flag, FND_API.G_MISS_CHAR) =
1101              nvl(p_asset_fin_rec_adj.recapture_reserve_flag,
1102                  nvl(p_asset_fin_rec_old.recapture_reserve_flag, FND_API.G_MISS_CHAR)) and
1103           nvl(p_asset_fin_rec_old.limit_proceeds_flag, FND_API.G_MISS_CHAR) =
1104              nvl(p_asset_fin_rec_adj.limit_proceeds_flag,
1105                  nvl(p_asset_fin_rec_old.limit_proceeds_flag, FND_API.G_MISS_CHAR)) and
1106           nvl(p_asset_fin_rec_old.terminal_gain_loss, FND_API.G_MISS_CHAR) =
1107              nvl(p_asset_fin_rec_adj.terminal_gain_loss,
1108                  nvl(p_asset_fin_rec_old.terminal_gain_loss, FND_API.G_MISS_CHAR)) and
1109           nvl(p_asset_fin_rec_old.tracking_method, FND_API.G_MISS_CHAR) =
1110              nvl(p_asset_fin_rec_adj.tracking_method,
1111                  nvl(p_asset_fin_rec_old.tracking_method, FND_API.G_MISS_CHAR)) and
1112           nvl(p_asset_fin_rec_old.exclude_fully_rsv_flag, FND_API.G_MISS_CHAR) =
1113              nvl(p_asset_fin_rec_adj.exclude_fully_rsv_flag,
1114                  nvl(p_asset_fin_rec_old.exclude_fully_rsv_flag, FND_API.G_MISS_CHAR)) and
1115           nvl(p_asset_fin_rec_old.excess_allocation_option, FND_API.G_MISS_CHAR) =
1116              nvl(p_asset_fin_rec_adj.excess_allocation_option,
1117                  nvl(p_asset_fin_rec_old.excess_allocation_option, FND_API.G_MISS_CHAR)) and
1118           nvl(p_asset_fin_rec_old.depreciation_option, FND_API.G_MISS_CHAR) =
1119              nvl(p_asset_fin_rec_adj.depreciation_option,
1120                  nvl(p_asset_fin_rec_old.depreciation_option, FND_API.G_MISS_CHAR)) and
1121           nvl(p_asset_fin_rec_old.member_rollup_flag, FND_API.G_MISS_CHAR) =
1122              nvl(p_asset_fin_rec_adj.member_rollup_flag,
1123                  nvl(p_asset_fin_rec_old.member_rollup_flag, FND_API.G_MISS_CHAR)) and
1124           nvl(p_asset_fin_rec_old.allocate_to_fully_rsv_flag, FND_API.G_MISS_CHAR) =
1125              nvl(p_asset_fin_rec_adj.allocate_to_fully_rsv_flag,
1126                  nvl(p_asset_fin_rec_old.allocate_to_fully_rsv_flag, FND_API.G_MISS_CHAR)) and
1127           /* HH group ed */
1128           nvl(p_asset_fin_rec_old.disabled_flag, FND_API.G_MISS_CHAR) =
1129              nvl(p_asset_fin_rec_adj.disabled_flag,
1130                  nvl(p_asset_fin_rec_old.disabled_flag, FND_API.G_MISS_CHAR)) and /* end HH */
1131           nvl(p_asset_fin_rec_old.allocate_to_fully_ret_flag, FND_API.G_MISS_CHAR) =
1132              nvl(p_asset_fin_rec_adj.allocate_to_fully_ret_flag,
1133                  nvl(p_asset_fin_rec_old.allocate_to_fully_ret_flag, FND_API.G_MISS_CHAR)) then
1134           if (p_log_level_rec.statement_level) then
1135              fa_debug_pkg.add('l_calling_fn', 'Do not need to set it to true again', 'TRUE',
1136                               p_log_level_rec => p_log_level_rec);
1137           end if;
1138       else
1139          l_no_changes_made := FALSE;
1140       end if;
1141       l_no_changes_to_group := TRUE;
1142    else
1143       if  nvl(p_asset_fin_rec_old.group_asset_id, FND_API.G_MISS_NUM) =
1144              nvl(p_asset_fin_rec_adj.group_asset_id,
1145                  nvl(p_asset_fin_rec_old.group_asset_id, FND_API.G_MISS_NUM)) then
1146          l_no_changes_to_group := TRUE;
1147       else
1148          l_no_changes_to_group := FALSE;
1149       end if;
1150    end if;
1151 
1152    if  nvl(p_asset_fin_rec_adj.reduction_rate, 0) = 0 and
1153        nvl(p_asset_fin_rec_old.reduce_addition_flag, FND_API.G_MISS_CHAR) =
1154           nvl(p_asset_fin_rec_adj.reduce_addition_flag,
1155               nvl(p_asset_fin_rec_old.reduce_addition_flag, FND_API.G_MISS_CHAR)) and
1156        nvl(p_asset_fin_rec_old.reduce_adjustment_flag, FND_API.G_MISS_CHAR) =
1157           nvl(p_asset_fin_rec_adj.reduce_adjustment_flag,
1158               nvl(p_asset_fin_rec_old.reduce_adjustment_flag, FND_API.G_MISS_CHAR)) and
1159        nvl(p_asset_fin_rec_old.reduce_retirement_flag, FND_API.G_MISS_CHAR) =
1160           nvl(p_asset_fin_rec_adj.reduce_retirement_flag,
1161               nvl(p_asset_fin_rec_old.reduce_retirement_flag, FND_API.G_MISS_CHAR)) then
1162       l_no_changes_to_reduction := TRUE;
1163    else
1164       l_no_changes_to_reduction := FALSE;
1165    end if;
1166 
1167    if (l_no_changes_made) then
1168       if (l_no_changes_to_uom) then
1169          if (l_no_changes_to_group) and (l_no_changes_to_reduction) and (l_no_changes_to_method) then
1170             if (l_no_changes_to_dep_flag) then
1171                fa_srvr_msg.add_message(
1172                    calling_fn => l_calling_fn,
1173                    name       => 'FA_SHARED_NO_CHANGES_TO_COMMIT'
1174                    ,p_log_level_rec => p_log_level_rec);
1175                return FALSE;
1176 
1177                -- old code would handle adj_req_status here as an else stmt
1178                -- we're doing it in calc engine
1179             end if;
1180          end if;
1181       end if;
1182 
1183       if (not l_no_changes_to_group) and ((not l_no_changes_to_method) and
1184          (nvl(p_asset_fin_rec_adj.depreciation_option,
1185               nvl(p_asset_fin_rec_old.depreciation_option, 'NULL')) <> 'GROUP')) then
1186 
1187          if (p_log_level_rec.statement_level) then
1188             fa_debug_pkg.add('l_calling_fn', 'No method change if depreciation_option <> ', 'GROUP',
1189                              p_log_level_rec => p_log_level_rec);
1190          end if;
1191 
1192          fa_srvr_msg.add_message(
1193              calling_fn => l_calling_fn,
1194              name       => 'FA_BK_NO_MULTIPLE_CHANGES'
1195              ,p_log_level_rec => p_log_level_rec);
1196          return FALSE;
1197       end if;
1198 
1199       if (not l_no_changes_to_dep_flag) and
1200          ((not l_no_changes_to_reduction) or
1201           (not l_no_changes_to_group) or
1202           (not l_no_changes_to_method)) then
1203          fa_srvr_msg.add_message(
1204              calling_fn => l_calling_fn,
1205              name       => 'FA_BK_NO_MULTIPLE_CHANGES'
1206              ,p_log_level_rec => p_log_level_rec);
1207          return FALSE;
1208       end if;
1209 
1210    else
1211 
1212       if (not l_no_changes_to_dep_flag) then
1213          fa_srvr_msg.add_message(
1214              calling_fn => l_calling_fn,
1215              name       => 'FA_BK_NO_MULTIPLE_CHANGES'
1216              ,p_log_level_rec => p_log_level_rec);
1217          return FALSE;
1218       end if;
1219 
1220       if (not l_no_changes_to_group) then
1221          fa_srvr_msg.add_message(
1222              calling_fn => l_calling_fn,
1223              name       => 'FA_BK_NO_MULTIPLE_CHANGES'
1224              ,p_log_level_rec => p_log_level_rec);
1225          return FALSE;
1226       end if;
1227 
1228    end if;
1229 
1230 end if;
1231 
1232    return true;
1233 
1234 END validate_adjustment;
1235 
1236 
1237 END FA_ADJUSTMENT_PVT;