DBA Data[Home] [Help]

PACKAGE BODY: APPS.FA_BOOKS_PKG

Source


1 PACKAGE BODY FA_BOOKS_PKG as
2 /* $Header: faxibkb.pls 120.20 2009/07/20 08:11:40 glchen ship $ */
3 
4   PROCEDURE Insert_Row(X_Rowid                   IN OUT NOCOPY VARCHAR2,
5                        X_Book_Type_Code                 VARCHAR2,
6                        X_Asset_Id                       NUMBER,
7                        X_Date_Placed_In_Service         DATE,
8                        X_Date_Effective                 DATE,
9                        X_Deprn_Start_Date               DATE,
10                        X_Deprn_Method_Code              VARCHAR2,
11                        X_Life_In_Months                 NUMBER DEFAULT NULL,
12                        X_Rate_Adjustment_Factor         NUMBER,
13                        X_Adjusted_Cost                  NUMBER,
14                        X_Cost                           NUMBER,
15                        X_Original_Cost                  NUMBER,
16                        X_Salvage_Value                  NUMBER,
17                        X_Prorate_Convention_Code        VARCHAR2,
18                        X_Prorate_Date                   DATE,
19                        X_Cost_Change_Flag               VARCHAR2,
20                        X_Adjustment_Required_Status     VARCHAR2,
21                        X_Capitalize_Flag                VARCHAR2,
22                        X_Retirement_Pending_Flag        VARCHAR2,
23                        X_Depreciate_Flag                VARCHAR2,
24                        X_Disabled_Flag                  VARCHAR2 DEFAULT NULL, --hh eg.
25                        X_Last_Update_Date               DATE,
26                        X_Last_Updated_By                NUMBER,
27                        X_Date_Ineffective               DATE DEFAULT NULL,
28                        X_Transaction_Header_Id_In       NUMBER,
29                        X_Transaction_Header_Id_Out      NUMBER DEFAULT NULL,
30                        X_Itc_Amount_Id                  NUMBER DEFAULT NULL,
31                        X_Itc_Amount                     NUMBER DEFAULT NULL,
32                        X_Retirement_Id                  NUMBER DEFAULT NULL,
33                        X_Tax_Request_Id                 NUMBER DEFAULT NULL,
34                        X_Itc_Basis                      NUMBER DEFAULT NULL,
35                        X_Basic_Rate                     NUMBER DEFAULT NULL,
36                        X_Adjusted_Rate                  NUMBER DEFAULT NULL,
37                        X_Bonus_Rule                     VARCHAR2 DEFAULT NULL,
38                        X_Ceiling_Name                   VARCHAR2 DEFAULT NULL,
39                        X_Recoverable_Cost               NUMBER,
40                        X_Last_Update_Login              NUMBER DEFAULT NULL,
41                        X_Adjusted_Capacity              NUMBER DEFAULT NULL,
42                        X_Fully_Rsvd_Revals_Counter      NUMBER DEFAULT NULL,
43                        X_Idled_Flag                     VARCHAR2 DEFAULT NULL,
44                        X_Period_Counter_Capitalized     NUMBER DEFAULT NULL,
45                        X_PC_Fully_Reserved              NUMBER DEFAULT NULL,
46                        X_Period_Counter_Fully_Retired   NUMBER DEFAULT NULL,
47                        X_Production_Capacity            NUMBER DEFAULT NULL,
48                        X_Reval_Amortization_Basis       NUMBER DEFAULT NULL,
49                        X_Reval_Ceiling                  NUMBER DEFAULT NULL,
50                        X_Unit_Of_Measure                VARCHAR2 DEFAULT NULL,
51                        X_Unrevalued_Cost                NUMBER,
52                        X_Annual_Deprn_Rounding_Flag     VARCHAR2 DEFAULT NULL,
53                        X_Percent_Salvage_Value          NUMBER DEFAULT NULL,
54                        X_Allowed_Deprn_Limit            NUMBER DEFAULT NULL,
55                        X_Allowed_Deprn_Limit_Amount     NUMBER DEFAULT NULL,
56                        X_Period_Counter_Life_Complete   NUMBER DEFAULT NULL,
57                        X_Adjusted_Recoverable_Cost      NUMBER DEFAULT NULL,
58 /* syoung: next new columns for short tax years */
59                        X_Short_Fiscal_Year_Flag         VARCHAR2 DEFAULT NULL,
60                        X_Conversion_Date                DATE DEFAULT NULL,
61                        X_Orig_Deprn_Start_Date          DATE DEFAULT NULL,
62                        X_Remaining_Life1                NUMBER DEFAULT NULL,
63                        X_Remaining_Life2                NUMBER DEFAULT NULL,
64                        X_Old_Adj_Cost                   NUMBER DEFAULT NULL,
65                        X_Formula_Factor                 NUMBER DEFAULT NULL,
66 /* syoung: up to here */
67                        X_gf_Attribute1                  VARCHAR2 DEFAULT NULL,
68                        X_gf_Attribute2                  VARCHAR2 DEFAULT NULL,
69                        X_gf_Attribute3                  VARCHAR2 DEFAULT NULL,
70                        X_gf_Attribute4                  VARCHAR2 DEFAULT NULL,
71                        X_gf_Attribute5                  VARCHAR2 DEFAULT NULL,
72                        X_gf_Attribute6                  VARCHAR2 DEFAULT NULL,
73                        X_gf_Attribute7                  VARCHAR2 DEFAULT NULL,
74                        X_gf_Attribute8                  VARCHAR2 DEFAULT NULL,
75                        X_gf_Attribute9                  VARCHAR2 DEFAULT NULL,
76                        X_gf_Attribute10                 VARCHAR2 DEFAULT NULL,
77                        X_gf_Attribute11                 VARCHAR2 DEFAULT NULL,
78                        X_gf_Attribute12                 VARCHAR2 DEFAULT NULL,
79                        X_gf_Attribute13                 VARCHAR2 DEFAULT NULL,
80                        X_gf_Attribute14                 VARCHAR2 DEFAULT NULL,
81                        X_gf_Attribute15                 VARCHAR2 DEFAULT NULL,
82                        X_gf_Attribute16                 VARCHAR2 DEFAULT NULL,
83                        X_gf_Attribute17                 VARCHAR2 DEFAULT NULL,
84                        X_gf_Attribute18                 VARCHAR2 DEFAULT NULL,
85                        X_gf_Attribute19                 VARCHAR2 DEFAULT NULL,
86                        X_gf_Attribute20                 VARCHAR2 DEFAULT NULL,
87                        X_global_attribute_category      VARCHAR2 DEFAULT NULL,
88                        X_group_asset_id                 NUMBER   DEFAULT NULL,
89 -- new group fields
90                        X_salvage_type                   VARCHAR2 DEFAULT NULL,
91                        X_deprn_limit_type               VARCHAR2 DEFAULT NULL,
92                        X_over_depreciate_option         VARCHAR2 DEFAULT NULL,
93                        X_super_group_id                 NUMBER   DEFAULT NULL,
94                        X_reduction_rate                 NUMBER   DEFAULT NULL,
95                        X_reduce_addition_flag           VARCHAR2 DEFAULT NULL,
96                        X_reduce_adjustment_flag         VARCHAR2 DEFAULT NULL,
97                        X_reduce_retirement_flag         VARCHAR2 DEFAULT NULL,
98                        X_recognize_gain_loss            VARCHAR2 DEFAULT NULL,
99                        X_recapture_reserve_flag         VARCHAR2 DEFAULT NULL,
100                        X_limit_proceeds_flag            VARCHAR2 DEFAULT NULL,
101                        X_terminal_gain_loss             VARCHAR2 DEFAULT NULL,
102                        X_tracking_method                VARCHAR2 DEFAULT NULL,
103                        X_allocate_to_fully_rsv_flag     VARCHAR2 DEFAULT NULL,
104                        X_allocate_to_fully_ret_flag     VARCHAR2 DEFAULT NULL,
105                        X_exclude_fully_rsv_flag         VARCHAR2 DEFAULT NULL,
106                        X_excess_allocation_option       VARCHAR2 DEFAULT NULL,
107                        X_depreciation_option            VARCHAR2 DEFAULT NULL,
108                        X_member_rollup_flag             VARCHAR2 DEFAULT NULL,
109                        X_ytd_proceeds                   NUMBER   DEFAULT NULL,
110                        X_ltd_proceeds                   NUMBER   DEFAULT NULL,
111                        X_eofy_reserve                   NUMBER   DEFAULT NULL,
112                        X_cip_cost                       NUMBER   DEFAULT NULL,
113                        X_terminal_gain_loss_amount      NUMBER   DEFAULT NULL,
114                        X_ltd_cost_of_removal            NUMBER   DEFAULT NULL,
115                        X_exclude_proceeds_from_basis    VARCHAR2 DEFAULT NULL,
116                        X_retirement_deprn_option        VARCHAR2 DEFAULT NULL,
117                        X_terminal_gain_loss_flag        VARCHAR2 DEFAULT NULL,
118                        X_contract_id                    NUMBER   DEFAULT NULL, -- Bug:8240522
119                        X_cash_generating_unit_id        NUMBER   DEFAULT NULL,
120 		       X_extended_deprn_flag            VARCHAR2 DEFAULT NULL, -- Japan Tax Phase3
121 		       X_extended_depreciation_period   NUMBER   DEFAULT NULL, -- Japan Tax Phase3
122                        X_mrc_sob_type_code              VARCHAR2 DEFAULT 'P',
123                        X_set_of_books_id                NUMBER ,
124                        X_Return_Status              OUT NOCOPY BOOLEAN,
125                        X_Calling_Fn                     VARCHAR2,
126 		     X_nbv_at_switch                   NUMBER   DEFAULT NULL,  -- Changes made as per the ER No.s 6606548 and 6606552 by Sbyreddy Start
127 		     X_prior_deprn_limit_type          VARCHAR2 DEFAULT NULL,
128 		     X_prior_deprn_limit_amount        NUMBER   DEFAULT NULL,
129 		     X_prior_deprn_limit               NUMBER   DEFAULT NULL,
130 		     X_period_counter_fully_rsrved     NUMBER   DEFAULT NULL,
131 		     -- X_extended_depreciation_period    NUMBER   DEFAULT NULL,
132 		     X_prior_deprn_method              VARCHAR2 DEFAULT NULL,
133 		     X_prior_life_in_months            NUMBER   DEFAULT NULL,
134 		     X_prior_basic_rate                NUMBER   DEFAULT NULL,
135 		     X_prior_adjusted_rate             NUMBER   DEFAULT NULL, -- Changes made as per the ER No.s 6606548 and 6606552 by Sbyreddy End
136 		     X_period_counter_fully_extend     NUMBER   DEFAULT NULL  -- Bug 7576755
137  , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type  ) IS
138     CURSOR C_bk IS SELECT rowid FROM fa_books
139                  WHERE transaction_header_id_in = X_Transaction_Header_Id_In;
140 
141     CURSOR C_bk_mc IS SELECT rowid FROM fa_mc_books
142                  WHERE transaction_header_id_in = X_Transaction_Header_Id_In
143                  AND set_of_books_id = X_set_of_books_id;
144 
145    BEGIN
146 
147        if (X_mrc_sob_type_code = 'R') then
148           INSERT INTO fa_mc_books(
149               set_of_books_id,
150               book_type_code,
151               asset_id,
152               date_placed_in_service,
153               date_effective,
154               deprn_start_date,
155               deprn_method_code,
156               life_in_months,
157               rate_adjustment_factor,
158               adjusted_cost,
159               cost,
160               original_cost,
161               salvage_value,
162               prorate_convention_code,
163               prorate_date,
164               cost_change_flag,
165               adjustment_required_status,
166               capitalize_flag,
167               retirement_pending_flag,
168               depreciate_flag,
169               disabled_flag, --HH eg.
170               last_update_date,
171               last_updated_by,
172               date_ineffective,
173               transaction_header_id_in,
174               transaction_header_id_out,
175               itc_amount_id,
176               itc_amount,
177               retirement_id,
178               tax_request_id,
179               itc_basis,
180               basic_rate,
181               adjusted_rate,
182               bonus_rule,
183               ceiling_name,
184               recoverable_cost,
185               last_update_login,
186               adjusted_capacity,
187               fully_rsvd_revals_counter,
188               idled_flag,
189               period_counter_capitalized,
190               period_counter_fully_reserved,
191               period_counter_fully_retired,
192               production_capacity,
193               reval_amortization_basis,
194               reval_ceiling,
195               unit_of_measure,
196               unrevalued_cost,
197               annual_deprn_rounding_flag,
198               percent_salvage_value,
199               allowed_deprn_limit,
200               allowed_deprn_limit_amount,
201               period_counter_life_complete,
202               adjusted_recoverable_cost,
203 /* syoung: next new columns for short tax years */
204               short_fiscal_year_flag,
205               conversion_date,
206               original_deprn_start_date,
207               remaining_life1,
208               remaining_life2,
209               old_adjusted_cost,
210               formula_factor,
211 /* syoung: up to here */
212               global_Attribute1,
213               global_Attribute2,
214               global_Attribute3,
215               global_Attribute4,
216               global_Attribute5,
217               global_Attribute6,
218               global_Attribute7,
219               global_Attribute8,
220               global_Attribute9,
221               global_Attribute10,
222               global_Attribute11,
223               global_Attribute12,
224               global_Attribute13,
225               global_Attribute14,
226               global_Attribute15,
227               global_Attribute16,
228               global_Attribute17,
229               global_Attribute18,
230               global_Attribute19,
231               global_Attribute20,
232               global_attribute_category,
233               group_asset_id,
234               salvage_type,
235               deprn_limit_type,
236               over_depreciate_option,
237               super_group_id,
238               reduction_rate,
239               reduce_addition_flag,
240               reduce_adjustment_flag,
241               reduce_retirement_flag,
242               recognize_gain_loss,
243               recapture_reserve_flag,
244               limit_proceeds_flag,
245               terminal_gain_loss,
246               tracking_method,
247               allocate_to_fully_rsv_flag,
248               allocate_to_fully_ret_flag,
249               exclude_fully_rsv_flag,
250               excess_allocation_option,
251               depreciation_option,
252               member_rollup_flag,
253               ytd_proceeds,
254               ltd_proceeds,
255               eofy_reserve,
256               cip_cost,
257               terminal_gain_loss_amount,
258               ltd_cost_of_removal,
259               exclude_proceeds_from_basis,
260               retirement_deprn_option,
261               terminal_gain_loss_flag,
262 	      contract_id,               -- Bug:8240522
263               cash_generating_unit_id
264              ) VALUES (
265               X_set_of_books_id,
266               X_Book_Type_Code,
267               X_Asset_Id,
268               X_Date_Placed_In_Service,
269               X_Date_Effective,
270               X_Deprn_Start_Date,
271               X_Deprn_Method_Code,
272               X_Life_In_Months,
273               X_Rate_Adjustment_Factor,
274               X_Adjusted_Cost,
275               X_Cost,
276               X_Original_Cost,
277               X_Salvage_Value,
278               X_Prorate_Convention_Code,
279               X_Prorate_Date,
280               X_Cost_Change_Flag,
281               X_Adjustment_Required_Status,
282               X_Capitalize_Flag,
283               X_Retirement_Pending_Flag,
284               X_Depreciate_Flag,
285               X_disabled_flag, --HH eg.
286               X_Last_Update_Date,
287               X_Last_Updated_By,
288               X_Date_Ineffective,
289               X_Transaction_Header_Id_In,
290               X_Transaction_Header_Id_Out,
291               X_Itc_Amount_Id,
292               X_Itc_Amount,
293               X_Retirement_Id,
294               X_Tax_Request_Id,
295               X_Itc_Basis,
296               X_Basic_Rate,
297               X_Adjusted_Rate,
298               X_Bonus_Rule,
299               X_Ceiling_Name,
300               X_Recoverable_Cost,
301               X_Last_Update_Login,
302               X_Adjusted_Capacity,
303               X_Fully_Rsvd_Revals_Counter,
304               X_Idled_Flag,
305               X_Period_Counter_Capitalized,
306               X_PC_Fully_Reserved,
307               X_Period_Counter_Fully_Retired,
308               X_Production_Capacity,
309               X_Reval_Amortization_Basis,
310               X_Reval_Ceiling,
311               X_Unit_Of_Measure,
312               X_Unrevalued_Cost,
313               X_Annual_Deprn_Rounding_Flag,
314               X_Percent_Salvage_Value,
315               X_Allowed_Deprn_Limit,
316               X_Allowed_Deprn_Limit_Amount,
317               X_Period_Counter_Life_Complete,
318               X_Adjusted_Recoverable_Cost,
319 /* syoung: next new column values for short tax years */
320               X_Short_Fiscal_Year_Flag,
321               X_Conversion_Date,
322               X_Orig_Deprn_Start_Date,
323               X_Remaining_Life1,
324               X_Remaining_Life2,
325               X_Old_Adj_Cost,
326               X_Formula_Factor,
327 /* syoung: up to here */
328               X_gf_Attribute1,
329               X_gf_Attribute2,
330               X_gf_Attribute3,
331               X_gf_Attribute4,
332               X_gf_Attribute5,
333               X_gf_Attribute6,
334               X_gf_Attribute7,
335               X_gf_Attribute8,
336               X_gf_Attribute9,
337               X_gf_Attribute10,
338               X_gf_Attribute11,
339               X_gf_Attribute12,
340               X_gf_Attribute13,
341               X_gf_Attribute14,
342               X_gf_Attribute15,
343               X_gf_Attribute16,
344               X_gf_Attribute17,
345               X_gf_Attribute18,
346               X_gf_Attribute19,
347               X_gf_Attribute20,
348               X_global_attribute_category,
349               X_group_asset_id,
350               X_salvage_type,
351               X_deprn_limit_type,
352               X_over_depreciate_option,
353               X_super_group_id,
354               X_reduction_rate,
355               X_reduce_addition_flag,
356               X_reduce_adjustment_flag,
357               X_reduce_retirement_flag,
358               X_recognize_gain_loss,
359               X_recapture_reserve_flag,
360               X_limit_proceeds_flag,
361               X_terminal_gain_loss,
362               X_tracking_method,
363               X_allocate_to_fully_rsv_flag,
364               X_allocate_to_fully_ret_flag,
365               X_exclude_fully_rsv_flag,
366               X_excess_allocation_option,
367               X_depreciation_option,
368               X_member_rollup_flag,
369               X_ytd_proceeds,
370               X_ltd_proceeds,
371               X_eofy_reserve,
372               X_cip_cost,
373               X_terminal_gain_loss_amount,
374               X_ltd_cost_of_removal,
375               X_exclude_proceeds_from_basis,
376               X_retirement_deprn_option,
377               X_terminal_gain_loss_flag,
378 	      X_contract_id,                -- Bug:8240522
379               X_cash_generating_unit_id
380              );
381 
382           OPEN C_bk_mc;
383           FETCH C_bk_mc INTO X_Rowid;
384           if (C_bk_mc%NOTFOUND) then
385              CLOSE C_bk_mc;
386              Raise NO_DATA_FOUND;
387           end if;
388           CLOSE C_bk_mc;
389 
390        else
391 
392           INSERT INTO fa_books(
393               book_type_code,
394               asset_id,
395               date_placed_in_service,
396               date_effective,
397               deprn_start_date,
398               deprn_method_code,
399               life_in_months,
400               rate_adjustment_factor,
401               adjusted_cost,
402               cost,
403               original_cost,
404               salvage_value,
405               prorate_convention_code,
406               prorate_date,
407               cost_change_flag,
408               adjustment_required_status,
409               capitalize_flag,
410               retirement_pending_flag,
411               depreciate_flag,
412               disabled_flag, --HH eg.
413               last_update_date,
414               last_updated_by,
415               date_ineffective,
416               transaction_header_id_in,
417               transaction_header_id_out,
418               itc_amount_id,
419               itc_amount,
420               retirement_id,
421               tax_request_id,
422               itc_basis,
423               basic_rate,
424               adjusted_rate,
425               bonus_rule,
426               ceiling_name,
427               recoverable_cost,
428               last_update_login,
429               adjusted_capacity,
430               fully_rsvd_revals_counter,
431               idled_flag,
432               period_counter_capitalized,
433               period_counter_fully_reserved,
434               period_counter_fully_retired,
435               production_capacity,
436               reval_amortization_basis,
437               reval_ceiling,
438               unit_of_measure,
439               unrevalued_cost,
440               annual_deprn_rounding_flag,
441               percent_salvage_value,
442               allowed_deprn_limit,
443               allowed_deprn_limit_amount,
444               period_counter_life_complete,
445               adjusted_recoverable_cost,
446 /* syoung: next new columns for short tax years */
447               short_fiscal_year_flag,
448               conversion_date,
449               original_deprn_start_date,
450               remaining_life1,
451               remaining_life2,
452               old_adjusted_cost,
453               formula_factor,
454 /* syoung: up to here */
455               global_Attribute1,
456               global_Attribute2,
457               global_Attribute3,
458               global_Attribute4,
459               global_Attribute5,
460               global_Attribute6,
461               global_Attribute7,
462               global_Attribute8,
463               global_Attribute9,
464               global_Attribute10,
465               global_Attribute11,
466               global_Attribute12,
467               global_Attribute13,
468               global_Attribute14,
469               global_Attribute15,
470               global_Attribute16,
471               global_Attribute17,
472               global_Attribute18,
473               global_Attribute19,
474               global_Attribute20,
475               global_attribute_category,
476               group_asset_id,
477               salvage_type,
478               deprn_limit_type,
479               over_depreciate_option,
480               super_group_id,
481               reduction_rate,
482               reduce_addition_flag,
483               reduce_adjustment_flag,
484               reduce_retirement_flag,
485               recognize_gain_loss,
486               recapture_reserve_flag,
487               limit_proceeds_flag,
488               terminal_gain_loss,
489               tracking_method,
490               allocate_to_fully_rsv_flag,
491               allocate_to_fully_ret_flag,
492               exclude_fully_rsv_flag,
493               excess_allocation_option,
494               depreciation_option,
495               member_rollup_flag,
496               ytd_proceeds,
497               ltd_proceeds,
498               eofy_reserve,
499               cip_cost,
500               terminal_gain_loss_amount,
501               ltd_cost_of_removal,
502               exclude_proceeds_from_basis,
503               retirement_deprn_option,
504               terminal_gain_loss_flag,
505 	      contract_id,                       -- Bug:8240522
506               cash_generating_unit_id,
507               extended_deprn_flag,               -- Japan Tax Phase3
508               extended_depreciation_period,      -- Japan Tax Phase3
509               nbv_at_switch,                     -- Changes made as per the ER No.s 6606548 and 6606552 by Sbyreddy Start
510               prior_deprn_limit_type,
511               prior_deprn_limit_amount,
512               prior_deprn_limit,
513               --period_counter_fully_reserved,
514               --extended_depreciation_period,
515               prior_deprn_method,
516               prior_life_in_months,
517               prior_basic_rate,
518               prior_adjusted_rate,               -- Changes made as per the ER No.s 6606548 and 6606552 by Sbyreddy End
519               period_counter_fully_extended      --  Bug 7576755
520              ) VALUES (
521               X_Book_Type_Code,
522               X_Asset_Id,
523               X_Date_Placed_In_Service,
524               X_Date_Effective,
525               X_Deprn_Start_Date,
526               X_Deprn_Method_Code,
527               X_Life_In_Months,
528               X_Rate_Adjustment_Factor,
529               X_Adjusted_Cost,
530               X_Cost,
531               X_Original_Cost,
532               X_Salvage_Value,
533               X_Prorate_Convention_Code,
534               X_Prorate_Date,
535               X_Cost_Change_Flag,
536               X_Adjustment_Required_Status,
537               X_Capitalize_Flag,
538               X_Retirement_Pending_Flag,
539               X_Depreciate_Flag,
540               X_disabled_flag, --HH eg.
541               X_Last_Update_Date,
542               X_Last_Updated_By,
543               X_Date_Ineffective,
544               X_Transaction_Header_Id_In,
545               X_Transaction_Header_Id_Out,
546               X_Itc_Amount_Id,
547               X_Itc_Amount,
548               X_Retirement_Id,
549               X_Tax_Request_Id,
550               X_Itc_Basis,
551               X_Basic_Rate,
552               X_Adjusted_Rate,
553               X_Bonus_Rule,
554               X_Ceiling_Name,
555               X_Recoverable_Cost,
556               X_Last_Update_Login,
557               X_Adjusted_Capacity,
558               X_Fully_Rsvd_Revals_Counter,
559               X_Idled_Flag,
560               X_Period_Counter_Capitalized,
561               X_PC_Fully_Reserved,
562               X_Period_Counter_Fully_Retired,
563               X_Production_Capacity,
564               X_Reval_Amortization_Basis,
565               X_Reval_Ceiling,
566               X_Unit_Of_Measure,
567               X_Unrevalued_Cost,
568               X_Annual_Deprn_Rounding_Flag,
569               X_Percent_Salvage_Value,
570               X_Allowed_Deprn_Limit,
571               X_Allowed_Deprn_Limit_Amount,
572               X_Period_Counter_Life_Complete,
573               X_Adjusted_Recoverable_Cost,
574 /* syoung: next new column values for short tax years */
575               X_Short_Fiscal_Year_Flag,
576               X_Conversion_Date,
577               X_Orig_Deprn_Start_Date,
578               X_Remaining_Life1,
579               X_Remaining_Life2,
580               X_Old_Adj_Cost,
581               X_Formula_Factor,
582 /* syoung: up to here */
583               X_gf_Attribute1,
584               X_gf_Attribute2,
585               X_gf_Attribute3,
586               X_gf_Attribute4,
587               X_gf_Attribute5,
588               X_gf_Attribute6,
589               X_gf_Attribute7,
590               X_gf_Attribute8,
591               X_gf_Attribute9,
592               X_gf_Attribute10,
593               X_gf_Attribute11,
594               X_gf_Attribute12,
595               X_gf_Attribute13,
596               X_gf_Attribute14,
597               X_gf_Attribute15,
598               X_gf_Attribute16,
599               X_gf_Attribute17,
600               X_gf_Attribute18,
601               X_gf_Attribute19,
602               X_gf_Attribute20,
603               X_global_attribute_category,
604               X_group_asset_id,
605               X_salvage_type,
606               X_deprn_limit_type,
607               X_over_depreciate_option,
608               X_super_group_id,
609               X_reduction_rate,
610               X_reduce_addition_flag,
611               X_reduce_adjustment_flag,
612               X_reduce_retirement_flag,
613               X_recognize_gain_loss,
614               X_recapture_reserve_flag,
615               X_limit_proceeds_flag,
616               X_terminal_gain_loss,
617               X_tracking_method,
618               X_allocate_to_fully_rsv_flag,
619               X_allocate_to_fully_ret_flag,
620               X_exclude_fully_rsv_flag,
621               X_excess_allocation_option,
622               X_depreciation_option,
623               X_member_rollup_flag,
624               X_ytd_proceeds,
625               X_ltd_proceeds,
626               X_eofy_reserve,
627               X_cip_cost,
628               X_terminal_gain_loss_amount,
629               X_ltd_cost_of_removal,
630               X_exclude_proceeds_from_basis,
631               X_retirement_deprn_option,
632               X_terminal_gain_loss_flag,
633 	      X_contract_id,                  -- Bug:8240522
634               X_cash_generating_unit_id,
635               X_extended_deprn_flag,          -- Japan Tax Phase3
636               X_extended_depreciation_period, -- Japan Tax Phase3
637               X_nbv_at_switch,                -- Changes made as per the ER No.s 6606548 and 6606552 by Sbyreddy Start
638               X_prior_deprn_limit_type,
639               X_prior_deprn_limit_amount,
640               X_prior_deprn_limit,
641               --X_period_counter_fully_rsrved,
642               --X_extended_depreciation_period,
643               X_prior_deprn_method,
644               X_prior_life_in_months,
645               X_prior_basic_rate,
646               X_prior_adjusted_rate,         -- Changes made as per the ER No.s 6606548 and 6606552 by Sbyreddy End
647               X_period_counter_fully_extend      --  Bug 7576755
648              );
649 
650            OPEN C_bk;
651            FETCH C_bk INTO X_Rowid;
652            if (C_bk%NOTFOUND) then
653               CLOSE C_bk;
654               Raise NO_DATA_FOUND;
655            end if;
656            CLOSE C_bk;
657 
658         end if;  -- end mrc
659 
660     X_Return_Status := TRUE;
661   exception
662     when others then
663       if (X_Calling_Fn = 'fa_unp_dep_pkg.on_insert') then
664         FA_STANDARD_PKG.RAISE_ERROR(
665           CALLED_FN => 'fa_books_pkg.insert_row',
666           CALLING_FN => X_Calling_Fn, p_log_level_rec => p_log_level_rec);
667      X_Return_Status := FALSE;
668       else
669          fa_srvr_msg.add_sql_error(
670              calling_fn => 'fa_books_pkg.insert_row', p_log_level_rec => p_log_level_rec);
671          X_Return_Status := FALSE;
672          raise; -- BUG# 1979676
673       end if;
674 
675   END Insert_Row;
676 
677 
678   PROCEDURE Lock_Row(X_Rowid                            VARCHAR2,
679                      X_Book_Type_Code                   VARCHAR2,
680                      X_Asset_Id                         NUMBER,
681                      X_Date_Placed_In_Service           DATE,
682                      X_Date_Effective                   DATE,
683                      X_Deprn_Start_Date                 DATE,
684                      X_Deprn_Method_Code                VARCHAR2,
685                      X_Life_In_Months                   NUMBER DEFAULT NULL,
686                      X_Rate_Adjustment_Factor           NUMBER,
687                      X_Adjusted_Cost                    NUMBER,
688                      X_Cost                             NUMBER,
689                      X_Original_Cost                    NUMBER,
690                      X_Salvage_Value                    NUMBER,
691                      X_Prorate_Convention_Code          VARCHAR2,
692                      X_Prorate_Date                     DATE,
693                      X_Cost_Change_Flag                 VARCHAR2,
694                      X_Adjustment_Required_Status       VARCHAR2,
695                      X_Capitalize_Flag                  VARCHAR2,
696                      X_Retirement_Pending_Flag          VARCHAR2,
697                      X_Depreciate_Flag                  VARCHAR2,
698                      X_disabled_flag                    VARCHAR2 DEFAULT NULL, --HH eg.
699                      X_Date_Ineffective                 DATE DEFAULT NULL,
700                      X_Transaction_Header_Id_In         NUMBER,
701                      X_Transaction_Header_Id_Out        NUMBER DEFAULT NULL,
702                      X_Itc_Amount_Id                    NUMBER DEFAULT NULL,
703                      X_Itc_Amount                       NUMBER DEFAULT NULL,
704                      X_Retirement_Id                    NUMBER DEFAULT NULL,
705                      X_Tax_Request_Id                   NUMBER DEFAULT NULL,
706                      X_Itc_Basis                        NUMBER DEFAULT NULL,
707                      X_Basic_Rate                       NUMBER DEFAULT NULL,
708                      X_Adjusted_Rate                    NUMBER DEFAULT NULL,
709                      X_Bonus_Rule                       VARCHAR2 DEFAULT NULL,
710                      X_Ceiling_Name                     VARCHAR2 DEFAULT NULL,
711                      X_Recoverable_Cost                 NUMBER,
712                      X_Adjusted_Capacity                NUMBER DEFAULT NULL,
713                      X_Fully_Rsvd_Revals_Counter        NUMBER DEFAULT NULL,
714                      X_Idled_Flag                       VARCHAR2 DEFAULT NULL,
715                      X_Period_Counter_Capitalized       NUMBER DEFAULT NULL,
716                      X_PC_Fully_Reserved                NUMBER DEFAULT NULL,
717                      X_Period_Counter_Fully_Retired     NUMBER DEFAULT NULL,
718                      X_Production_Capacity              NUMBER DEFAULT NULL,
719                      X_Reval_Amortization_Basis         NUMBER DEFAULT NULL,
720                      X_Reval_Ceiling                    NUMBER DEFAULT NULL,
721                      X_Unit_Of_Measure                  VARCHAR2 DEFAULT NULL,
722                      X_Unrevalued_Cost                  NUMBER,
723                      X_Annual_Deprn_Rounding_Flag       VARCHAR2 DEFAULT NULL,
724                      X_Percent_Salvage_Value            NUMBER DEFAULT NULL,
725                      X_Allowed_Deprn_Limit              NUMBER DEFAULT NULL,
726                      X_Allowed_Deprn_Limit_Amount       NUMBER DEFAULT NULL,
727                      X_Period_Counter_Life_Complete     NUMBER DEFAULT NULL,
728                      X_Adjusted_Recoverable_Cost        NUMBER DEFAULT NULL,
729                      X_Cash_Generating_Unit_Id          NUMBER DEFAULT NULL,
730                      X_Calling_Fn                       VARCHAR2
731   , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) IS
732     CURSOR C IS
733         SELECT     book_type_code,
734           asset_id,
735           date_placed_in_service,
736           date_effective,
737           deprn_start_date,
738           deprn_method_code,
739           life_in_months,
740           rate_adjustment_factor,
741           adjusted_cost,
742           cost,
743           original_cost,
744           salvage_value,
745           prorate_convention_code,
746           prorate_date,
747           cost_change_flag,
748           adjustment_required_status,
749           capitalize_flag,
750           retirement_pending_flag,
751           depreciate_flag,
752           disabled_flag, --HH eg.
753           last_update_date,
754           last_updated_by,
755           date_ineffective,
756           transaction_header_id_in,
757           transaction_header_id_out,
758           itc_amount_id,
759           itc_amount,
760           retirement_id,
761           tax_request_id,
762           itc_basis,
763           basic_rate,
764           adjusted_rate,
765           bonus_rule,
766           ceiling_name,
767           recoverable_cost,
768           last_update_login,
769           adjusted_capacity,
770           fully_rsvd_revals_counter,
771           idled_flag,
772           period_counter_capitalized,
773           period_counter_fully_reserved,
774           period_counter_fully_retired,
775           production_capacity,
776           reval_amortization_basis,
777           reval_ceiling,
778           unit_of_measure,
779           unrevalued_cost,
780           annual_deprn_rounding_flag,
781           percent_salvage_value,
782           allowed_deprn_limit,
783           allowed_deprn_limit_amount,
784           period_counter_life_complete,
785           adjusted_recoverable_cost,
786           annual_rounding_flag,
787           global_attribute1,
788           global_attribute2,
789           global_attribute3,
790           global_attribute4,
791           global_attribute5,
792           global_attribute6,
793           global_attribute7,
794           global_attribute8,
795           global_attribute9,
796           global_attribute10,
797           global_attribute11,
798           global_attribute12,
799           global_attribute13,
800           global_attribute14,
801           global_attribute15,
802           global_attribute16,
803           global_attribute17,
804           global_attribute18,
805           global_attribute19,
806           global_attribute20,
807           global_attribute_category,
808           eofy_adj_cost,
809           short_fiscal_year_flag,
810           conversion_date,
811           remaining_life1,
812           remaining_life2,
813           original_deprn_start_date,
814           old_adjusted_cost,
815           formula_factor,
816           eofy_formula_factor,
817           cash_generating_unit_id
818         FROM   fa_books
819         WHERE  rowid = X_Rowid
820         FOR UPDATE of Transaction_Header_Id_In NOWAIT;
821     Recinfo C%ROWTYPE;
822 
823 
824   BEGIN
825     OPEN C;
826     FETCH C INTO Recinfo;
827     if (C%NOTFOUND) then
828       CLOSE C;
829       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
830       APP_EXCEPTION.Raise_Exception;
831     end if;
832     CLOSE C;
833     if ((Recinfo.book_type_code =  X_Book_Type_Code)
834            AND (Recinfo.asset_id =  X_Asset_Id)
835            AND (Recinfo.date_placed_in_service =  X_Date_Placed_In_Service)
836            AND (Recinfo.date_effective =  X_Date_Effective)
837            AND (Recinfo.deprn_start_date =  X_Deprn_Start_Date)
838            AND (Recinfo.deprn_method_code =  X_Deprn_Method_Code)
839            AND (   (Recinfo.life_in_months =  X_Life_In_Months)
840                 OR (    (Recinfo.life_in_months IS NULL)
841                     AND (X_Life_In_Months IS NULL)))
842            AND (Recinfo.rate_adjustment_factor =  X_Rate_Adjustment_Factor)
843            AND (Recinfo.adjusted_cost =  X_Adjusted_Cost)
844            AND (Recinfo.cost =  X_Cost)
845            AND (Recinfo.original_cost =  X_Original_Cost)
846            AND (Recinfo.salvage_value =  X_Salvage_Value)
847            AND (Recinfo.prorate_convention_code =  X_Prorate_Convention_Code)
848            AND (Recinfo.prorate_date =  X_Prorate_Date)
849            AND (Recinfo.cost_change_flag =  X_Cost_Change_Flag)
850            AND (Recinfo.adjustment_required_status =
851                          X_Adjustment_Required_Status)
852            AND (Recinfo.capitalize_flag =  X_Capitalize_Flag)
853            AND (Recinfo.retirement_pending_flag =  X_Retirement_Pending_Flag)
854            AND (Recinfo.depreciate_flag =  X_Depreciate_Flag)
855            --HH eg.
856            AND (   (Recinfo.disabled_flag =  X_Disabled_Flag)
857                 OR (    (Recinfo.Disabled_flag IS NULL)
858                     AND (X_Disabled_Flag IS NULL)))
859            AND (   (Recinfo.date_ineffective =  X_Date_Ineffective)
860                 OR (    (Recinfo.date_ineffective IS NULL)
861                     AND (X_Date_Ineffective IS NULL)))
862            AND (Recinfo.transaction_header_id_in =  X_Transaction_Header_Id_In)
863            AND (   (Recinfo.transaction_header_id_out =
864                               X_Transaction_Header_Id_Out)
865                 OR (    (Recinfo.transaction_header_id_out IS NULL)
866                     AND (X_Transaction_Header_Id_Out IS NULL)))
867            AND (   (Recinfo.itc_amount_id =  X_Itc_Amount_Id)
868                 OR (    (Recinfo.itc_amount_id IS NULL)
869                     AND (X_Itc_Amount_Id IS NULL)))
870            AND (   (Recinfo.itc_amount =  X_Itc_Amount)
871                 OR (    (Recinfo.itc_amount IS NULL)
872                     AND (X_Itc_Amount IS NULL)))
873            AND (   (Recinfo.retirement_id =  X_Retirement_Id)
874                 OR (    (Recinfo.retirement_id IS NULL)
875                     AND (X_Retirement_Id IS NULL)))
876            AND (   (Recinfo.tax_request_id =  X_Tax_Request_Id)
877                 OR (    (Recinfo.tax_request_id IS NULL)
878                     AND (X_Tax_Request_Id IS NULL)))
879            AND (   (Recinfo.itc_basis =  X_Itc_Basis)
880                 OR (    (Recinfo.itc_basis IS NULL)
881                     AND (X_Itc_Basis IS NULL)))
882            AND (   (Recinfo.basic_rate =  X_Basic_Rate)
883                 OR (    (Recinfo.basic_rate IS NULL)
884                     AND (X_Basic_Rate IS NULL)))
885            AND (   (Recinfo.adjusted_rate =  X_Adjusted_Rate)
886                 OR (    (Recinfo.adjusted_rate IS NULL)
887                     AND (X_Adjusted_Rate IS NULL)))
888            AND (   (Recinfo.bonus_rule =  X_Bonus_Rule)
889                 OR (    (Recinfo.bonus_rule IS NULL)
890                     AND (X_Bonus_Rule IS NULL)))
891            AND (   (Recinfo.ceiling_name =  X_Ceiling_Name)
892                 OR (    (Recinfo.ceiling_name IS NULL)
893                     AND (X_Ceiling_Name IS NULL)))
894            AND (Recinfo.recoverable_cost =  X_Recoverable_Cost)
895            AND (   (Recinfo.adjusted_capacity =  X_Adjusted_Capacity)
896                 OR (    (Recinfo.adjusted_capacity IS NULL)
897                     AND (X_Adjusted_Capacity IS NULL)))
898            AND (   (Recinfo.fully_rsvd_revals_counter =
899                               X_Fully_Rsvd_Revals_Counter)
900                 OR (    (Recinfo.fully_rsvd_revals_counter IS NULL)
901                     AND (X_Fully_Rsvd_Revals_Counter IS NULL)))
902            AND (   (Recinfo.idled_flag =  X_Idled_Flag)
903                 OR (    (Recinfo.idled_flag IS NULL)
904                     AND (X_Idled_Flag IS NULL)))
905            AND (   (Recinfo.period_counter_capitalized =
906                          X_Period_Counter_Capitalized)
907                 OR (    (Recinfo.period_counter_capitalized IS NULL)
908                     AND (X_Period_Counter_Capitalized IS NULL)))
909            AND (   (Recinfo.period_counter_fully_reserved =
910                          X_PC_Fully_Reserved)
911                 OR (    (Recinfo.period_counter_fully_reserved IS NULL)
912                     AND (X_PC_Fully_Reserved IS NULL)))
913            AND (   (Recinfo.period_counter_fully_retired =
914                               X_Period_Counter_Fully_Retired)
915                 OR (    (Recinfo.period_counter_fully_retired IS NULL)
916                     AND (X_Period_Counter_Fully_Retired IS NULL)))
917            AND (   (Recinfo.production_capacity =  X_Production_Capacity)
918                 OR (    (Recinfo.production_capacity IS NULL)
919                     AND (X_Production_Capacity IS NULL)))
920            AND (   (Recinfo.reval_amortization_basis =
921                               X_Reval_Amortization_Basis)
922                 OR (    (Recinfo.reval_amortization_basis IS NULL)
923                     AND (X_Reval_Amortization_Basis IS NULL)))
924            AND (   (Recinfo.reval_ceiling =  X_Reval_Ceiling)
925                 OR (    (Recinfo.reval_ceiling IS NULL)
926                     AND (X_Reval_Ceiling IS NULL)))
927            AND (   (Recinfo.unit_of_measure =  X_Unit_Of_Measure)
928                 OR (    (Recinfo.unit_of_measure IS NULL)
929                     AND (X_Unit_Of_Measure IS NULL)))
930            AND (Recinfo.unrevalued_cost =  X_Unrevalued_Cost)
931         AND (   (Recinfo.adjusted_recoverable_cost =
932                          X_Adjusted_Recoverable_Cost)
933           OR (    (Recinfo.adjusted_recoverable_cost IS NULL)
934               AND (X_Adjusted_Recoverable_Cost IS NULL)))
935         AND (   (Recinfo.percent_salvage_value = X_Percent_Salvage_Value)
936           OR (    (Recinfo.percent_salvage_value IS NULL)
937               AND (X_Percent_Salvage_Value IS NULL)))
938         AND (   (Recinfo.allowed_deprn_limit = X_Allowed_Deprn_Limit)
939           OR (    (Recinfo.allowed_deprn_limit IS NULL)
940               AND (X_Allowed_Deprn_Limit IS NULL)))
941         AND (   (Recinfo.allowed_deprn_limit_amount =
942                          X_Allowed_Deprn_Limit_Amount)
943           OR (    (Recinfo.allowed_deprn_limit_amount IS NULL)
944               AND (X_Allowed_Deprn_Limit_Amount IS NULL)))
945         AND (   (Recinfo.cash_generating_unit_id = X_Cash_Generating_Unit_Id)
946           OR (    (Recinfo.cash_generating_unit_id IS NULL)
947               AND (X_Cash_Generating_Unit_Id IS NULL)))
948         AND (   (Recinfo.period_counter_life_complete =
949                          X_Period_Counter_Life_Complete)
950           OR (    (Recinfo.period_counter_life_complete IS NULL)
951               AND (X_Period_Counter_Life_Complete IS NULL)))
952       ) then
953       return;
954     else
955       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
956       APP_EXCEPTION.Raise_Exception;
957     end if;
958   END Lock_Row;
959 
960 
961 
962   PROCEDURE Update_Row(X_Rowid                          VARCHAR2 DEFAULT NULL,
963                        X_Book_Type_Code                 VARCHAR2 DEFAULT NULL,
964                        X_Asset_Id                       NUMBER   DEFAULT NULL,
965                        X_Date_Placed_In_Service         DATE     DEFAULT NULL,
966                        X_Date_Effective                 DATE     DEFAULT NULL,
967                        X_Deprn_Start_Date               DATE     DEFAULT NULL,
968                        X_Deprn_Method_Code              VARCHAR2 DEFAULT NULL,
969                        X_Life_In_Months                 NUMBER   DEFAULT NULL,
970                        X_Rate_Adjustment_Factor         NUMBER   DEFAULT NULL,
971                        X_Adjusted_Cost                  NUMBER   DEFAULT NULL,
972                        X_Cost                           NUMBER   DEFAULT NULL,
973                        X_Original_Cost                  NUMBER   DEFAULT NULL,
974                        X_Salvage_Value                  NUMBER   DEFAULT NULL,
975                        X_Prorate_Convention_Code        VARCHAR2 DEFAULT NULL,
976                        X_Prorate_Date                   DATE     DEFAULT NULL,
977                        X_Cost_Change_Flag               VARCHAR2 DEFAULT NULL,
978                        X_Adjustment_Required_Status     VARCHAR2 DEFAULT NULL,
979                        X_Capitalize_Flag                VARCHAR2 DEFAULT NULL,
980                        X_Retirement_Pending_Flag        VARCHAR2 DEFAULT NULL,
981                        X_Depreciate_Flag                VARCHAR2 DEFAULT NULL,
982                        X_Disabled_Flag                  VARCHAR2 DEFAULT NULL, --HH
983                        X_Last_Update_Date               DATE     DEFAULT NULL,
984                        X_Last_Updated_By                NUMBER   DEFAULT NULL,
985                        X_Date_Ineffective               DATE     DEFAULT NULL,
986                        X_Transaction_Header_Id_In       NUMBER   DEFAULT NULL,
987                        X_Transaction_Header_Id_Out      NUMBER   DEFAULT NULL,
988                        X_Itc_Amount_Id                  NUMBER   DEFAULT NULL,
989                        X_Itc_Amount                     NUMBER   DEFAULT NULL,
990                        X_Retirement_Id                  NUMBER   DEFAULT NULL,
991                        X_Tax_Request_Id                 NUMBER   DEFAULT NULL,
992                        X_Itc_Basis                      NUMBER   DEFAULT NULL,
993                        X_Basic_Rate                     NUMBER   DEFAULT NULL,
994                        X_Adjusted_Rate                  NUMBER   DEFAULT NULL,
995                        X_Bonus_Rule                     VARCHAR2 DEFAULT NULL,
996                        X_Ceiling_Name                   VARCHAR2 DEFAULT NULL,
997                        X_Recoverable_Cost               NUMBER   DEFAULT NULL,
998                        X_Last_Update_Login              NUMBER   DEFAULT NULL,
999                        X_Adjusted_Capacity              NUMBER   DEFAULT NULL,
1000                        X_Fully_Rsvd_Revals_Counter      NUMBER   DEFAULT NULL,
1001                        X_Idled_Flag                     VARCHAR2 DEFAULT NULL,
1002                        X_Period_Counter_Capitalized     NUMBER   DEFAULT NULL,
1003                        X_PC_Fully_Reserved              NUMBER   DEFAULT NULL,
1004                        X_Period_Counter_Fully_Retired   NUMBER   DEFAULT NULL,
1005                        X_Production_Capacity            NUMBER   DEFAULT NULL,
1006                        X_Reval_Amortization_Basis       NUMBER   DEFAULT NULL,
1007                        X_Reval_Ceiling                  NUMBER   DEFAULT NULL,
1008                        X_Unit_Of_Measure                VARCHAR2 DEFAULT NULL,
1009                        X_Unrevalued_Cost                NUMBER   DEFAULT NULL,
1010                        X_Annual_Deprn_Rounding_Flag     VARCHAR2 DEFAULT NULL,
1011                        X_Percent_Salvage_Value          NUMBER   DEFAULT NULL,
1012                        X_Allowed_Deprn_Limit            NUMBER   DEFAULT NULL,
1013                        X_Allowed_Deprn_Limit_Amount     NUMBER   DEFAULT NULL,
1014                        X_Period_Counter_Life_Complete   NUMBER   DEFAULT NULL,
1015                        X_Adjusted_Recoverable_Cost      NUMBER   DEFAULT NULL,
1016                        X_Group_Asset_Id                 NUMBER   DEFAULT NULL,
1017 -- new group columns
1018                        X_salvage_type                   VARCHAR2 DEFAULT NULL,
1019                        X_deprn_limit_type               VARCHAR2 DEFAULT NULL,
1020                        X_over_depreciate_option         VARCHAR2 DEFAULT NULL,
1021                        X_super_group_id                 NUMBER   DEFAULT NULL,
1022                        X_reduction_rate                 NUMBER   DEFAULT NULL,
1023                        X_reduce_addition_flag           VARCHAR2 DEFAULT NULL,
1024                        X_reduce_adjustment_flag         VARCHAR2 DEFAULT NULL,
1025                        X_reduce_retirement_flag         VARCHAR2 DEFAULT NULL,
1026                        X_recognize_gain_loss            VARCHAR2 DEFAULT NULL,
1027                        X_recapture_reserve_flag         VARCHAR2 DEFAULT NULL,
1028                        X_limit_proceeds_flag            VARCHAR2 DEFAULT NULL,
1029                        X_terminal_gain_loss             VARCHAR2 DEFAULT NULL,
1030                        X_tracking_method                VARCHAR2 DEFAULT NULL,
1031                        X_allocate_to_fully_rsv_flag     VARCHAR2 DEFAULT NULL,
1032                        X_allocate_to_fully_ret_flag     VARCHAR2 DEFAULT NULL,
1033                        X_exclude_fully_rsv_flag         VARCHAR2 DEFAULT NULL,
1034                        X_excess_allocation_option       VARCHAR2 DEFAULT NULL,
1035                        X_depreciation_option            VARCHAR2 DEFAULT NULL,
1036                        X_member_rollup_flag             VARCHAR2 DEFAULT NULL,
1037                        X_ytd_proceeds                   NUMBER   DEFAULT NULL,
1038                        X_ltd_proceeds                   NUMBER   DEFAULT NULL,
1039                        X_eofy_reserve                   NUMBER   DEFAULT NULL,
1040                        X_cip_cost                       NUMBER   DEFAULT NULL,
1041                        X_terminal_gain_loss_amount      NUMBER   DEFAULT NULL,
1042                        X_ltd_cost_of_removal            NUMBER   DEFAULT NULL,
1043                        X_exclude_proceeds_from_basis    VARCHAR2 DEFAULT NULL,
1044                        X_retirement_deprn_option        VARCHAR2 DEFAULT NULL,
1045                        X_terminal_gain_loss_flag        VARCHAR2 DEFAULT NULL,
1046                        X_Formula_Factor                 NUMBER   DEFAULT NULL,
1047                        X_cash_generating_unit_id        NUMBER   DEFAULT NULL,
1048                        X_mrc_sob_type_code              VARCHAR2 DEFAULT 'P',
1049                        X_set_of_books_id                NUMBER,
1050                        X_Calling_Fn                     VARCHAR2,
1051 		     X_nbv_at_switch                   NUMBER   DEFAULT NULL,  -- Changes made as per the ER No.s 6606548 and 6606552 by Sbyreddy  Start
1052 		     X_prior_deprn_limit_type          VARCHAR2 DEFAULT NULL,
1053 		     X_prior_deprn_limit_amount        NUMBER   DEFAULT NULL,
1054 		     X_prior_deprn_limit               NUMBER   DEFAULT NULL,
1055 		     X_period_counter_fully_rsrved     NUMBER DEFAULT NULL,
1056 		     X_extended_depreciation_period    NUMBER DEFAULT NULL,
1057 		     X_prior_deprn_method              VARCHAR2 DEFAULT NULL,
1058 		     X_prior_life_in_months            NUMBER   DEFAULT NULL,
1059 		     X_prior_basic_rate                NUMBER   DEFAULT NULL,
1060 		     X_prior_adjusted_rate             NUMBER   DEFAULT NULL  -- Changes made as per the ER No.s 6606548 and 6606552 by Sbyreddy End
1061                       , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) IS
1062 
1063   BEGIN
1064 
1065     if (X_mrc_sob_type_code = 'R') then
1066        if X_Rowid is not null then
1067            UPDATE fa_mc_books
1068            SET
1069            book_type_code                  =     decode(X_Book_Type_Code,
1070                                                         NULL, book_type_code,
1071                                                         FND_API.G_MISS_CHAR, NULL,
1072                                                         X_Book_Type_Code),
1073            asset_id                        =     decode(X_Asset_Id,
1074                                                         NULL, asset_id,
1075                                                         FND_API.G_MISS_NUM, NULL,
1076                                                         X_Asset_Id),
1077            date_placed_in_service          =     decode(X_Date_Placed_In_Service,
1078                                                         NULL, date_placed_in_service ,
1079                                                         X_Date_Placed_In_Service),
1080            date_effective                  =     decode(X_Date_Effective,
1081                                                         NULL, date_effective,
1082                                                         X_Date_Effective),
1083            deprn_start_date                =     decode(X_Deprn_Start_Date,
1084                                                         NULL, deprn_start_date,
1085                                                         X_Deprn_Start_Date),
1086            deprn_method_code               =     decode(X_Deprn_Method_Code,
1087                                                         NULL, deprn_method_code,
1088                                                         FND_API.G_MISS_CHAR, NULL,
1089                                                         X_Deprn_Method_Code),
1090            life_in_months                  =     decode(X_Life_In_Months,
1091                                                         NULL, life_in_months,
1092                                                         FND_API.G_MISS_NUM, NULL,
1093                                                         X_Life_In_Months),
1094            rate_adjustment_factor          =     decode(X_Rate_Adjustment_Factor,
1095                                                         NULL, rate_adjustment_factor,
1096                                                         FND_API.G_MISS_NUM, NULL,
1097                                                         X_Rate_Adjustment_Factor),
1098            adjusted_cost                   =     decode(X_Adjusted_Cost,
1099                                                         NULL, adjusted_cost,
1100                                                         FND_API.G_MISS_NUM, NULL,
1101                                                         X_Adjusted_Cost),
1102            cost                            =     decode(X_Cost,
1103                                                         NULL, cost,
1104                                                         FND_API.G_MISS_NUM, NULL,
1105                                                         X_Cost),
1106            original_cost                   =     decode(X_Original_Cost,
1107                                                         NULL, original_cost,
1108                                                         FND_API.G_MISS_NUM, NULL,
1109                                                         X_Original_Cost),
1110            salvage_value                   =     decode(X_Salvage_Value,
1111                                                         NULL, salvage_value,
1112                                                         FND_API.G_MISS_NUM, NULL,
1113                                                         X_Salvage_Value),
1114            prorate_convention_code         =     decode(X_Prorate_Convention_Code,
1115                                                         NULL, prorate_convention_code,
1116                                                         FND_API.G_MISS_CHAR, NULL,
1117                                                         X_Prorate_Convention_Code),
1118            prorate_date                    =     decode(X_Prorate_Date,
1119                                                         NULL, prorate_date,
1120                                                         X_Prorate_Date),
1121            cost_change_flag                =     decode(X_Cost_Change_Flag,
1122                                                         NULL, cost_change_flag,
1123                                                         FND_API.G_MISS_CHAR, NULL,
1124                                                         X_Cost_Change_Flag),
1125            adjustment_required_status      =     decode(X_Adjustment_Required_Status,
1126                                                         NULL, adjustment_required_status,
1127                                                         FND_API.G_MISS_CHAR, NULL,
1128                                                         X_Adjustment_Required_Status),
1129            capitalize_flag                 =     decode(X_Capitalize_Flag,
1130                                                         NULL, capitalize_flag,
1131                                                         FND_API.G_MISS_CHAR, NULL,
1132                                                         X_Capitalize_Flag),
1133            retirement_pending_flag         =     decode(X_Retirement_Pending_Flag,
1134                                                         NULL, retirement_pending_flag,
1135                                                         FND_API.G_MISS_CHAR, NULL,
1136                                                         X_Retirement_Pending_Flag),
1137            depreciate_flag                 =     decode(X_Depreciate_Flag,
1138                                                         NULL, depreciate_flag,
1139                                                         FND_API.G_MISS_CHAR, NULL,
1140                                                         X_Depreciate_Flag),
1141            --HH group ed.
1142            disabled_flag                   =     decode(X_Disabled_Flag,
1143                                                         NULL, disabled_flag,
1144                                                         FND_API.G_MISS_CHAR, NULL,
1145                                                         X_Disabled_Flag),
1146            last_update_date                =     decode(X_Last_Update_Date,
1147                                                         NULL, last_update_date,
1148                                                         X_Last_Update_Date),
1149            last_updated_by                 =     decode(X_Last_Updated_By,
1150                                                         NULL, last_updated_by,
1151                                                         FND_API.G_MISS_NUM, NULL,
1152                                                         X_Last_Updated_By),
1153            date_ineffective                =     decode(X_Date_Ineffective,
1154                                                         NULL, date_ineffective,
1155                                                         X_Date_Ineffective),
1156            transaction_header_id_in        =     decode(X_Transaction_Header_Id_In,
1157                                                         NULL, transaction_header_id_in,
1158                                                         FND_API.G_MISS_NUM, NULL,
1159                                                         X_Transaction_Header_Id_In),
1160            transaction_header_id_out       =     decode(X_Transaction_Header_Id_Out,
1161                                                         NULL, transaction_header_id_out,
1162                                                         FND_API.G_MISS_NUM, NULL,
1163                                                         X_Transaction_Header_Id_Out),
1164            itc_amount_id                   =     decode(X_Itc_Amount_Id,
1165                                                         NULL, itc_amount_id,
1166                                                         FND_API.G_MISS_NUM, NULL,
1167                                                         X_Itc_Amount_Id),
1168            itc_amount                      =     decode(X_Itc_Amount,
1169                                                         NULL, itc_amount,
1170                                                         FND_API.G_MISS_NUM, NULL,
1171                                                         X_Itc_Amount),
1172            retirement_id                   =     decode(X_Retirement_Id,
1173                                                         NULL, retirement_id,
1174                                                         FND_API.G_MISS_NUM, NULL,
1175                                                         X_Retirement_Id),
1176            tax_request_id                  =     decode(X_Tax_Request_Id,
1177                                                         NULL, tax_request_id,
1178                                                         FND_API.G_MISS_NUM, NULL,
1179                                                         X_Tax_Request_Id),
1180            itc_basis                       =     decode(X_Itc_Basis,
1181                                                         NULL, itc_basis,
1182                                                         FND_API.G_MISS_NUM, NULL,
1183                                                         X_Itc_Basis),
1184            basic_rate                      =     decode(X_Basic_Rate,
1185                                                         NULL, basic_rate,
1186                                                         FND_API.G_MISS_NUM, NULL,
1187                                                         X_Basic_Rate),
1188            adjusted_rate                   =     decode(X_Adjusted_Rate,
1189                                                         NULL, adjusted_rate,
1190                                                         FND_API.G_MISS_NUM, NULL,
1191                                                         X_Adjusted_Rate),
1192            bonus_rule                      =     decode(X_Bonus_Rule,
1193                                                         NULL, bonus_rule,
1194                                                         FND_API.G_MISS_CHAR, NULL,
1195                                                         X_Bonus_Rule),
1196            ceiling_name                    =     decode(X_Ceiling_Name,
1197                                                         NULL, ceiling_name,
1198                                                         FND_API.G_MISS_CHAR, NULL,
1199                                                         X_Ceiling_Name),
1200            recoverable_cost                =     decode(X_Recoverable_Cost,
1201                                                         NULL, recoverable_cost,
1202                                                         FND_API.G_MISS_NUM, NULL,
1203                                                         X_Recoverable_Cost),
1204            last_update_login               =     decode(X_Last_Update_Login,
1205                                                         NULL, last_update_login,
1206                                                         FND_API.G_MISS_NUM, NULL,
1207                                                         X_Last_Update_Login),
1208            adjusted_capacity               =     decode(X_Adjusted_Capacity,
1209                                                         NULL, adjusted_capacity,
1210                                                         FND_API.G_MISS_NUM, NULL,
1211                                                         X_Adjusted_Capacity),
1212            fully_rsvd_revals_counter       =     decode(X_Fully_Rsvd_Revals_Counter,
1213                                                         NULL, fully_rsvd_revals_counter,
1214                                                         FND_API.G_MISS_NUM, NULL,
1215                                                         X_Fully_Rsvd_Revals_Counter),
1216            idled_flag                      =     decode(X_Idled_Flag,
1217                                                         NULL, idled_flag,
1218                                                         FND_API.G_MISS_CHAR, NULL,
1219                                                         X_Idled_Flag),
1220            period_counter_capitalized      =     decode(X_Period_Counter_Capitalized,
1221                                                         NULL, period_counter_capitalized,
1222                                                         FND_API.G_MISS_NUM, NULL,
1223                                                         X_Period_Counter_Capitalized),
1224            period_counter_fully_reserved   =     decode(X_PC_Fully_Reserved,
1225                                                         NULL, period_counter_fully_reserved,
1226                                                         FND_API.G_MISS_NUM, NULL,
1227                                                         X_PC_Fully_Reserved),
1228            period_counter_fully_retired    =     decode(X_Period_Counter_Fully_Retired,
1229                                                         NULL, period_counter_fully_retired,
1230                                                         FND_API.G_MISS_NUM, NULL,
1231                                                         X_Period_Counter_Fully_Retired),
1232            production_capacity             =     decode(X_Production_Capacity,
1233                                                         NULL, production_capacity,
1234                                                         FND_API.G_MISS_NUM, NULL,
1235                                                         X_Production_Capacity),
1236            reval_amortization_basis        =     decode(X_Reval_Amortization_Basis,
1237                                                         NULL, reval_amortization_basis,
1238                                                         FND_API.G_MISS_NUM, NULL,
1239                                                         X_Reval_Amortization_Basis),
1240            reval_ceiling                   =     decode(X_Reval_Ceiling,
1241                                                         NULL, reval_ceiling,
1242                                                         FND_API.G_MISS_NUM, NULL,
1243                                                         X_Reval_Ceiling),
1244            unit_of_measure                 =     decode(X_Unit_Of_Measure,
1245                                                         NULL, unit_of_measure,
1246                                                         FND_API.G_MISS_CHAR, NULL,
1247                                                         X_Unit_Of_Measure),
1248            unrevalued_cost                 =     decode(X_Unrevalued_Cost,
1249                                                         NULL, unrevalued_cost,
1250                                                         FND_API.G_MISS_NUM, NULL,
1251                                                         X_Unrevalued_Cost),
1252            annual_deprn_rounding_flag      =     decode(X_Annual_Deprn_Rounding_Flag,
1253                                                         NULL, annual_deprn_rounding_flag,
1254                                                         FND_API.G_MISS_CHAR, NULL,
1255                                                         X_Annual_Deprn_Rounding_Flag),
1256            percent_salvage_value           =     decode(X_Percent_Salvage_Value,
1257                                                         NULL, percent_salvage_value,
1258                                                         FND_API.G_MISS_NUM, NULL,
1259                                                         X_Percent_Salvage_Value),
1260            allowed_deprn_limit             =     decode(X_Allowed_Deprn_Limit,
1261                                                         NULL, allowed_deprn_limit,
1262                                                         FND_API.G_MISS_NUM, NULL,
1263                                                         X_Allowed_Deprn_Limit),
1264            allowed_deprn_limit_amount      =     decode(X_Allowed_Deprn_Limit_Amount,
1265                                                         NULL, allowed_deprn_limit_amount,
1266                                                         FND_API.G_MISS_NUM, NULL,
1267                                                         X_Allowed_Deprn_Limit_Amount),
1268            period_counter_life_complete    =     decode(X_Period_Counter_Life_Complete,
1269                                                         NULL, period_counter_life_complete,
1270                                                         FND_API.G_MISS_NUM, NULL,
1271                                                         X_Period_Counter_Life_Complete),
1272            adjusted_recoverable_cost       =     decode(X_Adjusted_Recoverable_Cost,
1273                                                         NULL, adjusted_recoverable_cost,
1274                                                         FND_API.G_MISS_NUM, NULL,
1275                                                         X_Adjusted_Recoverable_Cost),
1276            group_asset_id                  =     decode(X_group_asset_id,
1277                                                         NULL, group_asset_id,
1278                                                         FND_API.G_MISS_NUM, NULL,
1279                                                         X_group_asset_id),
1280            salvage_type                    =     decode(X_salvage_type,
1281                                                         NULL, salvage_type,
1282                                                         FND_API.G_MISS_CHAR, NULL,
1283                                                         X_salvage_type),
1284            deprn_limit_type                =     decode(X_deprn_limit_type ,
1285                                                         NULL, deprn_limit_type ,
1286                                                        FND_API.G_MISS_CHAR, NULL,
1287                                                         X_deprn_limit_type ),
1288            over_depreciate_option          =     decode(X_over_depreciate_option,
1289                                                         NULL, over_depreciate_option,
1290                                                         FND_API.G_MISS_CHAR, NULL,
1291                                                         X_over_depreciate_option),
1292            super_group_id                  =     decode(X_super_group_id,
1293                                                         NULL, super_group_id,
1294                                                         FND_API.G_MISS_NUM, NULL,
1295                                                         X_super_group_id),
1296            reduction_rate                  =     decode(X_reduction_rate,
1297                                                         NULL, reduction_rate,
1298                                                         FND_API.G_MISS_NUM, NULL,
1299                                                         X_reduction_rate),
1300            reduce_addition_flag            =     decode(X_reduce_addition_flag,
1301                                                         NULL, reduce_addition_flag,
1302                                                         FND_API.G_MISS_CHAR, NULL,
1303                                                         X_reduce_addition_flag),
1304            reduce_adjustment_flag          =     decode(X_reduce_adjustment_flag,
1305                                                         NULL, reduce_adjustment_flag,
1306                                                         FND_API.G_MISS_CHAR, NULL,
1307                                                         X_reduce_adjustment_flag),
1308            reduce_retirement_flag          =     decode(X_reduce_retirement_flag,
1309                                                         NULL, reduce_retirement_flag,
1310                                                         FND_API.G_MISS_CHAR, NULL,
1311                                                         X_reduce_retirement_flag),
1312            recognize_gain_loss             =     decode(X_recognize_gain_loss,
1313                                                         NULL, recognize_gain_loss,
1314                                                         FND_API.G_MISS_CHAR, NULL,
1315                                                         X_recognize_gain_loss),
1316            recapture_reserve_flag          =     decode(X_recapture_reserve_flag,
1317                                                         NULL, recapture_reserve_flag,
1318                                                         FND_API.G_MISS_CHAR, NULL,
1319                                                         X_recapture_reserve_flag),
1320            limit_proceeds_flag             =     decode(X_limit_proceeds_flag,
1321                                                         NULL, limit_proceeds_flag,
1322                                                         FND_API.G_MISS_CHAR, NULL,
1323                                                         X_limit_proceeds_flag),
1324            terminal_gain_loss              =     decode(X_terminal_gain_loss,
1325                                                         NULL, terminal_gain_loss,
1326                                                         FND_API.G_MISS_CHAR, NULL,
1327                                                         X_terminal_gain_loss),
1328            tracking_method                 =     decode(X_tracking_method,
1329                                                         NULL, tracking_method,
1330                                                         FND_API.G_MISS_CHAR, NULL,
1331                                                         X_tracking_method),
1332            allocate_to_fully_rsv_flag      =     decode(X_allocate_to_fully_rsv_flag,
1333                                                         NULL, allocate_to_fully_rsv_flag,
1334                                                         FND_API.G_MISS_CHAR, NULL,
1335                                                         X_allocate_to_fully_rsv_flag),
1336            allocate_to_fully_ret_flag      =     decode(X_allocate_to_fully_ret_flag,
1337                                                         NULL, allocate_to_fully_ret_flag,
1338                                                         FND_API.G_MISS_CHAR, NULL,
1339                                                         X_allocate_to_fully_ret_flag),
1340            exclude_fully_rsv_flag          =     decode(X_exclude_fully_rsv_flag,
1341                                                         NULL, exclude_fully_rsv_flag,
1342                                                         FND_API.G_MISS_CHAR, NULL,
1343                                                         X_exclude_fully_rsv_flag),
1344            excess_allocation_option        =     decode(X_excess_allocation_option,
1345                                                         NULL, excess_allocation_option,
1346                                                         FND_API.G_MISS_CHAR, NULL,
1347                                                         X_excess_allocation_option),
1348            depreciation_option             =     decode(X_depreciation_option,
1349                                                         NULL, depreciation_option,
1350                                                         FND_API.G_MISS_CHAR, NULL,
1351                                                         X_depreciation_option),
1352            member_rollup_flag              =     decode(X_member_rollup_flag,
1353                                                         NULL, member_rollup_flag,
1354                                                         FND_API.G_MISS_CHAR, NULL,
1355                                                         X_member_rollup_flag),
1356            ytd_proceeds                    =     decode(X_ytd_proceeds,
1357                                                         NULL, ytd_proceeds,
1358                                                         FND_API.G_MISS_NUM, NULL,
1359                                                         X_ytd_proceeds),
1360            ltd_proceeds                    =     decode(X_ltd_proceeds,
1361                                                         NULL, ltd_proceeds,
1362                                                         FND_API.G_MISS_NUM, NULL,
1363                                                         X_ltd_proceeds),
1364            eofy_reserve                    =     decode(X_eofy_reserve,
1365                                                         NULL, eofy_reserve,
1366                                                         FND_API.G_MISS_NUM, NULL,
1367                                                         X_eofy_reserve),
1368            cip_cost                        =     decode(X_cip_cost,
1369                                                         NULL, cip_cost,
1370                                                         FND_API.G_MISS_NUM, NULL,
1371                                                         X_cip_cost),
1372            terminal_gain_loss_amount       =     decode(X_terminal_gain_loss_amount,
1373                                                         NULL, terminal_gain_loss_amount,
1374                                                         FND_API.G_MISS_NUM, NULL,
1375                                                         X_terminal_gain_loss_amount),
1376            ltd_cost_of_removal             =     decode(X_ltd_cost_of_removal,
1377                                                         NULL, ltd_cost_of_removal,
1378                                                         FND_API.G_MISS_NUM, NULL,
1379                                                         X_ltd_cost_of_removal),
1380            exclude_proceeds_from_basis     =     decode(X_exclude_proceeds_from_basis,
1381                                                         NULL, exclude_proceeds_from_basis,
1382                                                         FND_API.G_MISS_CHAR, NULL,
1383                                                         X_exclude_proceeds_from_basis),
1384            retirement_deprn_option         =     decode(X_retirement_deprn_option,
1385                                                         NULL, retirement_deprn_option,
1386                                                         FND_API.G_MISS_CHAR, NULL,
1387                                                         X_retirement_deprn_option),
1388            terminal_gain_loss_flag         =     decode(X_terminal_gain_loss_flag,
1389                                                         NULL, terminal_gain_loss_flag,
1390                                                         FND_API.G_MISS_CHAR, NULL,
1391                                                         X_terminal_gain_loss_flag),
1392            cash_generating_unit_id         =     decode(X_Cash_Generating_Unit_Id,
1393                                                         NULL, cash_generating_unit_id,
1394                                                         FND_API.G_MISS_NUM, NULL,
1395                                                         X_Cash_Generating_Unit_Id),
1396            formula_factor                  =     decode(X_Formula_Factor,
1397                                                         NULL, formula_factor,
1398                                                         FND_API.G_MISS_NUM, NULL,
1399                                                         X_Formula_Factor)
1400            WHERE rowid = X_Rowid;
1401         else
1402            UPDATE fa_mc_books
1403            SET
1404            book_type_code                  =     decode(X_Book_Type_Code,
1405                                                         NULL, book_type_code,
1406                                                         FND_API.G_MISS_CHAR, NULL,
1407                                                         X_Book_Type_Code),
1408            asset_id                        =     decode(X_Asset_Id,
1409                                                         NULL, asset_id,
1410                                                         FND_API.G_MISS_NUM, NULL,
1411                                                         X_Asset_Id),
1412            date_placed_in_service          =     decode(X_Date_Placed_In_Service,
1413                                                         NULL, date_placed_in_service ,
1414                                                         X_Date_Placed_In_Service),
1415            date_effective                  =     decode(X_Date_Effective,
1416                                                         NULL, date_effective,
1417                                                         X_Date_Effective),
1418            deprn_start_date                =     decode(X_Deprn_Start_Date,
1419                                                         NULL, deprn_start_date,
1420                                                         X_Deprn_Start_Date),
1421            deprn_method_code               =     decode(X_Deprn_Method_Code,
1422                                                         NULL, deprn_method_code,
1423                                                         FND_API.G_MISS_CHAR, NULL,
1424                                                         X_Deprn_Method_Code),
1425            life_in_months                  =     decode(X_Life_In_Months,
1426                                                         NULL, life_in_months,
1427                                                         FND_API.G_MISS_NUM, NULL,
1428                                                         X_Life_In_Months),
1429            rate_adjustment_factor          =     decode(X_Rate_Adjustment_Factor,
1430                                                         NULL, rate_adjustment_factor,
1431                                                         FND_API.G_MISS_NUM, NULL,
1432                                                         X_Rate_Adjustment_Factor),
1433            adjusted_cost                   =     decode(X_Adjusted_Cost,
1434                                                         NULL, adjusted_cost,
1435                                                         FND_API.G_MISS_NUM, NULL,
1436                                                         X_Adjusted_Cost),
1437            cost                            =     decode(X_Cost,
1438                                                         NULL, cost,
1439                                                         FND_API.G_MISS_NUM, NULL,
1440                                                         X_Cost),
1441            original_cost                   =     decode(X_Original_Cost,
1442                                                         NULL, original_cost,
1443                                                         FND_API.G_MISS_NUM, NULL,
1444                                                         X_Original_Cost),
1445            salvage_value                   =     decode(X_Salvage_Value,
1446                                                         NULL, salvage_value,
1447                                                         FND_API.G_MISS_NUM, NULL,
1448                                                         X_Salvage_Value),
1449            prorate_convention_code         =     decode(X_Prorate_Convention_Code,
1450                                                         NULL, prorate_convention_code,
1451                                                         FND_API.G_MISS_CHAR, NULL,
1452                                                         X_Prorate_Convention_Code),
1453            prorate_date                    =     decode(X_Prorate_Date,
1454                                                         NULL, prorate_date,
1455                                                         X_Prorate_Date),
1456            cost_change_flag                =     decode(X_Cost_Change_Flag,
1457                                                         NULL, cost_change_flag,
1458                                                         FND_API.G_MISS_CHAR, NULL,
1459                                                         X_Cost_Change_Flag),
1460            adjustment_required_status      =     decode(X_Adjustment_Required_Status,
1461                                                         NULL, adjustment_required_status,
1462                                                         FND_API.G_MISS_CHAR, NULL,
1463                                                         X_Adjustment_Required_Status),
1464            capitalize_flag                 =     decode(X_Capitalize_Flag,
1465                                                         NULL, capitalize_flag,
1466                                                         FND_API.G_MISS_CHAR, NULL,
1467                                                         X_Capitalize_Flag),
1468            retirement_pending_flag         =     decode(X_Retirement_Pending_Flag,
1469                                                         NULL, retirement_pending_flag,
1470                                                         FND_API.G_MISS_CHAR, NULL,
1471                                                         X_Retirement_Pending_Flag),
1472            depreciate_flag                 =     decode(X_Depreciate_Flag,
1473                                                         NULL, depreciate_flag,
1474                                                         FND_API.G_MISS_CHAR, NULL,
1475                                                         X_Depreciate_Flag),
1476            --HH group ed.
1477            disabled_flag                   =     decode(X_Disabled_Flag,
1478                                                         NULL, disabled_flag,
1479                                                         FND_API.G_MISS_CHAR, NULL,
1480                                                         X_Disabled_Flag),
1481            last_update_date                =     decode(X_Last_Update_Date,
1482                                                         NULL, last_update_date,
1483                                                         X_Last_Update_Date),
1484            last_updated_by                 =     decode(X_Last_Updated_By,
1485                                                         NULL, last_updated_by,
1486                                                         FND_API.G_MISS_NUM, NULL,
1487                                                         X_Last_Updated_By),
1488            date_ineffective                =     decode(X_Date_Ineffective,
1489                                                         NULL, date_ineffective,
1490                                                         X_Date_Ineffective),
1491            transaction_header_id_in        =     decode(X_Transaction_Header_Id_In,
1492                                                         NULL, transaction_header_id_in,
1493                                                         FND_API.G_MISS_NUM, NULL,
1494                                                         X_Transaction_Header_Id_In),
1495            transaction_header_id_out       =     decode(X_Transaction_Header_Id_Out,
1496                                                         NULL, transaction_header_id_out,
1497                                                         FND_API.G_MISS_NUM, NULL,
1498                                                         X_Transaction_Header_Id_Out),
1499            itc_amount_id                   =     decode(X_Itc_Amount_Id,
1500                                                         NULL, itc_amount_id,
1501                                                         FND_API.G_MISS_NUM, NULL,
1502                                                         X_Itc_Amount_Id),
1503            itc_amount                      =     decode(X_Itc_Amount,
1504                                                         NULL, itc_amount,
1505                                                         FND_API.G_MISS_NUM, NULL,
1506                                                         X_Itc_Amount),
1507            retirement_id                   =     decode(X_Retirement_Id,
1508                                                         NULL, retirement_id,
1509                                                         FND_API.G_MISS_NUM, NULL,
1510                                                         X_Retirement_Id),
1511            tax_request_id                  =     decode(X_Tax_Request_Id,
1512                                                         NULL, tax_request_id,
1513                                                         FND_API.G_MISS_NUM, NULL,
1514                                                         X_Tax_Request_Id),
1515            itc_basis                       =     decode(X_Itc_Basis,
1516                                                         NULL, itc_basis,
1517                                                         FND_API.G_MISS_NUM, NULL,
1518                                                         X_Itc_Basis),
1519            basic_rate                      =     decode(X_Basic_Rate,
1520                                                         NULL, basic_rate,
1521                                                         FND_API.G_MISS_NUM, NULL,
1522                                                         X_Basic_Rate),
1523            adjusted_rate                   =     decode(X_Adjusted_Rate,
1524                                                         NULL, adjusted_rate,
1525                                                         FND_API.G_MISS_NUM, NULL,
1526                                                         X_Adjusted_Rate),
1527            bonus_rule                      =     decode(X_Bonus_Rule,
1528                                                         NULL, bonus_rule,
1529                                                         FND_API.G_MISS_CHAR, NULL,
1530                                                         X_Bonus_Rule),
1531            ceiling_name                    =     decode(X_Ceiling_Name,
1532                                                         NULL, ceiling_name,
1533                                                         FND_API.G_MISS_CHAR, NULL,
1534                                                         X_Ceiling_Name),
1535            recoverable_cost                =     decode(X_Recoverable_Cost,
1536                                                         NULL, recoverable_cost,
1537                                                         FND_API.G_MISS_NUM, NULL,
1538                                                         X_Recoverable_Cost),
1539            last_update_login               =     decode(X_Last_Update_Login,
1540                                                         NULL, last_update_login,
1541                                                         FND_API.G_MISS_NUM, NULL,
1542                                                         X_Last_Update_Login),
1543            adjusted_capacity               =     decode(X_Adjusted_Capacity,
1544                                                         NULL, adjusted_capacity,
1545                                                         FND_API.G_MISS_NUM, NULL,
1546                                                         X_Adjusted_Capacity),
1547            fully_rsvd_revals_counter       =     decode(X_Fully_Rsvd_Revals_Counter,
1548                                                         NULL, fully_rsvd_revals_counter,
1549                                                         FND_API.G_MISS_NUM, NULL,
1550                                                         X_Fully_Rsvd_Revals_Counter),
1551            idled_flag                      =     decode(X_Idled_Flag,
1552                                                         NULL, idled_flag,
1553                                                         FND_API.G_MISS_CHAR, NULL,
1554                                                         X_Idled_Flag),
1555            period_counter_capitalized      =     decode(X_Period_Counter_Capitalized,
1556                                                         NULL, period_counter_capitalized,
1557                                                         FND_API.G_MISS_NUM, NULL,
1558                                                         X_Period_Counter_Capitalized),
1559            period_counter_fully_reserved   =     decode(X_PC_Fully_Reserved,
1560                                                         NULL, period_counter_fully_reserved,
1561                                                         FND_API.G_MISS_NUM, NULL,
1562                                                         X_PC_Fully_Reserved),
1563            period_counter_fully_retired    =     decode(X_Period_Counter_Fully_Retired,
1564                                                         NULL, period_counter_fully_retired,
1565                                                         FND_API.G_MISS_NUM, NULL,
1566                                                         X_Period_Counter_Fully_Retired),
1567            production_capacity             =     decode(X_Production_Capacity,
1568                                                         NULL, production_capacity,
1569                                                         FND_API.G_MISS_NUM, NULL,
1570                                                         X_Production_Capacity),
1571            reval_amortization_basis        =     decode(X_Reval_Amortization_Basis,
1572                                                         NULL, reval_amortization_basis,
1573                                                         FND_API.G_MISS_NUM, NULL,
1574                                                         X_Reval_Amortization_Basis),
1575            reval_ceiling                   =     decode(X_Reval_Ceiling,
1576                                                         NULL, reval_ceiling,
1577                                                         FND_API.G_MISS_NUM, NULL,
1578                                                         X_Reval_Ceiling),
1579            unit_of_measure                 =     decode(X_Unit_Of_Measure,
1580                                                         NULL, unit_of_measure,
1581                                                         FND_API.G_MISS_CHAR, NULL,
1582                                                         X_Unit_Of_Measure),
1583            unrevalued_cost                 =     decode(X_Unrevalued_Cost,
1584                                                         NULL, unrevalued_cost,
1585                                                         FND_API.G_MISS_NUM, NULL,
1586                                                         X_Unrevalued_Cost),
1587            annual_deprn_rounding_flag      =     decode(X_Annual_Deprn_Rounding_Flag,
1588                                                         NULL, annual_deprn_rounding_flag,
1589                                                         FND_API.G_MISS_CHAR, NULL,
1590                                                         X_Annual_Deprn_Rounding_Flag),
1591            percent_salvage_value           =     decode(X_Percent_Salvage_Value,
1592                                                         NULL, percent_salvage_value,
1593                                                         FND_API.G_MISS_NUM, NULL,
1594                                                         X_Percent_Salvage_Value),
1595            allowed_deprn_limit             =     decode(X_Allowed_Deprn_Limit,
1596                                                         NULL, allowed_deprn_limit,
1597                                                         FND_API.G_MISS_NUM, NULL,
1598                                                         X_Allowed_Deprn_Limit),
1599            allowed_deprn_limit_amount      =     decode(X_Allowed_Deprn_Limit_Amount,
1600                                                         NULL, allowed_deprn_limit_amount,
1601                                                         FND_API.G_MISS_NUM, NULL,
1602                                                         X_Allowed_Deprn_Limit_Amount),
1603            period_counter_life_complete    =     decode(X_Period_Counter_Life_Complete,
1604                                                         NULL, period_counter_life_complete,
1605                                                         FND_API.G_MISS_NUM, NULL,
1606                                                         X_Period_Counter_Life_Complete),
1607            adjusted_recoverable_cost       =     decode(X_Adjusted_Recoverable_Cost,
1608                                                         NULL, adjusted_recoverable_cost,
1609                                                         FND_API.G_MISS_NUM, NULL,
1610                                                         X_Adjusted_Recoverable_Cost),
1611            group_asset_id                  =     decode(X_group_asset_id,
1612                                                         NULL, group_asset_id,
1613                                                         FND_API.G_MISS_NUM, NULL,
1614                                                         X_group_asset_id),
1615            salvage_type                    =     decode(X_salvage_type,
1616                                                         NULL, salvage_type,
1617                                                         FND_API.G_MISS_CHAR, NULL,
1618                                                         X_salvage_type),
1619            deprn_limit_type                =     decode(X_deprn_limit_type ,
1620                                                         NULL, deprn_limit_type ,
1621                                                        FND_API.G_MISS_CHAR, NULL,
1622                                                         X_deprn_limit_type ),
1623            over_depreciate_option          =     decode(X_over_depreciate_option,
1624                                                         NULL, over_depreciate_option,
1625                                                         FND_API.G_MISS_CHAR, NULL,
1626                                                         X_over_depreciate_option),
1627            super_group_id                  =     decode(X_super_group_id,
1628                                                         NULL, super_group_id,
1629                                                         FND_API.G_MISS_NUM, NULL,
1630                                                         X_super_group_id),
1631            reduction_rate                  =     decode(X_reduction_rate,
1632                                                         NULL, reduction_rate,
1633                                                         FND_API.G_MISS_NUM, NULL,
1634                                                         X_reduction_rate),
1635            reduce_addition_flag            =     decode(X_reduce_addition_flag,
1636                                                         NULL, reduce_addition_flag,
1637                                                         FND_API.G_MISS_CHAR, NULL,
1638                                                         X_reduce_addition_flag),
1639            reduce_adjustment_flag          =     decode(X_reduce_adjustment_flag,
1640                                                         NULL, reduce_adjustment_flag,
1641                                                         FND_API.G_MISS_CHAR, NULL,
1642                                                         X_reduce_adjustment_flag),
1643            reduce_retirement_flag          =     decode(X_reduce_retirement_flag,
1644                                                         NULL, reduce_retirement_flag,
1645                                                         FND_API.G_MISS_CHAR, NULL,
1646                                                         X_reduce_retirement_flag),
1647            recognize_gain_loss             =    decode(X_recognize_gain_loss,
1648                                                         NULL, recognize_gain_loss,
1649                                                         FND_API.G_MISS_CHAR, NULL,
1650                                                         X_recognize_gain_loss),
1651            recapture_reserve_flag          =    decode(X_recapture_reserve_flag,
1652                                                         NULL, recapture_reserve_flag,
1653                                                         FND_API.G_MISS_CHAR, NULL,
1654                                                         X_recapture_reserve_flag),
1655            limit_proceeds_flag             =    decode(X_limit_proceeds_flag,
1656                                                         NULL, limit_proceeds_flag,
1657                                                         FND_API.G_MISS_CHAR, NULL,
1658                                                         X_limit_proceeds_flag),
1659            terminal_gain_loss              =    decode(X_terminal_gain_loss,
1660                                                         NULL, terminal_gain_loss,
1661                                                         FND_API.G_MISS_CHAR, NULL,
1662                                                         X_terminal_gain_loss),
1663            tracking_method                 =    decode(X_tracking_method,
1664                                                         NULL, tracking_method,
1665                                                         FND_API.G_MISS_CHAR, NULL,
1666                                                         X_tracking_method),
1667            allocate_to_fully_rsv_flag      =     decode(X_allocate_to_fully_rsv_flag,
1668                                                         NULL, allocate_to_fully_rsv_flag,
1669                                                         FND_API.G_MISS_CHAR, NULL,
1670                                                         X_allocate_to_fully_rsv_flag),
1671            allocate_to_fully_ret_flag      =     decode(X_allocate_to_fully_ret_flag,
1672                                                         NULL, allocate_to_fully_ret_flag,
1673                                                         FND_API.G_MISS_CHAR, NULL,
1674                                                         X_allocate_to_fully_ret_flag),
1675            exclude_fully_rsv_flag          =    decode(X_exclude_fully_rsv_flag,
1676                                                         NULL, exclude_fully_rsv_flag,
1677                                                         FND_API.G_MISS_CHAR, NULL,
1678                                                         X_exclude_fully_rsv_flag),
1679            excess_allocation_option        =    decode(X_excess_allocation_option,
1680                                                         NULL, excess_allocation_option,
1681                                                         FND_API.G_MISS_CHAR, NULL,
1682                                                         X_excess_allocation_option),
1683            depreciation_option             =    decode(X_depreciation_option,
1684                                                         NULL, depreciation_option,
1685                                                         FND_API.G_MISS_CHAR, NULL,
1686                                                         X_depreciation_option),
1687            member_rollup_flag              =    decode(X_member_rollup_flag,
1688                                                         NULL, member_rollup_flag,
1689                                                         FND_API.G_MISS_CHAR, NULL,
1690                                                         X_member_rollup_flag),
1691            ytd_proceeds                    =    decode(X_ytd_proceeds,
1692                                                         NULL, ytd_proceeds,
1693                                                         FND_API.G_MISS_NUM, NULL,
1694                                                         X_ytd_proceeds),
1695            ltd_proceeds                    =    decode(X_ltd_proceeds,
1696                                                         NULL, ltd_proceeds,
1697                                                         FND_API.G_MISS_NUM, NULL,
1698                                                         X_ltd_proceeds),
1699            eofy_reserve                    =     decode(X_eofy_reserve,
1700                                                         NULL, eofy_reserve,
1701                                                         FND_API.G_MISS_NUM, NULL,
1702                                                         X_eofy_reserve),
1703            cip_cost                        =     decode(X_cip_cost,
1704                                                         NULL, cip_cost,
1705                                                         FND_API.G_MISS_NUM, NULL,
1706                                                         X_cip_cost),
1707            terminal_gain_loss_amount       =     decode(X_terminal_gain_loss_amount,
1708                                                         NULL, terminal_gain_loss_amount,
1709                                                         FND_API.G_MISS_NUM, NULL,
1710                                                         X_terminal_gain_loss_amount),
1711            ltd_cost_of_removal             =     decode(X_ltd_cost_of_removal,
1712                                                         NULL, ltd_cost_of_removal,
1713                                                         FND_API.G_MISS_NUM, NULL,
1714                                                         X_ltd_cost_of_removal),
1715            exclude_proceeds_from_basis     =     decode(X_exclude_proceeds_from_basis,
1716                                                         NULL, exclude_proceeds_from_basis,
1717                                                         FND_API.G_MISS_CHAR, NULL,
1718                                                         X_exclude_proceeds_from_basis),
1719            retirement_deprn_option         =     decode(X_retirement_deprn_option,
1720                                                         NULL, retirement_deprn_option,
1721                                                         FND_API.G_MISS_CHAR, NULL,
1722                                                         X_retirement_deprn_option),
1723            terminal_gain_loss_flag         =     decode(X_terminal_gain_loss_flag,
1724                                                         NULL, terminal_gain_loss_flag,
1725                                                         FND_API.G_MISS_CHAR, NULL,
1726                                                         X_terminal_gain_loss_flag),
1727            cash_generating_unit_id         =     decode(X_Cash_Generating_Unit_Id,
1728                                                         NULL, cash_generating_unit_id,
1729                                                         FND_API.G_MISS_NUM, NULL,
1730                                                         X_Cash_Generating_Unit_Id),
1731            formula_factor                  =     decode(X_Formula_Factor,
1732                                                         NULL, formula_factor,
1733                                                         FND_API.G_MISS_NUM, NULL,
1734                                                         X_Formula_Factor)
1735            WHERE asset_id = X_Asset_Id
1736            AND book_type_code = X_Book_Type_Code
1737            AND transaction_header_id_out is null
1738            AND set_of_books_id = X_set_of_books_id;
1739         end if;
1740      else
1741        if X_Rowid is not null then
1742            UPDATE fa_books
1743            SET
1744            book_type_code                  =     decode(X_Book_Type_Code,
1745                                                         NULL, book_type_code,
1746                                                         FND_API.G_MISS_CHAR, NULL,
1747                                                         X_Book_Type_Code),
1748            asset_id                        =     decode(X_Asset_Id,
1749                                                         NULL, asset_id,
1750                                                         FND_API.G_MISS_NUM, NULL,
1751                                                         X_Asset_Id),
1752            date_placed_in_service          =     decode(X_Date_Placed_In_Service,
1753                                                         NULL, date_placed_in_service ,
1754                                                         X_Date_Placed_In_Service),
1755            date_effective                  =     decode(X_Date_Effective,
1756                                                         NULL, date_effective,
1757                                                         X_Date_Effective),
1758            deprn_start_date                =     decode(X_Deprn_Start_Date,
1759                                                         NULL, deprn_start_date,
1760                                                         X_Deprn_Start_Date),
1761            deprn_method_code               =     decode(X_Deprn_Method_Code,
1762                                                         NULL, deprn_method_code,
1763                                                         FND_API.G_MISS_CHAR, NULL,
1764                                                         X_Deprn_Method_Code),
1765            life_in_months                  =     decode(X_Life_In_Months,
1766                                                         NULL, life_in_months,
1767                                                         FND_API.G_MISS_NUM, NULL,
1768                                                         X_Life_In_Months),
1769            rate_adjustment_factor          =     decode(X_Rate_Adjustment_Factor,
1770                                                         NULL, rate_adjustment_factor,
1771                                                         FND_API.G_MISS_NUM, NULL,
1772                                                         X_Rate_Adjustment_Factor),
1773            adjusted_cost                   =     decode(X_Adjusted_Cost,
1774                                                         NULL, adjusted_cost,
1775                                                         FND_API.G_MISS_NUM, NULL,
1776                                                         X_Adjusted_Cost),
1777            cost                            =     decode(X_Cost,
1778                                                         NULL, cost,
1779                                                         FND_API.G_MISS_NUM, NULL,
1780                                                         X_Cost),
1781            original_cost                   =     decode(X_Original_Cost,
1782                                                         NULL, original_cost,
1783                                                         FND_API.G_MISS_NUM, NULL,
1784                                                         X_Original_Cost),
1785            salvage_value                   =     decode(X_Salvage_Value,
1786                                                         NULL, salvage_value,
1787                                                         FND_API.G_MISS_NUM, NULL,
1788                                                         X_Salvage_Value),
1789            prorate_convention_code         =     decode(X_Prorate_Convention_Code,
1790                                                         NULL, prorate_convention_code,
1791                                                         FND_API.G_MISS_CHAR, NULL,
1792                                                         X_Prorate_Convention_Code),
1793            prorate_date                    =     decode(X_Prorate_Date,
1794                                                         NULL, prorate_date,
1795                                                         X_Prorate_Date),
1796            cost_change_flag                =     decode(X_Cost_Change_Flag,
1797                                                         NULL, cost_change_flag,
1798                                                         FND_API.G_MISS_CHAR, NULL,
1799                                                         X_Cost_Change_Flag),
1800            adjustment_required_status      =     decode(X_Adjustment_Required_Status,
1801                                                         NULL, adjustment_required_status,
1802                                                         FND_API.G_MISS_CHAR, NULL,
1803                                                         X_Adjustment_Required_Status),
1804            capitalize_flag                 =     decode(X_Capitalize_Flag,
1805                                                         NULL, capitalize_flag,
1806                                                         FND_API.G_MISS_CHAR, NULL,
1807                                                         X_Capitalize_Flag),
1808            retirement_pending_flag         =     decode(X_Retirement_Pending_Flag,
1809                                                         NULL, retirement_pending_flag,
1810                                                         FND_API.G_MISS_CHAR, NULL,
1811                                                         X_Retirement_Pending_Flag),
1812            depreciate_flag                 =     decode(X_Depreciate_Flag,
1813                                                         NULL, depreciate_flag,
1814                                                         FND_API.G_MISS_CHAR, NULL,
1815                                                         X_Depreciate_Flag),
1816            --HH group ed.
1817            disabled_flag                   =     decode(X_Disabled_Flag,
1818                                                         NULL, disabled_flag,
1819                                                         FND_API.G_MISS_CHAR, NULL,
1820                                                         X_Disabled_Flag),
1821            last_update_date                =     decode(X_Last_Update_Date,
1822                                                         NULL, last_update_date,
1823                                                         X_Last_Update_Date),
1824            last_updated_by                 =     decode(X_Last_Updated_By,
1825                                                         NULL, last_updated_by,
1826                                                         FND_API.G_MISS_NUM, NULL,
1827                                                         X_Last_Updated_By),
1828            date_ineffective                =     decode(X_Date_Ineffective,
1829                                                         NULL, date_ineffective,
1830                                                         X_Date_Ineffective),
1831            transaction_header_id_in        =     decode(X_Transaction_Header_Id_In,
1832                                                         NULL, transaction_header_id_in,
1833                                                         FND_API.G_MISS_NUM, NULL,
1834                                                         X_Transaction_Header_Id_In),
1835            transaction_header_id_out       =     decode(X_Transaction_Header_Id_Out,
1836                                                         NULL, transaction_header_id_out,
1837                                                         FND_API.G_MISS_NUM, NULL,
1838                                                         X_Transaction_Header_Id_Out),
1839            itc_amount_id                   =     decode(X_Itc_Amount_Id,
1840                                                         NULL, itc_amount_id,
1841                                                         FND_API.G_MISS_NUM, NULL,
1842                                                         X_Itc_Amount_Id),
1843            itc_amount                      =     decode(X_Itc_Amount,
1844                                                         NULL, itc_amount,
1845                                                         FND_API.G_MISS_NUM, NULL,
1846                                                         X_Itc_Amount),
1847            retirement_id                   =     decode(X_Retirement_Id,
1848                                                         NULL, retirement_id,
1849                                                         FND_API.G_MISS_NUM, NULL,
1850                                                         X_Retirement_Id),
1851            tax_request_id                  =     decode(X_Tax_Request_Id,
1852                                                         NULL, tax_request_id,
1853                                                         FND_API.G_MISS_NUM, NULL,
1854                                                         X_Tax_Request_Id),
1855            itc_basis                       =     decode(X_Itc_Basis,
1856                                                         NULL, itc_basis,
1857                                                         FND_API.G_MISS_NUM, NULL,
1858                                                         X_Itc_Basis),
1859            basic_rate                      =     decode(X_Basic_Rate,
1860                                                         NULL, basic_rate,
1861                                                         FND_API.G_MISS_NUM, NULL,
1862                                                         X_Basic_Rate),
1863            adjusted_rate                   =     decode(X_Adjusted_Rate,
1864                                                         NULL, adjusted_rate,
1865                                                         FND_API.G_MISS_NUM, NULL,
1866                                                         X_Adjusted_Rate),
1867            bonus_rule                      =     decode(X_Bonus_Rule,
1868                                                         NULL, bonus_rule,
1869                                                         FND_API.G_MISS_CHAR, NULL,
1870                                                         X_Bonus_Rule),
1871            ceiling_name                    =     decode(X_Ceiling_Name,
1872                                                         NULL, ceiling_name,
1873                                                         FND_API.G_MISS_CHAR, NULL,
1874                                                         X_Ceiling_Name),
1875            recoverable_cost                =     decode(X_Recoverable_Cost,
1876                                                         NULL, recoverable_cost,
1877                                                         FND_API.G_MISS_NUM, NULL,
1878                                                         X_Recoverable_Cost),
1879            last_update_login               =     decode(X_Last_Update_Login,
1880                                                         NULL, last_update_login,
1881                                                         FND_API.G_MISS_NUM, NULL,
1882                                                         X_Last_Update_Login),
1883            adjusted_capacity               =     decode(X_Adjusted_Capacity,
1884                                                         NULL, adjusted_capacity,
1885                                                         FND_API.G_MISS_NUM, NULL,
1886                                                         X_Adjusted_Capacity),
1887            fully_rsvd_revals_counter       =     decode(X_Fully_Rsvd_Revals_Counter,
1888                                                         NULL, fully_rsvd_revals_counter,
1889                                                         FND_API.G_MISS_NUM, NULL,
1890                                                         X_Fully_Rsvd_Revals_Counter),
1891            idled_flag                      =     decode(X_Idled_Flag,
1892                                                         NULL, idled_flag,
1893                                                         FND_API.G_MISS_CHAR, NULL,
1894                                                         X_Idled_Flag),
1895            period_counter_capitalized      =     decode(X_Period_Counter_Capitalized,
1896                                                         NULL, period_counter_capitalized,
1897                                                         FND_API.G_MISS_NUM, NULL,
1898                                                         X_Period_Counter_Capitalized),
1899            period_counter_fully_reserved   =     decode(X_PC_Fully_Reserved,
1900                                                         NULL, period_counter_fully_reserved,
1901                                                         FND_API.G_MISS_NUM, NULL,
1902                                                         X_PC_Fully_Reserved),
1903            period_counter_fully_retired    =     decode(X_Period_Counter_Fully_Retired,
1904                                                         NULL, period_counter_fully_retired,
1905                                                         FND_API.G_MISS_NUM, NULL,
1906                                                         X_Period_Counter_Fully_Retired),
1907            production_capacity             =     decode(X_Production_Capacity,
1908                                                         NULL, production_capacity,
1909                                                         FND_API.G_MISS_NUM, NULL,
1910                                                         X_Production_Capacity),
1911            reval_amortization_basis        =     decode(X_Reval_Amortization_Basis,
1912                                                         NULL, reval_amortization_basis,
1913                                                         FND_API.G_MISS_NUM, NULL,
1914                                                         X_Reval_Amortization_Basis),
1915            reval_ceiling                   =     decode(X_Reval_Ceiling,
1916                                                         NULL, reval_ceiling,
1917                                                         FND_API.G_MISS_NUM, NULL,
1918                                                         X_Reval_Ceiling),
1919            unit_of_measure                 =     decode(X_Unit_Of_Measure,
1920                                                         NULL, unit_of_measure,
1921                                                         FND_API.G_MISS_CHAR, NULL,
1922                                                         X_Unit_Of_Measure),
1923            unrevalued_cost                 =     decode(X_Unrevalued_Cost,
1924                                                         NULL, unrevalued_cost,
1925                                                         FND_API.G_MISS_NUM, NULL,
1926                                                         X_Unrevalued_Cost),
1927            annual_deprn_rounding_flag      =     decode(X_Annual_Deprn_Rounding_Flag,
1928                                                         NULL, annual_deprn_rounding_flag,
1929                                                         FND_API.G_MISS_CHAR, NULL,
1930                                                         X_Annual_Deprn_Rounding_Flag),
1931            percent_salvage_value           =     decode(X_Percent_Salvage_Value,
1932                                                         NULL, percent_salvage_value,
1933                                                         FND_API.G_MISS_NUM, NULL,
1934                                                         X_Percent_Salvage_Value),
1935            allowed_deprn_limit             =     decode(X_Allowed_Deprn_Limit,
1936                                                         NULL, allowed_deprn_limit,
1937                                                         FND_API.G_MISS_NUM, NULL,
1938                                                         X_Allowed_Deprn_Limit),
1939            allowed_deprn_limit_amount      =     decode(X_Allowed_Deprn_Limit_Amount,
1940                                                         NULL, allowed_deprn_limit_amount,
1941                                                         FND_API.G_MISS_NUM, NULL,
1942                                                         X_Allowed_Deprn_Limit_Amount),
1943            period_counter_life_complete    =     decode(X_Period_Counter_Life_Complete,
1944                                                         NULL, period_counter_life_complete,
1945                                                         FND_API.G_MISS_NUM, NULL,
1946                                                         X_Period_Counter_Life_Complete),
1947            adjusted_recoverable_cost       =     decode(X_Adjusted_Recoverable_Cost,
1948                                                         NULL, adjusted_recoverable_cost,
1949                                                         FND_API.G_MISS_NUM, NULL,
1950                                                         X_Adjusted_Recoverable_Cost),
1951            group_asset_id                  =     decode(X_group_asset_id,
1952                                                         NULL, group_asset_id,
1953                                                         FND_API.G_MISS_NUM, NULL,
1954                                                         X_group_asset_id),
1955            salvage_type                    =     decode(X_salvage_type,
1956                                                         NULL, salvage_type,
1957                                                         FND_API.G_MISS_CHAR, NULL,
1958                                                         X_salvage_type),
1959            deprn_limit_type                =     decode(X_deprn_limit_type ,
1960                                                         NULL, deprn_limit_type ,
1961                                                        FND_API.G_MISS_CHAR, NULL,
1962                                                         X_deprn_limit_type ),
1963            over_depreciate_option          =     decode(X_over_depreciate_option,
1964                                                         NULL, over_depreciate_option,
1965                                                         FND_API.G_MISS_CHAR, NULL,
1966                                                         X_over_depreciate_option),
1967            super_group_id                  =     decode(X_super_group_id,
1968                                                         NULL, super_group_id,
1969                                                         FND_API.G_MISS_NUM, NULL,
1970                                                         X_super_group_id),
1971            reduction_rate                  =     decode(X_reduction_rate,
1972                                                         NULL, reduction_rate,
1973                                                         FND_API.G_MISS_NUM, NULL,
1974                                                         X_reduction_rate),
1975            reduce_addition_flag            =     decode(X_reduce_addition_flag,
1976                                                         NULL, reduce_addition_flag,
1977                                                         FND_API.G_MISS_CHAR, NULL,
1978                                                         X_reduce_addition_flag),
1979            reduce_adjustment_flag          =     decode(X_reduce_adjustment_flag,
1980                                                         NULL, reduce_adjustment_flag,
1981                                                         FND_API.G_MISS_CHAR, NULL,
1982                                                         X_reduce_adjustment_flag),
1983            reduce_retirement_flag          =     decode(X_reduce_retirement_flag,
1984                                                         NULL, reduce_retirement_flag,
1985                                                         FND_API.G_MISS_CHAR, NULL,
1986                                                         X_reduce_retirement_flag),
1987            recognize_gain_loss             =    decode(X_recognize_gain_loss,
1988                                                         NULL, recognize_gain_loss,
1989                                                         FND_API.G_MISS_CHAR, NULL,
1990                                                         X_recognize_gain_loss),
1991            recapture_reserve_flag          =    decode(X_recapture_reserve_flag,
1992                                                         NULL, recapture_reserve_flag,
1993                                                         FND_API.G_MISS_CHAR, NULL,
1994                                                         X_recapture_reserve_flag),
1995            limit_proceeds_flag             =    decode(X_limit_proceeds_flag,
1996                                                         NULL, limit_proceeds_flag,
1997                                                         FND_API.G_MISS_CHAR, NULL,
1998                                                         X_limit_proceeds_flag),
1999            terminal_gain_loss              =    decode(X_terminal_gain_loss,
2000                                                         NULL, terminal_gain_loss,
2001                                                         FND_API.G_MISS_CHAR, NULL,
2002                                                         X_terminal_gain_loss),
2003            tracking_method                 =    decode(X_tracking_method,
2004                                                         NULL, tracking_method,
2005                                                         FND_API.G_MISS_CHAR, NULL,
2006                                                         X_tracking_method),
2007            allocate_to_fully_rsv_flag      =     decode(X_allocate_to_fully_rsv_flag,
2008                                                         NULL, allocate_to_fully_rsv_flag,
2009                                                         FND_API.G_MISS_CHAR, NULL,
2010                                                         X_allocate_to_fully_rsv_flag),
2011            allocate_to_fully_ret_flag      =     decode(X_allocate_to_fully_ret_flag,
2012                                                         NULL, allocate_to_fully_ret_flag,
2013                                                         FND_API.G_MISS_CHAR, NULL,
2014                                                         X_allocate_to_fully_ret_flag),
2015            exclude_fully_rsv_flag          =    decode(X_exclude_fully_rsv_flag,
2016                                                         NULL, exclude_fully_rsv_flag,
2017                                                         FND_API.G_MISS_CHAR, NULL,
2018                                                         X_exclude_fully_rsv_flag),
2019            excess_allocation_option        =    decode(X_excess_allocation_option,
2020                                                         NULL, excess_allocation_option,
2021                                                         FND_API.G_MISS_CHAR, NULL,
2022                                                         X_excess_allocation_option),
2023            depreciation_option             =    decode(X_depreciation_option,
2024                                                         NULL, depreciation_option,
2025                                                         FND_API.G_MISS_CHAR, NULL,
2026                                                         X_depreciation_option),
2027            member_rollup_flag              =    decode(X_member_rollup_flag,
2028                                                         NULL, member_rollup_flag,
2029                                                         FND_API.G_MISS_CHAR, NULL,
2030                                                         X_member_rollup_flag),
2031            ytd_proceeds                    =    decode(X_ytd_proceeds,
2032                                                         NULL, ytd_proceeds,
2033                                                         FND_API.G_MISS_NUM, NULL,
2034                                                         X_ytd_proceeds),
2035            ltd_proceeds                    =    decode(X_ltd_proceeds,
2036                                                         NULL, ltd_proceeds,
2037                                                         FND_API.G_MISS_NUM, NULL,
2038                                                         X_ltd_proceeds),
2039            eofy_reserve                    =     decode(X_eofy_reserve,
2040                                                         NULL, eofy_reserve,
2041                                                         FND_API.G_MISS_NUM, NULL,
2042                                                         X_eofy_reserve),
2043            cip_cost                        =     decode(X_cip_cost,
2044                                                         NULL, cip_cost,
2045                                                         FND_API.G_MISS_NUM, NULL,
2046                                                         X_cip_cost),
2047            terminal_gain_loss_amount       =     decode(X_terminal_gain_loss_amount,
2048                                                         NULL, terminal_gain_loss_amount,
2049                                                         FND_API.G_MISS_NUM, NULL,
2050                                                         X_terminal_gain_loss_amount),
2051            ltd_cost_of_removal             =     decode(X_ltd_cost_of_removal,
2052                                                         NULL, ltd_cost_of_removal,
2053                                                         FND_API.G_MISS_NUM, NULL,
2054                                                         X_ltd_cost_of_removal),
2055            exclude_proceeds_from_basis     =     decode(X_exclude_proceeds_from_basis,
2056                                                         NULL, exclude_proceeds_from_basis,
2057                                                         FND_API.G_MISS_CHAR, NULL,
2058                                                         X_exclude_proceeds_from_basis),
2059            retirement_deprn_option         =     decode(X_retirement_deprn_option,
2060                                                         NULL, retirement_deprn_option,
2061                                                         FND_API.G_MISS_CHAR, NULL,
2062                                                         X_retirement_deprn_option),
2063            cash_generating_unit_id         =     decode(X_Cash_Generating_Unit_Id,
2064                                                         NULL, cash_generating_unit_id,
2065                                                         FND_API.G_MISS_NUM, NULL,
2066                                                         X_Cash_Generating_Unit_Id),
2067            terminal_gain_loss_flag         =     decode(X_terminal_gain_loss_flag,
2068                                                         NULL, terminal_gain_loss_flag,
2069                                                         FND_API.G_MISS_NUM, NULL,
2070                                                         X_terminal_gain_loss_flag)
2071            WHERE rowid = X_Rowid;
2072         else
2073            UPDATE fa_books
2074            SET
2075            book_type_code                  =     decode(X_Book_Type_Code,
2076                                                         NULL, book_type_code,
2077                                                         FND_API.G_MISS_CHAR, NULL,
2078                                                         X_Book_Type_Code),
2079            asset_id                        =     decode(X_Asset_Id,
2080                                                         NULL, asset_id,
2081                                                         FND_API.G_MISS_NUM, NULL,
2082                                                         X_Asset_Id),
2083            date_placed_in_service          =     decode(X_Date_Placed_In_Service,
2084                                                         NULL, date_placed_in_service ,
2085                                                         X_Date_Placed_In_Service),
2086            date_effective                  =     decode(X_Date_Effective,
2087                                                         NULL, date_effective,
2088                                                         X_Date_Effective),
2089            deprn_start_date                =     decode(X_Deprn_Start_Date,
2090                                                         NULL, deprn_start_date,
2091                                                         X_Deprn_Start_Date),
2092            deprn_method_code               =     decode(X_Deprn_Method_Code,
2093                                                         NULL, deprn_method_code,
2094                                                         FND_API.G_MISS_CHAR, NULL,
2095                                                         X_Deprn_Method_Code),
2096            life_in_months                  =     decode(X_Life_In_Months,
2097                                                         NULL, life_in_months,
2098                                                         FND_API.G_MISS_NUM, NULL,
2099                                                         X_Life_In_Months),
2100            rate_adjustment_factor          =     decode(X_Rate_Adjustment_Factor,
2101                                                         NULL, rate_adjustment_factor,
2102                                                         FND_API.G_MISS_NUM, NULL,
2103                                                         X_Rate_Adjustment_Factor),
2104            adjusted_cost                   =     decode(X_Adjusted_Cost,
2105                                                         NULL, adjusted_cost,
2106                                                         FND_API.G_MISS_NUM, NULL,
2107                                                         X_Adjusted_Cost),
2108            cost                            =     decode(X_Cost,
2109                                                         NULL, cost,
2110                                                         FND_API.G_MISS_NUM, NULL,
2111                                                         X_Cost),
2112            original_cost                   =     decode(X_Original_Cost,
2113                                                         NULL, original_cost,
2114                                                         FND_API.G_MISS_NUM, NULL,
2115                                                         X_Original_Cost),
2116            salvage_value                   =     decode(X_Salvage_Value,
2117                                                         NULL, salvage_value,
2118                                                         FND_API.G_MISS_NUM, NULL,
2119                                                         X_Salvage_Value),
2120            prorate_convention_code         =     decode(X_Prorate_Convention_Code,
2121                                                         NULL, prorate_convention_code,
2122                                                         FND_API.G_MISS_CHAR, NULL,
2123                                                         X_Prorate_Convention_Code),
2124            prorate_date                    =     decode(X_Prorate_Date,
2125                                                         NULL, prorate_date,
2126                                                         X_Prorate_Date),
2127            cost_change_flag                =     decode(X_Cost_Change_Flag,
2128                                                         NULL, cost_change_flag,
2129                                                         FND_API.G_MISS_CHAR, NULL,
2130                                                         X_Cost_Change_Flag),
2131            adjustment_required_status      =     decode(X_Adjustment_Required_Status,
2132                                                         NULL, adjustment_required_status,
2133                                                         FND_API.G_MISS_CHAR, NULL,
2134                                                         X_Adjustment_Required_Status),
2135            capitalize_flag                 =     decode(X_Capitalize_Flag,
2136                                                         NULL, capitalize_flag,
2137                                                         FND_API.G_MISS_CHAR, NULL,
2138                                                         X_Capitalize_Flag),
2139            retirement_pending_flag         =     decode(X_Retirement_Pending_Flag,
2140                                                         NULL, retirement_pending_flag,
2141                                                         FND_API.G_MISS_CHAR, NULL,
2142                                                         X_Retirement_Pending_Flag),
2143            depreciate_flag                 =     decode(X_Depreciate_Flag,
2144                                                         NULL, depreciate_flag,
2145                                                         FND_API.G_MISS_CHAR, NULL,
2146                                                         X_Depreciate_Flag),
2147            --HH group ed.
2148            disabled_flag                   =     decode(X_Disabled_Flag,
2149                                                         NULL, disabled_flag,
2150                                                         FND_API.G_MISS_CHAR, NULL,
2151                                                         X_Disabled_Flag),
2152            last_update_date                =     decode(X_Last_Update_Date,
2153                                                         NULL, last_update_date,
2154                                                         X_Last_Update_Date),
2155            last_updated_by                 =     decode(X_Last_Updated_By,
2156                                                         NULL, last_updated_by,
2157                                                         FND_API.G_MISS_NUM, NULL,
2158                                                         X_Last_Updated_By),
2159            date_ineffective                =     decode(X_Date_Ineffective,
2160                                                         NULL, date_ineffective,
2161                                                         X_Date_Ineffective),
2162            transaction_header_id_in        =     decode(X_Transaction_Header_Id_In,
2163                                                         NULL, transaction_header_id_in,
2164                                                         FND_API.G_MISS_NUM, NULL,
2165                                                         X_Transaction_Header_Id_In),
2166            transaction_header_id_out       =     decode(X_Transaction_Header_Id_Out,
2167                                                         NULL, transaction_header_id_out,
2168                                                         FND_API.G_MISS_NUM, NULL,
2169                                                         X_Transaction_Header_Id_Out),
2170            itc_amount_id                   =     decode(X_Itc_Amount_Id,
2171                                                         NULL, itc_amount_id,
2172                                                         FND_API.G_MISS_NUM, NULL,
2173                                                         X_Itc_Amount_Id),
2174            itc_amount                      =     decode(X_Itc_Amount,
2175                                                         NULL, itc_amount,
2176                                                         FND_API.G_MISS_NUM, NULL,
2177                                                         X_Itc_Amount),
2178            retirement_id                   =     decode(X_Retirement_Id,
2179                                                         NULL, retirement_id,
2180                                                         FND_API.G_MISS_NUM, NULL,
2181                                                         X_Retirement_Id),
2182            tax_request_id                  =     decode(X_Tax_Request_Id,
2183                                                         NULL, tax_request_id,
2184                                                         FND_API.G_MISS_NUM, NULL,
2185                                                         X_Tax_Request_Id),
2186            itc_basis                       =     decode(X_Itc_Basis,
2187                                                         NULL, itc_basis,
2188                                                         FND_API.G_MISS_NUM, NULL,
2189                                                         X_Itc_Basis),
2190            basic_rate                      =     decode(X_Basic_Rate,
2191                                                         NULL, basic_rate,
2192                                                         FND_API.G_MISS_NUM, NULL,
2193                                                         X_Basic_Rate),
2194            adjusted_rate                   =     decode(X_Adjusted_Rate,
2195                                                         NULL, adjusted_rate,
2196                                                         FND_API.G_MISS_NUM, NULL,
2197                                                         X_Adjusted_Rate),
2198            bonus_rule                      =     decode(X_Bonus_Rule,
2199                                                         NULL, bonus_rule,
2200                                                         FND_API.G_MISS_CHAR, NULL,
2201                                                         X_Bonus_Rule),
2202            ceiling_name                    =     decode(X_Ceiling_Name,
2203                                                         NULL, ceiling_name,
2204                                                         FND_API.G_MISS_CHAR, NULL,
2205                                                         X_Ceiling_Name),
2206            recoverable_cost                =     decode(X_Recoverable_Cost,
2207                                                         NULL, recoverable_cost,
2208                                                         FND_API.G_MISS_NUM, NULL,
2209                                                         X_Recoverable_Cost),
2210            last_update_login               =     decode(X_Last_Update_Login,
2211                                                         NULL, last_update_login,
2212                                                         FND_API.G_MISS_NUM, NULL,
2213                                                         X_Last_Update_Login),
2214            adjusted_capacity               =     decode(X_Adjusted_Capacity,
2215                                                         NULL, adjusted_capacity,
2216                                                         FND_API.G_MISS_NUM, NULL,
2217                                                         X_Adjusted_Capacity),
2218            fully_rsvd_revals_counter       =     decode(X_Fully_Rsvd_Revals_Counter,
2219                                                         NULL, fully_rsvd_revals_counter,
2220                                                         FND_API.G_MISS_NUM, NULL,
2221                                                         X_Fully_Rsvd_Revals_Counter),
2222            idled_flag                      =     decode(X_Idled_Flag,
2223                                                         NULL, idled_flag,
2224                                                         FND_API.G_MISS_CHAR, NULL,
2225                                                         X_Idled_Flag),
2226            period_counter_capitalized      =     decode(X_Period_Counter_Capitalized,
2227                                                         NULL, period_counter_capitalized,
2228                                                         FND_API.G_MISS_NUM, NULL,
2229                                                         X_Period_Counter_Capitalized),
2230            period_counter_fully_reserved   =     decode(X_PC_Fully_Reserved,
2231                                                         NULL, period_counter_fully_reserved,
2232                                                         FND_API.G_MISS_NUM, NULL,
2233                                                         X_PC_Fully_Reserved),
2234            period_counter_fully_retired    =     decode(X_Period_Counter_Fully_Retired,
2235                                                         NULL, period_counter_fully_retired,
2236                                                         FND_API.G_MISS_NUM, NULL,
2237                                                         X_Period_Counter_Fully_Retired),
2238            production_capacity             =     decode(X_Production_Capacity,
2239                                                         NULL, production_capacity,
2240                                                         FND_API.G_MISS_NUM, NULL,
2241                                                         X_Production_Capacity),
2242            reval_amortization_basis        =     decode(X_Reval_Amortization_Basis,
2243                                                         NULL, reval_amortization_basis,
2244                                                         FND_API.G_MISS_NUM, NULL,
2245                                                         X_Reval_Amortization_Basis),
2246            reval_ceiling                   =     decode(X_Reval_Ceiling,
2247                                                         NULL, reval_ceiling,
2248                                                         FND_API.G_MISS_NUM, NULL,
2249                                                         X_Reval_Ceiling),
2250            unit_of_measure                 =     decode(X_Unit_Of_Measure,
2251                                                         NULL, unit_of_measure,
2252                                                         FND_API.G_MISS_CHAR, NULL,
2253                                                         X_Unit_Of_Measure),
2254            unrevalued_cost                 =     decode(X_Unrevalued_Cost,
2255                                                         NULL, unrevalued_cost,
2256                                                         FND_API.G_MISS_NUM, NULL,
2257                                                         X_Unrevalued_Cost),
2258            annual_deprn_rounding_flag      =     decode(X_Annual_Deprn_Rounding_Flag,
2259                                                         NULL, annual_deprn_rounding_flag,
2260                                                         FND_API.G_MISS_CHAR, NULL,
2261                                                         X_Annual_Deprn_Rounding_Flag),
2262            percent_salvage_value           =     decode(X_Percent_Salvage_Value,
2263                                                         NULL, percent_salvage_value,
2264                                                         FND_API.G_MISS_NUM, NULL,
2265                                                         X_Percent_Salvage_Value),
2266            allowed_deprn_limit             =     decode(X_Allowed_Deprn_Limit,
2267                                                         NULL, allowed_deprn_limit,
2268                                                         FND_API.G_MISS_NUM, NULL,
2269                                                         X_Allowed_Deprn_Limit),
2270            allowed_deprn_limit_amount      =     decode(X_Allowed_Deprn_Limit_Amount,
2271                                                         NULL, allowed_deprn_limit_amount,
2272                                                         FND_API.G_MISS_NUM, NULL,
2273                                                         X_Allowed_Deprn_Limit_Amount),
2274            period_counter_life_complete    =     decode(X_Period_Counter_Life_Complete,
2275                                                         NULL, period_counter_life_complete,
2276                                                         FND_API.G_MISS_NUM, NULL,
2277                                                         X_Period_Counter_Life_Complete),
2278            adjusted_recoverable_cost       =     decode(X_Adjusted_Recoverable_Cost,
2279                                                         NULL, adjusted_recoverable_cost,
2280                                                         FND_API.G_MISS_NUM, NULL,
2281                                                         X_Adjusted_Recoverable_Cost),
2282            group_asset_id                  =     decode(X_group_asset_id,
2283                                                         NULL, group_asset_id,
2284                                                         FND_API.G_MISS_NUM, NULL,
2285                                                         X_group_asset_id),
2286            salvage_type                    =     decode(X_salvage_type,
2287                                                         NULL, salvage_type,
2288                                                         FND_API.G_MISS_CHAR, NULL,
2289                                                         X_salvage_type),
2290            deprn_limit_type                =     decode(X_deprn_limit_type ,
2291                                                         NULL, deprn_limit_type ,
2292                                                        FND_API.G_MISS_CHAR, NULL,
2293                                                         X_deprn_limit_type ),
2294            over_depreciate_option          =     decode(X_over_depreciate_option,
2295                                                         NULL, over_depreciate_option,
2296                                                         FND_API.G_MISS_CHAR, NULL,
2297                                                         X_over_depreciate_option),
2298            super_group_id                  =     decode(X_super_group_id,
2299                                                         NULL, super_group_id,
2300                                                         FND_API.G_MISS_NUM, NULL,
2301                                                         X_super_group_id),
2302            reduction_rate                  =     decode(X_reduction_rate,
2303                                                         NULL, reduction_rate,
2304                                                         FND_API.G_MISS_NUM, NULL,
2305                                                         X_reduction_rate),
2306            reduce_addition_flag            =     decode(X_reduce_addition_flag,
2307                                                         NULL, reduce_addition_flag,
2308                                                         FND_API.G_MISS_CHAR, NULL,
2309                                                         X_reduce_addition_flag),
2310            reduce_adjustment_flag          =     decode(X_reduce_adjustment_flag,
2311                                                         NULL, reduce_adjustment_flag,
2312                                                         FND_API.G_MISS_CHAR, NULL,
2313                                                         X_reduce_adjustment_flag),
2314            reduce_retirement_flag          =     decode(X_reduce_retirement_flag,
2315                                                         NULL, reduce_retirement_flag,
2316                                                         FND_API.G_MISS_CHAR, NULL,
2317                                                         X_reduce_retirement_flag),
2318            recognize_gain_loss             =    decode(X_recognize_gain_loss,
2319                                                         NULL, recognize_gain_loss,
2320                                                         FND_API.G_MISS_CHAR, NULL,
2321                                                         X_recognize_gain_loss),
2322            recapture_reserve_flag          =    decode(X_recapture_reserve_flag,
2323                                                         NULL, recapture_reserve_flag,
2324                                                         FND_API.G_MISS_CHAR, NULL,
2325                                                         X_recapture_reserve_flag),
2326            limit_proceeds_flag             =    decode(X_limit_proceeds_flag,
2327                                                         NULL, limit_proceeds_flag,
2328                                                         FND_API.G_MISS_CHAR, NULL,
2329                                                         X_limit_proceeds_flag),
2330            terminal_gain_loss              =    decode(X_terminal_gain_loss,
2331                                                         NULL, terminal_gain_loss,
2332                                                         FND_API.G_MISS_CHAR, NULL,
2333                                                         X_terminal_gain_loss),
2334            tracking_method                 =    decode(X_tracking_method,
2335                                                         NULL, tracking_method,
2336                                                         FND_API.G_MISS_CHAR, NULL,
2337                                                         X_tracking_method),
2338            allocate_to_fully_rsv_flag      =     decode(X_allocate_to_fully_rsv_flag,
2339                                                         NULL, allocate_to_fully_rsv_flag,
2340                                                         FND_API.G_MISS_CHAR, NULL,
2341                                                         X_allocate_to_fully_rsv_flag),
2342            allocate_to_fully_ret_flag      =     decode(X_allocate_to_fully_ret_flag,
2343                                                         NULL, allocate_to_fully_ret_flag,
2344                                                         FND_API.G_MISS_CHAR, NULL,
2345                                                         X_allocate_to_fully_ret_flag),
2346            exclude_fully_rsv_flag          =    decode(X_exclude_fully_rsv_flag,
2347                                                         NULL, exclude_fully_rsv_flag,
2348                                                         FND_API.G_MISS_CHAR, NULL,
2349                                                         X_exclude_fully_rsv_flag),
2350            excess_allocation_option        =    decode(X_excess_allocation_option,
2351                                                         NULL, excess_allocation_option,
2352                                                         FND_API.G_MISS_CHAR, NULL,
2353                                                         X_excess_allocation_option),
2354            depreciation_option             =    decode(X_depreciation_option,
2355                                                         NULL, depreciation_option,
2356                                                         FND_API.G_MISS_CHAR, NULL,
2357                                                         X_depreciation_option),
2358            member_rollup_flag              =    decode(X_member_rollup_flag,
2359                                                         NULL, member_rollup_flag,
2360                                                         FND_API.G_MISS_CHAR, NULL,
2361                                                         X_member_rollup_flag),
2362            ytd_proceeds                    =    decode(X_ytd_proceeds,
2363                                                         NULL, ytd_proceeds,
2364                                                         FND_API.G_MISS_NUM, NULL,
2365                                                         X_ytd_proceeds),
2366            ltd_proceeds                    =    decode(X_ltd_proceeds,
2367                                                         NULL, ltd_proceeds,
2368                                                         FND_API.G_MISS_NUM, NULL,
2369                                                         X_ltd_proceeds),
2370            eofy_reserve                    =     decode(X_eofy_reserve,
2371                                                         NULL, eofy_reserve,
2372                                                         FND_API.G_MISS_NUM, NULL,
2373                                                         X_eofy_reserve),
2374            cip_cost                        =     decode(X_cip_cost,
2375                                                         NULL, cip_cost,
2376                                                         FND_API.G_MISS_NUM, NULL,
2377                                                         X_cip_cost),
2378            terminal_gain_loss_amount       =     decode(X_terminal_gain_loss_amount,
2379                                                         NULL, terminal_gain_loss_amount,
2380                                                         FND_API.G_MISS_NUM, NULL,
2381                                                         X_terminal_gain_loss_amount),
2382            ltd_cost_of_removal             =     decode(X_ltd_cost_of_removal,
2383                                                         NULL, ltd_cost_of_removal,
2384                                                         FND_API.G_MISS_NUM, NULL,
2385                                                         X_ltd_cost_of_removal),
2386            exclude_proceeds_from_basis     =     decode(X_exclude_proceeds_from_basis,
2387                                                         NULL, exclude_proceeds_from_basis,
2388                                                         FND_API.G_MISS_CHAR, NULL,
2389                                                         X_exclude_proceeds_from_basis),
2390            retirement_deprn_option         =     decode(X_retirement_deprn_option,
2391                                                         NULL, retirement_deprn_option,
2392                                                         FND_API.G_MISS_CHAR, NULL,
2393                                                         X_retirement_deprn_option),
2394            terminal_gain_loss_flag         =     decode(X_terminal_gain_loss_flag,
2395                                                         NULL, terminal_gain_loss_flag,
2396                                                         FND_API.G_MISS_CHAR, NULL,
2397                                                         X_terminal_gain_loss_flag),
2398            cash_generating_unit_id         =     decode(X_Cash_Generating_Unit_Id,
2399                                                         NULL, cash_generating_unit_id,
2400                                                         FND_API.G_MISS_NUM, NULL,
2401                                                         X_Cash_Generating_Unit_Id),
2402 		--- -- Changes made as per the ER No.s 6606548 and 6606552 by Sbyreddy
2403            nbv_at_switch                        =     decode(X_nbv_at_switch,
2404                                                         NULL, nbv_at_switch,
2405                                                         FND_API.G_MISS_NUM, NULL,
2406                                                         X_nbv_at_switch),
2407            prior_deprn_limit_type       =     decode(X_prior_deprn_limit_type,
2408                                                         NULL, prior_deprn_limit_type,
2409                                                         FND_API.G_MISS_NUM, NULL,
2410                                                         X_prior_deprn_limit_type),
2411            prior_deprn_limit_amount     =     decode(X_prior_deprn_limit_amount,
2412                                                         NULL, prior_deprn_limit_amount,
2413                                                         FND_API.G_MISS_NUM, NULL,
2414                                                         X_prior_deprn_limit_amount),
2415            prior_deprn_limit            =     decode(X_prior_deprn_limit,
2416                                                         NULL, prior_deprn_limit,
2417                                                         FND_API.G_MISS_CHAR, NULL,
2418                                                         X_prior_deprn_limit),
2419            --period_counter_fully_reserved=     decode(X_period_counter_fully_rsrved,
2420            --                                             NULL, period_counter_fully_reserved,
2421            --                                             FND_API.G_MISS_NUM, NULL,
2422            --                                             X_period_counter_fully_rsrved),
2423            extended_depreciation_period =     decode(X_extended_depreciation_period,
2424                                                         NULL, extended_depreciation_period,
2425                                                         FND_API.G_MISS_NUM, NULL,
2426                                                         X_extended_depreciation_period),
2427            prior_deprn_method           =     decode(X_prior_deprn_method,
2428                                                         NULL, prior_deprn_method,
2429                                                         FND_API.G_MISS_NUM, NULL,
2430                                                         X_prior_deprn_method),
2431            prior_life_in_months         =     decode(X_prior_life_in_months,
2432                                                         NULL, prior_life_in_months,
2433                                                         FND_API.G_MISS_CHAR, NULL,
2434                                                         X_prior_life_in_months),
2435            prior_basic_rate             =     decode(X_prior_basic_rate,
2436                                                         NULL, prior_basic_rate,
2437                                                         FND_API.G_MISS_CHAR, NULL,
2438                                                         X_prior_basic_rate),
2439            prior_adjusted_rate          =     decode(X_prior_adjusted_rate,
2440                                                         NULL, prior_adjusted_rate,
2441                                                         FND_API.G_MISS_NUM, NULL,
2442                                                         X_prior_adjusted_rate)   -- Changes made as per the ER No.s 6606548 and 6606552 by Sbyreddy  End
2443            WHERE asset_id = X_Asset_Id
2444            AND book_type_code = X_Book_Type_Code
2445            AND transaction_header_id_out is null;
2446         end if;
2447      end if;
2448     --
2449 
2450     if (SQL%NOTFOUND) then
2451       Raise NO_DATA_FOUND;
2452     end if;
2453 
2454   exception
2455     when others then
2456      fa_srvr_msg.add_sql_error(
2457           calling_fn => 'fa_books_pkg.update_row', p_log_level_rec => p_log_level_rec);
2458      raise;
2459   END Update_Row;
2460 
2461   PROCEDURE Delete_Row(X_Rowid                     VARCHAR2 DEFAULT NULL,
2462                        X_Transaction_Header_Id_In  NUMBER DEFAULT NULL,
2463                        X_Asset_Id                  NUMBER DEFAULT NULL,
2464                        X_mrc_sob_type_code         VARCHAR2 DEFAULT 'P',
2465                        X_set_of_books_id           NUMBER ,
2466                        X_Calling_Fn                VARCHAR2, p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) IS
2467   BEGIN
2468 
2469     if (X_mrc_sob_type_code = 'R') then
2470        if X_Rowid is not null then
2471             DELETE FROM fa_mc_books
2472             WHERE rowid = X_Rowid;
2473        elsif X_Transaction_Header_Id_In is not null then
2474          DELETE FROM fa_mc_books
2475          WHERE transaction_header_id_in = X_Transaction_Header_Id_In
2476          AND set_of_books_id = X_set_of_books_id;
2477        elsif X_Asset_Id is not null then
2478         DELETE FROM fa_mc_books
2479         WHERE asset_id = X_Asset_Id
2480         AND set_of_books_id = X_set_of_books_id;
2481        else
2482         -- print some error message
2483         null;
2484        end if;
2485     else
2486        if X_Rowid is not null then
2487             DELETE FROM fa_books
2488             WHERE rowid = X_Rowid;
2489        elsif X_Transaction_Header_Id_In is not null then
2490          DELETE FROM fa_books
2491          WHERE transaction_header_id_in = X_Transaction_Header_Id_In;
2492        elsif X_Asset_Id is not null then
2493         DELETE FROM fa_books
2494         WHERE asset_id = X_Asset_Id;
2495        else
2496         -- print some error message
2497         null;
2498        end if;
2499     end if;
2500 
2501     if (SQL%NOTFOUND) then
2502       Raise NO_DATA_FOUND;
2503     end if;
2504 
2505   exception
2506     when others then
2507       FA_STANDARD_PKG.RAISE_ERROR(
2508           CALLED_FN => 'fa_books_pkg.delete_row',
2509           CALLING_FN => X_Calling_Fn, p_log_level_rec => p_log_level_rec);
2510   END Delete_Row;
2511 
2512   PROCEDURE Reactivate_Row(X_Transaction_Header_Id_Out     NUMBER,
2513                            X_mrc_sob_type_code             VARCHAR2 DEFAULT 'P',
2514                            X_set_of_books_id               NUMBER ,
2515                            X_Calling_Fn                    VARCHAR2, p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) IS
2516 
2517   BEGIN
2518 
2519     if (X_mrc_sob_type_code = 'R') then
2520      UPDATE fa_mc_books
2521      SET period_counter_fully_retired = null,
2522          date_ineffective = null,
2523          transaction_header_id_out = null,
2524          retirement_id = null
2525      WHERE transaction_header_id_out = X_Transaction_Header_Id_Out
2526      AND set_of_books_id = X_set_of_books_id;
2527     else
2528      UPDATE fa_books
2529      SET period_counter_fully_retired = null,
2530          date_ineffective = null,
2531          transaction_header_id_out = null,
2532          retirement_id = null
2533      WHERE transaction_header_id_out = X_Transaction_Header_Id_Out;
2534     end if;
2535     --
2536     if (SQL%NOTFOUND) then
2537       Raise NO_DATA_FOUND;
2538     end if;
2539 
2540   exception
2541     when others then
2542       FA_STANDARD_PKG.RAISE_ERROR(
2543           CALLED_FN => 'fa_books_pkg.reactivate_row',
2544           CALLING_FN => X_Calling_Fn, p_log_level_rec => p_log_level_rec);
2545   END Reactivate_Row;
2546 
2547 
2548   PROCEDURE Deactivate_Row(X_asset_id                  NUMBER,
2549                            X_book_type_code            VARCHAR2,
2550                            X_transaction_header_id_out NUMBER,
2551                            X_date_ineffective          DATE DEFAULT SYSDATE,
2552                            X_mrc_sob_type_code         VARCHAR2 DEFAULT 'P',
2553                            X_set_of_books_id           NUMBER ,
2554                            X_Calling_Fn                VARCHAR2, p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) IS
2555 
2556   BEGIN
2557 
2558     if (X_mrc_sob_type_code = 'R') then
2559      UPDATE fa_mc_books
2560      SET date_ineffective            = X_date_ineffective,
2561          last_update_date            = X_date_ineffective,
2562          transaction_header_id_out   = X_transaction_header_id_out
2563      WHERE asset_id                  = X_Asset_Id
2564        AND book_type_code            = X_book_type_code
2565        AND transaction_header_id_out is null
2566        AND set_of_books_id           = X_set_of_books_id;
2567     else
2568      UPDATE fa_books
2569      SET date_ineffective            = X_date_ineffective,
2570          last_update_date            = X_date_ineffective,
2571          transaction_header_id_out   = X_transaction_header_id_out
2572      WHERE asset_id                  = X_Asset_Id
2573        AND book_type_code            = X_book_type_code
2574        AND transaction_header_id_out is null;
2575     end if;
2576     --
2577     if (SQL%NOTFOUND) then
2578       Raise NO_DATA_FOUND;
2579     end if;
2580 
2581   exception
2582     when others then
2583       FA_STANDARD_PKG.RAISE_ERROR(
2584           CALLED_FN => 'fa_books_pkg.reactivate_row',
2585           CALLING_FN => X_Calling_Fn, p_log_level_rec => p_log_level_rec);
2586   END Deactivate_Row;
2587 
2588 
2589 END FA_BOOKS_PKG;