DBA Data[Home] [Help]

PACKAGE BODY: APPS.FA_DEPRN_DETAIL_PKG

Source


1 PACKAGE BODY FA_DEPRN_DETAIL_PKG as
2 /* $Header: faxiddb.pls 120.5 2009/04/15 14:35:57 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_Distribution_Id                NUMBER,
9                        X_Deprn_Source_Code              VARCHAR2,
10                        X_Deprn_Run_Date                 DATE,
11                        X_Deprn_Amount                   NUMBER,
12                        X_Ytd_Deprn                      NUMBER,
13                        X_Deprn_Reserve                  NUMBER,
14                        X_Addition_Cost_To_Clear         NUMBER DEFAULT NULL,
15                        X_Cost                           NUMBER DEFAULT NULL,
16                        X_Deprn_Adjustment_Amount        NUMBER DEFAULT NULL,
17                        X_Deprn_Expense_Je_Line_Num      NUMBER DEFAULT NULL,
18                        X_Deprn_Reserve_Je_Line_Num      NUMBER DEFAULT NULL,
19                        X_Reval_Amort_Je_Line_Num        NUMBER DEFAULT NULL,
20                        X_Reval_Reserve_Je_Line_Num      NUMBER DEFAULT NULL,
21                        X_Je_Header_Id                   NUMBER DEFAULT NULL,
22                        X_Reval_Amortization             NUMBER DEFAULT NULL,
23                        X_Reval_Deprn_Expense            NUMBER DEFAULT NULL,
24                        X_Reval_Reserve                  NUMBER DEFAULT NULL,
25                        X_Ytd_Reval_Deprn_Expense        NUMBER DEFAULT NULL,
26                        X_Bonus_Deprn_Amount             NUMBER DEFAULT NULL,
27                        X_Bonus_Ytd_Deprn                NUMBER DEFAULT NULL,
28                        X_Bonus_Deprn_Reserve            NUMBER DEFAULT NULL,
29                        X_mrc_sob_type_code              VARCHAR2 DEFAULT 'P',
30                        X_set_of_books_id                NUMBER ,
31                        X_Calling_Fn                     VARCHAR2
32   , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) IS
33 
34     CURSOR C_dd IS SELECT rowid FROM fa_deprn_detail
35                  WHERE distribution_id = X_Distribution_Id
36                  AND   book_type_code = X_Book_Type_Code
37                  AND   period_counter = X_Period_Counter;
38     CURSOR C_dd_mc IS SELECT rowid FROM fa_mc_deprn_detail
39                  WHERE distribution_id = X_Distribution_Id
40                  AND   book_type_code = X_Book_Type_Code
41                  AND   period_counter = X_Period_Counter
42                  AND   set_of_books_id = X_set_of_books_id;
43 
44    BEGIN
45 
46        if (X_mrc_sob_type_code = 'R') then
47 
48           INSERT INTO fa_mc_deprn_detail(
49               set_of_books_id,
50               book_type_code,
51               asset_id,
52               period_counter,
53               distribution_id,
54               deprn_source_code,
55               deprn_run_date,
56               deprn_amount,
57               ytd_deprn,
58               deprn_reserve,
59               addition_cost_to_clear,
60               cost,
61               deprn_adjustment_amount,
62               deprn_expense_je_line_num,
63               deprn_reserve_je_line_num,
64               reval_amort_je_line_num,
65               reval_reserve_je_line_num,
66               je_header_id,
67               reval_amortization,
68               reval_deprn_expense,
69               reval_reserve,
70               ytd_reval_deprn_expense,
71               bonus_deprn_amount,
72               bonus_ytd_deprn,
73               bonus_deprn_reserve
74              ) VALUES (
75               X_set_of_books_id,
76               X_Book_Type_Code,
77               X_Asset_Id,
78               X_Period_Counter,
79               X_Distribution_Id,
80               X_Deprn_Source_Code,
81               X_Deprn_Run_Date,
82               X_Deprn_Amount,
83               X_Ytd_Deprn,
84               X_Deprn_Reserve,
85               X_Addition_Cost_To_Clear,
86               X_Cost,
87               X_Deprn_Adjustment_Amount,
88               X_Deprn_Expense_Je_Line_Num,
89               X_Deprn_Reserve_Je_Line_Num,
90               X_Reval_Amort_Je_Line_Num,
91               X_Reval_Reserve_Je_Line_Num,
92               X_Je_Header_Id,
93               X_Reval_Amortization,
94               X_Reval_Deprn_Expense,
95               X_Reval_Reserve,
96               X_Ytd_Reval_Deprn_Expense,
97               X_Bonus_Deprn_Amount,
98               X_Bonus_Ytd_Deprn,
99               X_Bonus_Deprn_Reserve
100              );
101 
102           OPEN C_dd_mc;
103           FETCH C_dd_mc INTO X_Rowid;
104           if (C_dd_mc%NOTFOUND) then
105              CLOSE C_dd_mc;
106              Raise NO_DATA_FOUND;
107           end if;
108           CLOSE C_dd_mc;
109        else
110 
111           INSERT INTO fa_deprn_detail(
112               book_type_code,
113               asset_id,
114               period_counter,
115               distribution_id,
116               deprn_source_code,
117               deprn_run_date,
118               deprn_amount,
119               ytd_deprn,
120               deprn_reserve,
121               addition_cost_to_clear,
122               cost,
123               deprn_adjustment_amount,
124               deprn_expense_je_line_num,
125               deprn_reserve_je_line_num,
126               reval_amort_je_line_num,
127               reval_reserve_je_line_num,
128               je_header_id,
129               reval_amortization,
130               reval_deprn_expense,
131               reval_reserve,
132               ytd_reval_deprn_expense,
133               bonus_deprn_amount,
134               bonus_ytd_deprn,
135               bonus_deprn_reserve
136              ) VALUES (
137               X_Book_Type_Code,
138               X_Asset_Id,
139               X_Period_Counter,
140               X_Distribution_Id,
141               X_Deprn_Source_Code,
142               X_Deprn_Run_Date,
143               X_Deprn_Amount,
144               X_Ytd_Deprn,
145               X_Deprn_Reserve,
146               X_Addition_Cost_To_Clear,
147               X_Cost,
148               X_Deprn_Adjustment_Amount,
149               X_Deprn_Expense_Je_Line_Num,
150               X_Deprn_Reserve_Je_Line_Num,
151               X_Reval_Amort_Je_Line_Num,
152               X_Reval_Reserve_Je_Line_Num,
153               X_Je_Header_Id,
154               X_Reval_Amortization,
155               X_Reval_Deprn_Expense,
156               X_Reval_Reserve,
157               X_Ytd_Reval_Deprn_Expense,
158               X_Bonus_Deprn_Amount,
159               X_Bonus_Ytd_Deprn,
160               X_Bonus_Deprn_Reserve
161              );
162 
163           OPEN C_dd;
164           FETCH C_dd INTO X_Rowid;
165           if (C_dd%NOTFOUND) then
166              CLOSE C_dd;
167              Raise NO_DATA_FOUND;
168           end if;
169           CLOSE C_dd;
170 
171        end if;
172 
173 
174   EXCEPTION
175      WHEN Others THEN
176           FA_STANDARD_PKG.RAISE_ERROR
177                (Called_Fn     => 'FA_DEPRN_DETAIL_PKG.Insert_Row',
178                Calling_Fn     => X_Calling_Fn, p_log_level_rec => p_log_level_rec);
179   END Insert_Row;
180 
181 
182   PROCEDURE Lock_Row(X_Rowid                            VARCHAR2,
183                      X_Book_Type_Code                   VARCHAR2,
184                      X_Asset_Id                         NUMBER,
185                      X_Period_Counter                   NUMBER,
186                      X_Distribution_Id                  NUMBER,
187                      X_Deprn_Source_Code                VARCHAR2,
188                      X_Deprn_Run_Date                   DATE,
189                      X_Deprn_Amount                     NUMBER,
190                      X_Ytd_Deprn                        NUMBER,
191                      X_Deprn_Reserve                    NUMBER,
192                      X_Addition_Cost_To_Clear           NUMBER DEFAULT NULL,
193                      X_Cost                             NUMBER DEFAULT NULL,
194                      X_Deprn_Adjustment_Amount          NUMBER DEFAULT NULL,
195                      X_Deprn_Expense_Je_Line_Num        NUMBER DEFAULT NULL,
196                      X_Deprn_Reserve_Je_Line_Num        NUMBER DEFAULT NULL,
197                      X_Reval_Amort_Je_Line_Num          NUMBER DEFAULT NULL,
198                      X_Reval_Reserve_Je_Line_Num        NUMBER DEFAULT NULL,
199                      X_Je_Header_Id                     NUMBER DEFAULT NULL,
200                      X_Reval_Amortization               NUMBER DEFAULT NULL,
201                      X_Reval_Deprn_Expense              NUMBER DEFAULT NULL,
202                      X_Reval_Reserve                    NUMBER DEFAULT NULL,
203                      X_Ytd_Reval_Deprn_Expense          NUMBER DEFAULT NULL,
204                      X_Calling_Fn                       VARCHAR2
205   , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) IS
206     CURSOR C IS
207         SELECT      book_type_code,
208           asset_id,
209           period_counter,
210           distribution_id,
211           deprn_source_code,
212           deprn_run_date,
213           deprn_amount,
214           ytd_deprn,
215           deprn_reserve,
216           addition_cost_to_clear,
217           cost,
218           deprn_adjustment_amount,
219           deprn_expense_je_line_num,
220           deprn_reserve_je_line_num,
221           reval_amort_je_line_num,
222           reval_reserve_je_line_num,
223           je_header_id,
224           reval_amortization,
225           reval_deprn_expense,
226           reval_reserve,
227           ytd_reval_deprn_expense
228         FROM   fa_deprn_detail
229         WHERE  rowid = X_Rowid
230         FOR UPDATE of Distribution_Id NOWAIT;
231     Recinfo C%ROWTYPE;
232 
233 
234   BEGIN
235     OPEN C;
236     FETCH C INTO Recinfo;
237     if (C%NOTFOUND) then
238       CLOSE C;
239       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
240       APP_EXCEPTION.Raise_Exception;
241     end if;
242     CLOSE C;
243     if (
244 
245                (Recinfo.book_type_code =  X_Book_Type_Code)
246            AND (Recinfo.asset_id =  X_Asset_Id)
247            AND (Recinfo.period_counter =  X_Period_Counter)
248            AND (Recinfo.distribution_id =  X_Distribution_Id)
249            AND (Recinfo.deprn_source_code =  X_Deprn_Source_Code)
250            AND (Recinfo.deprn_run_date =  X_Deprn_Run_Date)
251            AND (Recinfo.deprn_amount =  X_Deprn_Amount)
252            AND (Recinfo.ytd_deprn =  X_Ytd_Deprn)
253            AND (Recinfo.deprn_reserve =  X_Deprn_Reserve)
254            AND (   (Recinfo.addition_cost_to_clear =  X_Addition_Cost_To_Clear)
255                 OR (    (Recinfo.addition_cost_to_clear IS NULL)
256                     AND (X_Addition_Cost_To_Clear IS NULL)))
257            AND (   (Recinfo.cost =  X_Cost)
258                 OR (    (Recinfo.cost IS NULL)
259                     AND (X_Cost IS NULL)))
260            AND (   (Recinfo.deprn_adjustment_amount =X_Deprn_Adjustment_Amount)
261                 OR (    (Recinfo.deprn_adjustment_amount IS NULL)
262                     AND (X_Deprn_Adjustment_Amount IS NULL)))
263            AND (   (Recinfo.deprn_expense_je_line_num =
264                     X_Deprn_Expense_Je_Line_Num)
265                 OR (    (Recinfo.deprn_expense_je_line_num IS NULL)
266                     AND (X_Deprn_Expense_Je_Line_Num IS NULL)))
267            AND (   (Recinfo.deprn_reserve_je_line_num =
268                     X_Deprn_Reserve_Je_Line_Num)
269                 OR (    (Recinfo.deprn_reserve_je_line_num IS NULL)
270                     AND (X_Deprn_Reserve_Je_Line_Num IS NULL)))
271            AND (   (Recinfo.reval_amort_je_line_num =X_Reval_Amort_Je_Line_Num)
272                 OR (    (Recinfo.reval_amort_je_line_num IS NULL)
273                     AND (X_Reval_Amort_Je_Line_Num IS NULL)))
274            AND (   (Recinfo.reval_reserve_je_line_num =
275                     X_Reval_Reserve_Je_Line_Num)
276                 OR (    (Recinfo.reval_reserve_je_line_num IS NULL)
277                     AND (X_Reval_Reserve_Je_Line_Num IS NULL)))
278            AND (   (Recinfo.je_header_id =  X_Je_Header_Id)
279                 OR (    (Recinfo.je_header_id IS NULL)
280                     AND (X_Je_Header_Id IS NULL)))
281            AND (   (Recinfo.reval_amortization =  X_Reval_Amortization)
282                 OR (    (Recinfo.reval_amortization IS NULL)
283                     AND (X_Reval_Amortization IS NULL)))
284            AND (   (Recinfo.reval_deprn_expense =  X_Reval_Deprn_Expense)
285                 OR (    (Recinfo.reval_deprn_expense IS NULL)
286                     AND (X_Reval_Deprn_Expense IS NULL)))
287            AND (   (Recinfo.reval_reserve =  X_Reval_Reserve)
288                 OR (    (Recinfo.reval_reserve IS NULL)
289                     AND (X_Reval_Reserve IS NULL)))
290            AND (   (Recinfo.ytd_reval_deprn_expense =X_Ytd_Reval_Deprn_Expense)
291                 OR (    (Recinfo.ytd_reval_deprn_expense IS NULL)
292                     AND (X_Ytd_Reval_Deprn_Expense IS NULL)))
293       ) then
294       return;
295     else
296       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
297       APP_EXCEPTION.Raise_Exception;
298     end if;
299   END Lock_Row;
300 
301 
302 
303   PROCEDURE Update_Row(X_Rowid                          VARCHAR2 DEFAULT NULL,
304                        X_Book_Type_Code                 VARCHAR2 DEFAULT NULL,
305                        X_Asset_Id                       NUMBER   DEFAULT NULL,
306                        X_Period_Counter                 NUMBER   DEFAULT NULL,
307                        X_Distribution_Id                NUMBER   DEFAULT NULL,
308                        X_Deprn_Source_Code              VARCHAR2 DEFAULT NULL,
309                        X_Deprn_Run_Date                 DATE     DEFAULT NULL,
310                        X_Deprn_Amount                   NUMBER   DEFAULT NULL,
311                        X_Ytd_Deprn                      NUMBER   DEFAULT NULL,
312                        X_Deprn_Reserve                  NUMBER   DEFAULT NULL,
313                        X_Addition_Cost_To_Clear         NUMBER   DEFAULT NULL,
314                        X_Cost                           NUMBER   DEFAULT NULL,
315                        X_Deprn_Adjustment_Amount        NUMBER   DEFAULT NULL,
316                        X_Deprn_Expense_Je_Line_Num      NUMBER   DEFAULT NULL,
317                        X_Deprn_Reserve_Je_Line_Num      NUMBER   DEFAULT NULL,
318                        X_Reval_Amort_Je_Line_Num        NUMBER   DEFAULT NULL,
319                        X_Reval_Reserve_Je_Line_Num      NUMBER   DEFAULT NULL,
320                        X_Je_Header_Id                   NUMBER   DEFAULT NULL,
321                        X_Reval_Amortization             NUMBER   DEFAULT NULL,
322                        X_Reval_Deprn_Expense            NUMBER   DEFAULT NULL,
323                        X_Reval_Reserve                  NUMBER   DEFAULT NULL,
324                        X_Ytd_Reval_Deprn_Expense        NUMBER   DEFAULT NULL,
325                        X_mrc_sob_type_code              VARCHAR2 DEFAULT 'P',
326                        X_set_of_books_id                NUMBER ,
327                        X_Calling_Fn                     VARCHAR2 , p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) IS
328 
329    BEGIN
330 
331        if (X_rowid is not null) then
332 
333           if (X_mrc_sob_type_code = 'R') then
334              UPDATE fa_mc_deprn_detail
335              SET
336              book_type_code                  =      decode(X_Book_Type_Code,
337                                                     NULL, book_type_code,
338                                                     FND_API.G_MISS_CHAR, null,
339                                                     X_Book_Type_Code),
340              asset_id                        =      decode(X_Asset_Id,
341                                                     NULL, asset_id,
342                                                     FND_API.G_MISS_NUM, null,
343                                                     X_Asset_Id),
344              period_counter                  =      decode(X_Period_Counter,
345                                                     NULL, period_counter,
346                                                     FND_API.G_MISS_NUM, null,
347                                                     X_Period_Counter),
348              distribution_id                 =      decode(X_Distribution_Id,
349                                                     NULL, distribution_id,
350                                                     FND_API.G_MISS_NUM, null,
351                                                     X_Distribution_Id),
352              deprn_source_code               =      decode(X_Deprn_Source_Code,
353                                                     NULL, deprn_source_code,
354                                                     FND_API.G_MISS_CHAR, null,
355                                                     X_Deprn_Source_Code),
356              deprn_run_date                  =      decode(X_Deprn_Run_Date,
357                                                     NULL, deprn_run_date,
358                                                     X_Deprn_Run_Date),
359              deprn_amount                    =      decode(X_Deprn_Amount,
360                                                     NULL,  deprn_amount,
361                                                     FND_API.G_MISS_NUM, null,
362                                                     X_Deprn_Amount),
363              ytd_deprn                       =      decode(X_Ytd_Deprn,
364                                                     NULL, ytd_deprn,
365                                                     FND_API.G_MISS_NUM, null,
366                                                     X_Ytd_Deprn),
367              deprn_reserve                   =      decode(X_Deprn_Reserve,
368                                                     NULL, deprn_reserve,
369                                                     FND_API.G_MISS_NUM, null,
370                                                     X_Deprn_Reserve),
371              addition_cost_to_clear          =      decode(X_Addition_Cost_To_Clear,
372                                                     NULL, addition_cost_to_clear,
373                                                     FND_API.G_MISS_NUM, null,
374                                                     X_Addition_Cost_To_Clear),
375              cost                            =      decode(X_Cost,
376                                                     NULL, cost,
377                                                     FND_API.G_MISS_NUM, null,
378                                                     X_Cost),
379              deprn_adjustment_amount         =      decode(X_Deprn_Adjustment_Amount,
380                                                     NULL, deprn_adjustment_amount,
381                                                     FND_API.G_MISS_NUM, null,
382                                                     X_Deprn_Adjustment_Amount),
383              deprn_expense_je_line_num       =      decode(X_Deprn_Expense_Je_Line_Num,
384                                                     NULL, deprn_expense_je_line_num,
385                                                     FND_API.G_MISS_NUM, null,
386                                                     X_Deprn_Expense_Je_Line_Num),
387              deprn_reserve_je_line_num       =      decode(X_Deprn_Reserve_Je_Line_Num,
388                                                     NULL, deprn_reserve_je_line_num,
389                                                     FND_API.G_MISS_NUM, null,
390                                                     X_Deprn_Reserve_Je_Line_Num),
391              reval_amort_je_line_num         =      decode(X_Reval_Amort_Je_Line_Num,
392                                                     NULL, reval_amort_je_line_num,
393                                                     FND_API.G_MISS_NUM, null,
394                                                     X_Reval_Amort_Je_Line_Num),
395              reval_reserve_je_line_num       =      decode(X_Reval_Reserve_Je_Line_Num,
396                                                     NULL, reval_reserve_je_line_num,
397                                                     FND_API.G_MISS_NUM, null,
398                                                     X_Reval_Reserve_Je_Line_Num),
399              je_header_id                    =      decode(X_Je_Header_Id,
400                                                     NULL, je_header_id,
401                                                     FND_API.G_MISS_NUM, null,
402                                                     X_Je_Header_Id),
403              reval_amortization              =      decode(X_Reval_Amortization,
404                                                     NULL, reval_amortization,
405                                                     FND_API.G_MISS_NUM, null,
406                                                     X_Reval_Amortization),
407              reval_deprn_expense             =      decode(X_Reval_Deprn_Expense,
408                                                     NULL, reval_deprn_expense,
409                                                     FND_API.G_MISS_NUM, null,
410                                                     X_Reval_Deprn_Expense),
411              reval_reserve                   =      decode(X_Reval_Reserve,
412                                                     NULL, reval_reserve,
413                                                     FND_API.G_MISS_NUM, null,
414                                                     X_Reval_Reserve),
415              ytd_reval_deprn_expense         =      decode(X_Ytd_Reval_Deprn_Expense,
416                                                     NULL, ytd_reval_deprn_expense,
417                                                     FND_API.G_MISS_NUM, null,
418                                                     X_Ytd_Reval_Deprn_Expense)
419           WHERE rowid = X_Rowid;
420 
421        else
422           UPDATE fa_deprn_detail
423           SET
424              book_type_code                  =      decode(X_Book_Type_Code,
425                                                     NULL, book_type_code,
426                                                     FND_API.G_MISS_CHAR, null,
427                                                     X_Book_Type_Code),
428              asset_id                        =      decode(X_Asset_Id,
429                                                     NULL, asset_id,
430                                                     FND_API.G_MISS_NUM, null,
431                                                     X_Asset_Id),
432              period_counter                  =      decode(X_Period_Counter,
433                                                     NULL, period_counter,
434                                                     FND_API.G_MISS_NUM, null,
435                                                     X_Period_Counter),
436              distribution_id                 =      decode(X_Distribution_Id,
437                                                     NULL, distribution_id,
438                                                     FND_API.G_MISS_NUM, null,
439                                                     X_Distribution_Id),
440              deprn_source_code               =      decode(X_Deprn_Source_Code,
441                                                     NULL, deprn_source_code,
442                                                     FND_API.G_MISS_CHAR, null,
443                                                     X_Deprn_Source_Code),
444              deprn_run_date                  =      decode(X_Deprn_Run_Date,
445                                                     NULL, deprn_run_date,
446                                                     X_Deprn_Run_Date),
447              deprn_amount                    =      decode(X_Deprn_Amount,
448                                                     NULL,  deprn_amount,
449                                                     FND_API.G_MISS_NUM, null,
450                                                     X_Deprn_Amount),
451              ytd_deprn                       =      decode(X_Ytd_Deprn,
452                                                     NULL, ytd_deprn,
453                                                     FND_API.G_MISS_NUM, null,
454                                                     X_Ytd_Deprn),
455              deprn_reserve                   =      decode(X_Deprn_Reserve,
456                                                     NULL, deprn_reserve,
457                                                     FND_API.G_MISS_NUM, null,
458                                                     X_Deprn_Reserve),
459              addition_cost_to_clear          =      decode(X_Addition_Cost_To_Clear,
460                                                     NULL, addition_cost_to_clear,
461                                                     FND_API.G_MISS_NUM, null,
462                                                     X_Addition_Cost_To_Clear),
463              cost                            =      decode(X_Cost,
464                                                     NULL, cost,
465                                                     FND_API.G_MISS_NUM, null,
466                                                     X_Cost),
467              deprn_adjustment_amount         =      decode(X_Deprn_Adjustment_Amount,
468                                                     NULL, deprn_adjustment_amount,
469                                                     FND_API.G_MISS_NUM, null,
470                                                     X_Deprn_Adjustment_Amount),
471              deprn_expense_je_line_num       =      decode(X_Deprn_Expense_Je_Line_Num,
472                                                     NULL, deprn_expense_je_line_num,
473                                                     FND_API.G_MISS_NUM, null,
474                                                     X_Deprn_Expense_Je_Line_Num),
475              deprn_reserve_je_line_num       =      decode(X_Deprn_Reserve_Je_Line_Num,
476                                                     NULL, deprn_reserve_je_line_num,
477                                                     FND_API.G_MISS_NUM, null,
478                                                     X_Deprn_Reserve_Je_Line_Num),
479              reval_amort_je_line_num         =      decode(X_Reval_Amort_Je_Line_Num,
480                                                     NULL, reval_amort_je_line_num,
481                                                     FND_API.G_MISS_NUM, null,
482                                                     X_Reval_Amort_Je_Line_Num),
483              reval_reserve_je_line_num       =      decode(X_Reval_Reserve_Je_Line_Num,
484                                                     NULL, reval_reserve_je_line_num,
485                                                     FND_API.G_MISS_NUM, null,
486                                                     X_Reval_Reserve_Je_Line_Num),
487              je_header_id                    =      decode(X_Je_Header_Id,
488                                                     NULL, je_header_id,
489                                                     FND_API.G_MISS_NUM, null,
490                                                     X_Je_Header_Id),
491              reval_amortization              =      decode(X_Reval_Amortization,
492                                                     NULL, reval_amortization,
493                                                     FND_API.G_MISS_NUM, null,
494                                                     X_Reval_Amortization),
495              reval_deprn_expense             =      decode(X_Reval_Deprn_Expense,
496                                                     NULL, reval_deprn_expense,
497                                                     FND_API.G_MISS_NUM, null,
498                                                     X_Reval_Deprn_Expense),
499              reval_reserve                   =      decode(X_Reval_Reserve,
500                                                     NULL, reval_reserve,
501                                                     FND_API.G_MISS_NUM, null,
502                                                     X_Reval_Reserve),
503              ytd_reval_deprn_expense         =      decode(X_Ytd_Reval_Deprn_Expense,
504                                                     NULL, ytd_reval_deprn_expense,
505                                                     FND_API.G_MISS_NUM, null,
506                                                     X_Ytd_Reval_Deprn_Expense)
507           WHERE rowid = X_Rowid;
508        end if;
509     else
510           if (X_mrc_sob_type_code = 'R') then
511              UPDATE fa_mc_deprn_detail
512              SET
513              book_type_code                  =      decode(X_Book_Type_Code,
514                                                     NULL, book_type_code,
515                                                     FND_API.G_MISS_CHAR, null,
516                                                     X_Book_Type_Code),
517              asset_id                        =      decode(X_Asset_Id,
518                                                     NULL, asset_id,
519                                                     FND_API.G_MISS_NUM, null,
520                                                     X_Asset_Id),
521              period_counter                  =      decode(X_Period_Counter,
522                                                     NULL, period_counter,
523                                                     FND_API.G_MISS_NUM, null,
524                                                     X_Period_Counter),
525              distribution_id                 =      decode(X_Distribution_Id,
526                                                     NULL, distribution_id,
527                                                     FND_API.G_MISS_NUM, null,
528                                                     X_Distribution_Id),
529              deprn_source_code               =      decode(X_Deprn_Source_Code,
530                                                     NULL, deprn_source_code,
531                                                     FND_API.G_MISS_CHAR, null,
532                                                     X_Deprn_Source_Code),
533              deprn_run_date                  =      decode(X_Deprn_Run_Date,
534                                                     NULL, deprn_run_date,
535                                                     X_Deprn_Run_Date),
536              deprn_amount                    =      decode(X_Deprn_Amount,
537                                                     NULL,  deprn_amount,
538                                                     FND_API.G_MISS_NUM, null,
539                                                     X_Deprn_Amount),
540              ytd_deprn                       =      decode(X_Ytd_Deprn,
541                                                     NULL, ytd_deprn,
542                                                     FND_API.G_MISS_NUM, null,
543                                                     X_Ytd_Deprn),
544              deprn_reserve                   =      decode(X_Deprn_Reserve,
545                                                     NULL, deprn_reserve,
546                                                     FND_API.G_MISS_NUM, null,
547                                                     X_Deprn_Reserve),
548              addition_cost_to_clear          =      decode(X_Addition_Cost_To_Clear,
549                                                     NULL, addition_cost_to_clear,
550                                                     FND_API.G_MISS_NUM, null,
551                                                     X_Addition_Cost_To_Clear),
552              cost                            =      decode(X_Cost,
553                                                     NULL, cost,
554                                                     FND_API.G_MISS_NUM, null,
555                                                     X_Cost),
556              deprn_adjustment_amount         =      decode(X_Deprn_Adjustment_Amount,
557                                                     NULL, deprn_adjustment_amount,
558                                                     FND_API.G_MISS_NUM, null,
559                                                     X_Deprn_Adjustment_Amount),
560              deprn_expense_je_line_num       =      decode(X_Deprn_Expense_Je_Line_Num,
561                                                     NULL, deprn_expense_je_line_num,
562                                                     FND_API.G_MISS_NUM, null,
563                                                     X_Deprn_Expense_Je_Line_Num),
564              deprn_reserve_je_line_num       =      decode(X_Deprn_Reserve_Je_Line_Num,
565                                                     NULL, deprn_reserve_je_line_num,
566                                                     FND_API.G_MISS_NUM, null,
567                                                     X_Deprn_Reserve_Je_Line_Num),
568              reval_amort_je_line_num         =      decode(X_Reval_Amort_Je_Line_Num,
569                                                     NULL, reval_amort_je_line_num,
570                                                     FND_API.G_MISS_NUM, null,
571                                                     X_Reval_Amort_Je_Line_Num),
572              reval_reserve_je_line_num       =      decode(X_Reval_Reserve_Je_Line_Num,
573                                                     NULL, reval_reserve_je_line_num,
574                                                     FND_API.G_MISS_NUM, null,
575                                                     X_Reval_Reserve_Je_Line_Num),
576              je_header_id                    =      decode(X_Je_Header_Id,
577                                                     NULL, je_header_id,
578                                                     FND_API.G_MISS_NUM, null,
579                                                     X_Je_Header_Id),
580              reval_amortization              =      decode(X_Reval_Amortization,
581                                                     NULL, reval_amortization,
582                                                     FND_API.G_MISS_NUM, null,
583                                                     X_Reval_Amortization),
584              reval_deprn_expense             =      decode(X_Reval_Deprn_Expense,
585                                                     NULL, reval_deprn_expense,
586                                                     FND_API.G_MISS_NUM, null,
587                                                     X_Reval_Deprn_Expense),
588              reval_reserve                   =      decode(X_Reval_Reserve,
589                                                     NULL, reval_reserve,
590                                                     FND_API.G_MISS_NUM, null,
591                                                     X_Reval_Reserve),
592              ytd_reval_deprn_expense         =      decode(X_Ytd_Reval_Deprn_Expense,
593                                                     NULL, ytd_reval_deprn_expense,
594                                                     FND_API.G_MISS_NUM, null,
595                                                     X_Ytd_Reval_Deprn_Expense)
596           WHERE book_type_code  = X_Book_Type_Code
597           and   asset_id        = X_Asset_Id
598           and   period_counter  = X_Period_Counter
599           and   distribution_id = decode(X_Distribution_Id,
600                                          NULL, distribution_id,
601                                          X_Distribution_Id)
602           and   set_of_books_id = X_set_of_books_id;
603 
604        else
605           UPDATE fa_deprn_detail
606           SET
607              book_type_code                  =      decode(X_Book_Type_Code,
608                                                     NULL, book_type_code,
609                                                     FND_API.G_MISS_CHAR, null,
610                                                     X_Book_Type_Code),
611              asset_id                        =      decode(X_Asset_Id,
612                                                     NULL, asset_id,
613                                                     FND_API.G_MISS_NUM, null,
614                                                     X_Asset_Id),
615              period_counter                  =      decode(X_Period_Counter,
616                                                     NULL, period_counter,
617                                                     FND_API.G_MISS_NUM, null,
618                                                     X_Period_Counter),
619              distribution_id                 =      decode(X_Distribution_Id,
620                                                     NULL, distribution_id,
621                                                     FND_API.G_MISS_NUM, null,
622                                                     X_Distribution_Id),
623              deprn_source_code               =      decode(X_Deprn_Source_Code,
624                                                     NULL, deprn_source_code,
625                                                     FND_API.G_MISS_CHAR, null,
626                                                     X_Deprn_Source_Code),
627              deprn_run_date                  =      decode(X_Deprn_Run_Date,
628                                                     NULL, deprn_run_date,
629                                                     X_Deprn_Run_Date),
630              deprn_amount                    =      decode(X_Deprn_Amount,
631                                                     NULL,  deprn_amount,
632                                                     FND_API.G_MISS_NUM, null,
633                                                     X_Deprn_Amount),
634              ytd_deprn                       =      decode(X_Ytd_Deprn,
635                                                     NULL, ytd_deprn,
636                                                     FND_API.G_MISS_NUM, null,
637                                                     X_Ytd_Deprn),
638              deprn_reserve                   =      decode(X_Deprn_Reserve,
639                                                     NULL, deprn_reserve,
640                                                     FND_API.G_MISS_NUM, null,
641                                                     X_Deprn_Reserve),
642              addition_cost_to_clear          =      decode(X_Addition_Cost_To_Clear,
643                                                     NULL, addition_cost_to_clear,
644                                                     FND_API.G_MISS_NUM, null,
645                                                     X_Addition_Cost_To_Clear),
646              cost                            =      decode(X_Cost,
647                                                     NULL, cost,
648                                                     FND_API.G_MISS_NUM, null,
649                                                     X_Cost),
650              deprn_adjustment_amount         =      decode(X_Deprn_Adjustment_Amount,
651                                                     NULL, deprn_adjustment_amount,
652                                                     FND_API.G_MISS_NUM, null,
653                                                     X_Deprn_Adjustment_Amount),
654              deprn_expense_je_line_num       =      decode(X_Deprn_Expense_Je_Line_Num,
655                                                     NULL, deprn_expense_je_line_num,
656                                                     FND_API.G_MISS_NUM, null,
657                                                     X_Deprn_Expense_Je_Line_Num),
658              deprn_reserve_je_line_num       =      decode(X_Deprn_Reserve_Je_Line_Num,
659                                                     NULL, deprn_reserve_je_line_num,
660                                                     FND_API.G_MISS_NUM, null,
661                                                     X_Deprn_Reserve_Je_Line_Num),
662              reval_amort_je_line_num         =      decode(X_Reval_Amort_Je_Line_Num,
663                                                     NULL, reval_amort_je_line_num,
664                                                     FND_API.G_MISS_NUM, null,
665                                                     X_Reval_Amort_Je_Line_Num),
666              reval_reserve_je_line_num       =      decode(X_Reval_Reserve_Je_Line_Num,
667                                                     NULL, reval_reserve_je_line_num,
668                                                     FND_API.G_MISS_NUM, null,
669                                                     X_Reval_Reserve_Je_Line_Num),
670              je_header_id                    =      decode(X_Je_Header_Id,
671                                                     NULL, je_header_id,
672                                                     FND_API.G_MISS_NUM, null,
673                                                     X_Je_Header_Id),
674              reval_amortization              =      decode(X_Reval_Amortization,
675                                                     NULL, reval_amortization,
676                                                     FND_API.G_MISS_NUM, null,
677                                                     X_Reval_Amortization),
678              reval_deprn_expense             =      decode(X_Reval_Deprn_Expense,
679                                                     NULL, reval_deprn_expense,
680                                                     FND_API.G_MISS_NUM, null,
681                                                     X_Reval_Deprn_Expense),
682              reval_reserve                   =      decode(X_Reval_Reserve,
683                                                     NULL, reval_reserve,
684                                                     FND_API.G_MISS_NUM, null,
685                                                     X_Reval_Reserve),
686              ytd_reval_deprn_expense         =      decode(X_Ytd_Reval_Deprn_Expense,
687                                                     NULL, ytd_reval_deprn_expense,
688                                                     FND_API.G_MISS_NUM, null,
689                                                     X_Ytd_Reval_Deprn_Expense)
690           WHERE book_type_code  = X_Book_Type_Code
691           and   asset_id        = X_Asset_Id
692           and   period_counter  = X_Period_Counter
693           and   distribution_id = decode(X_Distribution_Id,
694                                          NULL, distribution_id,
695                                          X_Distribution_Id);
696 
697 
698        end if;
699     end if; -- rowid is null
700 
701     if (SQL%NOTFOUND) then
702       Raise NO_DATA_FOUND;
703     end if;
704   EXCEPTION
705      WHEN Others THEN
706           FA_STANDARD_PKG.RAISE_ERROR
707                (Called_Fn     => 'FA_DEPRN_DETAIL_PKG.Update_Row',
708                Calling_Fn     => X_Calling_Fn, p_log_level_rec => p_log_level_rec);
709   END Update_Row;
710 
711 
712   PROCEDURE Delete_Row(X_Rowid           VARCHAR2 DEFAULT NULL,
713                        X_Asset_Id        NUMBER DEFAULT NULL,
714                        X_mrc_sob_type_code       VARCHAR2 DEFAULT 'P',
715                        X_set_of_books_id         NUMBER ,
716                        X_Calling_Fn      VARCHAR2, p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type) IS
717 
718    BEGIN
719 
720        if (X_mrc_sob_type_code = 'R') then
721           if X_Rowid is not null then
722              DELETE FROM fa_mc_deprn_detail
723              WHERE rowid = X_Rowid;
724           elsif X_Asset_Id is not null then
725              DELETE FROM fa_mc_deprn_detail
726              WHERE asset_id = X_Asset_Id
727              AND set_of_books_id = X_set_of_books_id;
728           else
729              -- error message
730              null;
731           end if;
732        else
733           if X_Rowid is not null then
734              DELETE FROM fa_deprn_detail
735              WHERE rowid = X_Rowid;
736           elsif X_Asset_Id is not null then
737              DELETE FROM fa_deprn_detail
738              WHERE asset_id = X_Asset_Id;
739           else
740              -- error message
741              null;
742           end if;
743        end if;
744 
745     if (SQL%NOTFOUND) then
746       Raise NO_DATA_FOUND;
747     end if;
748   EXCEPTION
749      WHEN Others THEN
750           FA_STANDARD_PKG.RAISE_ERROR
751                (Called_Fn     => 'FA_DEPRN_DETAIL_PKG.Delete_Row',
752                Calling_Fn     => X_Calling_Fn, p_log_level_rec => p_log_level_rec);
753   END Delete_Row;
754 
755 
756 END FA_DEPRN_DETAIL_PKG;