DBA Data[Home] [Help]

PACKAGE BODY: APPS.JA_JAINRGCR_XMLP_PKG

Source


1 PACKAGE BODY JA_JAINRGCR_XMLP_PKG AS
2 /* $Header: JAINRGCRB.pls 120.1 2007/12/25 16:28:07 dwkrishn noship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4     CURSOR CUR_PROGRAM_ID(P_REQUEST_ID IN NUMBER) IS
5       SELECT
6         CONCURRENT_PROGRAM_ID,
7         NVL(ENABLE_TRACE
8            ,'N')
9       FROM
10         FND_CONCURRENT_REQUESTS
11       WHERE REQUEST_ID = P_REQUEST_ID;
12     CURSOR CUR_GET_AUDSID IS
13       SELECT
14         A.SID,
15         A.SERIAL#,
16         B.SPID
17       FROM
18         V$SESSION A,
19         V$PROCESS B
20       WHERE AUDSID = USERENV('SESSIONID')
21         AND A.PADDR = B.ADDR;
22     CURSOR CUR_GET_DBNAME IS
23       SELECT
24         NAME
25       FROM
26         V$DATABASE;
27     AUDSID NUMBER := USERENV('SESSIONID');
28     SID NUMBER;
29     SERIAL NUMBER;
30     SPID VARCHAR2(9);
31     NAME1 VARCHAR2(25);
32     V_ENABLE_TRACE FND_CONCURRENT_PROGRAMS.ENABLE_TRACE%TYPE;
33     V_PROGRAM_ID FND_CONCURRENT_PROGRAMS.CONCURRENT_PROGRAM_ID%TYPE;
34   BEGIN
35 
36     /*CP_FROM_DATE := TO_CHAR(TO_DATE(P_FROM_DATE,'YYYY/MM/DD HH24:MI:SS'),'DD-MON-YY');
37     CP_TO_DATE := TO_CHAR(TO_DATE(P_TO_DATE,'YYYY/MM/DD HH24:MI:SS'),'DD-MON-YY');*/
38     CP_FROM_DATE := to_char(P_FROM_DATE,'DD-MON-YY');
39     CP_TO_DATE := to_char(P_TO_DATE,'DD-MON-YY');
40 
41     /*SRW.MESSAGE(1275
42                ,'Report Version is 120.3 Last modified date is 20/06/007')*/NULL;
43     P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
44     /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
45     BEGIN
46       OPEN CUR_PROGRAM_ID(P_CONC_REQUEST_ID);
47       FETCH CUR_PROGRAM_ID
48        INTO V_PROGRAM_ID,V_ENABLE_TRACE;
49       CLOSE CUR_PROGRAM_ID;
50       /*SRW.MESSAGE(1275
51                  ,'v_program_id -> ' || V_PROGRAM_ID || ', v_enable_trace -> ' || V_ENABLE_TRACE || ', request_id -> ' || P_CONC_REQUEST_ID)*/NULL;
52       IF V_ENABLE_TRACE = 'Y' THEN
53         OPEN CUR_GET_AUDSID;
54         FETCH CUR_GET_AUDSID
55          INTO SID,SERIAL,SPID;
56         CLOSE CUR_GET_AUDSID;
57         OPEN CUR_GET_DBNAME;
58         FETCH CUR_GET_DBNAME
59          INTO NAME1;
60         CLOSE CUR_GET_DBNAME;
61         /*SRW.MESSAGE(1275
62                    ,'TraceFile Name = ' || LOWER(NAME1) || '_ora_' || SPID || '.trc')*/NULL;
63         EXECUTE IMMEDIATE
64           'ALTER SESSION SET EVENTS ''10046 trace name context forever, level 4''';
65       END IF;
66     EXCEPTION
67       WHEN OTHERS THEN
68         /*SRW.MESSAGE(1275
69                    ,'Error during enabling the trace. ErrCode -> ' || SQLCODE || ', ErrMesg ->' || SQLERRM)*/NULL;
70     END;
71     RETURN (TRUE);
72   END BEFOREREPORT;
73 
74   FUNCTION CF_CREDIT_TAKENFORMULA(CS_SERVICE_CREDIT IN NUMBER
75                                  ,CS_EDU_CREDIT IN NUMBER) RETURN NUMBER IS
76   BEGIN
77     RETURN (NVL(CS_SERVICE_CREDIT
78               ,0) + NVL(CS_EDU_CREDIT
79               ,0));
80   END CF_CREDIT_TAKENFORMULA;
81 
82   FUNCTION CF_CREDIT_UTILIZEDFORMULA RETURN NUMBER IS
83     CURSOR CUR_AR_UTIL_CREDIT(CP_SOURCE IN JAI_RGM_TRX_REFS.SOURCE%TYPE) IS
84       SELECT
85         SUM(RECOVERED_AMOUNT)
86       FROM
87         JAI_RGM_TRX_REFS
88       WHERE SOURCE = CP_SOURCE
89         AND TAX_TYPE in ( LV_TAX_TYPE_SERVICE , LV_TAX_TYPE_SERVICE_EDU_CESS , LV_TAX_TYPE_SH_SER_EDU_CESS )
90         AND ORGANIZATION_ID IN (
91         SELECT
92           DISTINCT
93           ORGANIZATION_ID
94         FROM
95           JAI_RGM_ORG_REGNS_V
96         WHERE REGIME_CODE = LV_SERVICE_REGIME
97           AND REGISTRATION_TYPE = LV_OTH_REG_TYPE
98           AND ATTRIBUTE_TYPE_CODE = LV_PRIM_ATT_TYPE_CODE
99           AND ATTRIBUTE_CODE = LV_SERVICE_ATT_CODE
100           AND ATTRIBUTE_VALUE = P_REGM_PRMY_REGN )
101         AND ( NVL(TRUNC(CREATION_DATE)
102          ,SYSDATE) ) BETWEEN ( NVL(P_FROM_DATE
103          ,SYSDATE) )
104         AND ( NVL(P_TO_DATE
105          ,SYSDATE) );
106     CURSOR CUR_AR_SER_DIST_OUT_DEBIT IS
107       SELECT
108         NVL(SUM(DEBIT_AMOUNT)
109            ,0)
110       FROM
111         JAI_RGM_TRX_RECORDS
112       WHERE SOURCE = LV_SERVICE_SRC_DISTRIBUTE_OUT
113         AND REGIME_CODE = LV_SERVICE_REGIME
114         AND TAX_TYPE IN ( LV_TAX_TYPE_SERVICE , LV_TAX_TYPE_SERVICE_EDU_CESS , LV_TAX_TYPE_SH_SER_EDU_CESS )
115         AND REGIME_PRIMARY_REGNO = P_REGM_PRMY_REGN
116         AND ( NVL(TRUNC(CREATION_DATE)
117          ,SYSDATE) ) BETWEEN ( NVL(P_FROM_DATE
118          ,SYSDATE) )
119         AND ( NVL(P_TO_DATE
120          ,SYSDATE) );
121     CURSOR CUR_MANUAL_DEBIT(CP_SOURCE IN JAI_RGM_TRX_REFS.SOURCE%TYPE) IS
122       SELECT
123         NVL(SUM(DEBIT_AMOUNT)
124            ,0)
125       FROM
126         JAI_RGM_TRX_RECORDS
127       WHERE SOURCE = CP_SOURCE
128         AND REGIME_CODE = LV_SERVICE_REGIME
129         AND TAX_TYPE IN ( LV_TAX_TYPE_SERVICE , LV_TAX_TYPE_SERVICE_EDU_CESS , LV_TAX_TYPE_SH_SER_EDU_CESS )
130         AND SOURCE_TRX_TYPE IN ( LV_ADJUST_LIABILITY , LV_LIABILITY )
131         AND REGIME_PRIMARY_REGNO = P_REGM_PRMY_REGN
132         AND ( NVL(TRUNC(CREATION_DATE)
133          ,SYSDATE) ) BETWEEN ( NVL(P_FROM_DATE
134          ,SYSDATE) )
135         AND ( NVL(P_TO_DATE
136          ,SYSDATE) );
137     CURSOR CUR_PAYMENT(CP_SOURCE IN JAI_RGM_TRX_RECORDS.SOURCE%TYPE,CP_TRX_TYPE IN JAI_RGM_TRX_RECORDS.SOURCE_TRX_TYPE%TYPE) IS
138       SELECT
139         NVL(SUM(DEBIT_AMOUNT)
140            ,0)
141       FROM
142         JAI_RGM_TRX_RECORDS
143       WHERE SOURCE = CP_SOURCE
144         AND REGIME_CODE = LV_SERVICE_REGIME
145         AND TAX_TYPE IN ( LV_TAX_TYPE_SERVICE , LV_TAX_TYPE_SERVICE_EDU_CESS , LV_TAX_TYPE_SH_SER_EDU_CESS )
146         AND SOURCE_TRX_TYPE = CP_TRX_TYPE
147         AND REGIME_PRIMARY_REGNO = P_REGM_PRMY_REGN
148         AND ( NVL(TRUNC(CREATION_DATE)
149          ,SYSDATE) ) BETWEEN ( NVL(P_FROM_DATE
150          ,SYSDATE) )
151         AND ( NVL(P_TO_DATE
152          ,SYSDATE) );
153     LN_AR_UTIL_CREDIT NUMBER := 0;
154     LN_AR_SER_DIST_OUT_DEBIT NUMBER := 0;
155     LV_MANUAL_DEBIT NUMBER := 0;
156     LV_PAYMENT NUMBER := 0;
157   BEGIN
158     OPEN CUR_AR_UTIL_CREDIT('AR');
159     FETCH CUR_AR_UTIL_CREDIT
160      INTO LN_AR_UTIL_CREDIT;
161     CLOSE CUR_AR_UTIL_CREDIT;
162     OPEN CUR_AR_SER_DIST_OUT_DEBIT;
163     FETCH CUR_AR_SER_DIST_OUT_DEBIT
164      INTO LN_AR_SER_DIST_OUT_DEBIT;
165     CLOSE CUR_AR_SER_DIST_OUT_DEBIT;
166     OPEN CUR_MANUAL_DEBIT('MANUAL');
167     FETCH CUR_MANUAL_DEBIT
168      INTO LV_MANUAL_DEBIT;
169     CLOSE CUR_MANUAL_DEBIT;
170     OPEN CUR_PAYMENT('MANUAL','PAYMENT');
171     FETCH CUR_PAYMENT
172      INTO LV_PAYMENT;
173     CLOSE CUR_PAYMENT;
174     RETURN (NVL(LN_AR_UTIL_CREDIT
175               ,0) + NVL(LN_AR_SER_DIST_OUT_DEBIT
176               ,0) + NVL(LV_MANUAL_DEBIT
177               ,0) - NVL(LV_PAYMENT
178               ,0));
179   END CF_CREDIT_UTILIZEDFORMULA;
180 
181   FUNCTION CF_CLOSING_BALFORMULA(CF_OPENING_BAL IN NUMBER
182                                 ,CF_CREDIT_TAKEN IN NUMBER
183                                 ,CF_CREDIT_UTILIZED IN NUMBER) RETURN NUMBER IS
184   BEGIN
185     RETURN (NVL(CF_OPENING_BAL
186               ,0) + NVL(CF_CREDIT_TAKEN
187               ,0) - NVL(CF_CREDIT_UTILIZED
188               ,0));
189   END CF_CLOSING_BALFORMULA;
190 
191   FUNCTION CF_OPENING_BALFORMULA RETURN NUMBER IS
192     CURSOR CUR_INVOICE_OPEN_BAL(CP_SOURCE IN JAI_RGM_TRX_REFS.SOURCE%TYPE) IS
193       SELECT
194         SUM(RECOVERED_AMOUNT)
195       FROM
196         JAI_RGM_TRX_REFS
197       WHERE SOURCE = CP_SOURCE
198         AND TAX_TYPE in ( LV_TAX_TYPE_SERVICE , LV_TAX_TYPE_SERVICE_EDU_CESS , LV_TAX_TYPE_SH_SER_EDU_CESS )
199         AND TRUNC(CREATION_DATE) < P_FROM_DATE
200         AND ORGANIZATION_ID in (
201         SELECT
202           DISTINCT
203           ORGANIZATION_ID
204         FROM
205           JAI_RGM_ORG_REGNS_V
206         WHERE REGIME_CODE = LV_SERVICE_REGIME
207           AND REGISTRATION_TYPE = LV_OTH_REG_TYPE
208           AND ATTRIBUTE_TYPE_CODE = LV_PRIM_ATT_TYPE_CODE
209           AND ATTRIBUTE_CODE = LV_SERVICE_ATT_CODE
210           AND ATTRIBUTE_VALUE = P_REGM_PRMY_REGN );
211     CURSOR CUR_DIST_IN IS
212       SELECT
213         SUM(CREDIT_AMOUNT)
214       FROM
215         JAI_RGM_TRX_RECORDS
216       WHERE SOURCE = LV_SERVICE_SRC_DISTRIBUTE_IN
217         AND REGIME_CODE = LV_SERVICE_REGIME
218         AND TAX_TYPE IN ( LV_TAX_TYPE_SERVICE , LV_TAX_TYPE_SERVICE_EDU_CESS , LV_TAX_TYPE_SH_SER_EDU_CESS )
219         AND REGIME_PRIMARY_REGNO = P_REGM_PRMY_REGN
220         AND ( NVL(TRUNC(CREATION_DATE)
221          ,TRUNC(SYSDATE)) ) < ( NVL(P_FROM_DATE
222          ,TRUNC(SYSDATE)) );
223     CURSOR CUR_MANUAL_IN(CP_SOURCE IN JAI_RGM_TRX_RECORDS.SOURCE%TYPE) IS
224       SELECT
225         SUM(CREDIT_AMOUNT)
226       FROM
227         JAI_RGM_TRX_RECORDS
228       WHERE SOURCE = CP_SOURCE
229         AND REGIME_CODE = LV_SERVICE_REGIME
230         AND TAX_TYPE IN ( LV_TAX_TYPE_SERVICE , LV_TAX_TYPE_SERVICE_EDU_CESS , LV_TAX_TYPE_SH_SER_EDU_CESS )
231         AND SOURCE_TRX_TYPE IN ( LV_ADJUST_RECOVERY , LV_RECOVERY )
232         AND REGIME_PRIMARY_REGNO = P_REGM_PRMY_REGN
233         AND ( NVL(TRUNC(CREATION_DATE)
234          ,TRUNC(SYSDATE)) ) < ( NVL(P_FROM_DATE
235          ,TRUNC(SYSDATE)) );
236     CURSOR CUR_AR_UTIL_CREDIT(CP_SOURCE IN JAI_RGM_TRX_REFS.SOURCE%TYPE) IS
237       SELECT
238         SUM(RECOVERED_AMOUNT)
239       FROM
240         JAI_RGM_TRX_REFS
241       WHERE SOURCE = CP_SOURCE
242         AND TAX_TYPE in ( LV_TAX_TYPE_SERVICE , LV_TAX_TYPE_SERVICE_EDU_CESS , LV_TAX_TYPE_SH_SER_EDU_CESS )
243         AND TRUNC(CREATION_DATE) < P_FROM_DATE
244         AND ORGANIZATION_ID IN (
245         SELECT
246           DISTINCT
247           ORGANIZATION_ID
248         FROM
249           JAI_RGM_ORG_REGNS_V
250         WHERE REGIME_CODE = LV_SERVICE_REGIME
251           AND REGISTRATION_TYPE = LV_OTH_REG_TYPE
252           AND ATTRIBUTE_TYPE_CODE = LV_PRIM_ATT_TYPE_CODE
253           AND ATTRIBUTE_CODE = LV_SERVICE_ATT_CODE
254           AND ATTRIBUTE_VALUE = P_REGM_PRMY_REGN );
255     CURSOR CUR_AR_SER_DIST_OUT_DEBIT IS
256       SELECT
257         NVL(SUM(DEBIT_AMOUNT)
258            ,0)
259       FROM
260         JAI_RGM_TRX_RECORDS
261       WHERE SOURCE = LV_SERVICE_SRC_DISTRIBUTE_OUT
262         AND REGIME_CODE = LV_SERVICE_REGIME
263         AND TAX_TYPE IN ( LV_TAX_TYPE_SERVICE , LV_TAX_TYPE_SERVICE_EDU_CESS , LV_TAX_TYPE_SH_SER_EDU_CESS )
264         AND REGIME_PRIMARY_REGNO = P_REGM_PRMY_REGN
265         AND ( NVL(TRUNC(CREATION_DATE)
266          ,TRUNC(SYSDATE)) ) < ( NVL(P_FROM_DATE
267          ,TRUNC(SYSDATE)) );
268     CURSOR CUR_MANUAL_DEBIT(CP_SOURCE IN JAI_RGM_TRX_RECORDS.SOURCE%TYPE) IS
269       SELECT
270         NVL(SUM(DEBIT_AMOUNT)
271            ,0)
272       FROM
273         JAI_RGM_TRX_RECORDS
274       WHERE SOURCE = CP_SOURCE
275         AND REGIME_CODE = LV_SERVICE_REGIME
276         AND TAX_TYPE IN ( LV_TAX_TYPE_SERVICE , LV_TAX_TYPE_SH_SER_EDU_CESS , LV_TAX_TYPE_SERVICE_EDU_CESS )
277         AND SOURCE_TRX_TYPE IN ( LV_LIABILITY , LV_ADJUST_LIABILITY )
278         AND REGIME_PRIMARY_REGNO = P_REGM_PRMY_REGN
279         AND ( NVL(TRUNC(CREATION_DATE)
280          ,TRUNC(SYSDATE)) ) < ( NVL(P_FROM_DATE
281          ,TRUNC(SYSDATE)) );
282     CURSOR CUR_PAYMENT(CP_SOURCE IN JAI_RGM_TRX_RECORDS.SOURCE%TYPE,CP_SOURCE_TRX_TYPE IN JAI_RGM_TRX_RECORDS.SOURCE_TRX_TYPE%TYPE) IS
283       SELECT
284         NVL(SUM(DEBIT_AMOUNT)
285            ,0)
286       FROM
287         JAI_RGM_TRX_RECORDS
288       WHERE SOURCE = CP_SOURCE
289         AND REGIME_CODE = LV_SERVICE_REGIME
290         AND TAX_TYPE IN ( LV_TAX_TYPE_SERVICE , LV_TAX_TYPE_SERVICE_EDU_CESS , LV_TAX_TYPE_SH_SER_EDU_CESS )
291         AND SOURCE_TRX_TYPE = CP_SOURCE_TRX_TYPE
292         AND REGIME_PRIMARY_REGNO = P_REGM_PRMY_REGN
293         AND ( NVL(TRUNC(CREATION_DATE)
294          ,TRUNC(SYSDATE)) ) < ( NVL(P_FROM_DATE
295          ,TRUNC(SYSDATE)) );
296     LV_INV_OPEN_BAL NUMBER := 0;
297     LV_OPEN_DIST_BAL NUMBER := 0;
298     LV_AR_UTIL_CREDIT NUMBER := 0;
299     LV_AR_SER_DIST_OUT_DEBIT NUMBER := 0;
300     LV_MANUAL_BAL NUMBER := 0;
301     LV_MANUAL_DEBIT_BAL NUMBER := 0;
302     LV_MANUAL_PAYMENT NUMBER := 0;
303   BEGIN
304     OPEN CUR_INVOICE_OPEN_BAL('AP');
305     FETCH CUR_INVOICE_OPEN_BAL
306      INTO LV_INV_OPEN_BAL;
307     CLOSE CUR_INVOICE_OPEN_BAL;
308     OPEN CUR_DIST_IN;
309     FETCH CUR_DIST_IN
310      INTO LV_OPEN_DIST_BAL;
311     CLOSE CUR_DIST_IN;
312     OPEN CUR_MANUAL_IN('MANUAL');
313     FETCH CUR_MANUAL_IN
314      INTO LV_MANUAL_BAL;
315     CLOSE CUR_MANUAL_IN;
316     OPEN CUR_MANUAL_DEBIT('MANUAL');
317     FETCH CUR_MANUAL_DEBIT
318      INTO LV_MANUAL_DEBIT_BAL;
319     CLOSE CUR_MANUAL_DEBIT;
320     OPEN CUR_AR_UTIL_CREDIT('AR');
321     FETCH CUR_AR_UTIL_CREDIT
322      INTO LV_AR_UTIL_CREDIT;
323     CLOSE CUR_AR_UTIL_CREDIT;
324     OPEN CUR_AR_SER_DIST_OUT_DEBIT;
325     FETCH CUR_AR_SER_DIST_OUT_DEBIT
326      INTO LV_AR_SER_DIST_OUT_DEBIT;
327     CLOSE CUR_AR_SER_DIST_OUT_DEBIT;
328     OPEN CUR_PAYMENT('MANUAL','PAYMENT');
329     FETCH CUR_PAYMENT
330      INTO LV_MANUAL_PAYMENT;
331     CLOSE CUR_PAYMENT;
332     RETURN (NVL(LV_OPEN_DIST_BAL
333               ,0) + NVL(LV_INV_OPEN_BAL
334               ,0) + NVL(LV_MANUAL_BAL
335               ,0) - NVL(LV_AR_UTIL_CREDIT
336               ,0) - NVL(LV_AR_SER_DIST_OUT_DEBIT
337               ,0) - NVL(LV_MANUAL_DEBIT_BAL
338               ,0) + NVL(LV_MANUAL_PAYMENT
339               ,0));
340   END CF_OPENING_BALFORMULA;
341 
342   FUNCTION AFTERPFORM RETURN BOOLEAN IS
343     LV_REPORTING_LEVEL VARCHAR2(2000);
344     LN_REPORTING_ENTITY_ID NUMBER;
345     LV_PREDICATE_TYPE VARCHAR2(2000);
346   BEGIN
347     LV_REPORTING_LEVEL := P_REPORTING_LEVEL;
348     LN_REPORTING_ENTITY_ID := P_REPORTING_ENTITY_ID;
349     FND_MO_REPORTING_API.INITIALIZE(LV_REPORTING_LEVEL
350                                    ,LN_REPORTING_ENTITY_ID
351                                    ,LV_PREDICATE_TYPE);
352     P_ORG_WHERE := P_ORG_WHERE || FND_MO_REPORTING_API.GET_PREDICATE('JPVS'
353                                                      ,NULL
354                                                      ,NULL);
355     P_ORG_WHERE := P_ORG_WHERE || FND_MO_REPORTING_API.GET_PREDICATE('APA'
356                                                      ,NULL
357                                                      ,NULL);
358     P_ORG_WHERE := P_ORG_WHERE || FND_MO_REPORTING_API.GET_PREDICATE('PVSA'
359                                                      ,NULL
360                                                      ,NULL);
361     P_ORG_WHERE := P_ORG_WHERE || FND_MO_REPORTING_API.GET_PREDICATE('APSA'
362                                                      ,NULL
363                                                      ,NULL);
364     RETURN (TRUE);
365   END AFTERPFORM;
366 
367   FUNCTION AFTERREPORT RETURN BOOLEAN IS
368   BEGIN
369     /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
370     RETURN (TRUE);
371   END AFTERREPORT;
372 
373   FUNCTION CF_SERVICE_TYPEFORMULA(SERVICE_TYPE_CODE IN VARCHAR2) RETURN CHAR IS
374     CURSOR GET_SERVICE_TYPE_CUR IS
375       SELECT
376         DESCRIPTION DISPLAYED_FIELD
377       FROM
378         JA_LOOKUPS
379       WHERE LOOKUP_TYPE = 'JAI_SERVICE_TYPE'
380         AND LOOKUP_CODE = SERVICE_TYPE_CODE;
381     LV_SERVICE_TYPE VARCHAR2(80);
382   BEGIN
383     OPEN GET_SERVICE_TYPE_CUR;
384     FETCH GET_SERVICE_TYPE_CUR
385      INTO LV_SERVICE_TYPE;
386     CLOSE GET_SERVICE_TYPE_CUR;
387     RETURN LV_SERVICE_TYPE;
388   END CF_SERVICE_TYPEFORMULA;
389 
390   FUNCTION CF_VALUEFORMULA(INVOICE_ID IN NUMBER
391                           ,SOURCE_TYPE IN VARCHAR2
392                           ,ST_RATE IN NUMBER
393                           ,ST IN NUMBER
394                           ,VALUE IN NUMBER) RETURN NUMBER IS
395     LV_TAX_AMT NUMBER := 0;
396     LV_RET_VAL NUMBER := 0;
397     LV_VALUE NUMBER := 0;
398     LN_AMOUNT_REMAINING NUMBER;
399     CURSOR C_GET_AMT_REMAIN IS
400       SELECT
401         SUM(AMOUNT_REMAINING) AMOUNT_REMAINING
402       FROM
403         AP_PAYMENT_SCHEDULES_ALL
404       WHERE INVOICE_ID = CF_VALUEFORMULA.INVOICE_ID;
405   BEGIN
406     OPEN C_GET_AMT_REMAIN;
407     FETCH C_GET_AMT_REMAIN
408      INTO LN_AMOUNT_REMAINING;
409     CLOSE C_GET_AMT_REMAIN;
410     IF SOURCE_TYPE = 'AP' THEN
411       IF NVL(ST_RATE
412          ,0) <> 0 THEN
413         LV_TAX_AMT := (ST * 100) / ST_RATE;
414       END IF;
415       LV_VALUE := NVL(VALUE
416                      ,0) - NVL(LN_AMOUNT_REMAINING
417                      ,0);
418       IF NVL(VALUE
419          ,0) <> 0 THEN
420         LV_RET_VAL := (NVL(LV_VALUE
421                          ,0) * NVL(LV_TAX_AMT
422                          ,0)) / VALUE;
423       END IF;
424     ELSE
425       LV_RET_VAL := VALUE;
426     END IF;
427     RETURN (ROUND(NVL(LV_RET_VAL
428                     ,0)
429                 ,2));
430   END CF_VALUEFORMULA;
431 
432   FUNCTION CF_DESCRIPTIONFORMULA(SRC_DOC_ID IN NUMBER
433                                 ,ITEM_ID IN NUMBER
434                                 ,SOURCE_TYPE IN VARCHAR2) RETURN CHAR IS
435     CURSOR CUR_DESCRIPTION IS
436       SELECT
437         DISTINCT
438         HAOU1.NAME FROM_ORG,
439         HAOU2.NAME TO_ORG
440       FROM
441         JAI_RGM_DIS_SRC_HDRS SRC_HDRS,
442         JAI_RGM_DIS_SRC_TAXES SRC_TAXS,
443         JAI_RGM_DIS_DES_HDRS DES_HDRS,
444         JAI_RGM_DIS_DES_TAXES DES_TAXS,
445         HR_ALL_ORGANIZATION_UNITS HAOU1,
446         HR_ALL_ORGANIZATION_UNITS HAOU2
447       WHERE SRC_HDRS.TRANSFER_ID = DES_HDRS.TRANSFER_ID
448         AND SRC_HDRS.TRANSFER_ID = SRC_TAXS.TRANSFER_ID
449         AND DES_HDRS.TRANSFER_DESTINATION_ID = DES_TAXS.TRANSFER_DESTINATION_ID
450         AND DES_TAXS.TRANSFER_SOURCE_ID = SRC_TAXS.TRANSFER_SOURCE_ID
451         AND SRC_HDRS.TRANSFER_ID = SRC_DOC_ID
452         AND SRC_HDRS.PARTY_ID = HAOU1.ORGANIZATION_ID
453         AND DES_HDRS.DESTINATION_PARTY_ID = HAOU2.ORGANIZATION_ID;
454     CURSOR CUR_ITEM_DESC IS
455       SELECT
456         DISTINCT
457         DESCRIPTION
458       FROM
459         MTL_SYSTEM_ITEMS
460       WHERE INVENTORY_ITEM_ID = ITEM_ID;
461     LV_DESC VARCHAR2(300);
462     LV_TO_ORG VARCHAR2(100);
463     LV_FROM_ORG VARCHAR2(100);
464   BEGIN
465     IF SOURCE_TYPE = 'DISTRIBUTION' THEN
466       OPEN CUR_DESCRIPTION;
467       FETCH CUR_DESCRIPTION
468        INTO LV_FROM_ORG,LV_TO_ORG;
469       CLOSE CUR_DESCRIPTION;
470       LV_DESC := 'Service Distribute In' ||  'FROM' ||  LV_FROM_ORG ||  'TO' ||  LV_TO_ORG;
471     ELSIF SOURCE_TYPE = 'MANUAL' THEN
472       LV_DESC := 'MANUAL';
473     ELSIF SOURCE_TYPE = 'AP' THEN
474       OPEN CUR_ITEM_DESC;
475       FETCH CUR_ITEM_DESC
476        INTO LV_DESC;
477       CLOSE CUR_ITEM_DESC;
478     END IF;
479     RETURN LV_DESC;
480   END CF_DESCRIPTIONFORMULA;
481 
482 END JA_JAINRGCR_XMLP_PKG;
483 
484