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