DBA Data[Home] [Help]

PACKAGE BODY: APPS.JL_JLMXFGLR_XMLP_PKG

Source


1 PACKAGE BODY JL_JLMXFGLR_XMLP_PKG AS
2 /* $Header: JLMXFGLRB.pls 120.1 2007/12/25 16:52:30 dwkrishn noship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4   BEGIN
5     P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
6     /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
7     IF UPPER(P_MRCSOBTYPE) = 'R' THEN
8       FND_CLIENT_INFO.SET_CURRENCY_CONTEXT(P_CA_SET_OF_BOOKS_ID);
9     END IF;
10     GET_BASE_CURR_DATA;
11     CUSTOM_INIT;
12     RETURN (TRUE);
13   END BEFOREREPORT;
14 
15   PROCEDURE GET_BASE_CURR_DATA IS
16     BASE_CURR AP_SYSTEM_PARAMETERS.BASE_CURRENCY_CODE%TYPE;
17     PREC FND_CURRENCIES_VL.PRECISION%TYPE;
18     MIN_AU FND_CURRENCIES_VL.MINIMUM_ACCOUNTABLE_UNIT%TYPE;
19     DESCR FND_CURRENCIES_VL.DESCRIPTION%TYPE;
20     ORG_NAME GL_SETS_OF_BOOKS.NAME%TYPE;
21   BEGIN
22     BASE_CURR := '';
23     PREC := 0;
24     MIN_AU := 0;
25     DESCR := '';
26     ORG_NAME := '';
27     IF UPPER(P_MRCSOBTYPE) = 'R' THEN
28       BEGIN
29         SELECT
30           FCURR.CURRENCY_CODE,
31           FCURR.PRECISION,
32           FCURR.MINIMUM_ACCOUNTABLE_UNIT,
33           FCURR.DESCRIPTION,
34           GSBKS.NAME
35         INTO BASE_CURR,PREC,MIN_AU,DESCR,ORG_NAME
36         FROM
37           FA_BOOK_CONTROLS_MRC_V BKCTRL,
38           FND_CURRENCIES_VL FCURR,
39           GL_SETS_OF_BOOKS GSBKS
40         WHERE BKCTRL.BOOK_TYPE_CODE = P_BOOK_TYPE_CODE
41           AND BKCTRL.SET_OF_BOOKS_ID = GSBKS.SET_OF_BOOKS_ID
42           AND GSBKS.CURRENCY_CODE = FCURR.CURRENCY_CODE;
43       EXCEPTION
44         WHEN NO_DATA_FOUND THEN
45           RAISE_ERR('JL_AR_FA_CUR_DET_NOT_DEFINED'
46                    ,'N');
47         WHEN OTHERS THEN
48           RAISE_ORA_ERR;
49       END;
50     ELSE
51       BEGIN
52         SELECT
53           FCURR.CURRENCY_CODE,
54           FCURR.PRECISION,
55           FCURR.MINIMUM_ACCOUNTABLE_UNIT,
56           FCURR.DESCRIPTION,
57           GSBKS.NAME
58         INTO BASE_CURR,PREC,MIN_AU,DESCR,ORG_NAME
59         FROM
60           FA_BOOK_CONTROLS BKCTRL,
61           FND_CURRENCIES_VL FCURR,
62           GL_SETS_OF_BOOKS GSBKS
63         WHERE BKCTRL.BOOK_TYPE_CODE = P_BOOK_TYPE_CODE
64           AND BKCTRL.SET_OF_BOOKS_ID = GSBKS.SET_OF_BOOKS_ID
65           AND GSBKS.CURRENCY_CODE = FCURR.CURRENCY_CODE;
66       EXCEPTION
67         WHEN NO_DATA_FOUND THEN
68           RAISE_ERR('JL_AR_FA_CUR_DET_NOT_DEFINED'
69                    ,'N');
70         WHEN OTHERS THEN
71           RAISE_ORA_ERR;
72       END;
73     END IF;
74     C_BASE_CURRENCY_CODE := BASE_CURR;
75     C_BASE_PRECISION := PREC;
76     C_BASE_MIN_ACCT_UNIT := MIN_AU;
77     C_BASE_DESCRIPTION := DESCR;
78     C_ORGANIZATION_NAME := ORG_NAME;
79   END GET_BASE_CURR_DATA;
80 
81   FUNCTION AFTERREPORT RETURN BOOLEAN IS
82   BEGIN
83     BEGIN
84       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
85     EXCEPTION
86       WHEN OTHERS THEN
87         /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
88     END;
89     RETURN (TRUE);
90   END AFTERREPORT;
91 
92   FUNCTION C_PRICE_INDEXFORMULA(ASSET_CATEGORY IN NUMBER
93                                ,ACQDATE IN DATE) RETURN NUMBER IS
94     X NUMBER(15);
95     CATEGORY_DESC VARCHAR2(40);
96     ERRMSG VARCHAR2(1000);
97   BEGIN
98     SELECT
99       FPI.PRICE_INDEX_ID
100     INTO X
101     FROM
102       FA_PRICE_INDEXES FPI,
103       FA_CATEGORY_BOOK_DEFAULTS FCBD
104     WHERE FCBD.BOOK_TYPE_CODE = P_BOOK_TYPE_CODE
105       AND FCBD.CATEGORY_ID = ASSET_CATEGORY
106       AND ACQDATE >= FCBD.START_DPIS
107       AND ACQDATE <= NVL(FCBD.END_DPIS
108        ,ACQDATE)
109       AND FCBD.PRICE_INDEX_NAME = FPI.PRICE_INDEX_NAME;
110     IF X IS NULL THEN
111       RAISE NO_DATA_FOUND;
112     END IF;
113     RETURN (X);
114   EXCEPTION
115     WHEN NO_DATA_FOUND THEN
116       SELECT
117         DESCRIPTION
118       INTO CATEGORY_DESC
119       FROM
120         FA_CATEGORIES
121       WHERE CATEGORY_ID = ASSET_CATEGORY;
122       SET_NAME('JL'
123               ,'JL_ZZ_FA_INDX_NOT_DEF_FOR_CATG');
124       SET_TOKEN('ASSET_CATEGORY'
125                ,CATEGORY_DESC
126                ,FALSE);
127       ERRMSG := GET;
128       /*SRW.MESSAGE(JL_ZZ_FA_UTILITIES_PKG.GET_APP_ERRNUM('JL'
129                                                        ,'JL_ZZ_FA_INDX_NOT_DEF_FOR_CATG')
130                  ,ERRMSG)*/NULL;
131       /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
132       RETURN NULL;
133     WHEN OTHERS THEN
134       RAISE_ORA_ERR;
135       RETURN NULL;
136   END C_PRICE_INDEXFORMULA;
137 
138   FUNCTION C_INDEX_VALUEFORMULA(C_PRICE_INDEX IN NUMBER
139                                ,ACQDATE IN DATE) RETURN NUMBER IS
140     X NUMBER;
141     ERRMSG VARCHAR2(1000);
142     INDEX_NAME VARCHAR2(40);
143   BEGIN
144     BEGIN
145       SELECT
146         PRICE_INDEX_VALUE
147       INTO X
148       FROM
149         FA_PRICE_INDEX_VALUES
150       WHERE PRICE_INDEX_ID = C_PRICE_INDEX
151         AND ACQDATE BETWEEN FROM_DATE
152         AND TO_DATE;
153     EXCEPTION
154       WHEN NO_DATA_FOUND THEN
155         SELECT
156           PRICE_INDEX_NAME
157         INTO INDEX_NAME
158         FROM
159           FA_PRICE_INDEXES
160         WHERE PRICE_INDEX_ID = C_PRICE_INDEX;
161         SET_NAME('JL'
162                 ,'JL_ZZ_FA_INDX_VAL_NOT_FOUND');
163         SET_TOKEN('PRICE_INDEX'
164                  ,INDEX_NAME
165                  ,FALSE);
166         SET_TOKEN('MISSING_DATE'
167                  ,TO_CHAR(ACQDATE)
168                  ,FALSE);
169         ERRMSG := GET;
170         /*SRW.MESSAGE(JL_ZZ_FA_UTILITIES_PKG.GET_APP_ERRNUM('JL'
171                                                          ,'JL_ZZ_FA_INDX_VAL_NOT_FOUND')
172                    ,ERRMSG)*/NULL;
173         /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
174         RETURN NULL;
175       WHEN OTHERS THEN
176         RAISE_ORA_ERR;
177         RETURN NULL;
178     END;
179     RETURN (NVL(X
180               ,0));
181   END C_INDEX_VALUEFORMULA;
182 
183   FUNCTION C_CORR_FACTORFORMULA(C_INDEX_VALUE_HALF_PERIOD IN NUMBER
184                                ,C_INDEX_VALUE IN NUMBER) RETURN NUMBER IS
185   BEGIN
186     RETURN (TRUNC(C_INDEX_VALUE_HALF_PERIOD / C_INDEX_VALUE
187                 ,C_RATIO_PRECISION));
188   END C_CORR_FACTORFORMULA;
189 
190   FUNCTION C_ACCUM_DEPRN_PREV_YRFORMULA(ASSET_ID IN NUMBER
191                                        ,PERIOD_COUNTER IN NUMBER
192                                        ,RETIREMENT_ID IN NUMBER
193                                        ,ORIGINAL_COST IN NUMBER) RETURN NUMBER IS
194     T_ASSET_ID NUMBER := ASSET_ID;
195     T_BOOK_TYPE_CODE VARCHAR(30) := P_BOOK_TYPE_CODE;
196     T_PERIOD_START NUMBER := C_MIN_PERIOD_COUNTER;
197     T_PERIOD_END NUMBER := C_MAX_PERIOD_COUNTER;
198     T_PERIOD_COUNTER NUMBER := PERIOD_COUNTER;
199     T_RETIREMENT_ID NUMBER := RETIREMENT_ID;
200     T_ACC_DEPRN_PREV_FY NUMBER;
201     L_NR_COST NUMBER;
202     L_HAS_RESERVE_ADJUSTMENT NUMBER := 0;
203     L_HAS_RETIREMENT NUMBER := 0;
204     L_TOTAL_DEPRN_ADJUSTMENT NUMBER := 0;
205     L_LAST_DEPRN_PERIOD_PREV_FY NUMBER;
206     L_ACC_DEPRN_PREV_FY NUMBER := 0;
207     L_ADJUSTED_COST_PREV_FY NUMBER := 0;
208     L_PREV_ADJUSTED_COST NUMBER;
209     L_COST_RETIRED NUMBER := ORIGINAL_COST;
210     L_ADJ_COST_LESS_PART_RET NUMBER;
211     L_COST_BEGIN_YEAR NUMBER;
212     CURSOR C_RET_DEPRN_SUMMARY IS
213       SELECT
214         FDS.ADJUSTED_COST,
215         FDS.PERIOD_COUNTER
216       FROM
217         FA_DEPRN_SUMMARY FDS
218       WHERE FDS.BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
219         AND FDS.ASSET_ID = T_ASSET_ID
220         AND FDS.PERIOD_COUNTER between T_PERIOD_START
221         AND T_PERIOD_COUNTER;
222     CURSOR C_RET_DEPRN_SUMMARY_MRC IS
223       SELECT
224         FDS.ADJUSTED_COST,
225         FDS.PERIOD_COUNTER
226       FROM
227         FA_DEPRN_SUMMARY FDS
228       WHERE FDS.BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
229         AND FDS.ASSET_ID = T_ASSET_ID
230         AND FDS.PERIOD_COUNTER between T_PERIOD_START
231         AND T_PERIOD_COUNTER;
232   BEGIN
233     T_ACC_DEPRN_PREV_FY := 0;
234     IF UPPER(P_MRCSOBTYPE) = 'R' THEN
235       BEGIN
236         SELECT
237           PERIOD_COUNTER,
238           DEPRN_RESERVE,
239           ADJUSTED_COST
240         INTO L_LAST_DEPRN_PERIOD_PREV_FY,L_ACC_DEPRN_PREV_FY,L_ADJUSTED_COST_PREV_FY
241         FROM
242           FA_DEPRN_SUMMARY_MRC_V
243         WHERE BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
244           AND ASSET_ID = T_ASSET_ID
245           AND PERIOD_COUNTER = (
246           SELECT
247             MAX(FDS2.PERIOD_COUNTER)
248           FROM
249             FA_DEPRN_SUMMARY_MRC_V FDS2
250           WHERE FDS2.BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
251             AND FDS2.ASSET_ID = T_ASSET_ID
252             AND FDS2.PERIOD_COUNTER <= T_PERIOD_START - 1 );
253       EXCEPTION
254         WHEN NO_DATA_FOUND THEN
255           L_ACC_DEPRN_PREV_FY := 0;
256         WHEN OTHERS THEN
257           L_ACC_DEPRN_PREV_FY := -1;
258       END;
259       IF L_ACC_DEPRN_PREV_FY = 0 THEN
260         T_ACC_DEPRN_PREV_FY := 0;
261         RETURN (NVL(T_ACC_DEPRN_PREV_FY
262                   ,0));
263       END IF;
264       BEGIN
265         SELECT
266           COUNT(RET.RETIREMENT_ID)
267         INTO L_HAS_RETIREMENT
268         FROM
269           FA_RETIREMENTS_MRC_V RET,
270           FA_DEPRN_PERIODS_MRC_V FDP
271         WHERE RET.BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
272           AND RET.STATUS <> 'DELETED'
273           AND RET.BOOK_TYPE_CODE = FDP.BOOK_TYPE_CODE
274           AND RET.ASSET_ID = T_ASSET_ID
275           AND RET.DATE_RETIRED between FDP.CALENDAR_PERIOD_OPEN_DATE
276           AND FDP.CALENDAR_PERIOD_CLOSE_DATE
277           AND FDP.FISCAL_YEAR = P_CURR_FY;
278       EXCEPTION
279         WHEN OTHERS THEN
280           RAISE_ORA_ERR;
281       END;
282       IF L_HAS_RETIREMENT = 0 THEN
283         T_ACC_DEPRN_PREV_FY := L_ACC_DEPRN_PREV_FY;
284         RETURN (NVL(T_ACC_DEPRN_PREV_FY
285                   ,0));
286       END IF;
287       BEGIN
288         SELECT
289           BKS.COST
290         INTO L_COST_BEGIN_YEAR
291         FROM
292           FA_BOOKS_MRC_V BKS,
293           FA_DEPRN_PERIODS_MRC_V DPP
294         WHERE DPP.PERIOD_COUNTER = T_PERIOD_START
295           AND BKS.BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
296           AND DPP.BOOK_TYPE_CODE = BKS.BOOK_TYPE_CODE
297           AND BKS.ASSET_ID = T_ASSET_ID
298           AND DPP.PERIOD_OPEN_DATE between BKS.DATE_EFFECTIVE
299           AND NVL(BKS.DATE_INEFFECTIVE
300            ,DPP.PERIOD_OPEN_DATE);
301       EXCEPTION
302         WHEN NO_DATA_FOUND THEN
303           L_COST_BEGIN_YEAR := 0;
304         WHEN OTHERS THEN
305           /*SRW.MESSAGE(1
306                      ,'Error Calculation Cost at begining of the year')*/NULL;
307       END;
308       BEGIN
309         SELECT
310           COUNT(FDD.DEPRN_ADJUSTMENT_AMOUNT),
311           SUM(FDD.DEPRN_ADJUSTMENT_AMOUNT)
312         INTO L_HAS_RESERVE_ADJUSTMENT,L_TOTAL_DEPRN_ADJUSTMENT
313         FROM
314           FA_DEPRN_DETAIL_MRC_V FDD
315         WHERE FDD.BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
316           AND FDD.ASSET_ID = T_ASSET_ID
317           AND FDD.PERIOD_COUNTER between T_PERIOD_START
318           AND T_PERIOD_END
319           AND FDD.DEPRN_ADJUSTMENT_AMOUNT <> 0;
320       EXCEPTION
321         WHEN OTHERS THEN
322           RAISE_ORA_ERR;
323       END;
324       IF L_HAS_RESERVE_ADJUSTMENT = 0 THEN
325         BEGIN
326           SELECT
327             DEPRN_RESERVE / L_COST_BEGIN_YEAR * L_COST_RETIRED
328           INTO T_ACC_DEPRN_PREV_FY
329           FROM
330             FA_DEPRN_SUMMARY_MRC_V
331           WHERE BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
332             AND ASSET_ID = T_ASSET_ID
333             AND PERIOD_COUNTER = L_LAST_DEPRN_PERIOD_PREV_FY;
334         EXCEPTION
335           WHEN NO_DATA_FOUND THEN
336             T_ACC_DEPRN_PREV_FY := 0;
337           WHEN OTHERS THEN
338             T_ACC_DEPRN_PREV_FY := -1;
339         END;
340       ELSE
341         L_PREV_ADJUSTED_COST := L_ADJUSTED_COST_PREV_FY;
342         L_ADJ_COST_LESS_PART_RET := L_ADJUSTED_COST_PREV_FY;
343         FOR c_ret_rec IN C_RET_DEPRN_SUMMARY_MRC LOOP
344           IF L_ADJ_COST_LESS_PART_RET = 0 THEN
345             L_COST_RETIRED := 0;
346             EXIT;
347           END IF;
348           IF C_RET_REC.ADJUSTED_COST <> L_PREV_ADJUSTED_COST THEN
349             BEGIN
350               SELECT
351                 RET.COST_RETIRED
352               INTO L_COST_RETIRED
353               FROM
354                 FA_RETIREMENTS_MRC_V RET,
355                 FA_DEPRN_PERIODS_MRC_V FDP
356               WHERE RET.BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
357                 AND RET.STATUS <> 'DELETED'
358                 AND RET.BOOK_TYPE_CODE = FDP.BOOK_TYPE_CODE
359                 AND RET.ASSET_ID = T_ASSET_ID
360                 AND RET.DATE_RETIRED between FDP.CALENDAR_PERIOD_OPEN_DATE
361                 AND FDP.CALENDAR_PERIOD_CLOSE_DATE
362                 AND FDP.PERIOD_COUNTER = C_RET_REC.PERIOD_COUNTER;
363             EXCEPTION
364               WHEN NO_DATA_FOUND THEN
365                 L_COST_RETIRED := 0;
366               WHEN OTHERS THEN
367                 L_COST_RETIRED := 0;
368             END;
369             IF L_COST_RETIRED <> 0 THEN
370               IF L_COST_RETIRED <= L_ADJ_COST_LESS_PART_RET THEN
371                 L_ADJ_COST_LESS_PART_RET := L_ADJ_COST_LESS_PART_RET - L_COST_RETIRED;
372               ELSE
373                 L_COST_RETIRED := L_ADJ_COST_LESS_PART_RET;
374                 L_ADJ_COST_LESS_PART_RET := 0;
375               END IF;
376             END IF;
377             L_PREV_ADJUSTED_COST := C_RET_REC.ADJUSTED_COST;
378           END IF;
379         END LOOP;
380         IF T_RETIREMENT_ID IS NULL THEN
381           T_ACC_DEPRN_PREV_FY := (L_ACC_DEPRN_PREV_FY / L_ADJUSTED_COST_PREV_FY) * L_ADJ_COST_LESS_PART_RET;
382         ELSE
383           T_ACC_DEPRN_PREV_FY := (L_ACC_DEPRN_PREV_FY / L_ADJUSTED_COST_PREV_FY) * L_COST_RETIRED;
384         END IF;
385       END IF;
386     ELSE
387       BEGIN
388         SELECT
389           PERIOD_COUNTER,
390           DEPRN_RESERVE,
391           ADJUSTED_COST
392         INTO L_LAST_DEPRN_PERIOD_PREV_FY,L_ACC_DEPRN_PREV_FY,L_ADJUSTED_COST_PREV_FY
393         FROM
394           FA_DEPRN_SUMMARY
395         WHERE BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
396           AND ASSET_ID = T_ASSET_ID
397           AND PERIOD_COUNTER = (
398           SELECT
399             MAX(FDS2.PERIOD_COUNTER)
400           FROM
401             FA_DEPRN_SUMMARY FDS2
402           WHERE FDS2.BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
403             AND FDS2.ASSET_ID = T_ASSET_ID
404             AND FDS2.PERIOD_COUNTER <= T_PERIOD_START - 1 );
405       EXCEPTION
406         WHEN NO_DATA_FOUND THEN
407           L_ACC_DEPRN_PREV_FY := 0;
408         WHEN OTHERS THEN
409           L_ACC_DEPRN_PREV_FY := -1;
410       END;
411       IF L_ACC_DEPRN_PREV_FY = 0 THEN
412         T_ACC_DEPRN_PREV_FY := 0;
413         RETURN (NVL(T_ACC_DEPRN_PREV_FY
414                   ,0));
415       END IF;
416       BEGIN
417         SELECT
418           COUNT(RET.RETIREMENT_ID)
419         INTO L_HAS_RETIREMENT
420         FROM
421           FA_RETIREMENTS RET,
422           FA_DEPRN_PERIODS FDP
423         WHERE RET.BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
424           AND RET.STATUS <> 'DELETED'
425           AND RET.BOOK_TYPE_CODE = FDP.BOOK_TYPE_CODE
426           AND RET.ASSET_ID = T_ASSET_ID
427           AND RET.DATE_RETIRED between FDP.CALENDAR_PERIOD_OPEN_DATE
428           AND FDP.CALENDAR_PERIOD_CLOSE_DATE
429           AND FDP.FISCAL_YEAR = P_CURR_FY;
430       EXCEPTION
431         WHEN OTHERS THEN
432           RAISE_ORA_ERR;
433       END;
434       IF L_HAS_RETIREMENT = 0 THEN
435         T_ACC_DEPRN_PREV_FY := L_ACC_DEPRN_PREV_FY;
436         RETURN (NVL(T_ACC_DEPRN_PREV_FY
437                   ,0));
438       END IF;
439       BEGIN
440         SELECT
441           BKS.COST
442         INTO L_COST_BEGIN_YEAR
443         FROM
444           FA_BOOKS BKS,
445           FA_DEPRN_PERIODS DPP
446         WHERE DPP.PERIOD_COUNTER = T_PERIOD_START
447           AND BKS.BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
448           AND DPP.BOOK_TYPE_CODE = BKS.BOOK_TYPE_CODE
449           AND BKS.ASSET_ID = T_ASSET_ID
450           AND DPP.PERIOD_OPEN_DATE between BKS.DATE_EFFECTIVE
451           AND NVL(BKS.DATE_INEFFECTIVE
452            ,DPP.PERIOD_OPEN_DATE);
453       EXCEPTION
454         WHEN NO_DATA_FOUND THEN
455           L_COST_BEGIN_YEAR := 0;
456         WHEN OTHERS THEN
457           /*SRW.MESSAGE(1
458                      ,'Error Calculation Cost at begining of the year')*/NULL;
459       END;
460       BEGIN
461         SELECT
462           COUNT(FDD.DEPRN_ADJUSTMENT_AMOUNT),
463           SUM(FDD.DEPRN_ADJUSTMENT_AMOUNT)
464         INTO L_HAS_RESERVE_ADJUSTMENT,L_TOTAL_DEPRN_ADJUSTMENT
465         FROM
466           FA_DEPRN_DETAIL FDD
467         WHERE FDD.BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
468           AND FDD.ASSET_ID = T_ASSET_ID
469           AND FDD.PERIOD_COUNTER between T_PERIOD_START
470           AND T_PERIOD_END
471           AND FDD.DEPRN_ADJUSTMENT_AMOUNT <> 0;
472       EXCEPTION
473         WHEN OTHERS THEN
474           RAISE_ORA_ERR;
475       END;
476       IF L_HAS_RESERVE_ADJUSTMENT = 0 THEN
477         BEGIN
478           SELECT
479             DEPRN_RESERVE / L_COST_BEGIN_YEAR * L_COST_RETIRED
480           INTO T_ACC_DEPRN_PREV_FY
481           FROM
482             FA_DEPRN_SUMMARY
483           WHERE BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
484             AND ASSET_ID = T_ASSET_ID
485             AND PERIOD_COUNTER = L_LAST_DEPRN_PERIOD_PREV_FY;
486         EXCEPTION
487           WHEN NO_DATA_FOUND THEN
488             T_ACC_DEPRN_PREV_FY := 0;
489           WHEN OTHERS THEN
490             T_ACC_DEPRN_PREV_FY := -1;
491         END;
492       ELSE
493         L_PREV_ADJUSTED_COST := L_ADJUSTED_COST_PREV_FY;
494         L_ADJ_COST_LESS_PART_RET := L_ADJUSTED_COST_PREV_FY;
495         FOR c_ret_rec IN C_RET_DEPRN_SUMMARY LOOP
496           IF L_ADJ_COST_LESS_PART_RET = 0 THEN
497             L_COST_RETIRED := 0;
498             EXIT;
499           END IF;
500           IF C_RET_REC.ADJUSTED_COST <> L_PREV_ADJUSTED_COST THEN
501             BEGIN
502               SELECT
503                 RET.COST_RETIRED
504               INTO L_COST_RETIRED
505               FROM
506                 FA_RETIREMENTS RET,
507                 FA_DEPRN_PERIODS FDP
508               WHERE RET.BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
509                 AND RET.STATUS <> 'DELETED'
510                 AND RET.BOOK_TYPE_CODE = FDP.BOOK_TYPE_CODE
511                 AND RET.ASSET_ID = T_ASSET_ID
512                 AND RET.DATE_RETIRED between FDP.CALENDAR_PERIOD_OPEN_DATE
513                 AND FDP.CALENDAR_PERIOD_CLOSE_DATE
514                 AND FDP.PERIOD_COUNTER = C_RET_REC.PERIOD_COUNTER;
515             EXCEPTION
516               WHEN NO_DATA_FOUND THEN
517                 L_COST_RETIRED := 0;
518               WHEN OTHERS THEN
519                 L_COST_RETIRED := 0;
520             END;
521             IF L_COST_RETIRED <> 0 THEN
522               IF L_COST_RETIRED <= L_ADJ_COST_LESS_PART_RET THEN
523                 L_ADJ_COST_LESS_PART_RET := L_ADJ_COST_LESS_PART_RET - L_COST_RETIRED;
524               ELSE
525                 L_COST_RETIRED := L_ADJ_COST_LESS_PART_RET;
526                 L_ADJ_COST_LESS_PART_RET := 0;
527               END IF;
528             END IF;
529             L_PREV_ADJUSTED_COST := C_RET_REC.ADJUSTED_COST;
530           END IF;
531         END LOOP;
532         IF T_RETIREMENT_ID IS NULL THEN
533           T_ACC_DEPRN_PREV_FY := (L_ACC_DEPRN_PREV_FY / L_ADJUSTED_COST_PREV_FY) * L_ADJ_COST_LESS_PART_RET;
534         ELSE
535           T_ACC_DEPRN_PREV_FY := (L_ACC_DEPRN_PREV_FY / L_ADJUSTED_COST_PREV_FY) * L_COST_RETIRED;
536         END IF;
537       END IF;
538     END IF;
539     RETURN (NVL(T_ACC_DEPRN_PREV_FY
540               ,0));
541   END C_ACCUM_DEPRN_PREV_YRFORMULA;
542 
543   FUNCTION C_ADJ_NBVFORMULA(ORIGINAL_COST IN NUMBER
544                            ,C_ACCUM_DEPRN_CURR_YR IN NUMBER
545                            ,C_ACCUM_DEPRN_PREV_YR IN NUMBER
546                            ,C_CORR_FACTOR IN NUMBER) RETURN NUMBER IS
547     T_ADJ_NBV NUMBER;
548   BEGIN
549     T_ADJ_NBV := (ORIGINAL_COST - (C_ACCUM_DEPRN_CURR_YR + C_ACCUM_DEPRN_PREV_YR)) * C_CORR_FACTOR;
550     RETURN (T_ADJ_NBV);
551   END C_ADJ_NBVFORMULA;
552 
553   FUNCTION C_NBVFORMULA(ASSET_ID IN NUMBER
554                        ,TRANSACTION_HEADER_ID IN NUMBER
555                        ,PERIOD_COUNTER IN NUMBER
556                        ,RETIREMENT_ID IN NUMBER
557                        ,ORIGINAL_COST IN NUMBER) RETURN NUMBER IS
558     T_ASSET_ID NUMBER := ASSET_ID;
559     T_BOOK_TYPE_CODE VARCHAR(30) := P_BOOK_TYPE_CODE;
560     T_TRANSACTION_HEADER_ID NUMBER := TRANSACTION_HEADER_ID;
561     T_PERIOD_START NUMBER := C_MIN_PERIOD_COUNTER;
562     T_PERIOD_END NUMBER := C_MAX_PERIOD_COUNTER;
563     T_PERIOD_COUNTER NUMBER := PERIOD_COUNTER;
564     T_RETIREMENT_ID NUMBER := RETIREMENT_ID;
565     T_COST_RETIRED NUMBER := ORIGINAL_COST;
566     T_ACC_DEPRN_LIFE_TD NUMBER;
567   BEGIN
568     T_ACC_DEPRN_LIFE_TD := 0;
569     IF UPPER(P_MRCSOBTYPE) = 'R' THEN
570       IF T_RETIREMENT_ID IS NOT NULL THEN
571         BEGIN
572           SELECT
573             SUM(FAD.ADJUSTMENT_AMOUNT)
574           INTO T_ACC_DEPRN_LIFE_TD
575           FROM
576             FA_ADJUSTMENTS_MRC_V FAD
577           WHERE FAD.BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
578             AND FAD.ASSET_ID = T_ASSET_ID
579             AND FAD.SOURCE_TYPE_CODE = 'RETIREMENT'
580             AND FAD.ADJUSTMENT_TYPE = 'RESERVE'
581             AND FAD.TRANSACTION_HEADER_ID = T_TRANSACTION_HEADER_ID;
582         EXCEPTION
583           WHEN NO_DATA_FOUND THEN
584             T_ACC_DEPRN_LIFE_TD := 0;
585           WHEN OTHERS THEN
586             T_ACC_DEPRN_LIFE_TD := -1;
587         END;
588       ELSE
589         BEGIN
590           SELECT
591             DEPRN_RESERVE
592           INTO T_ACC_DEPRN_LIFE_TD
593           FROM
594             FA_DEPRN_SUMMARY_MRC_V
595           WHERE BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
596             AND ASSET_ID = T_ASSET_ID
597             AND PERIOD_COUNTER = T_PERIOD_COUNTER;
598         EXCEPTION
599           WHEN NO_DATA_FOUND THEN
600             T_ACC_DEPRN_LIFE_TD := 0;
601           WHEN OTHERS THEN
602             T_ACC_DEPRN_LIFE_TD := -1;
603         END;
604       END IF;
605     ELSE
606       IF T_RETIREMENT_ID IS NOT NULL THEN
607         BEGIN
608           SELECT
609             SUM(FAD.ADJUSTMENT_AMOUNT)
610           INTO T_ACC_DEPRN_LIFE_TD
611           FROM
612             FA_ADJUSTMENTS FAD
613           WHERE FAD.BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
614             AND FAD.ASSET_ID = T_ASSET_ID
615             AND FAD.SOURCE_TYPE_CODE = 'RETIREMENT'
616             AND FAD.ADJUSTMENT_TYPE = 'RESERVE'
617             AND FAD.TRANSACTION_HEADER_ID = T_TRANSACTION_HEADER_ID;
618         EXCEPTION
619           WHEN NO_DATA_FOUND THEN
620             T_ACC_DEPRN_LIFE_TD := 0;
621           WHEN OTHERS THEN
622             T_ACC_DEPRN_LIFE_TD := -1;
623         END;
624       ELSE
625         BEGIN
626           SELECT
627             DEPRN_RESERVE
628           INTO T_ACC_DEPRN_LIFE_TD
629           FROM
630             FA_DEPRN_SUMMARY
631           WHERE BOOK_TYPE_CODE = T_BOOK_TYPE_CODE
632             AND ASSET_ID = T_ASSET_ID
633             AND PERIOD_COUNTER = T_PERIOD_COUNTER;
634         EXCEPTION
635           WHEN NO_DATA_FOUND THEN
636             T_ACC_DEPRN_LIFE_TD := 0;
637           WHEN OTHERS THEN
638             T_ACC_DEPRN_LIFE_TD := -1;
639         END;
640       END IF;
641     END IF;
642     RETURN (NVL(T_ACC_DEPRN_LIFE_TD
643               ,0));
644   END C_NBVFORMULA;
645 
646   FUNCTION C_ACCUM_DEPRN_CURR_YRFORMULA(C_NBV IN NUMBER
647                                        ,C_ACCUM_DEPRN_PREV_YR IN NUMBER) RETURN NUMBER IS
648     V_YTD_DEPRN NUMBER;
649   BEGIN
650     V_YTD_DEPRN := C_NBV - C_ACCUM_DEPRN_PREV_YR;
651     RETURN (V_YTD_DEPRN);
652   END C_ACCUM_DEPRN_CURR_YRFORMULA;
653 
654   FUNCTION C_INDEX_VALUE_HALF_PERIODFORMU(ACQDATE IN DATE
655                                          ,DATE_RETIRED IN DATE
656                                          ,C_PRICE_INDEX IN NUMBER) RETURN NUMBER IS
657     MON_NUM NUMBER(2);
658     MON_ACQUIRED NUMBER(2);
659     X NUMBER;
660     HALF_PERIOD_DATE DATE;
661     YEAR NUMBER;
662     ERRMSG VARCHAR2(1000);
663     INDEX_NAME VARCHAR2(40);
664   BEGIN
665     X := NULL;
666     IF ACQDATE BETWEEN C_FISCAL_START_DATE AND C_FISCAL_END_DATE THEN
667       MON_ACQUIRED := TO_NUMBER(TO_CHAR(ACQDATE
668                                        ,'MM'));
669     ELSE
670       MON_ACQUIRED := 0;
671     END IF;
672     MON_NUM := JL_ZZ_FA_FUNCTIONS_PKG.MIDDLE_MONTH(MON_ACQUIRED
673                                                   ,TO_NUMBER(TO_CHAR(DATE_RETIRED
674                                                                    ,'MM'))
675                                                   ,P_INCLUDE_DPIS
676                                                   ,P_INCLUDE_RET);
677     IF MON_NUM = '0' THEN
678       YEAR := TO_CHAR(C_FISCAL_START_DATE - 365
679                      ,'YYYY');
680       MON_NUM := '12';
681     ELSE
682       YEAR := TO_CHAR(C_FISCAL_START_DATE
683                      ,'YYYY');
684     END IF;
685     HALF_PERIOD_DATE := LAST_DAY(TO_DATE('01-' || LPAD(TO_CHAR(MON_NUM)
686                                              ,2
687                                              ,'0') || '-' || TO_CHAR(YEAR)
688                                         ,'DD-MM-YYYY'));
689     BEGIN
690       SELECT
691         PRICE_INDEX_VALUE
692       INTO X
693       FROM
694         FA_PRICE_INDEX_VALUES
695       WHERE PRICE_INDEX_ID = C_PRICE_INDEX
696         AND HALF_PERIOD_DATE BETWEEN FROM_DATE
697         AND TO_DATE;
698     EXCEPTION
699       WHEN NO_DATA_FOUND THEN
700         SELECT
701           PRICE_INDEX_NAME
702         INTO INDEX_NAME
703         FROM
704           FA_PRICE_INDEXES
705         WHERE PRICE_INDEX_ID = C_PRICE_INDEX;
706         FND_MESSAGE.SET_NAME('JL'
707                             ,'JL_ZZ_FA_INDX_VAL_NOT_FOUND');
708         FND_MESSAGE.SET_TOKEN('PRICE_INDEX'
709                              ,INDEX_NAME
710                              ,FALSE);
711         FND_MESSAGE.SET_TOKEN('MISSING_DATE'
712                              ,TO_CHAR(HALF_PERIOD_DATE)
713                              ,FALSE);
714         ERRMSG := FND_MESSAGE.GET;
715         /*SRW.MESSAGE(JL_ZZ_FA_UTILITIES_PKG.GET_APP_ERRNUM('JL'
716                                                          ,'JL_ZZ_FA_INDX_VAL_NOT_FOUND')
717                    ,ERRMSG)*/NULL;
718         /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
719         RETURN NULL;
720       WHEN OTHERS THEN
721         RAISE_ORA_ERR;
722         RETURN NULL;
723     END;
724     RETURN (NVL(X
725               ,0));
726   END C_INDEX_VALUE_HALF_PERIODFORMU;
727 
728   PROCEDURE CUSTOM_INIT IS
729     FIS_YR NUMBER(4);
730     CURR_PER_COUNTER NUMBER(15);
731     MAX_PER_COUNTER NUMBER(15);
732     MIN_PER_COUNTER NUMBER(15);
733     LAST_PER_COUNTER NUMBER(15);
734     V_RATIO_PRECISION VARCHAR2(10);
735     FROM_DATE DATE;
736     TO_DATE DATE;
737   BEGIN
738     FND_PROFILE.GET('JLZZ_INF_RATIO_PRECISION'
739                    ,V_RATIO_PRECISION);
740     IF V_RATIO_PRECISION IS NULL THEN
741       C_RATIO_PRECISION := 38;
742     ELSE
743       C_RATIO_PRECISION := TO_NUMBER(V_RATIO_PRECISION);
744     END IF;
745     IF UPPER(P_MRCSOBTYPE) = 'R' THEN
746       BEGIN
747         SELECT
748           MIN(PERIOD_COUNTER),
749           MAX(PERIOD_COUNTER)
750         INTO MIN_PER_COUNTER,MAX_PER_COUNTER
751         FROM
752           FA_DEPRN_PERIODS_MRC_V
753         WHERE BOOK_TYPE_CODE = P_BOOK_TYPE_CODE
754           AND FISCAL_YEAR = P_CURR_FY;
755       EXCEPTION
756         WHEN NO_DATA_FOUND THEN
757           RAISE_ERR('JL_AR_FA_CUR_FY_DEP_PER_NOTDEF'
758                    ,'N');
759         WHEN OTHERS THEN
760           RAISE_ORA_ERR;
761       END;
762       C_MIN_PERIOD_COUNTER := MIN_PER_COUNTER;
763       C_MAX_PERIOD_COUNTER := MAX_PER_COUNTER;
764       BEGIN
765         SELECT
766           MAX(PERIOD_COUNTER)
767         INTO LAST_PER_COUNTER
768         FROM
769           FA_DEPRN_PERIODS_MRC_V
770         WHERE BOOK_TYPE_CODE = P_BOOK_TYPE_CODE
771           AND FISCAL_YEAR = P_CURR_FY - 1;
772       EXCEPTION
773         WHEN NO_DATA_FOUND THEN
774           RAISE_ERR('JL_AR_FA_PRV_FY_DEP_PER_NOTDEF'
775                    ,'N');
776         WHEN OTHERS THEN
777           RAISE_ORA_ERR;
778       END;
779       C_LAST_PERIOD_COUNTER := LAST_PER_COUNTER;
780       BEGIN
781         SELECT
782           A.START_DATE,
783           A.END_DATE
784         INTO FROM_DATE,TO_DATE
785         FROM
786           FA_BOOK_CONTROLS_MRC_V B,
787           FA_FISCAL_YEAR A
788         WHERE A.FISCAL_YEAR = P_CURR_FY
789           AND B.BOOK_TYPE_CODE = P_BOOK_TYPE_CODE
790           AND B.FISCAL_YEAR_NAME = A.FISCAL_YEAR_NAME;
791       EXCEPTION
792         WHEN NO_DATA_FOUND THEN
793           RAISE_ERR('JL_AR_FA_FY_DETAIL_NOT_DEFINED'
794                    ,'N');
795         WHEN OTHERS THEN
796           RAISE_ORA_ERR;
797       END;
798     ELSE
799       BEGIN
800         SELECT
801           MIN(PERIOD_COUNTER),
802           MAX(PERIOD_COUNTER)
803         INTO MIN_PER_COUNTER,MAX_PER_COUNTER
804         FROM
805           FA_DEPRN_PERIODS
806         WHERE BOOK_TYPE_CODE = P_BOOK_TYPE_CODE
807           AND FISCAL_YEAR = P_CURR_FY;
808       EXCEPTION
809         WHEN NO_DATA_FOUND THEN
810           RAISE_ERR('JL_AR_FA_CUR_FY_DEP_PER_NOTDEF'
811                    ,'N');
812         WHEN OTHERS THEN
813           RAISE_ORA_ERR;
814       END;
815       C_MIN_PERIOD_COUNTER := MIN_PER_COUNTER;
816       C_MAX_PERIOD_COUNTER := MAX_PER_COUNTER;
817       BEGIN
818         SELECT
819           MAX(PERIOD_COUNTER)
820         INTO LAST_PER_COUNTER
821         FROM
822           FA_DEPRN_PERIODS
823         WHERE BOOK_TYPE_CODE = P_BOOK_TYPE_CODE
824           AND FISCAL_YEAR = P_CURR_FY - 1;
825       EXCEPTION
826         WHEN NO_DATA_FOUND THEN
827           RAISE_ERR('JL_AR_FA_PRV_FY_DEP_PER_NOTDEF'
828                    ,'N');
829         WHEN OTHERS THEN
830           RAISE_ORA_ERR;
831       END;
832       C_LAST_PERIOD_COUNTER := LAST_PER_COUNTER;
833       BEGIN
834         SELECT
835           A.START_DATE,
836           A.END_DATE
837         INTO FROM_DATE,TO_DATE
838         FROM
839           FA_BOOK_CONTROLS B,
840           FA_FISCAL_YEAR A
841         WHERE A.FISCAL_YEAR = P_CURR_FY
842           AND B.BOOK_TYPE_CODE = P_BOOK_TYPE_CODE
843           AND B.FISCAL_YEAR_NAME = A.FISCAL_YEAR_NAME;
844       EXCEPTION
845         WHEN NO_DATA_FOUND THEN
846           RAISE_ERR('JL_AR_FA_FY_DETAIL_NOT_DEFINED'
847                    ,'N');
848         WHEN OTHERS THEN
849           RAISE_ORA_ERR;
850       END;
851     END IF;
852     C_FISCAL_START_DATE := FROM_DATE;
853     C_FISCAL_END_DATE := TO_DATE;
854   END CUSTOM_INIT;
855 
856   FUNCTION C_GAIN_LOSSFORMULA(C_ADJ_NBV IN NUMBER
857                              ,C_PROC_SALE IN NUMBER) RETURN NUMBER IS
858     L_AMOUNT NUMBER;
859   BEGIN
860     L_AMOUNT := C_ADJ_NBV - C_PROC_SALE;
861     RETURN (L_AMOUNT);
862   END C_GAIN_LOSSFORMULA;
863 
864   FUNCTION C_RET_DATEFORMULA RETURN DATE IS
865   BEGIN
866     DECLARE
867       MON_NUM NUMBER(2);
868       L_RET_DATE DATE;
869     BEGIN
870       RETURN (SYSDATE);
871     END;
872     RETURN NULL;
873   END C_RET_DATEFORMULA;
874 
875   FUNCTION C_PROC_SALEFORMULA(PROCEEDS_OF_SALE IN NUMBER) RETURN NUMBER IS
876   BEGIN
877     RETURN (PROCEEDS_OF_SALE);
878   END C_PROC_SALEFORMULA;
879 
880   PROCEDURE RAISE_ORA_ERR IS
881     ERRMSG VARCHAR2(1000);
882     ERRNUM NUMBER;
883   BEGIN
884     ERRMSG := SQLERRM;
885     ERRNUM := SQLCODE;
886     /*SRW.MESSAGE(ERRNUM
887                ,ERRMSG)*/NULL;
888     /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
889   END RAISE_ORA_ERR;
890 
891   PROCEDURE RAISE_ERR(MSGNAME IN VARCHAR2
892                      ,ABORT_FLAG IN VARCHAR2) IS
893     ERRMSG VARCHAR2(1000);
894   BEGIN
895     FND_MESSAGE.SET_NAME('JL'
896                         ,MSGNAME);
897     ERRMSG := FND_MESSAGE.GET;
898     /*SRW.MESSAGE(JL_ZZ_FA_UTILITIES_PKG.GET_APP_ERRNUM('JL'
899                                                      ,MSGNAME)
900                ,ERRMSG)*/NULL;
901     IF ABORT_FLAG = 'Y' THEN
902       /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
903     END IF;
904   END RAISE_ERR;
905 
906   FUNCTION CF_1FORMULA RETURN CHAR IS
907     T_MEANING VARCHAR2(30);
908   BEGIN
909     SELECT
910       MEANING
911     INTO T_MEANING
912     FROM
913       FND_LOOKUPS
914     WHERE LOOKUP_TYPE = 'YES_NO'
915       AND LOOKUP_CODE = P_INCLUDE_DPIS;
916     RETURN (T_MEANING);
917   EXCEPTION
918     WHEN OTHERS THEN
919       RETURN (P_INCLUDE_DPIS);
920   END CF_1FORMULA;
921 
922   FUNCTION CF_INCLUDE_RETFORMULA RETURN CHAR IS
923     T_MEANING VARCHAR2(30);
924   BEGIN
925     SELECT
926       MEANING
927     INTO T_MEANING
928     FROM
929       FND_LOOKUPS
930     WHERE LOOKUP_TYPE = 'YES_NO'
931       AND LOOKUP_CODE = P_INCLUDE_RET;
932     RETURN (T_MEANING);
933   EXCEPTION
934     WHEN OTHERS THEN
935       RETURN (P_INCLUDE_RET);
936   END CF_INCLUDE_RETFORMULA;
937 
938   FUNCTION AFTERPFORM RETURN BOOLEAN IS
939   BEGIN
940     IF P_CA_SET_OF_BOOKS_ID <> -1999 THEN
941       BEGIN
942         SELECT
943           MRC_SOB_TYPE_CODE,
944           CURRENCY_CODE
945         INTO P_MRCSOBTYPE,LP_CURRENCY_CODE
946         FROM
947           GL_SETS_OF_BOOKS
948         WHERE SET_OF_BOOKS_ID = P_CA_SET_OF_BOOKS_ID;
949       EXCEPTION
950         WHEN OTHERS THEN
951           P_MRCSOBTYPE := 'P';
952       END;
953     ELSE
954       P_MRCSOBTYPE := 'P';
955     END IF;
956     IF UPPER(P_MRCSOBTYPE) = 'R' THEN
957       LP_FA_BOOK_CONTROLS := 'FA_BOOK_CONTROLS_MRC_V';
958       LP_FA_BOOKS := 'FA_BOOKS_MRC_V';
959       LP_FA_ADJUSTMENTS := 'FA_ADJUSTMENTS_MRC_V';
960       LP_FA_DEPRN_PERIODS := 'FA_DEPRN_PERIODS_MRC_V';
961       LP_FA_DEPRN_SUMMARY := 'FA_DEPRN_SUMMARY_MRC_V';
962       LP_FA_DEPRN_DETAIL := 'FA_DEPRN_DETAIL_MRC_V';
963     ELSE
964       LP_FA_BOOK_CONTROLS := 'FA_BOOK_CONTROLS';
965       LP_FA_BOOKS := 'FA_BOOKS';
966       LP_FA_ADJUSTMENTS := 'FA_ADJUSTMENTS';
967       LP_FA_DEPRN_PERIODS := 'FA_DEPRN_PERIODS';
968       LP_FA_DEPRN_SUMMARY := 'FA_DEPRN_SUMMARY';
969       LP_FA_DEPRN_DETAIL := 'FA_DEPRN_DETAIL';
970     END IF;
971     RETURN (TRUE);
972   END AFTERPFORM;
973 
974   FUNCTION C_BASE_CURRENCY_CODE_P RETURN VARCHAR2 IS
975   BEGIN
976     RETURN C_BASE_CURRENCY_CODE;
977   END C_BASE_CURRENCY_CODE_P;
978 
979   FUNCTION C_BASE_PRECISION_P RETURN NUMBER IS
980   BEGIN
981     RETURN C_BASE_PRECISION;
982   END C_BASE_PRECISION_P;
983 
984   FUNCTION C_BASE_MIN_ACCT_UNIT_P RETURN NUMBER IS
985   BEGIN
986     RETURN C_BASE_MIN_ACCT_UNIT;
987   END C_BASE_MIN_ACCT_UNIT_P;
988 
989   FUNCTION C_BASE_DESCRIPTION_P RETURN VARCHAR2 IS
990   BEGIN
991     RETURN C_BASE_DESCRIPTION;
992   END C_BASE_DESCRIPTION_P;
993 
994   FUNCTION C_ORGANIZATION_NAME_P RETURN VARCHAR2 IS
995   BEGIN
996     RETURN C_ORGANIZATION_NAME;
997   END C_ORGANIZATION_NAME_P;
998 
999   FUNCTION C_CURR_FISCAL_YR_P RETURN NUMBER IS
1000   BEGIN
1001     RETURN C_CURR_FISCAL_YR;
1002   END C_CURR_FISCAL_YR_P;
1003 
1004   FUNCTION C_CURR_PERIOD_COUNTER_P RETURN NUMBER IS
1005   BEGIN
1006     RETURN C_CURR_PERIOD_COUNTER;
1007   END C_CURR_PERIOD_COUNTER_P;
1008 
1009   FUNCTION C_LAST_PERIOD_COUNTER_P RETURN NUMBER IS
1010   BEGIN
1011     RETURN C_LAST_PERIOD_COUNTER;
1012   END C_LAST_PERIOD_COUNTER_P;
1013 
1014   FUNCTION C_RATIO_PRECISION_P RETURN NUMBER IS
1015   BEGIN
1016     RETURN C_RATIO_PRECISION;
1017   END C_RATIO_PRECISION_P;
1018 
1019   FUNCTION C_MIN_PERIOD_COUNTER_P RETURN NUMBER IS
1020   BEGIN
1021     RETURN C_MIN_PERIOD_COUNTER;
1022   END C_MIN_PERIOD_COUNTER_P;
1023 
1024   FUNCTION C_MAX_PERIOD_COUNTER_P RETURN NUMBER IS
1025   BEGIN
1026     RETURN C_MAX_PERIOD_COUNTER;
1027   END C_MAX_PERIOD_COUNTER_P;
1028 
1029   FUNCTION C_FISCAL_START_DATE_P RETURN DATE IS
1030   BEGIN
1031     RETURN C_FISCAL_START_DATE;
1032   END C_FISCAL_START_DATE_P;
1033 
1034   FUNCTION C_FISCAL_END_DATE_P RETURN DATE IS
1035   BEGIN
1036     RETURN C_FISCAL_END_DATE;
1037   END C_FISCAL_END_DATE_P;
1038 
1039   PROCEDURE SET_NAME(APPLICATION IN VARCHAR2
1040                     ,NAME IN VARCHAR2) IS
1041   BEGIN
1042   /*  STPROC.INIT('begin FND_MESSAGE.SET_NAME(:APPLICATION, :NAME); end;');
1043     STPROC.BIND_I(APPLICATION);
1044     STPROC.BIND_I(NAME);
1045     STPROC.EXECUTE;*/
1046 
1047     FND_MESSAGE.SET_NAME(APPLICATION,NAME);
1048   END SET_NAME;
1049 
1050   PROCEDURE SET_TOKEN(TOKEN IN VARCHAR2
1051                      ,VALUE IN VARCHAR2
1052                      ,TRANSLATE IN BOOLEAN) IS
1053  TRANSLATE1 BOOLEAN;
1054   BEGIN
1055     /*STPROC.INIT('declare TRANSLATE BOOLEAN; begin TRANSLATE := sys.diutil.int_to_bool(:TRANSLATE); FND_MESSAGE.SET_TOKEN(:TOKEN, :VALUE, TRANSLATE); end;');
1056     STPROC.BIND_I(TRANSLATE);
1057     STPROC.BIND_I(TOKEN);
1058     STPROC.BIND_I(VALUE);
1059     STPROC.EXECUTE;*/
1060 
1061    -- TRANSLATE1 := sys.diutil.int_to_bool(TRANSLATE);
1062     FND_MESSAGE.SET_TOKEN(TOKEN, VALUE, TRANSLATE1);
1063   END SET_TOKEN;
1064 
1065   PROCEDURE RETRIEVE(MSGOUT OUT NOCOPY VARCHAR2) IS
1066   BEGIN
1067   /*  STPROC.INIT('begin FND_MESSAGE.RETRIEVE(:MSGOUT); end;');
1068     STPROC.BIND_O(MSGOUT);
1069     STPROC.EXECUTE;
1070     STPROC.RETRIEVE(1
1071                    ,MSGOUT);*/null;
1072   END RETRIEVE;
1073 
1074   PROCEDURE CLEAR IS
1075   BEGIN
1076    /* STPROC.INIT('begin FND_MESSAGE.CLEAR; end;');
1077     STPROC.EXECUTE;*/null;
1078   END CLEAR;
1079 
1080   FUNCTION GET_STRING(APPIN IN VARCHAR2
1081                      ,NAMEIN IN VARCHAR2) RETURN VARCHAR2 IS
1082     X0 VARCHAR2(2000);
1083   BEGIN
1084   /*  STPROC.INIT('begin :X0 := FND_MESSAGE.GET_STRING(:APPIN, :NAMEIN); end;');
1085     STPROC.BIND_O(X0);
1086     STPROC.BIND_I(APPIN);
1087     STPROC.BIND_I(NAMEIN);
1088     STPROC.EXECUTE;
1089     STPROC.RETRIEVE(1
1090                    ,X0);*/
1091     RETURN X0;
1092   END GET_STRING;
1093 
1094   FUNCTION GET_NUMBER(APPIN IN VARCHAR2
1095                      ,NAMEIN IN VARCHAR2) RETURN NUMBER IS
1096     X0 NUMBER;
1097   BEGIN
1098     /*STPROC.INIT('begin :X0 := FND_MESSAGE.GET_NUMBER(:APPIN, :NAMEIN); end;');
1099     STPROC.BIND_O(X0);
1100     STPROC.BIND_I(APPIN);
1101     STPROC.BIND_I(NAMEIN);
1102     STPROC.EXECUTE;
1103     STPROC.RETRIEVE(1
1104                    ,X0);*/null;
1105     RETURN X0;
1106   END GET_NUMBER;
1107 
1108   FUNCTION GET RETURN VARCHAR2 IS
1109     X0 VARCHAR2(2000);
1110   BEGIN
1111   /*  STPROC.INIT('begin :X0 := FND_MESSAGE.GET; end;');
1112     STPROC.BIND_O(X0);
1113     STPROC.EXECUTE;
1114     STPROC.RETRIEVE(1
1115                    ,X0);*/
1116 
1117 		   X0 := FND_MESSAGE.GET;
1118     RETURN X0;
1119   END GET;
1120 
1121   FUNCTION GET_ENCODED RETURN VARCHAR2 IS
1122     X0 VARCHAR2(2000);
1123   BEGIN
1124   /*  STPROC.INIT('begin :X0 := FND_MESSAGE.GET_ENCODED; end;');
1125     STPROC.BIND_O(X0);
1126     STPROC.EXECUTE;
1127     STPROC.RETRIEVE(1
1128                    ,X0);*/
1129     RETURN X0;
1130   END GET_ENCODED;
1131 
1132   PROCEDURE PARSE_ENCODED(ENCODED_MESSAGE IN VARCHAR2
1133                          ,APP_SHORT_NAME OUT NOCOPY VARCHAR2
1134                          ,MESSAGE_NAME OUT NOCOPY VARCHAR2) IS
1135   BEGIN
1136   /*  STPROC.INIT('begin FND_MESSAGE.PARSE_ENCODED(:ENCODED_MESSAGE, :APP_SHORT_NAME, :MESSAGE_NAME); end;');
1137     STPROC.BIND_I(ENCODED_MESSAGE);
1138     STPROC.BIND_O(APP_SHORT_NAME);
1139     STPROC.BIND_O(MESSAGE_NAME);
1140     STPROC.EXECUTE;
1141     STPROC.RETRIEVE(2
1142                    ,APP_SHORT_NAME);
1143     STPROC.RETRIEVE(3
1144                    ,MESSAGE_NAME);*/null;
1145   END PARSE_ENCODED;
1146 
1147   PROCEDURE SET_ENCODED(ENCODED_MESSAGE IN VARCHAR2) IS
1148   BEGIN
1149   /*  STPROC.INIT('begin FND_MESSAGE.SET_ENCODED(:ENCODED_MESSAGE); end;');
1150     STPROC.BIND_I(ENCODED_MESSAGE);
1151     STPROC.EXECUTE;*/null;
1152   END SET_ENCODED;
1153 
1154   PROCEDURE RAISE_ERROR IS
1155   BEGIN
1156    /* STPROC.INIT('begin FND_MESSAGE.RAISE_ERROR; end;');
1157     STPROC.EXECUTE;*/null;
1158   END RAISE_ERROR;
1159 
1160 END JL_JLMXFGLR_XMLP_PKG;
1161 
1162