DBA Data[Home] [Help]

PACKAGE BODY: APPS.JA_JAAUFREV_XMLP_PKG

Source


1 PACKAGE BODY JA_JAAUFREV_XMLP_PKG AS
2 /* $Header: JAAUFREVB.pls 120.1 2007/12/25 16:06:31 dwkrishn noship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4   BEGIN
5     BEGIN
6       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
7       /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
8     EXCEPTION
9       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
10         /*SRW.MESSAGE(1
11                    ,'SRWINIT failed in before report trigger')*/NULL;
12     END;
13     RETURN (TRUE);
14   END BEFOREREPORT;
15 
16   FUNCTION AFTERREPORT RETURN BOOLEAN IS
17   BEGIN
18     /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
19     RETURN (TRUE);
20   END AFTERREPORT;
21 
22   FUNCTION C_NEW_DEP_RSVFORMULA(TH_ID IN NUMBER
23                                ,BOOK_TYPE_CODE IN VARCHAR2
24                                ,ASSET_ID IN NUMBER) RETURN NUMBER IS
25   BEGIN
26     DECLARE
27       L_NEW_DEP_RSV NUMBER;
28     BEGIN
29       SELECT
30         DECODE(DEBIT_CREDIT_FLAG
31               ,'CR'
32               ,-ADJ.ADJUSTMENT_AMOUNT
33               ,'DR'
34               ,ADJ.ADJUSTMENT_AMOUNT)
35       INTO L_NEW_DEP_RSV
36       FROM
37         FA_ADJUSTMENTS ADJ
38       WHERE ADJ.TRANSACTION_HEADER_ID = TH_ID
39         AND ADJ.BOOK_TYPE_CODE = C_NEW_DEP_RSVFORMULA.BOOK_TYPE_CODE
40         AND ADJ.ASSET_ID = C_NEW_DEP_RSVFORMULA.ASSET_ID
41         AND ADJ.SOURCE_TYPE_CODE = 'REVALUATION'
42         AND ADJ.ADJUSTMENT_TYPE = 'RESERVE';
43       RETURN (L_NEW_DEP_RSV);
44     EXCEPTION
45       WHEN NO_DATA_FOUND THEN
46         L_NEW_DEP_RSV := 0;
47         RETURN (L_NEW_DEP_RSV);
48     END;
49     RETURN NULL;
50   END C_NEW_DEP_RSVFORMULA;
51 
52   FUNCTION D_ASSET_CLASSFORMULA RETURN VARCHAR2 IS
53   BEGIN
54     DECLARE
55       L_ASSET_CLASS VARCHAR2(250);
56     BEGIN
57       IF (P_ASSET_CLASS <> ' ') THEN
58         SELECT
59           DECODE(FLEX1.APPLICATION_COLUMN_NAME
60                 ,'SEGMENT7'
61                 ,C.SEGMENT7
62                 ,'SEGMENT6'
63                 ,C.SEGMENT6
64                 ,'SEGMENT5'
65                 ,C.SEGMENT5
66                 ,'SEGMENT4'
67                 ,C.SEGMENT4
68                 ,'SEGMENT3'
69                 ,C.SEGMENT3
70                 ,'SEGMENT2'
71                 ,C.SEGMENT2
72                 ,'SEGMENT1'
73                 ,C.SEGMENT1) || DECODE(NVL(FLEX2.APPLICATION_COLUMN_NAME
74                     ,' ')
75                 ,' '
76                 ,' '
77                 ,'-') || DECODE(NVL(FLEX2.APPLICATION_COLUMN_NAME
78                     ,' ')
79                 ,'SEGMENT7'
80                 ,C.SEGMENT7
81                 ,'SEGMENT6'
82                 ,C.SEGMENT6
83                 ,'SEGMENT5'
84                 ,C.SEGMENT5
85                 ,'SEGMENT4'
86                 ,C.SEGMENT4
87                 ,'SEGMENT3'
88                 ,C.SEGMENT3
89                 ,'SEGMENT2'
90                 ,C.SEGMENT2
91                 ,'SEGMENT1'
92                 ,C.SEGMENT1
93                 ,' ') || DECODE(NVL(FLEX3.APPLICATION_COLUMN_NAME
94                     ,' ')
95                 ,' '
96                 ,' '
97                 ,'-') || DECODE(NVL(FLEX3.APPLICATION_COLUMN_NAME
98                     ,' ')
99                 ,'SEGMENT7'
100                 ,C.SEGMENT7
101                 ,'SEGMENT6'
102                 ,C.SEGMENT6
103                 ,'SEGMENT5'
104                 ,C.SEGMENT5
105                 ,'SEGMENT4'
106                 ,C.SEGMENT4
107                 ,'SEGMENT3'
108                 ,C.SEGMENT3
109                 ,'SEGMENT2'
110                 ,C.SEGMENT2
111                 ,'SEGMENT1'
112                 ,C.SEGMENT1
113                 ,' ') || DECODE(NVL(FLEX4.APPLICATION_COLUMN_NAME
114                     ,' ')
115                 ,' '
116                 ,' '
117                 ,'-') || DECODE(NVL(FLEX4.APPLICATION_COLUMN_NAME
118                     ,' ')
119                 ,'SEGMENT7'
120                 ,C.SEGMENT7
121                 ,'SEGMENT6'
122                 ,C.SEGMENT6
123                 ,'SEGMENT5'
124                 ,C.SEGMENT5
125                 ,'SEGMENT4'
126                 ,C.SEGMENT4
127                 ,'SEGMENT3'
128                 ,C.SEGMENT3
129                 ,'SEGMENT2'
130                 ,C.SEGMENT2
131                 ,'SEGMENT1'
132                 ,C.SEGMENT1
133                 ,' ') || DECODE(NVL(FLEX5.APPLICATION_COLUMN_NAME
134                     ,' ')
135                 ,' '
136                 ,' '
137                 ,'-') || DECODE(NVL(FLEX5.APPLICATION_COLUMN_NAME
138                     ,' ')
139                 ,'SEGMENT7'
140                 ,C.SEGMENT7
141                 ,'SEGMENT6'
142                 ,C.SEGMENT6
143                 ,'SEGMENT5'
144                 ,C.SEGMENT5
145                 ,'SEGMENT4'
146                 ,C.SEGMENT4
147                 ,'SEGMENT3'
148                 ,C.SEGMENT3
149                 ,'SEGMENT2'
150                 ,C.SEGMENT2
151                 ,'SEGMENT1'
152                 ,C.SEGMENT1
153                 ,' ') || DECODE(NVL(FLEX6.APPLICATION_COLUMN_NAME
154                     ,' ')
155                 ,' '
156                 ,' '
157                 ,'-') || DECODE(NVL(FLEX6.APPLICATION_COLUMN_NAME
158                     ,' ')
159                 ,'SEGMENT7'
160                 ,C.SEGMENT7
161                 ,'SEGMENT6'
162                 ,C.SEGMENT6
163                 ,'SEGMENT5'
164                 ,C.SEGMENT5
165                 ,'SEGMENT4'
166                 ,C.SEGMENT4
167                 ,'SEGMENT3'
168                 ,C.SEGMENT3
169                 ,'SEGMENT2'
170                 ,C.SEGMENT2
171                 ,'SEGMENT1'
172                 ,C.SEGMENT1
173                 ,' ') || DECODE(NVL(FLEX7.APPLICATION_COLUMN_NAME
174                     ,' ')
175                 ,' '
176                 ,' '
177                 ,'-') || DECODE(NVL(FLEX7.APPLICATION_COLUMN_NAME
178                     ,' ')
179                 ,'SEGMENT7'
180                 ,C.SEGMENT7
181                 ,'SEGMENT6'
182                 ,C.SEGMENT6
183                 ,'SEGMENT5'
184                 ,C.SEGMENT5
185                 ,'SEGMENT4'
186                 ,C.SEGMENT4
187                 ,'SEGMENT3'
188                 ,C.SEGMENT3
189                 ,'SEGMENT2'
190                 ,C.SEGMENT2
191                 ,'SEGMENT1'
192                 ,C.SEGMENT1
193                 ,' ')
194         INTO L_ASSET_CLASS
195         FROM
196           FA_CATEGORIES C,
197           FND_ID_FLEXS FLEXID,
198           FND_ID_FLEX_SEGMENTS FLEX1,
199           FND_ID_FLEX_SEGMENTS FLEX2,
200           FND_ID_FLEX_SEGMENTS FLEX3,
201           FND_ID_FLEX_SEGMENTS FLEX4,
202           FND_ID_FLEX_SEGMENTS FLEX5,
203           FND_ID_FLEX_SEGMENTS FLEX6,
204           FND_ID_FLEX_SEGMENTS FLEX7
205         WHERE C.CATEGORY_ID = P_ASSET_CLASS
206           AND FLEXID.APPLICATION_TABLE_NAME = 'FA_CATEGORIES_B'
207           AND FLEXID.UNIQUE_ID_COLUMN_NAME = 'CATEGORY_ID'
208           AND FLEX1.ID_FLEX_CODE = FLEXID.ID_FLEX_CODE
209           AND FLEX1.SEGMENT_NUM = 1
210           AND FLEX1.ENABLED_FLAG = 'Y'
211           AND flex2.id_flex_code (+) = FLEXID.ID_FLEX_CODE
212           AND flex2.enabled_flag (+) = 'Y'
213           AND flex2.segment_num (+) = 2
214           AND flex3.id_flex_code (+) = FLEXID.ID_FLEX_CODE
215           AND flex3.enabled_flag (+) = 'Y'
216           AND flex3.segment_num (+) = 3
217           AND flex4.id_flex_code (+) = FLEXID.ID_FLEX_CODE
218           AND flex4.enabled_flag (+) = 'Y'
219           AND flex4.segment_num (+) = 4
220           AND flex5.id_flex_code (+) = FLEXID.ID_FLEX_CODE
221           AND flex5.enabled_flag (+) = 'Y'
222           AND flex5.segment_num (+) = 5
223           AND flex6.id_flex_code (+) = FLEXID.ID_FLEX_CODE
224           AND flex6.enabled_flag (+) = 'Y'
225           AND flex6.segment_num (+) = 6
226           AND flex7.id_flex_code (+) = FLEXID.ID_FLEX_CODE
227           AND flex7.enabled_flag (+) = 'Y'
228           AND flex7.segment_num (+) = 7;
229         RETURN (L_ASSET_CLASS);
230       ELSE
231         RETURN ('ALL');
232       END IF;
233     END;
234     RETURN NULL;
235   END D_ASSET_CLASSFORMULA;
236 
237   FUNCTION PROFIT_LOSSFORMULA(TOT_OLD_REVAL_RSV IN NUMBER
238                              ,TOT_REVAL_RSV IN NUMBER) RETURN NUMBER IS
239   BEGIN
240     DECLARE
241       L_PROFIT_LOSS NUMBER;
242       L_RESERVE NUMBER;
243     BEGIN
244       IF TOT_OLD_REVAL_RSV >= 0 THEN
245         IF TOT_REVAL_RSV >= 0 THEN
246           L_PROFIT_LOSS := 0;
247           L_RESERVE := TOT_REVAL_RSV;
248         ELSE
249           IF TOT_OLD_REVAL_RSV > -1 * TOT_REVAL_RSV THEN
250             L_PROFIT_LOSS := 0;
251             L_RESERVE := TOT_REVAL_RSV;
252           ELSE
253             L_RESERVE := -1 * TOT_OLD_REVAL_RSV;
254             L_PROFIT_LOSS := TOT_REVAL_RSV - L_RESERVE;
255           END IF;
256         END IF;
257       END IF;
258       IF TOT_OLD_REVAL_RSV < 0 AND TOT_REVAL_RSV >= 0 THEN
259         IF -1 * TOT_OLD_REVAL_RSV <= TOT_REVAL_RSV THEN
260           L_PROFIT_LOSS := -1 * TOT_OLD_REVAL_RSV;
261           L_RESERVE := TOT_REVAL_RSV - L_PROFIT_LOSS;
262         ELSE
263           L_PROFIT_LOSS := TOT_REVAL_RSV;
264           L_RESERVE := 0;
265         END IF;
266       END IF;
267       IF TOT_OLD_REVAL_RSV < 0 AND TOT_REVAL_RSV < 0 THEN
268         L_PROFIT_LOSS := TOT_REVAL_RSV;
269         L_RESERVE := 0;
270       END IF;
271       RESERVE := L_RESERVE;
272       RETURN (L_PROFIT_LOSS);
273     END;
274     RETURN NULL;
275   END PROFIT_LOSSFORMULA;
276 
277   FUNCTION C_CATEGORYFORMULA(ASSET_CLASS IN NUMBER) RETURN VARCHAR2 IS
278   BEGIN
279     DECLARE
280       L_ASSET_CLASS VARCHAR2(250);
281     BEGIN
282       SELECT
283         DECODE(FLEX1.APPLICATION_COLUMN_NAME
284               ,'SEGMENT7'
285               ,C.SEGMENT7
286               ,'SEGMENT6'
287               ,C.SEGMENT6
288               ,'SEGMENT5'
289               ,C.SEGMENT5
290               ,'SEGMENT4'
291               ,C.SEGMENT4
292               ,'SEGMENT3'
293               ,C.SEGMENT3
294               ,'SEGMENT2'
295               ,C.SEGMENT2
296               ,'SEGMENT1'
297               ,C.SEGMENT1) || DECODE(NVL(FLEX2.APPLICATION_COLUMN_NAME
298                   ,' ')
299               ,' '
300               ,' '
301               ,'-') || DECODE(NVL(FLEX2.APPLICATION_COLUMN_NAME
302                   ,' ')
303               ,'SEGMENT7'
304               ,C.SEGMENT7
305               ,'SEGMENT6'
306               ,C.SEGMENT6
307               ,'SEGMENT5'
308               ,C.SEGMENT5
309               ,'SEGMENT4'
310               ,C.SEGMENT4
311               ,'SEGMENT3'
312               ,C.SEGMENT3
313               ,'SEGMENT2'
314               ,C.SEGMENT2
315               ,'SEGMENT1'
316               ,C.SEGMENT1
317               ,' ') || DECODE(NVL(FLEX3.APPLICATION_COLUMN_NAME
318                   ,' ')
319               ,' '
320               ,' '
321               ,'-') || DECODE(NVL(FLEX3.APPLICATION_COLUMN_NAME
322                   ,' ')
323               ,'SEGMENT7'
324               ,C.SEGMENT7
325               ,'SEGMENT6'
326               ,C.SEGMENT6
327               ,'SEGMENT5'
328               ,C.SEGMENT5
329               ,'SEGMENT4'
330               ,C.SEGMENT4
331               ,'SEGMENT3'
332               ,C.SEGMENT3
333               ,'SEGMENT2'
334               ,C.SEGMENT2
335               ,'SEGMENT1'
336               ,C.SEGMENT1
337               ,' ') || DECODE(NVL(FLEX4.APPLICATION_COLUMN_NAME
338                   ,' ')
339               ,' '
340               ,' '
341               ,'-') || DECODE(NVL(FLEX4.APPLICATION_COLUMN_NAME
342                   ,' ')
343               ,'SEGMENT7'
344               ,C.SEGMENT7
345               ,'SEGMENT6'
346               ,C.SEGMENT6
347               ,'SEGMENT5'
348               ,C.SEGMENT5
349               ,'SEGMENT4'
350               ,C.SEGMENT4
351               ,'SEGMENT3'
352               ,C.SEGMENT3
353               ,'SEGMENT2'
354               ,C.SEGMENT2
355               ,'SEGMENT1'
356               ,C.SEGMENT1
357               ,' ') || DECODE(NVL(FLEX5.APPLICATION_COLUMN_NAME
358                   ,' ')
359               ,' '
360               ,' '
361               ,'-') || DECODE(NVL(FLEX5.APPLICATION_COLUMN_NAME
362                   ,' ')
363               ,'SEGMENT7'
364               ,C.SEGMENT7
365               ,'SEGMENT6'
366               ,C.SEGMENT6
367               ,'SEGMENT5'
368               ,C.SEGMENT5
369               ,'SEGMENT4'
370               ,C.SEGMENT4
371               ,'SEGMENT3'
372               ,C.SEGMENT3
373               ,'SEGMENT2'
374               ,C.SEGMENT2
375               ,'SEGMENT1'
376               ,C.SEGMENT1
377               ,' ') || DECODE(NVL(FLEX6.APPLICATION_COLUMN_NAME
378                   ,' ')
379               ,' '
380               ,' '
381               ,'-') || DECODE(NVL(FLEX6.APPLICATION_COLUMN_NAME
382                   ,' ')
383               ,'SEGMENT7'
384               ,C.SEGMENT7
385               ,'SEGMENT6'
386               ,C.SEGMENT6
387               ,'SEGMENT5'
388               ,C.SEGMENT5
389               ,'SEGMENT4'
390               ,C.SEGMENT4
391               ,'SEGMENT3'
392               ,C.SEGMENT3
393               ,'SEGMENT2'
394               ,C.SEGMENT2
395               ,'SEGMENT1'
396               ,C.SEGMENT1
397               ,' ') || DECODE(NVL(FLEX7.APPLICATION_COLUMN_NAME
398                   ,' ')
399               ,' '
400               ,' '
401               ,'-') || DECODE(NVL(FLEX7.APPLICATION_COLUMN_NAME
402                   ,' ')
403               ,'SEGMENT7'
404               ,C.SEGMENT7
405               ,'SEGMENT6'
406               ,C.SEGMENT6
407               ,'SEGMENT5'
408               ,C.SEGMENT5
409               ,'SEGMENT4'
410               ,C.SEGMENT4
411               ,'SEGMENT3'
412               ,C.SEGMENT3
413               ,'SEGMENT2'
414               ,C.SEGMENT2
415               ,'SEGMENT1'
416               ,C.SEGMENT1
417               ,' ')
418       INTO L_ASSET_CLASS
419       FROM
420         FA_CATEGORIES C,
421         FND_ID_FLEXS FLEXID,
422         FND_ID_FLEX_SEGMENTS FLEX1,
423         FND_ID_FLEX_SEGMENTS FLEX2,
424         FND_ID_FLEX_SEGMENTS FLEX3,
425         FND_ID_FLEX_SEGMENTS FLEX4,
426         FND_ID_FLEX_SEGMENTS FLEX5,
427         FND_ID_FLEX_SEGMENTS FLEX6,
428         FND_ID_FLEX_SEGMENTS FLEX7
429       WHERE C.CATEGORY_ID = ASSET_CLASS
430         AND FLEXID.APPLICATION_TABLE_NAME = 'FA_CATEGORIES_B'
431         AND FLEXID.UNIQUE_ID_COLUMN_NAME = 'CATEGORY_ID'
432         AND FLEX1.ID_FLEX_CODE = FLEXID.ID_FLEX_CODE
433         AND FLEX1.SEGMENT_NUM = 1
434         AND FLEX1.ENABLED_FLAG = 'Y'
435         AND flex2.id_flex_code (+) = FLEXID.ID_FLEX_CODE
436         AND flex2.enabled_flag (+) = 'Y'
437         AND flex2.segment_num (+) = 2
438         AND flex3.id_flex_code (+) = FLEXID.ID_FLEX_CODE
439         AND flex3.enabled_flag (+) = 'Y'
440         AND flex3.segment_num (+) = 3
441         AND flex4.id_flex_code (+) = FLEXID.ID_FLEX_CODE
442         AND flex4.enabled_flag (+) = 'Y'
443         AND flex4.segment_num (+) = 4
444         AND flex5.id_flex_code (+) = FLEXID.ID_FLEX_CODE
445         AND flex5.enabled_flag (+) = 'Y'
446         AND flex5.segment_num (+) = 5
447         AND flex6.id_flex_code (+) = FLEXID.ID_FLEX_CODE
448         AND flex6.enabled_flag (+) = 'Y'
449         AND flex6.segment_num (+) = 6
450         AND flex7.id_flex_code (+) = FLEXID.ID_FLEX_CODE
451         AND flex7.enabled_flag (+) = 'Y'
452         AND flex7.segment_num (+) = 7;
453       RETURN (L_ASSET_CLASS);
454     END;
455     RETURN NULL;
456   END C_CATEGORYFORMULA;
457 
458   FUNCTION C_OLD_COSTFORMULA(OLD_COST IN NUMBER
459                             ,C_OLD_REVAL_RSV IN NUMBER
460                             ,C_OLD_DEP_RSV IN NUMBER) RETURN NUMBER IS
461   BEGIN
462     RETURN (OLD_COST - C_OLD_REVAL_RSV + C_OLD_DEP_RSV);
463   END C_OLD_COSTFORMULA;
464 
465   FUNCTION C_OLD_REVAL_RSVFORMULA(ASSET_ID IN NUMBER
466                                  ,BOOK_TYPE_CODE IN VARCHAR2
467                                  ,TH_ID IN NUMBER) RETURN NUMBER IS
468   BEGIN
469     DECLARE
470       L_TOT_REV_RSV NUMBER;
471       L_NEW_REV_RSV NUMBER;
472       L_OLD_REV_RSV NUMBER;
473     BEGIN
474       BEGIN
475         SELECT
476           SUM(DECODE(DEBIT_CREDIT_FLAG
477                     ,'CR'
478                     ,ADJ.ADJUSTMENT_AMOUNT
479                     ,'DR'
480                     ,-ADJ.ADJUSTMENT_AMOUNT))
481         INTO L_TOT_REV_RSV
482         FROM
483           FA_ADJUSTMENTS ADJ
484         WHERE ADJ.ASSET_ID = C_OLD_REVAL_RSVFORMULA.ASSET_ID
485           AND ADJ.BOOK_TYPE_CODE = C_OLD_REVAL_RSVFORMULA.BOOK_TYPE_CODE
486           AND ADJ.SOURCE_TYPE_CODE = 'REVALUATION'
487           AND ADJ.ADJUSTMENT_TYPE = 'REVAL RESERVE';
488       EXCEPTION
489         WHEN NO_DATA_FOUND THEN
490           L_TOT_REV_RSV := 0;
491       END;
492       BEGIN
493         SELECT
494           DECODE(DEBIT_CREDIT_FLAG
495                 ,'CR'
496                 ,ADJ.ADJUSTMENT_AMOUNT
497                 ,'DR'
498                 ,-ADJ.ADJUSTMENT_AMOUNT)
499         INTO L_NEW_REV_RSV
500         FROM
501           FA_ADJUSTMENTS ADJ
502         WHERE ADJ.TRANSACTION_HEADER_ID = TH_ID
503           AND ADJ.ASSET_ID = C_OLD_REVAL_RSVFORMULA.ASSET_ID
504           AND ADJ.BOOK_TYPE_CODE = C_OLD_REVAL_RSVFORMULA.BOOK_TYPE_CODE
505           AND ADJ.SOURCE_TYPE_CODE = 'REVALUATION'
506           AND ADJ.ADJUSTMENT_TYPE = 'REVAL RESERVE';
507       EXCEPTION
508         WHEN NO_DATA_FOUND THEN
509           L_NEW_REV_RSV := 0;
510       END;
511       L_OLD_REV_RSV := L_TOT_REV_RSV - L_NEW_REV_RSV;
512       RETURN (L_OLD_REV_RSV);
513     END;
514     RETURN NULL;
515   END C_OLD_REVAL_RSVFORMULA;
516 
517   FUNCTION C_OLD_DEP_RSVFORMULA(ASSET_ID IN NUMBER
518                                ,BOOK_TYPE_CODE IN VARCHAR2
519                                ,TH_ID IN NUMBER) RETURN NUMBER IS
520   BEGIN
521     DECLARE
522       L_TOT_DEP_RSV NUMBER;
523       L_NEW_DEP_RSV NUMBER;
524       L_OLD_DEP_RSV NUMBER;
525     BEGIN
526       BEGIN
527         SELECT
528           SUM(DECODE(DEBIT_CREDIT_FLAG
529                     ,'CR'
530                     ,-ADJ.ADJUSTMENT_AMOUNT
531                     ,'DR'
532                     ,ADJ.ADJUSTMENT_AMOUNT))
533         INTO L_TOT_DEP_RSV
534         FROM
535           FA_ADJUSTMENTS ADJ
536         WHERE ADJ.ASSET_ID = C_OLD_DEP_RSVFORMULA.ASSET_ID
537           AND ADJ.BOOK_TYPE_CODE = C_OLD_DEP_RSVFORMULA.BOOK_TYPE_CODE
538           AND ADJ.SOURCE_TYPE_CODE = 'REVALUATION'
539           AND ADJ.ADJUSTMENT_TYPE = 'RESERVE';
540       EXCEPTION
541         WHEN NO_DATA_FOUND THEN
542           L_TOT_DEP_RSV := 0;
543       END;
544       BEGIN
545         SELECT
546           DECODE(DEBIT_CREDIT_FLAG
547                 ,'CR'
548                 ,-ADJ.ADJUSTMENT_AMOUNT
549                 ,'DR'
550                 ,ADJ.ADJUSTMENT_AMOUNT)
551         INTO L_NEW_DEP_RSV
552         FROM
553           FA_ADJUSTMENTS ADJ
554         WHERE ADJ.TRANSACTION_HEADER_ID = TH_ID
555           AND ADJ.ASSET_ID = C_OLD_DEP_RSVFORMULA.ASSET_ID
556           AND ADJ.BOOK_TYPE_CODE = C_OLD_DEP_RSVFORMULA.BOOK_TYPE_CODE
557           AND ADJ.SOURCE_TYPE_CODE = 'REVALUATION'
558           AND ADJ.ADJUSTMENT_TYPE = 'RESERVE';
559       EXCEPTION
560         WHEN NO_DATA_FOUND THEN
561           L_NEW_DEP_RSV := 0;
562       END;
563       L_OLD_DEP_RSV := L_TOT_DEP_RSV - L_NEW_DEP_RSV;
564       RETURN (L_OLD_DEP_RSV);
565     END;
566     RETURN NULL;
567   END C_OLD_DEP_RSVFORMULA;
568 
569   FUNCTION C_ACTUAL_COSTFORMULA(C_OLD_COST IN NUMBER
570                                ,C_OLD_REVAL_RSV IN NUMBER
571                                ,C_OLD_DEP_RSV IN NUMBER) RETURN NUMBER IS
572   BEGIN
573     RETURN (C_OLD_COST + C_OLD_REVAL_RSV - C_OLD_DEP_RSV);
574   END C_ACTUAL_COSTFORMULA;
575 
576   FUNCTION C_REVAL_RSVFORMULA(ADJ_COST IN NUMBER
577                              ,C_NEW_DEP_RSV IN NUMBER) RETURN NUMBER IS
578   BEGIN
579     RETURN (ADJ_COST + C_NEW_DEP_RSV);
580   END C_REVAL_RSVFORMULA;
581 
582   FUNCTION C_NEW_COSTFORMULA(C_ACTUAL_COST IN NUMBER
583                             ,ADJ_COST IN NUMBER) RETURN NUMBER IS
584   BEGIN
585     RETURN (C_ACTUAL_COST + ADJ_COST);
586   END C_NEW_COSTFORMULA;
587 
588   FUNCTION C_NEW_REVAL_RSVFORMULA(C_OLD_REVAL_RSV IN NUMBER
589                                  ,C_REVAL_RSV IN NUMBER) RETURN NUMBER IS
590   BEGIN
591     RETURN (C_OLD_REVAL_RSV + C_REVAL_RSV);
592   END C_NEW_REVAL_RSVFORMULA;
593 
594   FUNCTION RESERVE_P RETURN NUMBER IS
595   BEGIN
596     RETURN RESERVE;
597   END RESERVE_P;
598 
599 END JA_JAAUFREV_XMLP_PKG;
600 
601