DBA Data[Home] [Help]

PACKAGE BODY: APPS.FA_BOOKS_SUMMARY_PKG

Source


1 PACKAGE BODY FA_BOOKS_SUMMARY_PKG as
2 /* $Header: faxibsb.pls 120.3 2005/07/25 10:01:43 yyoon noship $ */
3 
4 PROCEDURE Insert_Row(X_Rowid                   IN OUT NOCOPY VARCHAR2,
5                      X_Book_Type_Code                 VARCHAR2,
6                      X_Asset_Id                       NUMBER,
7                      X_Period_Counter                 NUMBER,
8                      X_Fiscal_Year                    NUMBER   DEFAULT NULL,
9                      X_Period_Num                     NUMBER   DEFAULT NULL,
10                      X_Calendar_Period_Open_Date      DATE     DEFAULT NULL,
11                      X_Calendar_Period_Close_Date     DATE     DEFAULT NULL,
12                      X_Reset_Adjusted_Cost_Flag       VARCHAR2 DEFAULT NULL,
13                      X_Change_In_Cost                 NUMBER   DEFAULT NULL,
14                      X_Change_In_Additions_Cost       NUMBER   DEFAULT NULL,
15                      X_Change_In_Adjustments_Cost     NUMBER   DEFAULT NULL,
16                      X_Change_In_Retirements_Cost     NUMBER   DEFAULT NULL,
17                      X_Change_In_Group_Rec_Cost       NUMBER   DEFAULT NULL,
18                      X_Change_In_CIP_Cost             NUMBER   DEFAULT NULL,
19                      X_Cost                           NUMBER   DEFAULT NULL,
20                      X_CIP_Cost                       NUMBER   DEFAULT NULL,
21                      X_Salvage_Type                   VARCHAR2 DEFAULT NULL,
22                      X_Percent_Salvage_Value          NUMBER   DEFAULT NULL,
23                      X_Salvage_Value                  NUMBER   DEFAULT NULL,
24                      X_Member_Salvage_Value           NUMBER   DEFAULT NULL,
25                      X_Recoverable_Cost               NUMBER   DEFAULT NULL,
26                      X_Deprn_Limit_Type               VARCHAR2 DEFAULT NULL,
27                      X_Allowed_Deprn_Limit            NUMBER   DEFAULT NULL,
28                      X_Allowed_Deprn_Limit_Amount     NUMBER   DEFAULT NULL,
29                      X_Member_Deprn_Limit_Amount      NUMBER   DEFAULT NULL,
30                      X_Adjusted_Recoverable_Cost      NUMBER   DEFAULT NULL,
31                      X_Adjusted_Cost                  NUMBER   DEFAULT NULL,
32                      X_Depreciate_Flag                VARCHAR2 DEFAULT NULL,
33                      X_Disabled_Flag                  VARCHAR2 DEFAULT NULL,
34                      X_Date_Placed_In_Service         DATE     DEFAULT NULL,
35                      X_Deprn_Method_Code              VARCHAR2 DEFAULT NULL,
36                      X_Life_In_Months                 NUMBER   DEFAULT NULL,
37                      X_Rate_Adjustment_Factor         NUMBER   DEFAULT NULL,
38                      X_Adjusted_Rate                  NUMBER   DEFAULT NULL,
39                      X_Bonus_Rule                     VARCHAR2 DEFAULT NULL,
40                      X_Adjusted_Capacity              NUMBER   DEFAULT NULL,
41                      X_Production_Capacity            NUMBER   DEFAULT NULL,
42                      X_Unit_Of_Measure                VARCHAR2 DEFAULT NULL,
43                      X_Remaining_Life1                NUMBER   DEFAULT NULL,
44                      X_Remaining_Life2                NUMBER   DEFAULT NULL,
45                      X_Formula_Factor                 NUMBER   DEFAULT NULL,
46                      X_Unrevalued_Cost                NUMBER   DEFAULT NULL,
47                      X_Reval_Amortization_Basis       NUMBER   DEFAULT NULL,
48                      X_Reval_Ceiling                  NUMBER   DEFAULT NULL,
49                      X_Ceiling_Name                   VARCHAR2 DEFAULT NULL,
50                      X_Eofy_Adj_Cost                  NUMBER   DEFAULT NULL,
51                      X_Eofy_Formula_Factor            NUMBER   DEFAULT NULL,
52                      X_Eofy_Reserve                   NUMBER   DEFAULT NULL,
53                      X_Eop_Adj_Cost                   NUMBER   DEFAULT NULL,
54                      X_Eop_Formula_Factor             NUMBER   DEFAULT NULL,
55                      X_Short_Fiscal_Year_Flag         VARCHAR2 DEFAULT NULL,
56                      X_Group_Asset_ID                 NUMBER   DEFAULT NULL,
57                      X_Super_Group_ID                 NUMBER   DEFAULT NULL,
58                      X_Over_Depreciate_Option         VARCHAR2 DEFAULT NULL,
59                      X_Fully_Rsvd_Revals_Counter      NUMBER   DEFAULT NULL,
60                      X_Capitalized_Flag               VARCHAR2 DEFAULT NULL,
61                      X_Fully_Reserved_Flag            VARCHAR2 DEFAULT NULL,
62                      X_Fully_Retired_Flag             VARCHAR2 DEFAULT NULL,
63                      X_Life_Complete_Flag             VARCHAR2 DEFAULT NULL,
64                      X_Terminal_Gain_Loss_Amount      NUMBER   DEFAULT NULL,
65                      X_Terminal_Gain_Loss_Flag        VARCHAR2 DEFAULT NULL,
66                      X_Deprn_Amount                   NUMBER   DEFAULT NULL,
67                      X_Ytd_Deprn                      NUMBER   DEFAULT NULL,
68                      X_Deprn_Reserve                  NUMBER   DEFAULT NULL,
69                      X_Bonus_Deprn_Amount             NUMBER   DEFAULT NULL,
70                      X_Bonus_Ytd_Deprn                NUMBER   DEFAULT NULL,
71                      X_Bonus_Deprn_Reserve            NUMBER   DEFAULT NULL,
72                      X_Bonus_Rate                     NUMBER   DEFAULT NULL,
73                      X_Ltd_Production                 NUMBER   DEFAULT NULL,
74                      X_Ytd_Production                 NUMBER   DEFAULT NULL,
75                      X_Production                     NUMBER   DEFAULT NULL,
76                      X_Reval_Amortization             NUMBER   DEFAULT NULL,
77                      X_Reval_Deprn_Expense            NUMBER   DEFAULT NULL,
78                      X_Reval_Reserve                  NUMBER   DEFAULT NULL,
79                      X_Ytd_Reval_Deprn_Expense        NUMBER   DEFAULT NULL,
80                      X_Deprn_Override_Flag            VARCHAR2 DEFAULT NULL,
81                      X_System_Deprn_Amount            NUMBER   DEFAULT NULL,
82                      X_System_Bonus_Deprn_Amount      NUMBER   DEFAULT NULL,
83                      X_Ytd_Proceeds_Of_Sale           NUMBER   DEFAULT NULL,
84                      X_Ltd_Proceeds_Of_Sale           NUMBER   DEFAULT NULL,
85                      X_Ytd_Cost_Of_Removal            NUMBER   DEFAULT NULL,
86                      X_Ltd_Cost_Of_Removal            NUMBER   DEFAULT NULL,
87                      X_Deprn_Adjustment_Amount        NUMBER   DEFAULT NULL,
88                      X_Expense_Adjustment_Amount      NUMBER   DEFAULT NULL,
89                      X_Unplanned_Amount               NUMBER   DEFAULT NULL,
90                      X_Reserve_Adjustment_Amount      NUMBER   DEFAULT NULL,
91                      X_Creation_Date                  DATE,
92                      X_Created_By                     NUMBER,
93                      X_Last_Update_Date               DATE,
94                      X_Last_Updated_By                NUMBER,
95                      X_Last_Update_Login              NUMBER   DEFAULT NULL,
96                      X_Change_In_Eofy_Reserve         NUMBER   DEFAULT NULL,
97                      X_Switch_Code                    VARCHAR2 DEFAULT NULL,
98                      X_MRC_Sob_Type_Code              VARCHAR2 DEFAULT 'P',
99                      X_Return_Status              OUT NOCOPY BOOLEAN,
100                      X_Calling_Fn                     VARCHAR2,
101               p_log_level_rec in fa_api_types.log_level_rec_type default null) IS
102 
103    CURSOR C_bs IS SELECT rowid
104                   FROM   fa_books_summary
105                   WHERE  asset_id = X_Asset_ID
106                   AND    book_type_code = X_Book_Type_Code
107                   AND    period_counter = X_Period_Counter;
108 
109    CURSOR C_bs_mc IS SELECT rowid
110                      FROM   fa_books_summary_mrc_v
111                      WHERE  asset_id = X_Asset_ID
112                      AND    book_type_code = X_Book_Type_Code
113                      AND    period_counter = X_Period_Counter;
114 
115 BEGIN
116 
117    if (X_mrc_sob_type_code = 'R') then
118       INSERT INTO fa_books_summary_mrc_v(
119               book_type_code,
120               asset_id,
121               period_counter,
122               fiscal_year,
123               period_num,
124               calendar_period_open_date,
125               calendar_period_close_date,
126               reset_adjusted_cost_flag,
127               change_in_cost,
128               change_in_additions_cost,
129               change_in_adjustments_cost,
130               change_in_retirements_cost,
131               change_in_group_rec_cost,
132               change_in_cip_cost,
133               cost,
134               cip_cost,
135               salvage_type,
136               percent_salvage_value,
137               salvage_value,
138               member_salvage_value,
139               recoverable_cost,
140               deprn_limit_type,
141               allowed_deprn_limit,
142               allowed_deprn_limit_amount,
143               member_deprn_limit_amount,
144               adjusted_recoverable_cost,
145               adjusted_cost,
146               depreciate_flag,
147               disabled_flag,
148               date_placed_in_service,
149               deprn_method_code,
150               life_in_months,
151               rate_adjustment_factor,
152               adjusted_rate,
153               bonus_rule,
154               adjusted_capacity,
155               production_capacity,
156               unit_of_measure,
157               remaining_life1,
158               remaining_life2,
159               formula_factor,
160               unrevalued_cost,
161               reval_amortization_basis,
162               reval_ceiling,
163               ceiling_name,
164               eofy_adj_cost,
165               eofy_formula_factor,
166               eofy_reserve,
167               eop_adj_cost,
168               eop_formula_factor,
169               short_fiscal_year_flag,
170               group_asset_id,
171               super_group_id,
172               over_depreciate_option,
173               fully_rsvd_revals_counter,
174               capitalized_flag,
175               fully_reserved_flag,
176               fully_retired_flag,
177               life_complete_flag,
178               terminal_gain_loss_amount,
179               terminal_gain_loss_flag,
180               deprn_amount,
181               ytd_deprn,
182               deprn_reserve,
183               bonus_deprn_amount,
184               bonus_ytd_deprn,
185               bonus_deprn_reserve,
186               bonus_rate,
187               ltd_production,
188               ytd_production,
189               production,
190               reval_amortization,
191               reval_deprn_expense,
192               reval_reserve,
193               ytd_reval_deprn_expense,
194               deprn_override_flag,
195               system_deprn_amount,
196               system_bonus_deprn_amount,
197               ytd_proceeds_of_sale,
198               ltd_proceeds_of_sale,
199               ytd_cost_of_removal,
200               ltd_cost_of_removal,
201               deprn_adjustment_amount,
202               expense_adjustment_amount,
203               unplanned_amount,
204               reserve_adjustment_amount,
205               creation_date,
206               created_by,
207               last_update_date,
208               last_updated_by,
209               last_update_login,
210               change_in_eofy_reserve,
211               switch_code
212       ) VALUES (
213               X_Book_Type_Code,
214               X_Asset_Id,
215               X_Period_Counter,
216               X_Fiscal_Year,
217               X_Period_Num,
218               X_Calendar_Period_Open_Date,
219               X_Calendar_Period_Close_Date,
220               X_Reset_Adjusted_Cost_Flag,
221               X_Change_In_Cost,
222               X_Change_In_Additions_Cost,
223               X_Change_In_Adjustments_Cost,
224               X_Change_In_Retirements_Cost,
225               X_Change_In_Group_Rec_Cost,
226               X_Change_In_CIP_Cost,
227               X_Cost,
228               X_CIP_Cost,
229               X_Salvage_Type,
230               X_Percent_Salvage_Value,
231               X_Salvage_Value,
232               X_Member_Salvage_Value,
233               X_Recoverable_Cost,
234               X_Deprn_Limit_Type,
235               X_Allowed_Deprn_Limit,
236               X_Allowed_Deprn_Limit_Amount,
237               X_Member_Deprn_Limit_Amount,
238               X_Adjusted_Recoverable_Cost,
239               X_Adjusted_Cost,
240               X_Depreciate_Flag,
241               X_Disabled_Flag,
242               X_Date_Placed_In_Service,
243               X_Deprn_Method_Code,
244               X_Life_In_Months,
245               X_Rate_Adjustment_Factor,
246               X_Adjusted_Rate,
247               X_Bonus_Rule,
248               X_Adjusted_Capacity,
249               X_Production_Capacity,
250               X_Unit_Of_Measure,
251               X_Remaining_Life1,
252               X_Remaining_Life2,
253               X_Formula_Factor,
254               X_Unrevalued_Cost,
255               X_Reval_Amortization_Basis,
256               X_Reval_Ceiling,
257               X_Ceiling_Name,
258               X_Eofy_Adj_Cost,
259               X_Eofy_Formula_Factor,
260               X_Eofy_Reserve,
261               X_Eop_Adj_Cost,
262               X_Eop_Formula_Factor,
263               X_Short_Fiscal_Year_Flag,
264               X_Group_Asset_ID,
265               X_Super_Group_ID,
266               X_Over_Depreciate_Option,
267               X_Fully_Rsvd_Revals_Counter,
268               X_Capitalized_Flag,
269               X_Fully_Reserved_Flag,
270               X_Fully_Retired_Flag,
271               X_Life_Complete_Flag,
272               X_Terminal_Gain_Loss_Amount,
273               X_Terminal_Gain_Loss_Flag,
277               X_Bonus_Deprn_Amount,
274               X_Deprn_Amount,
275               X_Ytd_Deprn,
276               X_Deprn_Reserve,
278               X_Bonus_Ytd_Deprn,
279               X_Bonus_Deprn_Reserve,
280               X_Bonus_Rate,
281               X_Ltd_Production,
282               X_Ytd_Production,
283               X_Production,
284               X_Reval_Amortization,
285               X_Reval_Deprn_Expense,
286               X_Reval_Reserve,
287               X_Ytd_Reval_Deprn_Expense,
288               X_Deprn_Override_Flag,
289               X_System_Deprn_Amount,
290               X_System_Bonus_Deprn_Amount,
291               X_Ytd_Proceeds_Of_Sale,
292               X_Ltd_Proceeds_Of_Sale,
293               X_Ytd_Cost_Of_Removal,
294               X_Ltd_Cost_Of_Removal,
295               X_Deprn_Adjustment_Amount,
296               X_Expense_Adjustment_Amount,
297               X_Unplanned_Amount,
298               X_Reserve_Adjustment_Amount,
299               X_Creation_Date,
300               X_Created_By,
301               X_Last_Update_Date,
302               X_Last_Updated_By,
303               X_Last_Update_Login,
304               X_Change_In_Eofy_Reserve,
305               X_Switch_Code
306       );
307 
308       OPEN C_bs_mc;
309       FETCH C_bs_mc INTO X_Rowid;
310       if (C_bs_mc%NOTFOUND) then
311       CLOSE C_bs_mc;
312       Raise NO_DATA_FOUND;
313       end if;
314       CLOSE C_bs_mc;
315 
316    else
317 
318       INSERT INTO fa_books_summary(
319               book_type_code,
320               asset_id,
321               period_counter,
322               fiscal_year,
323               period_num,
324               calendar_period_open_date,
325               calendar_period_close_date,
326               reset_adjusted_cost_flag,
327               change_in_cost,
328               change_in_additions_cost,
329               change_in_adjustments_cost,
330               change_in_retirements_cost,
331               change_in_group_rec_cost,
332               change_in_cip_cost,
333               cost,
334               cip_cost,
335               salvage_type,
336               percent_salvage_value,
337               salvage_value,
338               member_salvage_value,
339               recoverable_cost,
340               deprn_limit_type,
341               allowed_deprn_limit,
342               allowed_deprn_limit_amount,
343               member_deprn_limit_amount,
344               adjusted_recoverable_cost,
345               adjusted_cost,
346               depreciate_flag,
347               disabled_flag,
348               date_placed_in_service,
349               deprn_method_code,
350               life_in_months,
351               rate_adjustment_factor,
352               adjusted_rate,
353               bonus_rule,
354               adjusted_capacity,
355               production_capacity,
356               unit_of_measure,
357               remaining_life1,
358               remaining_life2,
359               formula_factor,
360               unrevalued_cost,
361               reval_amortization_basis,
362               reval_ceiling,
363               ceiling_name,
364               eofy_adj_cost,
368               eop_formula_factor,
365               eofy_formula_factor,
366               eofy_reserve,
367               eop_adj_cost,
369               short_fiscal_year_flag,
370               group_asset_id,
371               super_group_id,
372               over_depreciate_option,
373               fully_rsvd_revals_counter,
374               capitalized_flag,
375               fully_reserved_flag,
376               fully_retired_flag,
377               life_complete_flag,
378               terminal_gain_loss_amount,
379               terminal_gain_loss_flag,
380               deprn_amount,
381               ytd_deprn,
382               deprn_reserve,
383               bonus_deprn_amount,
384               bonus_ytd_deprn,
385               bonus_deprn_reserve,
386               bonus_rate,
387               ltd_production,
388               ytd_production,
389               production,
390               reval_amortization,
391               reval_deprn_expense,
392               reval_reserve,
393               ytd_reval_deprn_expense,
394               deprn_override_flag,
395               system_deprn_amount,
396               system_bonus_deprn_amount,
397               ytd_proceeds_of_sale,
398               ltd_proceeds_of_sale,
399               ytd_cost_of_removal,
400               ltd_cost_of_removal,
401               deprn_adjustment_amount,
402               expense_adjustment_amount,
403               unplanned_amount,
404               reserve_adjustment_amount,
405               creation_date,
406               created_by,
407               last_update_date,
408               last_updated_by,
409               last_update_login,
410               change_in_eofy_reserve,
411               switch_code
412       ) VALUES (
413               X_Book_Type_Code,
414               X_Asset_Id,
415               X_Period_Counter,
416               X_Fiscal_Year,
417               X_Period_Num,
418               X_Calendar_Period_Open_Date,
419               X_Calendar_Period_Close_Date,
420               X_Reset_Adjusted_Cost_Flag,
421               X_Change_In_Cost,
422               X_Change_In_Additions_Cost,
423               X_Change_In_Adjustments_Cost,
424               X_Change_In_Retirements_Cost,
425               X_Change_In_Group_Rec_Cost,
426               X_Change_In_CIP_Cost,
427               X_Cost,
428               X_CIP_Cost,
429               X_Salvage_Type,
430               X_Percent_Salvage_Value,
431               X_Salvage_Value,
432               X_Member_Salvage_Value,
433               X_Recoverable_Cost,
434               X_Deprn_Limit_Type,
435               X_Allowed_Deprn_Limit,
436               X_Allowed_Deprn_Limit_Amount,
437               X_Member_Deprn_Limit_Amount,
438               X_Adjusted_Recoverable_Cost,
439               X_Adjusted_Cost,
440               X_Depreciate_Flag,
441               X_Disabled_Flag,
442               X_Date_Placed_In_Service,
443               X_Deprn_Method_Code,
444               X_Life_In_Months,
445               X_Rate_Adjustment_Factor,
446               X_Adjusted_Rate,
447               X_Bonus_Rule,
448               X_Adjusted_Capacity,
449               X_Production_Capacity,
450               X_Unit_Of_Measure,
451               X_Remaining_Life1,
452               X_Remaining_Life2,
453               X_Formula_Factor,
454               X_Unrevalued_Cost,
455               X_Reval_Amortization_Basis,
456               X_Reval_Ceiling,
457               X_Ceiling_Name,
458               X_Eofy_Adj_Cost,
459               X_Eofy_Formula_Factor,
460               X_Eofy_Reserve,
461               X_Eop_Adj_Cost,
462               X_Eop_Formula_Factor,
463               X_Short_Fiscal_Year_Flag,
464               X_Group_Asset_ID,
465               X_Super_Group_ID,
466               X_Over_Depreciate_Option,
467               X_Fully_Rsvd_Revals_Counter,
468               X_Capitalized_Flag,
469               X_Fully_Reserved_Flag,
470               X_Fully_Retired_Flag,
471               X_Life_Complete_Flag,
472               X_Terminal_Gain_Loss_Amount,
473               X_Terminal_Gain_Loss_Flag,
474               X_Deprn_Amount,
475               X_Ytd_Deprn,
476               X_Deprn_Reserve,
477               X_Bonus_Deprn_Amount,
478               X_Bonus_Ytd_Deprn,
479               X_Bonus_Deprn_Reserve,
480               X_Bonus_Rate,
481               X_Ltd_Production,
482               X_Ytd_Production,
483               X_Production,
484               X_Reval_Amortization,
485               X_Reval_Deprn_Expense,
486               X_Reval_Reserve,
487               X_Ytd_Reval_Deprn_Expense,
488               X_Deprn_Override_Flag,
489               X_System_Deprn_Amount,
490               X_System_Bonus_Deprn_Amount,
491               X_Ytd_Proceeds_Of_Sale,
492               X_Ltd_Proceeds_Of_Sale,
493               X_Ytd_Cost_Of_Removal,
494               X_Ltd_Cost_Of_Removal,
495               X_Deprn_Adjustment_Amount,
496               X_Expense_Adjustment_Amount,
497               X_Unplanned_Amount,
501               X_Last_Update_Date,
498               X_Reserve_Adjustment_Amount,
499               X_Creation_Date,
500               X_Created_By,
502               X_Last_Updated_By,
503               X_Last_Update_Login,
504               X_Change_In_Eofy_Reserve,
505               X_Switch_Code
506       );
507 
508       OPEN C_bs;
509       FETCH C_bs INTO X_Rowid;
510       if (C_bs%NOTFOUND) then
511          CLOSE C_bs;
512          Raise NO_DATA_FOUND;
513       end if;
514       CLOSE C_bs;
515 
516    end if;  -- end mrc
517 
518    X_Return_Status := TRUE;
519 
520 EXCEPTION
521    WHEN OTHERS THEN
522       fa_srvr_msg.add_sql_error(
523          calling_fn => 'fa_books_summary_pkg.insert_row'
524          ,p_log_level_rec => p_log_level_rec);
525       X_Return_Status := FALSE;
526       raise;
527 END Insert_Row;
528 
529 PROCEDURE Lock_Row(  X_Rowid                          VARCHAR2,
530                      X_Book_Type_Code                 VARCHAR2,
531                      X_Asset_Id                       NUMBER,
532                      X_Period_Counter                 NUMBER,
533                      X_Fiscal_Year                    NUMBER   DEFAULT NULL,
534                      X_Period_Num                     NUMBER   DEFAULT NULL,
535                      X_Calendar_Period_Open_Date      DATE     DEFAULT NULL,
536                      X_Calendar_Period_Close_Date     DATE     DEFAULT NULL,
537                      X_Reset_Adjusted_Cost_Flag       VARCHAR2 DEFAULT NULL,
538                      X_Change_In_Cost                 NUMBER   DEFAULT NULL,
539                      X_Change_In_Additions_Cost       NUMBER   DEFAULT NULL,
540                      X_Change_In_Adjustments_Cost     NUMBER   DEFAULT NULL,
541                      X_Change_In_Retirements_Cost     NUMBER   DEFAULT NULL,
542                      X_Change_In_Group_Rec_Cost       NUMBER   DEFAULT NULL,
543                      X_Change_In_CIP_Cost             NUMBER   DEFAULT NULL,
544                      X_Cost                           NUMBER   DEFAULT NULL,
545                      X_CIP_Cost                       NUMBER   DEFAULT NULL,
546                      X_Salvage_Type                   VARCHAR2 DEFAULT NULL,
547                      X_Percent_Salvage_Value          NUMBER   DEFAULT NULL,
548                      X_Salvage_Value                  NUMBER   DEFAULT NULL,
549                      X_Member_Salvage_Value           NUMBER   DEFAULT NULL,
550                      X_Recoverable_Cost               NUMBER   DEFAULT NULL,
551                      X_Deprn_Limit_Type               VARCHAR2 DEFAULT NULL,
552                      X_Allowed_Deprn_Limit            NUMBER   DEFAULT NULL,
553                      X_Allowed_Deprn_Limit_Amount     NUMBER   DEFAULT NULL,
554                      X_Member_Deprn_Limit_Amount      NUMBER   DEFAULT NULL,
555                      X_Adjusted_Recoverable_Cost      NUMBER   DEFAULT NULL,
556                      X_Adjusted_Cost                  NUMBER   DEFAULT NULL,
557                      X_Depreciate_Flag                VARCHAR2 DEFAULT NULL,
558                      X_Disabled_Flag                  VARCHAR2 DEFAULT NULL,
559                      X_Date_Placed_In_Service         DATE     DEFAULT NULL,
560                      X_Deprn_Method_Code              VARCHAR2 DEFAULT NULL,
561                      X_Life_In_Months                 NUMBER   DEFAULT NULL,
562                      X_Rate_Adjustment_Factor         NUMBER   DEFAULT NULL,
563                      X_Adjusted_Rate                  NUMBER   DEFAULT NULL,
564                      X_Bonus_Rule                     VARCHAR2 DEFAULT NULL,
565                      X_Adjusted_Capacity              NUMBER   DEFAULT NULL,
569                      X_Remaining_Life2                NUMBER   DEFAULT NULL,
566                      X_Production_Capacity            NUMBER   DEFAULT NULL,
567                      X_Unit_Of_Measure                VARCHAR2 DEFAULT NULL,
568                      X_Remaining_Life1                NUMBER   DEFAULT NULL,
570                      X_Formula_Factor                 NUMBER   DEFAULT NULL,
571                      X_Unrevalued_Cost                NUMBER   DEFAULT NULL,
572                      X_Reval_Amortization_Basis       NUMBER   DEFAULT NULL,
573                      X_Reval_Ceiling                  NUMBER   DEFAULT NULL,
574                      X_Ceiling_Name                   VARCHAR2 DEFAULT NULL,
575                      X_Eofy_Adj_Cost                  NUMBER   DEFAULT NULL,
576                      X_Eofy_Formula_Factor            NUMBER   DEFAULT NULL,
577                      X_Eofy_Reserve                   NUMBER   DEFAULT NULL,
578                      X_Eop_Adj_Cost                   NUMBER   DEFAULT NULL,
579                      X_Eop_Formula_Factor             NUMBER   DEFAULT NULL,
580                      X_Short_Fiscal_Year_Flag         VARCHAR2 DEFAULT NULL,
581                      X_Group_Asset_ID                 NUMBER   DEFAULT NULL,
582                      X_Super_Group_ID                 NUMBER   DEFAULT NULL,
583                      X_Over_Depreciate_Option         VARCHAR2 DEFAULT NULL,
584                      X_Fully_Rsvd_Revals_Counter      NUMBER   DEFAULT NULL,
585                      X_Capitalized_Flag               VARCHAR2 DEFAULT NULL,
586                      X_Fully_Reserved_Flag            VARCHAR2 DEFAULT NULL,
587                      X_Fully_Retired_Flag             VARCHAR2 DEFAULT NULL,
588                      X_Life_Complete_Flag             VARCHAR2 DEFAULT NULL,
589                      X_Terminal_Gain_Loss_Amount      NUMBER   DEFAULT NULL,
590                      X_Terminal_Gain_Loss_Flag        VARCHAR2 DEFAULT NULL,
591                      X_Deprn_Amount                   NUMBER   DEFAULT NULL,
592                      X_Ytd_Deprn                      NUMBER   DEFAULT NULL,
593                      X_Deprn_Reserve                  NUMBER   DEFAULT NULL,
594                      X_Bonus_Deprn_Amount             NUMBER   DEFAULT NULL,
595                      X_Bonus_Ytd_Deprn                NUMBER   DEFAULT NULL,
596                      X_Bonus_Deprn_Reserve            NUMBER   DEFAULT NULL,
597                      X_Bonus_Rate                     NUMBER   DEFAULT NULL,
598                      X_Ltd_Production                 NUMBER   DEFAULT NULL,
599                      X_Ytd_Production                 NUMBER   DEFAULT NULL,
600                      X_Production                     NUMBER   DEFAULT NULL,
601                      X_Reval_Amortization             NUMBER   DEFAULT NULL,
602                      X_Reval_Deprn_Expense            NUMBER   DEFAULT NULL,
603                      X_Reval_Reserve                  NUMBER   DEFAULT NULL,
604                      X_Ytd_Reval_Deprn_Expense        NUMBER   DEFAULT NULL,
605                      X_Deprn_Override_Flag            VARCHAR2 DEFAULT NULL,
606                      X_System_Deprn_Amount            NUMBER   DEFAULT NULL,
607                      X_System_Bonus_Deprn_Amount      NUMBER   DEFAULT NULL,
608                      X_Ytd_Proceeds_Of_Sale           NUMBER   DEFAULT NULL,
609                      X_Ltd_Proceeds_Of_Sale           NUMBER   DEFAULT NULL,
610                      X_Ytd_Cost_Of_Removal            NUMBER   DEFAULT NULL,
611                      X_Ltd_Cost_Of_Removal            NUMBER   DEFAULT NULL,
612                      X_Deprn_Adjustment_Amount        NUMBER   DEFAULT NULL,
613                      X_Expense_Adjustment_Amount      NUMBER   DEFAULT NULL,
614                      X_Unplanned_Amount               NUMBER   DEFAULT NULL,
615                      X_Reserve_Adjustment_Amount      NUMBER   DEFAULT NULL,
616                      X_Creation_Date                  DATE,
617                      X_Created_By                     NUMBER,
618                      X_Last_Update_Date               DATE,
619                      X_Last_Updated_By                NUMBER,
620                      X_Last_Update_Login              NUMBER   DEFAULT NULL,
621                      X_Change_In_Eofy_Reserve         NUMBER   DEFAULT NULL,
622                      X_Switch_Code                    VARCHAR2 DEFAULT NULL,
623                      X_Calling_Fn                     VARCHAR2,
624                p_log_level_rec in fa_api_types.log_level_rec_type default null) IS
625 
626    CURSOR C IS
627       SELECT  book_type_code,
628               asset_id,
629               period_counter,
630               fiscal_year,
631               period_num,
632               calendar_period_open_date,
633               calendar_period_close_date,
634               reset_adjusted_cost_flag,
635               change_in_cost,
636               change_in_additions_cost,
637               change_in_adjustments_cost,
638               change_in_retirements_cost,
639               change_in_group_rec_cost,
640               change_in_cip_cost,
641               cost,
642               cip_cost,
643               salvage_type,
644               percent_salvage_value,
645               salvage_value,
646               member_salvage_value,
647               recoverable_cost,
648               deprn_limit_type,
649               allowed_deprn_limit,
650               allowed_deprn_limit_amount,
651               member_deprn_limit_amount,
652               adjusted_recoverable_cost,
653               adjusted_cost,
654               depreciate_flag,
655               disabled_flag,
656               date_placed_in_service,
657               deprn_method_code,
661               bonus_rule,
658               life_in_months,
659               rate_adjustment_factor,
660               adjusted_rate,
662               adjusted_capacity,
663               production_capacity,
664               unit_of_measure,
665               remaining_life1,
666               remaining_life2,
667               formula_factor,
668               unrevalued_cost,
669               reval_amortization_basis,
670               reval_ceiling,
671               ceiling_name,
672               eofy_adj_cost,
673               eofy_formula_factor,
674               eofy_reserve,
675               eop_adj_cost,
676               eop_formula_factor,
677               short_fiscal_year_flag,
678               group_asset_id,
679               super_group_id,
680               over_depreciate_option,
681               fully_rsvd_revals_counter,
682               capitalized_flag,
683               fully_reserved_flag,
684               fully_retired_flag,
685               life_complete_flag,
686               terminal_gain_loss_amount,
687               terminal_gain_loss_flag,
688               deprn_amount,
689               ytd_deprn,
690               deprn_reserve,
691               bonus_deprn_amount,
692               bonus_ytd_deprn,
693               bonus_deprn_reserve,
694               bonus_rate,
695               ltd_production,
696               ytd_production,
697               production,
698               reval_amortization,
699               reval_deprn_expense,
700               reval_reserve,
701               ytd_reval_deprn_expense,
702               deprn_override_flag,
703               system_deprn_amount,
704               system_bonus_deprn_amount,
705               ytd_proceeds_of_sale,
706               ltd_proceeds_of_sale,
707               ytd_cost_of_removal,
708               ltd_cost_of_removal,
709               deprn_adjustment_amount,
710               expense_adjustment_amount,
711               unplanned_amount,
712               reserve_adjustment_amount,
713               creation_date,
714               created_by,
715               last_update_date,
716               last_updated_by,
717               last_update_login,
718               change_in_eofy_reserve,
719               switch_code
720        FROM   fa_books_summary
721        WHERE  rowid = X_Rowid
722        FOR UPDATE of Asset_Id, Book_Type_Code, Period_Counter NOWAIT;
723 
724    Recinfo C%ROWTYPE;
725 
726 BEGIN
727 
728    OPEN C;
729    FETCH C INTO Recinfo;
730    if (C%NOTFOUND) then
731       CLOSE C;
732       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
733       APP_EXCEPTION.Raise_Exception;
734    end if;
735    CLOSE C;
736 
737    -- not finished.  still need to add rest of columns from table.
738    if ((Recinfo.book_type_code =  X_Book_Type_Code)
739       AND (Recinfo.asset_id =  X_Asset_Id)
740       AND (Recinfo.period_counter =  X_Period_Counter)
741       AND (   (Recinfo.fiscal_year =  X_Fiscal_Year)
742           OR (    (Recinfo.fiscal_year IS NULL)
743              AND (X_Fiscal_Year IS NULL)))
744       AND (   (Recinfo.period_num =  X_Period_Num)
745           OR (    (Recinfo.period_num IS NULL)
746              AND (X_Period_Num IS NULL)))) then
747       return;
748    else
749       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
750       APP_EXCEPTION.Raise_Exception;
751    end if;
752 
753 END Lock_Row;
754 
755 PROCEDURE Update_Row(X_Rowid                          VARCHAR2 DEFAULT NULL,
756                      X_Book_Type_Code                 VARCHAR2 DEFAULT NULL,
757                      X_Asset_Id                       NUMBER   DEFAULT NULL,
758                      X_Period_Counter                 NUMBER   DEFAULT NULL,
759                      X_Fiscal_Year                    NUMBER   DEFAULT NULL,
760                      X_Period_Num                     NUMBER   DEFAULT NULL,
761                      X_Calendar_Period_Open_Date      DATE     DEFAULT NULL,
762                      X_Calendar_Period_Close_Date     DATE     DEFAULT NULL,
763                      X_Reset_Adjusted_Cost_Flag       VARCHAR2 DEFAULT NULL,
764                      X_Change_In_Cost                 NUMBER   DEFAULT NULL,
765                      X_Change_In_Additions_Cost       NUMBER   DEFAULT NULL,
766                      X_Change_In_Adjustments_Cost     NUMBER   DEFAULT NULL,
767                      X_Change_In_Retirements_Cost     NUMBER   DEFAULT NULL,
768                      X_Change_In_Group_Rec_Cost       NUMBER   DEFAULT NULL,
769                      X_Change_In_CIP_Cost             NUMBER   DEFAULT NULL,
770                      X_Cost                           NUMBER   DEFAULT NULL,
771                      X_CIP_Cost                       NUMBER   DEFAULT NULL,
772                      X_Salvage_Type                   VARCHAR2 DEFAULT NULL,
773                      X_Percent_Salvage_Value          NUMBER   DEFAULT NULL,
774                      X_Salvage_Value                  NUMBER   DEFAULT NULL,
775                      X_Member_Salvage_Value           NUMBER   DEFAULT NULL,
776                      X_Recoverable_Cost               NUMBER   DEFAULT NULL,
777                      X_Deprn_Limit_Type               VARCHAR2 DEFAULT NULL,
778                      X_Allowed_Deprn_Limit            NUMBER   DEFAULT NULL,
779                      X_Allowed_Deprn_Limit_Amount     NUMBER   DEFAULT NULL,
780                      X_Member_Deprn_Limit_Amount      NUMBER   DEFAULT NULL,
784                      X_Disabled_Flag                  VARCHAR2 DEFAULT NULL,
781                      X_Adjusted_Recoverable_Cost      NUMBER   DEFAULT NULL,
782                      X_Adjusted_Cost                  NUMBER   DEFAULT NULL,
783                      X_Depreciate_Flag                VARCHAR2 DEFAULT NULL,
785                      X_Date_Placed_In_Service         DATE     DEFAULT NULL,
786                      X_Deprn_Method_Code              VARCHAR2 DEFAULT NULL,
787                      X_Life_In_Months                 NUMBER   DEFAULT NULL,
788                      X_Rate_Adjustment_Factor         NUMBER   DEFAULT NULL,
789                      X_Adjusted_Rate                  NUMBER   DEFAULT NULL,
790                      X_Bonus_Rule                     VARCHAR2 DEFAULT NULL,
791                      X_Adjusted_Capacity              NUMBER   DEFAULT NULL,
792                      X_Production_Capacity            NUMBER   DEFAULT NULL,
793                      X_Unit_Of_Measure                VARCHAR2 DEFAULT NULL,
794                      X_Remaining_Life1                NUMBER   DEFAULT NULL,
795                      X_Remaining_Life2                NUMBER   DEFAULT NULL,
796                      X_Formula_Factor                 NUMBER   DEFAULT NULL,
797                      X_Unrevalued_Cost                NUMBER   DEFAULT NULL,
798                      X_Reval_Amortization_Basis       NUMBER   DEFAULT NULL,
799                      X_Reval_Ceiling                  NUMBER   DEFAULT NULL,
800                      X_Ceiling_Name                   VARCHAR2 DEFAULT NULL,
801                      X_Eofy_Adj_Cost                  NUMBER   DEFAULT NULL,
802                      X_Eofy_Formula_Factor            NUMBER   DEFAULT NULL,
803                      X_Eofy_Reserve                   NUMBER   DEFAULT NULL,
804                      X_Eop_Adj_Cost                   NUMBER   DEFAULT NULL,
805                      X_Eop_Formula_Factor             NUMBER   DEFAULT NULL,
806                      X_Short_Fiscal_Year_Flag         VARCHAR2 DEFAULT NULL,
807                      X_Group_Asset_ID                 NUMBER   DEFAULT NULL,
808                      X_Super_Group_ID                 NUMBER   DEFAULT NULL,
809                      X_Over_Depreciate_Option         VARCHAR2 DEFAULT NULL,
810                      X_Fully_Rsvd_Revals_Counter      NUMBER   DEFAULT NULL,
811                      X_Capitalized_Flag               VARCHAR2 DEFAULT NULL,
812                      X_Fully_Reserved_Flag            VARCHAR2 DEFAULT NULL,
813                      X_Fully_Retired_Flag             VARCHAR2 DEFAULT NULL,
814                      X_Life_Complete_Flag             VARCHAR2 DEFAULT NULL,
815                      X_Terminal_Gain_Loss_Amount      NUMBER   DEFAULT NULL,
816                      X_Terminal_Gain_Loss_Flag        VARCHAR2 DEFAULT NULL,
817                      X_Deprn_Amount                   NUMBER   DEFAULT NULL,
818                      X_Ytd_Deprn                      NUMBER   DEFAULT NULL,
819                      X_Deprn_Reserve                  NUMBER   DEFAULT NULL,
820                      X_Bonus_Deprn_Amount             NUMBER   DEFAULT NULL,
821                      X_Bonus_Ytd_Deprn                NUMBER   DEFAULT NULL,
822                      X_Bonus_Deprn_Reserve            NUMBER   DEFAULT NULL,
823                      X_Bonus_Rate                     NUMBER   DEFAULT NULL,
824                      X_Ltd_Production                 NUMBER   DEFAULT NULL,
825                      X_Ytd_Production                 NUMBER   DEFAULT NULL,
826                      X_Production                     NUMBER   DEFAULT NULL,
827                      X_Reval_Amortization             NUMBER   DEFAULT NULL,
828                      X_Reval_Deprn_Expense            NUMBER   DEFAULT NULL,
829                      X_Reval_Reserve                  NUMBER   DEFAULT NULL,
830                      X_Ytd_Reval_Deprn_Expense        NUMBER   DEFAULT NULL,
831                      X_Deprn_Override_Flag            VARCHAR2 DEFAULT NULL,
832                      X_System_Deprn_Amount            NUMBER   DEFAULT NULL,
833                      X_System_Bonus_Deprn_Amount      NUMBER   DEFAULT NULL,
834                      X_Ytd_Proceeds_Of_Sale           NUMBER   DEFAULT NULL,
835                      X_Ltd_Proceeds_Of_Sale           NUMBER   DEFAULT NULL,
836                      X_Ytd_Cost_Of_Removal            NUMBER   DEFAULT NULL,
837                      X_Ltd_Cost_Of_Removal            NUMBER   DEFAULT NULL,
838                      X_Deprn_Adjustment_Amount        NUMBER   DEFAULT NULL,
839                      X_Expense_Adjustment_Amount      NUMBER   DEFAULT NULL,
840                      X_Unplanned_Amount               NUMBER   DEFAULT NULL,
841                      X_Reserve_Adjustment_Amount      NUMBER   DEFAULT NULL,
842                      X_Creation_Date                  DATE,
843                      X_Created_By                     NUMBER,
844                      X_Last_Update_Date               DATE,
845                      X_Last_Updated_By                NUMBER,
846                      X_Last_Update_Login              NUMBER   DEFAULT NULL,
847                      X_Change_In_Eofy_Reserve         NUMBER   DEFAULT NULL,
848                      X_Switch_Code                    VARCHAR2 DEFAULT NULL,
849                      X_MRC_Sob_Type_Code              VARCHAR2 DEFAULT 'P',
850                      X_Calling_Fn                     VARCHAR2,
851                p_log_level_rec in fa_api_types.log_level_rec_type default null) IS
852 
853 BEGIN
854 
855    if (X_mrc_sob_type_code = 'R') then
856       if X_Rowid is not null then
857          UPDATE fa_books_summary_mrc_v
858          SET
859           book_type_code             = decode(X_Book_Type_Code,
860                                               NULL, book_type_code,
861                                               FND_API.G_MISS_CHAR, NULL,
865                                               FND_API.G_MISS_NUM, NULL,
862                                               X_Book_Type_Code),
863           asset_id                   = decode(X_Asset_Id,
864                                               NULL, asset_id,
866                                               X_Asset_Id),
867           period_counter             = decode(X_period_counter,
868                                               NULL, period_counter,
869                                               FND_API.G_MISS_NUM, NULL,
870                                               X_Period_Counter),
871           fiscal_year                = decode(X_fiscal_year,
872                                               NULL, fiscal_year,
873                                               FND_API.G_MISS_NUM, NULL,
874                                               X_Fiscal_Year),
875           period_num                 = decode(X_period_num,
876                                               NULL, period_num,
877                                               FND_API.G_MISS_NUM, NULL,
878                                               X_Period_Num),
879           calendar_period_open_date  = decode(X_calendar_period_open_date,
880                                               NULL, calendar_period_open_date,
881                                               X_Calendar_Period_Open_Date),
882           calendar_period_close_date = decode(X_calendar_period_close_date,
883                                               NULL, calendar_period_close_date,
884                                               X_Calendar_Period_Close_Date),
885           reset_adjusted_cost_flag   = decode(X_reset_adjusted_cost_flag,
886                                               NULL, reset_adjusted_cost_flag,
887                                               FND_API.G_MISS_CHAR, NULL,
888                                               X_Reset_Adjusted_Cost_Flag),
889           change_in_cost             = decode(X_change_in_cost,
890                                               NULL, change_in_cost,
891                                               FND_API.G_MISS_NUM, NULL,
892                                               X_Change_In_Cost),
893           change_in_additions_cost   = decode(X_change_in_additions_cost,
894                                               NULL, change_in_additions_cost,
895                                               FND_API.G_MISS_NUM, NULL,
896                                               X_Change_In_Additions_Cost),
897           change_in_adjustments_cost = decode(X_change_in_adjustments_cost,
898                                               NULL, change_in_adjustments_cost,
899                                               FND_API.G_MISS_NUM, NULL,
900                                               X_Change_In_Adjustments_Cost),
901           change_in_retirements_cost = decode(X_change_in_retirements_cost,
902                                               NULL, change_in_retirements_cost,
903                                               FND_API.G_MISS_NUM, NULL,
904                                               X_Change_In_Retirements_Cost),
905           change_in_group_rec_cost   = decode(X_change_in_group_rec_cost,
906                                               NULL, change_in_group_rec_cost,
907                                               FND_API.G_MISS_NUM, NULL,
908                                               X_Change_In_Group_Rec_Cost),
909           change_in_cip_cost         = decode(X_change_in_cip_cost,
910                                               NULL, change_in_cip_cost,
911                                               FND_API.G_MISS_NUM, NULL,
912                                               X_Change_In_CIP_Cost),
913           cost                       = decode(X_cost,
914                                               NULL, cost,
915                                               FND_API.G_MISS_NUM, NULL,
916                                               X_Cost),
917           cip_cost                   = decode(X_cip_cost,
918                                               NULL, cip_cost,
919                                               FND_API.G_MISS_NUM, NULL,
920                                               X_CIP_Cost),
921           salvage_type               = decode(X_salvage_type,
922                                               NULL, salvage_type,
923                                               FND_API.G_MISS_CHAR, NULL,
924                                               X_Salvage_Type),
925           percent_salvage_value      = decode(X_percent_salvage_value,
926                                               NULL, percent_salvage_value,
927                                               FND_API.G_MISS_NUM, NULL,
928                                               X_Percent_Salvage_Value),
929           salvage_value              = decode(X_salvage_value,
930                                               NULL, salvage_value,
931                                               FND_API.G_MISS_NUM, NULL,
932                                               X_Salvage_Value),
933           member_salvage_value       = decode(X_member_salvage_value,
934                                               NULL, member_salvage_value,
935                                               FND_API.G_MISS_NUM, NULL,
936                                               X_Member_Salvage_Value),
937           recoverable_cost           = decode(X_recoverable_cost,
938                                               NULL, recoverable_cost,
939                                               FND_API.G_MISS_NUM, NULL,
940                                               X_Recoverable_Cost),
941           deprn_limit_type           = decode(X_deprn_limit_type,
942                                               NULL, deprn_limit_type,
946                                               NULL, allowed_deprn_limit,
943                                               FND_API.G_MISS_CHAR, NULL,
944                                               X_Deprn_Limit_Type),
945           allowed_deprn_limit        = decode(X_allowed_deprn_limit,
947                                               FND_API.G_MISS_NUM, NULL,
948                                               X_Allowed_Deprn_Limit),
949           allowed_deprn_limit_amount = decode(X_allowed_deprn_limit_amount,
950                                               NULL, allowed_deprn_limit_amount,
951                                               FND_API.G_MISS_NUM, NULL,
952                                               X_Allowed_Deprn_Limit_Amount),
953           member_deprn_limit_amount  = decode(X_member_deprn_limit_amount,
954                                               NULL, member_deprn_limit_amount,
955                                               FND_API.G_MISS_NUM, NULL,
956                                               X_Member_Deprn_Limit_Amount),
957           adjusted_recoverable_cost  = decode(X_adjusted_recoverable_cost,
958                                               NULL, adjusted_recoverable_cost,
959                                               FND_API.G_MISS_NUM, NULL,
960                                               X_Adjusted_Recoverable_Cost),
961           adjusted_cost              = decode(X_adjusted_cost,
962                                               NULL, adjusted_cost,
963                                               FND_API.G_MISS_NUM, NULL,
964                                               X_Adjusted_Cost),
965           depreciate_flag            = decode(X_depreciate_flag,
966                                               NULL, depreciate_flag,
967                                               FND_API.G_MISS_CHAR, NULL,
968                                               X_Depreciate_Flag),
969           disabled_flag              = decode(X_disabled_flag,
970                                               NULL, disabled_flag,
971                                               FND_API.G_MISS_CHAR, NULL,
972                                               X_Disabled_Flag),
973           date_placed_in_service     = decode(X_date_placed_in_service,
974                                               NULL, date_placed_in_service,
975                                               X_Date_Placed_In_Service),
976           deprn_method_code          = decode(X_deprn_method_code,
977                                               NULL, deprn_method_code,
978                                               FND_API.G_MISS_CHAR, NULL,
979                                               X_Deprn_Method_Code),
980           life_in_months             = decode(X_life_in_months,
981                                               NULL, life_in_months,
982                                               FND_API.G_MISS_NUM, NULL,
983                                               X_Life_In_Months),
984           rate_adjustment_factor     = decode(X_rate_adjustment_factor,
985                                               NULL, rate_adjustment_factor,
986                                               FND_API.G_MISS_NUM, NULL,
987                                               X_Rate_Adjustment_Factor),
988           adjusted_rate              = decode(X_adjusted_rate,
989                                               NULL, adjusted_rate,
990                                               FND_API.G_MISS_NUM, NULL,
991                                               X_Adjusted_Rate),
992           bonus_rule                 = decode(X_bonus_rule,
993                                               NULL, bonus_rule,
994                                               FND_API.G_MISS_CHAR, NULL,
995                                               X_Bonus_Rule),
996           adjusted_capacity          = decode(X_adjusted_capacity,
997                                               NULL, adjusted_capacity,
998                                               FND_API.G_MISS_NUM, NULL,
999                                               X_Adjusted_Capacity),
1000           production_capacity        = decode(X_production_capacity,
1001                                               NULL, production_capacity,
1002                                               FND_API.G_MISS_NUM, NULL,
1003                                               X_Production_Capacity),
1004           unit_of_measure            = decode(X_unit_of_measure,
1005                                               NULL, unit_of_measure,
1006                                               FND_API.G_MISS_CHAR, NULL,
1007                                               X_Unit_Of_Measure),
1008           remaining_life1            = decode(X_remaining_life1,
1009                                               NULL, remaining_life1,
1010                                               FND_API.G_MISS_NUM, NULL,
1011                                               X_Remaining_Life1),
1012           remaining_life2            = decode(X_remaining_life2,
1013                                               NULL, remaining_life2,
1014                                               FND_API.G_MISS_NUM, NULL,
1015                                               X_Remaining_Life2),
1016           formula_factor             = decode(X_formula_factor,
1017                                               NULL, formula_factor,
1018                                               FND_API.G_MISS_NUM, NULL,
1019                                               X_Formula_Factor),
1020           unrevalued_cost            = decode(X_unrevalued_cost,
1021                                               NULL, unrevalued_cost,
1022                                               FND_API.G_MISS_NUM, NULL,
1023                                               X_Unrevalued_Cost),
1024           reval_amortization_basis   = decode(X_reval_amortization_basis,
1028           reval_ceiling              = decode(X_reval_ceiling,
1025                                               NULL, reval_amortization_basis,
1026                                               FND_API.G_MISS_NUM, NULL,
1027                                               X_Reval_Amortization_Basis),
1029                                               NULL, reval_ceiling,
1030                                               FND_API.G_MISS_NUM, NULL,
1031                                               X_Reval_Ceiling),
1032           ceiling_name               = decode(X_ceiling_name,
1033                                               NULL, ceiling_name,
1034                                               FND_API.G_MISS_CHAR, NULL,
1035                                               X_Ceiling_Name),
1036           eofy_adj_cost              = decode(X_eofy_adj_cost,
1037                                               NULL, eofy_adj_cost,
1038                                               FND_API.G_MISS_NUM, NULL,
1039                                               X_Eofy_Adj_Cost),
1040           eofy_formula_factor        = decode(X_eofy_formula_factor,
1041                                               NULL, eofy_formula_factor,
1042                                               FND_API.G_MISS_NUM, NULL,
1043                                               X_Eofy_Formula_Factor),
1044           eofy_reserve               = decode(X_eofy_reserve,
1045                                               NULL, eofy_reserve,
1046                                               FND_API.G_MISS_NUM, NULL,
1047                                               X_Eofy_Reserve),
1048           eop_adj_cost               = decode(X_eop_adj_cost,
1049                                               NULL, eop_adj_cost,
1050                                               FND_API.G_MISS_NUM, NULL,
1051                                               X_Eop_Adj_Cost),
1052           eop_formula_factor         = decode(X_eop_formula_factor,
1053                                               NULL, eop_formula_factor,
1054                                               FND_API.G_MISS_NUM, NULL,
1055                                               X_Eop_Formula_Factor),
1056           short_fiscal_year_flag     = decode(X_short_fiscal_year_flag,
1057                                               NULL, short_fiscal_year_flag,
1058                                               FND_API.G_MISS_CHAR, NULL,
1059                                               X_Short_Fiscal_Year_Flag),
1060           group_asset_id             = decode(X_group_asset_id,
1061                                               NULL, group_asset_id,
1062                                               FND_API.G_MISS_NUM, NULL,
1063                                               X_Group_Asset_ID),
1064           super_group_id             = decode(X_super_group_id,
1065                                               NULL, super_group_id,
1066                                               FND_API.G_MISS_NUM, NULL,
1067                                               X_Super_Group_ID),
1068           over_depreciate_option     = decode(X_over_depreciate_option,
1069                                               NULL, over_depreciate_option,
1070                                               FND_API.G_MISS_CHAR, NULL,
1071                                               X_Over_Depreciate_Option),
1072           fully_rsvd_revals_counter  = decode(X_fully_rsvd_revals_counter,
1073                                               NULL, fully_rsvd_revals_counter,
1074                                               FND_API.G_MISS_NUM, NULL,
1075                                               X_Fully_Rsvd_Revals_Counter),
1076           capitalized_flag           = decode(X_capitalized_flag,
1077                                               NULL, capitalized_flag,
1078                                               FND_API.G_MISS_CHAR, NULL,
1079                                               X_Capitalized_Flag),
1080           fully_reserved_flag        = decode(X_fully_reserved_flag,
1081                                               NULL, fully_reserved_flag,
1082                                               FND_API.G_MISS_CHAR, NULL,
1083                                               X_Fully_Reserved_Flag),
1084           fully_retired_flag         = decode(X_fully_retired_flag,
1085                                               NULL, fully_retired_flag,
1086                                               FND_API.G_MISS_CHAR, NULL,
1087                                               X_Fully_Retired_Flag),
1088           life_complete_flag         = decode(X_life_complete_flag,
1089                                               NULL, life_complete_flag,
1090                                               FND_API.G_MISS_CHAR, NULL,
1091                                               X_Life_Complete_Flag),
1092           terminal_gain_loss_amount  = decode(X_terminal_gain_loss_amount,
1093                                               NULL, terminal_gain_loss_amount,
1094                                               FND_API.G_MISS_NUM, NULL,
1095                                               X_Terminal_Gain_Loss_Amount),
1096           terminal_gain_loss_flag    = decode(X_terminal_gain_loss_flag,
1097                                               NULL, terminal_gain_loss_flag,
1098                                               FND_API.G_MISS_CHAR, NULL,
1099                                               X_Terminal_Gain_Loss_Flag),
1100           deprn_amount               = decode(X_deprn_amount,
1101                                               NULL, deprn_amount,
1102                                               FND_API.G_MISS_NUM, NULL,
1103                                               X_Deprn_Amount),
1104           ytd_deprn                  = decode(X_ytd_deprn,
1105                                               NULL, ytd_deprn,
1106                                               FND_API.G_MISS_NUM, NULL,
1110                                               FND_API.G_MISS_NUM, NULL,
1107                                               X_Ytd_Deprn),
1108           deprn_reserve              = decode(X_deprn_reserve,
1109                                               NULL, deprn_reserve,
1111                                               X_Deprn_Reserve),
1112           bonus_deprn_amount         = decode(X_bonus_deprn_amount,
1113                                               NULL, bonus_deprn_amount,
1114                                               FND_API.G_MISS_NUM, NULL,
1115                                               X_Bonus_Deprn_Amount),
1116           bonus_ytd_deprn            = decode(X_bonus_ytd_deprn,
1117                                               NULL, bonus_ytd_deprn,
1118                                               FND_API.G_MISS_NUM, NULL,
1119                                               X_Bonus_Ytd_Deprn),
1120           bonus_deprn_reserve        = decode(X_bonus_deprn_reserve,
1121                                               NULL, bonus_deprn_reserve,
1122                                               FND_API.G_MISS_NUM, NULL,
1123                                               X_Bonus_Deprn_Reserve),
1124           bonus_rate                 = decode(X_bonus_rate,
1125                                               NULL, bonus_rate,
1126                                               FND_API.G_MISS_NUM, NULL,
1127                                               X_Bonus_Rate),
1128           ltd_production             = decode(X_ltd_production,
1129                                               NULL, ltd_production,
1130                                               FND_API.G_MISS_NUM, NULL,
1131                                               X_Ltd_Production),
1132           ytd_production             = decode(X_ytd_production,
1133                                               NULL, ytd_production,
1134                                               FND_API.G_MISS_NUM, NULL,
1135                                               X_Ytd_Production),
1136           production                 = decode(X_production,
1137                                               NULL, production,
1138                                               FND_API.G_MISS_NUM, NULL,
1139                                               X_Production),
1140           reval_amortization         = decode(X_reval_amortization,
1141                                               NULL, reval_amortization,
1142                                               FND_API.G_MISS_NUM, NULL,
1143                                               X_Reval_Amortization),
1144           reval_deprn_expense        = decode(X_reval_deprn_expense,
1145                                               NULL, reval_deprn_expense,
1146                                               FND_API.G_MISS_NUM, NULL,
1147                                               X_Reval_Deprn_Expense),
1148           reval_reserve              = decode(X_reval_reserve,
1149                                               NULL, reval_reserve,
1150                                               FND_API.G_MISS_NUM, NULL,
1151                                               X_Reval_Reserve),
1152           ytd_reval_deprn_expense    = decode(X_ytd_reval_deprn_expense,
1153                                               NULL, ytd_reval_deprn_expense,
1154                                               FND_API.G_MISS_NUM, NULL,
1155                                               X_Ytd_Reval_Deprn_Expense),
1156           deprn_override_flag        = decode(X_deprn_override_flag,
1157                                               NULL, deprn_override_flag,
1158                                               FND_API.G_MISS_CHAR, NULL,
1159                                               X_Deprn_Override_Flag),
1160           system_deprn_amount        = decode(X_system_deprn_amount,
1161                                               NULL, system_deprn_amount,
1162                                               FND_API.G_MISS_NUM, NULL,
1163                                               X_System_Deprn_Amount),
1164           system_bonus_deprn_amount  = decode(X_system_bonus_deprn_amount,
1165                                               NULL, system_bonus_deprn_amount,
1166                                               FND_API.G_MISS_NUM, NULL,
1167                                               X_System_Bonus_Deprn_Amount),
1168           ytd_proceeds_of_sale       = decode(X_ytd_proceeds_of_sale,
1169                                               NULL, ytd_proceeds_of_sale,
1170                                               FND_API.G_MISS_NUM, NULL,
1171                                               X_Ytd_Proceeds_Of_Sale),
1172           ltd_proceeds_of_sale       = decode(X_ltd_proceeds_of_sale,
1173                                               NULL, ltd_proceeds_of_sale,
1174                                               FND_API.G_MISS_NUM, NULL,
1175                                               X_Ltd_Proceeds_Of_Sale),
1176           ytd_cost_of_removal        = decode(X_ytd_cost_of_removal,
1177                                               NULL, ytd_cost_of_removal,
1178                                               FND_API.G_MISS_NUM, NULL,
1179                                               X_Ytd_Cost_Of_Removal),
1180           ltd_cost_of_removal        = decode(X_ltd_cost_of_removal,
1181                                               NULL, ltd_cost_of_removal,
1182                                               FND_API.G_MISS_NUM, NULL,
1183                                               X_Ltd_Cost_Of_Removal),
1187                                               X_Deprn_Adjustment_Amount),
1184           deprn_adjustment_amount    = decode(X_deprn_adjustment_amount,
1185                                               NULL, deprn_adjustment_amount,
1186                                               FND_API.G_MISS_NUM, NULL,
1188           expense_adjustment_amount  = decode(X_expense_adjustment_amount,
1189                                               NULL, expense_adjustment_amount,
1190                                               FND_API.G_MISS_NUM, NULL,
1191                                               X_Expense_Adjustment_Amount),
1192           unplanned_amount           = decode(X_unplanned_amount,
1193                                               NULL, unplanned_amount,
1194                                               FND_API.G_MISS_NUM, NULL,
1195                                               X_Unplanned_Amount),
1196           reserve_adjustment_amount  = decode(X_reserve_adjustment_amount,
1197                                               NULL, reserve_adjustment_amount,
1198                                               FND_API.G_MISS_NUM, NULL,
1199                                               X_Reserve_Adjustment_Amount),
1200           creation_date              = decode(X_creation_date,
1201                                               NULL, creation_date,
1202                                               X_Creation_Date),
1203           created_by                 = decode(X_created_by,
1204                                               NULL, created_by,
1205                                               FND_API.G_MISS_NUM, NULL,
1206                                               X_Created_By),
1207           last_update_date           = decode(X_last_update_date,
1208                                               NULL, last_update_date,
1209                                               X_Last_Update_Date),
1210           last_updated_by            = decode(X_last_updated_by,
1211                                               NULL, last_updated_by,
1212                                               FND_API.G_MISS_NUM, NULL,
1213                                               X_Last_Updated_By),
1214           last_update_login          = decode(X_last_update_login,
1215                                               NULL, last_update_login,
1216                                               FND_API.G_MISS_NUM, NULL,
1217                                               X_Last_Update_Login),
1218           change_in_eofy_reserve     = decode(X_change_in_eofy_reserve,
1219                                               NULL, change_in_eofy_reserve,
1220                                               FND_API.G_MISS_NUM, NULL,
1221                                               X_Change_In_Eofy_Reserve),
1222           switch_code                = decode(X_switch_code,
1223                                               NULL, switch_code,
1224                                               FND_API.G_MISS_CHAR, NULL,
1225                                               X_Switch_Code)
1226          WHERE asset_id = X_Asset_Id
1227          AND   book_type_code = X_Book_Type_Code
1228          AND   period_counter = X_Period_Counter;
1229       end if;
1230    else
1231       if X_Rowid is not null then
1232          UPDATE fa_books_summary
1233             SET
1234           book_type_code             = decode(X_Book_Type_Code,
1235                                               NULL, book_type_code,
1236                                               FND_API.G_MISS_CHAR, NULL,
1237                                               X_Book_Type_Code),
1238           asset_id                   = decode(X_Asset_Id,
1239                                               NULL, asset_id,
1240                                               FND_API.G_MISS_NUM, NULL,
1241                                               X_Asset_Id),
1242           period_counter             = decode(X_period_counter,
1243                                               NULL, period_counter,
1244                                               FND_API.G_MISS_NUM, NULL,
1245                                               X_Period_Counter),
1246           fiscal_year                = decode(X_fiscal_year,
1247                                               NULL, fiscal_year,
1248                                               FND_API.G_MISS_NUM, NULL,
1249                                               X_Fiscal_Year),
1250           period_num                 = decode(X_period_num,
1251                                               NULL, period_num,
1252                                               FND_API.G_MISS_NUM, NULL,
1253                                               X_Period_Num),
1254           calendar_period_open_date  = decode(X_calendar_period_open_date,
1255                                               NULL, calendar_period_open_date,
1256                                               X_Calendar_Period_Open_Date),
1257           calendar_period_close_date = decode(X_calendar_period_close_date,
1258                                               NULL, calendar_period_close_date,
1259                                               X_Calendar_Period_Close_Date),
1260           reset_adjusted_cost_flag   = decode(X_reset_adjusted_cost_flag,
1261                                               NULL, reset_adjusted_cost_flag,
1262                                               FND_API.G_MISS_CHAR, NULL,
1263                                               X_Reset_Adjusted_Cost_Flag),
1264           change_in_cost             = decode(X_change_in_cost,
1265                                               NULL, change_in_cost,
1266                                               FND_API.G_MISS_NUM, NULL,
1267                                               X_Change_In_Cost),
1271                                               X_Change_In_Additions_Cost),
1268           change_in_additions_cost   = decode(X_change_in_additions_cost,
1269                                               NULL, change_in_additions_cost,
1270                                               FND_API.G_MISS_NUM, NULL,
1272           change_in_adjustments_cost = decode(X_change_in_adjustments_cost,
1273                                               NULL, change_in_adjustments_cost,
1274                                               FND_API.G_MISS_NUM, NULL,
1275                                               X_Change_In_Adjustments_Cost),
1276           change_in_retirements_cost = decode(X_change_in_retirements_cost,
1277                                               NULL, change_in_retirements_cost,
1278                                               FND_API.G_MISS_NUM, NULL,
1279                                               X_Change_In_Retirements_Cost),
1280           change_in_group_rec_cost   = decode(X_change_in_group_rec_cost,
1281                                               NULL, change_in_group_rec_cost,
1282                                               FND_API.G_MISS_NUM, NULL,
1283                                               X_Change_In_Group_Rec_Cost),
1284           change_in_cip_cost         = decode(X_change_in_cip_cost,
1285                                               NULL, change_in_cip_cost,
1286                                               FND_API.G_MISS_NUM, NULL,
1287                                               X_Change_In_CIP_Cost),
1288           cost                       = decode(X_cost,
1289                                               NULL, cost,
1290                                               FND_API.G_MISS_NUM, NULL,
1291                                               X_Cost),
1292           cip_cost                   = decode(X_cip_cost,
1293                                               NULL, cip_cost,
1294                                               FND_API.G_MISS_NUM, NULL,
1295                                               X_CIP_Cost),
1296           salvage_type               = decode(X_salvage_type,
1297                                               NULL, salvage_type,
1298                                               FND_API.G_MISS_CHAR, NULL,
1299                                               X_Salvage_Type),
1300           percent_salvage_value      = decode(X_percent_salvage_value,
1301                                               NULL, percent_salvage_value,
1302                                               FND_API.G_MISS_NUM, NULL,
1303                                               X_Percent_Salvage_Value),
1304           salvage_value              = decode(X_salvage_value,
1305                                               NULL, salvage_value,
1306                                               FND_API.G_MISS_NUM, NULL,
1307                                               X_Salvage_Value),
1308           member_salvage_value       = decode(X_member_salvage_value,
1309                                               NULL, member_salvage_value,
1310                                               FND_API.G_MISS_NUM, NULL,
1311                                               X_Member_Salvage_Value),
1312           recoverable_cost           = decode(X_recoverable_cost,
1313                                               NULL, recoverable_cost,
1314                                               FND_API.G_MISS_NUM, NULL,
1315                                               X_Recoverable_Cost),
1316           deprn_limit_type           = decode(X_deprn_limit_type,
1317                                               NULL, deprn_limit_type,
1318                                               FND_API.G_MISS_CHAR, NULL,
1319                                               X_Deprn_Limit_Type),
1320           allowed_deprn_limit        = decode(X_allowed_deprn_limit,
1321                                               NULL, allowed_deprn_limit,
1322                                               FND_API.G_MISS_NUM, NULL,
1323                                               X_Allowed_Deprn_Limit),
1324           allowed_deprn_limit_amount = decode(X_allowed_deprn_limit_amount,
1325                                               NULL, allowed_deprn_limit_amount,
1326                                               FND_API.G_MISS_NUM, NULL,
1327                                               X_Allowed_Deprn_Limit_Amount),
1328           member_deprn_limit_amount  = decode(X_member_deprn_limit_amount,
1329                                               NULL, member_deprn_limit_amount,
1330                                               FND_API.G_MISS_NUM, NULL,
1331                                               X_Member_Deprn_Limit_Amount),
1332           adjusted_recoverable_cost  = decode(X_adjusted_recoverable_cost,
1333                                               NULL, adjusted_recoverable_cost,
1334                                               FND_API.G_MISS_NUM, NULL,
1335                                               X_Adjusted_Recoverable_Cost),
1336           adjusted_cost              = decode(X_adjusted_cost,
1337                                               NULL, adjusted_cost,
1338                                               FND_API.G_MISS_NUM, NULL,
1339                                               X_Adjusted_Cost),
1340           depreciate_flag            = decode(X_depreciate_flag,
1341                                               NULL, depreciate_flag,
1342                                               FND_API.G_MISS_CHAR, NULL,
1343                                               X_Depreciate_Flag),
1344           disabled_flag              = decode(X_disabled_flag,
1345                                               NULL, disabled_flag,
1346                                               FND_API.G_MISS_CHAR, NULL,
1347                                               X_Disabled_Flag),
1348           date_placed_in_service     = decode(X_date_placed_in_service,
1352                                               NULL, deprn_method_code,
1349                                               NULL, date_placed_in_service,
1350                                               X_Date_Placed_In_Service),
1351           deprn_method_code          = decode(X_deprn_method_code,
1353                                               FND_API.G_MISS_CHAR, NULL,
1354                                               X_Deprn_Method_Code),
1355           life_in_months             = decode(X_life_in_months,
1356                                               NULL, life_in_months,
1357                                               FND_API.G_MISS_NUM, NULL,
1358                                               X_Life_In_Months),
1359           rate_adjustment_factor     = decode(X_rate_adjustment_factor,
1360                                               NULL, rate_adjustment_factor,
1361                                               FND_API.G_MISS_NUM, NULL,
1362                                               X_Rate_Adjustment_Factor),
1363           adjusted_rate              = decode(X_adjusted_rate,
1364                                               NULL, adjusted_rate,
1365                                               FND_API.G_MISS_NUM, NULL,
1366                                               X_Adjusted_Rate),
1367           bonus_rule                 = decode(X_bonus_rule,
1368                                               NULL, bonus_rule,
1369                                               FND_API.G_MISS_CHAR, NULL,
1370                                               X_Bonus_Rule),
1371           adjusted_capacity          = decode(X_adjusted_capacity,
1372                                               NULL, adjusted_capacity,
1373                                               FND_API.G_MISS_NUM, NULL,
1374                                               X_Adjusted_Capacity),
1375           production_capacity        = decode(X_production_capacity,
1376                                               NULL, production_capacity,
1377                                               FND_API.G_MISS_NUM, NULL,
1378                                               X_Production_Capacity),
1379           unit_of_measure            = decode(X_unit_of_measure,
1380                                               NULL, unit_of_measure,
1381                                               FND_API.G_MISS_CHAR, NULL,
1382                                               X_Unit_Of_Measure),
1383           remaining_life1            = decode(X_remaining_life1,
1384                                               NULL, remaining_life1,
1385                                               FND_API.G_MISS_NUM, NULL,
1386                                               X_Remaining_Life1),
1387           remaining_life2            = decode(X_remaining_life2,
1388                                               NULL, remaining_life2,
1389                                               FND_API.G_MISS_NUM, NULL,
1390                                               X_Remaining_Life2),
1391           formula_factor             = decode(X_formula_factor,
1392                                               NULL, formula_factor,
1393                                               FND_API.G_MISS_NUM, NULL,
1394                                               X_Formula_Factor),
1395           unrevalued_cost            = decode(X_unrevalued_cost,
1396                                               NULL, unrevalued_cost,
1397                                               FND_API.G_MISS_NUM, NULL,
1398                                               X_Unrevalued_Cost),
1399           reval_amortization_basis   = decode(X_reval_amortization_basis,
1400                                               NULL, reval_amortization_basis,
1401                                               FND_API.G_MISS_NUM, NULL,
1402                                               X_Reval_Amortization_Basis),
1403           reval_ceiling              = decode(X_reval_ceiling,
1404                                               NULL, reval_ceiling,
1405                                               FND_API.G_MISS_NUM, NULL,
1406                                               X_Reval_Ceiling),
1407           ceiling_name               = decode(X_ceiling_name,
1408                                               NULL, ceiling_name,
1409                                               FND_API.G_MISS_CHAR, NULL,
1410                                               X_Ceiling_Name),
1411           eofy_adj_cost              = decode(X_eofy_adj_cost,
1412                                               NULL, eofy_adj_cost,
1413                                               FND_API.G_MISS_NUM, NULL,
1414                                               X_Eofy_Adj_Cost),
1415           eofy_formula_factor        = decode(X_eofy_formula_factor,
1416                                               NULL, eofy_formula_factor,
1417                                               FND_API.G_MISS_NUM, NULL,
1418                                               X_Eofy_Formula_Factor),
1419           eofy_reserve               = decode(X_eofy_reserve,
1420                                               NULL, eofy_reserve,
1421                                               FND_API.G_MISS_NUM, NULL,
1422                                               X_Eofy_Reserve),
1423           eop_adj_cost               = decode(X_eop_adj_cost,
1424                                               NULL, eop_adj_cost,
1425                                               FND_API.G_MISS_NUM, NULL,
1426                                               X_Eop_Adj_Cost),
1427           eop_formula_factor         = decode(X_eop_formula_factor,
1428                                               NULL, eop_formula_factor,
1432                                               NULL, short_fiscal_year_flag,
1429                                               FND_API.G_MISS_NUM, NULL,
1430                                               X_Eop_Formula_Factor),
1431           short_fiscal_year_flag     = decode(X_short_fiscal_year_flag,
1433                                               FND_API.G_MISS_CHAR, NULL,
1434                                               X_Short_Fiscal_Year_Flag),
1435           group_asset_id             = decode(X_group_asset_id,
1436                                               NULL, group_asset_id,
1437                                               FND_API.G_MISS_NUM, NULL,
1438                                               X_Group_Asset_ID),
1439           super_group_id             = decode(X_super_group_id,
1440                                               NULL, super_group_id,
1441                                               FND_API.G_MISS_NUM, NULL,
1442                                               X_Super_Group_ID),
1443           over_depreciate_option     = decode(X_over_depreciate_option,
1444                                               NULL, over_depreciate_option,
1445                                               FND_API.G_MISS_CHAR, NULL,
1446                                               X_Over_Depreciate_Option),
1447           fully_rsvd_revals_counter  = decode(X_fully_rsvd_revals_counter,
1448                                               NULL, fully_rsvd_revals_counter,
1449                                               FND_API.G_MISS_NUM, NULL,
1450                                               X_Fully_Rsvd_Revals_Counter),
1451           capitalized_flag           = decode(X_capitalized_flag,
1452                                               NULL, capitalized_flag,
1453                                               FND_API.G_MISS_CHAR, NULL,
1454                                               X_Capitalized_Flag),
1455           fully_reserved_flag        = decode(X_fully_reserved_flag,
1456                                               NULL, fully_reserved_flag,
1457                                               FND_API.G_MISS_CHAR, NULL,
1458                                               X_Fully_Reserved_Flag),
1459           fully_retired_flag         = decode(X_fully_retired_flag,
1460                                               NULL, fully_retired_flag,
1461                                               FND_API.G_MISS_CHAR, NULL,
1462                                               X_Fully_Retired_Flag),
1463           life_complete_flag         = decode(X_life_complete_flag,
1464                                               NULL, life_complete_flag,
1465                                               FND_API.G_MISS_CHAR, NULL,
1466                                               X_Life_Complete_Flag),
1467           terminal_gain_loss_amount  = decode(X_terminal_gain_loss_amount,
1468                                               NULL, terminal_gain_loss_amount,
1469                                               FND_API.G_MISS_NUM, NULL,
1470                                               X_Terminal_Gain_Loss_Amount),
1471           terminal_gain_loss_flag    = decode(X_terminal_gain_loss_flag,
1472                                               NULL, terminal_gain_loss_flag,
1473                                               FND_API.G_MISS_CHAR, NULL,
1474                                               X_Terminal_Gain_Loss_Flag),
1475           deprn_amount               = decode(X_deprn_amount,
1476                                               NULL, deprn_amount,
1477                                               FND_API.G_MISS_NUM, NULL,
1478                                               X_Deprn_Amount),
1479           ytd_deprn                  = decode(X_ytd_deprn,
1480                                               NULL, ytd_deprn,
1481                                               FND_API.G_MISS_NUM, NULL,
1482                                               X_Ytd_Deprn),
1483           deprn_reserve              = decode(X_deprn_reserve,
1484                                               NULL, deprn_reserve,
1485                                               FND_API.G_MISS_NUM, NULL,
1486                                               X_Deprn_Reserve),
1487           bonus_deprn_amount         = decode(X_bonus_deprn_amount,
1488                                               NULL, bonus_deprn_amount,
1489                                               FND_API.G_MISS_NUM, NULL,
1490                                               X_Bonus_Deprn_Amount),
1491           bonus_ytd_deprn            = decode(X_bonus_ytd_deprn,
1492                                               NULL, bonus_ytd_deprn,
1493                                               FND_API.G_MISS_NUM, NULL,
1494                                               X_Bonus_Ytd_Deprn),
1495           bonus_deprn_reserve        = decode(X_bonus_deprn_reserve,
1496                                               NULL, bonus_deprn_reserve,
1497                                               FND_API.G_MISS_NUM, NULL,
1498                                               X_Bonus_Deprn_Reserve),
1499           bonus_rate                 = decode(X_bonus_rate,
1500                                               NULL, bonus_rate,
1501                                               FND_API.G_MISS_NUM, NULL,
1502                                               X_Bonus_Rate),
1503           ltd_production             = decode(X_ltd_production,
1504                                               NULL, ltd_production,
1505                                               FND_API.G_MISS_NUM, NULL,
1506                                               X_Ltd_Production),
1507           ytd_production             = decode(X_ytd_production,
1508                                               NULL, ytd_production,
1509                                               FND_API.G_MISS_NUM, NULL,
1510                                               X_Ytd_Production),
1514                                               X_Production),
1511           production                 = decode(X_production,
1512                                               NULL, production,
1513                                               FND_API.G_MISS_NUM, NULL,
1515           reval_amortization         = decode(X_reval_amortization,
1516                                               NULL, reval_amortization,
1517                                               FND_API.G_MISS_NUM, NULL,
1518                                               X_Reval_Amortization),
1519           reval_deprn_expense        = decode(X_reval_deprn_expense,
1520                                               NULL, reval_deprn_expense,
1521                                               FND_API.G_MISS_NUM, NULL,
1522                                               X_Reval_Deprn_Expense),
1523           reval_reserve              = decode(X_reval_reserve,
1524                                               NULL, reval_reserve,
1525                                               FND_API.G_MISS_NUM, NULL,
1526                                               X_Reval_Reserve),
1527           ytd_reval_deprn_expense    = decode(X_ytd_reval_deprn_expense,
1528                                               NULL, ytd_reval_deprn_expense,
1529                                               FND_API.G_MISS_NUM, NULL,
1530                                               X_Ytd_Reval_Deprn_Expense),
1531           deprn_override_flag        = decode(X_deprn_override_flag,
1532                                               NULL, deprn_override_flag,
1533                                               FND_API.G_MISS_CHAR, NULL,
1534                                               X_Deprn_Override_Flag),
1535           system_deprn_amount        = decode(X_system_deprn_amount,
1536                                               NULL, system_deprn_amount,
1537                                               FND_API.G_MISS_NUM, NULL,
1538                                               X_System_Deprn_Amount),
1539           system_bonus_deprn_amount  = decode(X_system_bonus_deprn_amount,
1540                                               NULL, system_bonus_deprn_amount,
1541                                               FND_API.G_MISS_NUM, NULL,
1542                                               X_System_Bonus_Deprn_Amount),
1543           ytd_proceeds_of_sale       = decode(X_ytd_proceeds_of_sale,
1544                                               NULL, ytd_proceeds_of_sale,
1545                                               FND_API.G_MISS_NUM, NULL,
1546                                               X_Ytd_Proceeds_Of_Sale),
1547           ltd_proceeds_of_sale       = decode(X_ltd_proceeds_of_sale,
1548                                               NULL, ltd_proceeds_of_sale,
1549                                               FND_API.G_MISS_NUM, NULL,
1550                                               X_Ltd_Proceeds_Of_Sale),
1551           ytd_cost_of_removal        = decode(X_ytd_cost_of_removal,
1552                                               NULL, ytd_cost_of_removal,
1553                                               FND_API.G_MISS_NUM, NULL,
1554                                               X_Ytd_Cost_Of_Removal),
1555           ltd_cost_of_removal        = decode(X_ltd_cost_of_removal,
1556                                               NULL, ltd_cost_of_removal,
1557                                               FND_API.G_MISS_NUM, NULL,
1558                                               X_Ltd_Cost_Of_Removal),
1559           deprn_adjustment_amount    = decode(X_deprn_adjustment_amount,
1560                                               NULL, deprn_adjustment_amount,
1561                                               FND_API.G_MISS_NUM, NULL,
1562                                               X_Deprn_Adjustment_Amount),
1563           expense_adjustment_amount  = decode(X_expense_adjustment_amount,
1564                                               NULL, expense_adjustment_amount,
1565                                               FND_API.G_MISS_NUM, NULL,
1566                                               X_Expense_Adjustment_Amount),
1567           unplanned_amount           = decode(X_unplanned_amount,
1568                                               NULL, unplanned_amount,
1569                                               FND_API.G_MISS_NUM, NULL,
1570                                               X_Unplanned_Amount),
1571           reserve_adjustment_amount  = decode(X_reserve_adjustment_amount,
1572                                               NULL, reserve_adjustment_amount,
1573                                               FND_API.G_MISS_NUM, NULL,
1574                                               X_Reserve_Adjustment_Amount),
1575           creation_date              = decode(X_creation_date,
1576                                               NULL, creation_date,
1577                                               X_Creation_Date),
1578           created_by                 = decode(X_created_by,
1579                                               NULL, created_by,
1580                                               FND_API.G_MISS_NUM, NULL,
1581                                               X_Created_By),
1582           last_update_date           = decode(X_last_update_date,
1583                                               NULL, last_update_date,
1584                                               X_Last_Update_Date),
1585           last_updated_by            = decode(X_last_updated_by,
1586                                               NULL, last_updated_by,
1587                                               FND_API.G_MISS_NUM, NULL,
1588                                               X_Last_Updated_By),
1589           last_update_login          = decode(X_last_update_login,
1590                                               NULL, last_update_login,
1594                                               NULL, change_in_eofy_reserve,
1591                                               FND_API.G_MISS_NUM, NULL,
1592                                               X_Last_Update_Login),
1593           change_in_eofy_reserve     = decode(X_change_in_eofy_reserve,
1595                                               FND_API.G_MISS_NUM, NULL,
1596                                               X_Change_In_Eofy_Reserve),
1597           switch_code                = decode(X_switch_code,
1598                                               NULL, switch_code,
1599                                               FND_API.G_MISS_CHAR, NULL,
1600                                               X_Switch_Code)
1601          WHERE asset_id = X_Asset_Id
1602          AND   book_type_code = X_Book_Type_Code
1603          AND   period_counter = X_Period_Counter;
1604       end if;
1605    end if;
1606    --
1607    if (SQL%NOTFOUND) then
1608       Raise NO_DATA_FOUND;
1609    end if;
1610 
1611 EXCEPTION
1612    WHEN OTHERS THEN
1613       fa_srvr_msg.add_sql_error(
1614          calling_fn => 'fa_books_summary_pkg.update_row'
1615          ,p_log_level_rec => p_log_level_rec);
1616       raise;
1617 END Update_Row;
1618 
1619 PROCEDURE Delete_Row(X_Rowid                          VARCHAR2 DEFAULT NULL,
1620                      X_Book_Type_Code                 VARCHAR2,
1621                      X_Asset_Id                       NUMBER,
1622                      X_Period_Counter                 NUMBER,
1623                      X_MRC_Sob_Type_Code              VARCHAR2 DEFAULT 'P',
1624                      X_Calling_Fn                     VARCHAR2,
1625            p_log_level_rec in fa_api_types.log_level_rec_type default null) IS
1626 
1627 BEGIN
1628 
1629    if (X_mrc_sob_type_code = 'R') then
1630       if (X_Rowid is not null) then
1631          DELETE FROM fa_books_summary_mrc_v
1632          WHERE rowid = X_Rowid;
1633       elsif ((X_Asset_ID is not null) AND
1634              (X_Book_Type_Code is not null) AND
1635              (X_Period_Counter is not null)) then
1636          DELETE FROM fa_books_summary_mrc_v
1637          WHERE asset_id = X_Asset_ID
1638          AND   book_type_code = X_Book_Type_Code
1639          AND   period_counter = X_Period_Counter;
1640       elsif (X_Asset_Id is not null) then
1641          DELETE FROM fa_books_summary_mrc_v
1642          WHERE asset_id = X_Asset_Id;
1643       else
1644          -- print some error message
1645          null;
1646       end if;
1647    else
1648       if (X_Rowid is not null) then
1649          DELETE FROM fa_books_summary
1650          WHERE rowid = X_Rowid;
1651       elsif ((X_Asset_ID is not null) AND
1652              (X_Book_Type_Code is not null) AND
1653              (X_Period_Counter is not null)) then
1654          DELETE FROM fa_books_summary
1655          WHERE asset_id = X_Asset_ID
1656          AND   book_type_code = X_Book_Type_Code
1657          AND   period_counter = X_Period_Counter;
1658       elsif (X_Asset_Id is not null) then
1659          DELETE FROM fa_books_summary
1660          WHERE asset_id = X_Asset_Id;
1661       else
1662          -- print some error message
1663          null;
1664       end if;
1665    end if;
1666 
1667    if (SQL%NOTFOUND) then
1668       Raise NO_DATA_FOUND;
1669    end if;
1670 
1671 EXCEPTION
1672    WHEN OTHERS THEN
1673       FA_STANDARD_PKG.RAISE_ERROR(
1674           CALLED_FN => 'fa_books_summary_pkg.delete_row',
1675           CALLING_FN => X_Calling_Fn
1676           ,p_log_level_rec => p_log_level_rec);
1677 END Delete_Row;
1678 
1679 END FA_BOOKS_SUMMARY_PKG;