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