DBA Data[Home] [Help]

PACKAGE BODY: APPS.JG_JGZZSRCR_XMLP_PKG

Source


1 PACKAGE BODY JG_JGZZSRCR_XMLP_PKG AS
2 /* $Header: JGZZSRCRB.pls 120.2.12010000.2 2008/08/04 13:51:27 vgadde ship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4   BEGIN
5     DECLARE
6       INIT_FAILURE EXCEPTION;
7     BEGIN
8       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
9       /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
10       BEGIN
11        SELECT
12           GLP.CHART_OF_ACCOUNTS_ID,
13           GLP.LEDGER_ID,
14           C.PRECISION,
15           C.CURRENCY_CODE
16         INTO C_COAI,C_SOB,C_PRECISION,C_FUNCT_CURR
17         FROM
18           AP_SYSTEM_PARAMETERS_ALL ASP,
19           GL_LEDGERS_PUBLIC_V GLP,
20           FND_CURRENCIES C
21         WHERE ASP.SET_OF_BOOKS_ID = GLP.LEDGER_ID
22           AND ASP.BASE_CURRENCY_CODE = C.CURRENCY_CODE
23           AND ASP.SET_OF_BOOKS_ID = DECODE(P_REPORTING_LEVEL
24           ,'1000'
25           ,P_REPORTING_ENTITY_ID
26           ,GLP.LEDGER_ID)
27           AND ASP.ORG_ID = DECODE(P_REPORTING_LEVEL
28           ,'3000'
29           ,P_REPORTING_ENTITY_ID
30 	  ,ASP.ORG_ID);
31       EXCEPTION
32         WHEN NO_DATA_FOUND THEN
33           RAISE INIT_FAILURE;
34       END;
35       BEGIN
36         SELECT
37           USER_CONCURRENT_PROGRAM_NAME
38         INTO C_TITLE
39         FROM
40           FND_CONCURRENT_REQUESTS R,
41           FND_CONCURRENT_PROGRAMS_VL P
42         WHERE R.REQUEST_ID = P_CONC_REQUEST_ID
43           AND R.CONCURRENT_PROGRAM_ID = P.CONCURRENT_PROGRAM_ID
44           AND R.PROGRAM_APPLICATION_ID = P.APPLICATION_ID;
45       EXCEPTION
46         WHEN NO_DATA_FOUND THEN
47           C_TITLE := 'Regional Cash Requirement Report';
48       END;
49       IF (P_DEBUG_SWITCH = 'Y') THEN
50         /*SRW.MESSAGE('1'
51                    ,'After select coai')*/NULL;
52       END IF;
53       IF (NLS_PARAMETERS = FALSE) THEN
54         RAISE INIT_FAILURE;
55       END IF;
56       IF (P_DEBUG_SWITCH = 'Y') THEN
57         /*SRW.MESSAGE('1'
58                    ,'After select nls parameters.')*/NULL;
59       END IF;
60       IF (SQL_PAYMENT_GROUP_F = FALSE) THEN
61         RAISE INIT_FAILURE;
62       END IF;
63       IF (P_DEBUG_SWITCH = 'Y') THEN
64         /*SRW.MESSAGE('1'
65                    ,'After sql_payment_group')*/NULL;
66       END IF;
67       IF (SQL_CURRENCY = FALSE) THEN
68         RAISE INIT_FAILURE;
69       END IF;
70       IF (P_DEBUG_SWITCH = 'Y') THEN
71         /*SRW.MESSAGE('1'
72                    ,'After sql_currency')*/NULL;
73       END IF;
74       IF (SQL_VENDOR = FALSE) THEN
75         RAISE INIT_FAILURE;
76       END IF;
77       IF (P_DEBUG_SWITCH = 'Y') THEN
78         /*SRW.MESSAGE('1'
79                    ,'After sql_vendor')*/NULL;
80       END IF;
81       IF (SQL_ONLY_PAST = FALSE) THEN
82         RAISE INIT_FAILURE;
83       END IF;
84       IF (P_DEBUG_SWITCH = 'Y') THEN
85         /*SRW.MESSAGE('1'
86                    ,'After sql_only_past')*/NULL;
87       END IF;
88       IF (SQL_DISTRIBUTIONS_F = FALSE) THEN
89         RAISE INIT_FAILURE;
90       END IF;
91       IF (P_DEBUG_SWITCH = 'Y') THEN
92         /*SRW.MESSAGE('1'
93                    ,'After sql_distributions')*/NULL;
94       END IF;
95       IF (SQL_PAYMENTS = FALSE) THEN
96         RAISE INIT_FAILURE;
97       END IF;
98       IF (P_DEBUG_SWITCH = 'Y') THEN
99         /*SRW.MESSAGE('1'
100                    ,'After sql_payments')*/NULL;
101         /*SRW.BREAK*/NULL;
102       END IF;
103       CP_PARTIAL_LEDGER_MSG := P_PARTIAL_LEDGER_MSG;
104     EXCEPTION
105       WHEN OTHERS THEN
106         /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
107     END;
108     RETURN (TRUE);
109   END BEFOREREPORT;
110 
111   FUNCTION AFTERREPORT RETURN BOOLEAN IS
112   BEGIN
113     BEGIN
114       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
115     END;
116     RETURN (TRUE);
117   END AFTERREPORT;
118 
119   FUNCTION C_INV_OPEN_AMOUNTFORMULA(C_INV_GROSS_AMOUNT IN NUMBER
120                                    ,C_INV_PAY_AMOUNT0 IN NUMBER
121                                    ,C_INV_DISCOUNT_TAKEN0 IN NUMBER
122                                    ,C_INV_PAY_AMOUNT IN NUMBER
123                                    ,C_INV_DISCOUNT_TAKEN IN NUMBER) RETURN NUMBER IS
124   BEGIN
125     IF P_GROUP_FIELD = 'T' THEN
126       RETURN ((C_INV_GROSS_AMOUNT - C_INV_PAY_AMOUNT0 - C_INV_DISCOUNT_TAKEN0));
127     ELSE
128       RETURN ((C_INV_GROSS_AMOUNT - C_INV_PAY_AMOUNT - C_INV_DISCOUNT_TAKEN));
129     END IF;
130   END C_INV_OPEN_AMOUNTFORMULA;
131 
132   FUNCTION C_INV_OPEN_BASEFORMULA(C_INV_OPEN_AMOUNT IN NUMBER
133                                  ,EXCHANGE_RATE IN NUMBER
134                                  ,PAYMENT_CROSS_RATE IN NUMBER) RETURN NUMBER IS
135   BEGIN
136     IF P_GROUP_FIELD = 'T' THEN
137       RETURN ROUND((C_INV_OPEN_AMOUNT * EXCHANGE_RATE)
138                   ,C_PRECISION);
139     ELSE
140       RETURN ROUND(((C_INV_OPEN_AMOUNT / PAYMENT_CROSS_RATE) * EXCHANGE_RATE)
141                   ,C_PRECISION);
142     END IF;
143   END C_INV_OPEN_BASEFORMULA;
144 
145   FUNCTION C_CUR_OPEN_AMOUNTFORMULA(C_CUR_GROSS_AMOUNT IN NUMBER
146                                    ,C_CUR_PAY_AMOUNT IN NUMBER
147                                    ,C_CUR_DISCOUNT_TAKEN IN NUMBER) RETURN NUMBER IS
148   BEGIN
149     RETURN (C_CUR_GROSS_AMOUNT - C_CUR_PAY_AMOUNT - C_CUR_DISCOUNT_TAKEN);
150   END C_CUR_OPEN_AMOUNTFORMULA;
151 
152   FUNCTION C_CUR_OPEN_BASEFORMULA(C_CUR_OPEN_AMOUNT IN NUMBER
153                                  ,EXCHANGE_RATE IN NUMBER) RETURN NUMBER IS
154   BEGIN
155     RETURN (C_CUR_OPEN_AMOUNT * EXCHANGE_RATE);
156   END C_CUR_OPEN_BASEFORMULA;
157 
158   FUNCTION C_SCH_OPEN_AMOUNTFORMULA(GROSS_AMOUNT IN NUMBER
159                                    ,C_SCH_PAY_AMOUNT IN NUMBER
160                                    ,C_SCH_DISCOUNT_TAKEN IN NUMBER) RETURN NUMBER IS
161   BEGIN
162     RETURN (GROSS_AMOUNT - C_SCH_PAY_AMOUNT - C_SCH_DISCOUNT_TAKEN);
163   END C_SCH_OPEN_AMOUNTFORMULA;
164 
165   FUNCTION C_SCH_OPEN_BASEFORMULA(C_SCH_OPEN_AMOUNT IN NUMBER
166                                  ,EXCHANGE_RATE IN NUMBER) RETURN NUMBER IS
167   BEGIN
168     RETURN (C_SCH_OPEN_AMOUNT * EXCHANGE_RATE);
169   END C_SCH_OPEN_BASEFORMULA;
170 
171   FUNCTION C_GRP_OPEN_BASEFORMULA(C_GRP_GROSS_BASE IN NUMBER
172                                  ,C_GRP_PAY_BASE IN NUMBER
173                                  ,C_GRP_DISCOUNT_TAKEN_BASE IN NUMBER
174                                  ,C_GRP_GAINLOSS IN NUMBER) RETURN NUMBER IS
175   BEGIN
176     RETURN (C_GRP_GROSS_BASE - C_GRP_PAY_BASE - C_GRP_DISCOUNT_TAKEN_BASE + C_GRP_GAINLOSS);
177   END C_GRP_OPEN_BASEFORMULA;
178 
179   FUNCTION C_VEN_OPEN_AMOUNTFORMULA(C_VEN_GROSS_AMOUNT IN NUMBER
180                                    ,C_VEN_PAY_AMOUNT IN NUMBER
181                                    ,C_VEN_DISCOUNT_TAKEN IN NUMBER) RETURN NUMBER IS
182   BEGIN
183     RETURN (C_VEN_GROSS_AMOUNT - C_VEN_PAY_AMOUNT - C_VEN_DISCOUNT_TAKEN);
184   END C_VEN_OPEN_AMOUNTFORMULA;
185 
186   FUNCTION C_VEN_OPEN_BASEFORMULA(C_VEN_OPEN_AMOUNT IN NUMBER
187                                  ,EXCHANGE_RATE IN NUMBER) RETURN NUMBER IS
188   BEGIN
189     RETURN (C_VEN_OPEN_AMOUNT * EXCHANGE_RATE);
190   END C_VEN_OPEN_BASEFORMULA;
191 
192   FUNCTION C_RPT_OPEN_BASEFORMULA(C_RPT_INV_BASE IN NUMBER
193                                  ,C_RPT_PAY_BASE IN NUMBER
194                                  ,C_RPT_DISCOUNT_TAKEN_BASE IN NUMBER
195                                  ,C_RPT_GAINLOSS IN NUMBER) RETURN NUMBER IS
196   BEGIN
197     RETURN (C_RPT_INV_BASE - C_RPT_PAY_BASE - C_RPT_DISCOUNT_TAKEN_BASE + C_RPT_GAINLOSS);
198   END C_RPT_OPEN_BASEFORMULA;
199 
200   FUNCTION C_VENDOR_NAMEFORMULA RETURN VARCHAR2 IS
201   BEGIN
202     DECLARE
203       APU2 PO_VENDORS.VENDOR_NAME%TYPE;
204     BEGIN
205       SELECT
206         SEGMENT1 || '  ' || VENDOR_NAME
207       INTO APU2
208       FROM
209         PO_VENDORS
210       WHERE VENDOR_ID = NVL(P_VENDOR_ID
211          ,-1);
212       RETURN (APU2);
213     EXCEPTION
214       WHEN NO_DATA_FOUND THEN
215         RETURN (C_ALL);
216     END;
217     RETURN NULL;
218   END C_VENDOR_NAMEFORMULA;
219 
220   FUNCTION C_FLEXPROMPTFORMULA RETURN VARCHAR2 IS
221   BEGIN
222     DECLARE
223       L_GROUP VARCHAR2(80);
224     BEGIN
225       SELECT
226         MEANING
227       INTO L_GROUP
228       FROM
229         FND_LOOKUPS
230       WHERE LOOKUP_TYPE = 'JGZZ_AP_INVOICE_GROUP'
231         AND LOOKUP_CODE = P_GROUP_FIELD;
232       RETURN (L_GROUP);
233     EXCEPTION
234       WHEN NO_DATA_FOUND THEN
235         RETURN ('');
236     END;
237     RETURN NULL;
238   END C_FLEXPROMPTFORMULA;
239 
240   FUNCTION C_SOB_NAMEFORMULA RETURN VARCHAR2 IS
241   BEGIN
242     DECLARE
243       APU VARCHAR2(40);
244     BEGIN
245       SELECT
246         GLP.NAME
247       INTO APU
248       FROM
249         GL_LEDGERS_PUBLIC_V GLP,
250         AP_SYSTEM_PARAMETERS_ALL ASP
251       WHERE GLP.LEDGER_ID = ASP.SET_OF_BOOKS_ID
252         AND ASP.SET_OF_BOOKS_ID = DECODE(P_REPORTING_LEVEL
253             ,'1000'
254             ,P_REPORTING_ENTITY_ID
255             ,GLP.LEDGER_ID)
256         AND ASP.ORG_ID = DECODE(P_REPORTING_LEVEL
257             ,'3000'
258             ,P_REPORTING_ENTITY_ID
259             ,ASP.ORG_ID);
260       RETURN (APU);
261     EXCEPTION
262       WHEN NO_DATA_FOUND THEN
263         RETURN ('*ERROR*');
264     END;
265     RETURN NULL;
266   END C_SOB_NAMEFORMULA;
267 
268   FUNCTION SQL_CURRENCY RETURN BOOLEAN IS
269   BEGIN
270     IF P_INVOICE_CURRENCY IS NOT NULL THEN
271       IF P_GROUP_FIELD = 'T' THEN
272         SQL_INVOICE_CURRENCY := 'and i.invoice_currency_code=''' || P_INVOICE_CURRENCY || '''';
273       ELSE
274         SQL_INVOICE_CURRENCY := 'and i.payment_currency_code=''' || P_INVOICE_CURRENCY || '''';
275       END IF;
276     END IF;
277     IF (P_DEBUG_SWITCH = 'Y') THEN
278       /*SRW.MESSAGE('801'
279                  ,'SQL_INVOICE_CURRENCY = ' || SQL_INVOICE_CURRENCY)*/NULL;
280     END IF;
281     RETURN (TRUE);
282   END SQL_CURRENCY;
283 
284   FUNCTION SQL_VENDOR RETURN BOOLEAN IS
285   BEGIN
286     IF P_VENDOR_ID IS NOT NULL THEN
287       SQL_VENDOR_ID := 'and i.vendor_id=' || TO_CHAR(P_VENDOR_ID);
288     END IF;
289     IF (P_DEBUG_SWITCH = 'Y') THEN
290       /*SRW.MESSAGE('501'
291                  ,'SQL_VENDOR_ID = ' || SQL_VENDOR_ID)*/NULL;
292     END IF;
293     RETURN (TRUE);
294   END SQL_VENDOR;
295 
296   FUNCTION SQL_ONLY_PAST RETURN BOOLEAN IS
297   BEGIN
298   P_CUT_DATE_v := P_CUT_DATE;
299     IF P_CUT_DATE_v IS NULL THEN
300       P_CUT_DATE_v := SYSDATE;
301     END IF;
302     IF P_ONLY_PAST_FLAG = 'Y' THEN
303       SQL_ONLY_PAST_FLAG2 := ' and DECODE( sign( nvl(ps.discount_date,to_date(''' || TO_CHAR(P_CUT_DATE
304                                     ,'DD/MM/YYYY') || ''',''DD/MM/YYYY'') -1) - to_date(''' || TO_CHAR(P_CUT_DATE
305                                     ,'DD/MM/YYYY') || ''',''DD/MM/YYYY'')), ' || '            -1, to_char(ps.due_date,''YYYYMMDD''), ' ||
306 				    '             0,to_char(ps.discount_date,''YYYYMMDD''),
307 				    ' || '             to_char(ps.discount_date,''YYYYMMDD'')) <= ''' || TO_CHAR(P_CUT_DATE
308                                     ,'YYYYMMDD') || ''' ';
309       SQL_ONLY_PAST_FLAG := 'and exists (select null from ap_payment_schedules ps2 ' || ' where ps2.invoice_id=i.invoice_id ' ||
310       ' AND   DECODE( sign( nvl(ps2.discount_date,to_date(''' || TO_CHAR(P_CUT_DATE
311                                    ,'DD/MM/YYYY') || ''',''DD/MM/YYYY'') -1) - to_date(''' || TO_CHAR(P_CUT_DATE
312                                    ,'DD/MM/YYYY') || ''',''DD/MM/YYYY'')), ' || '              -1, to_char(ps2.due_date,''YYYYMMDD''),
313 				   ' || '               0, to_char(ps2.discount_date,''YYYYMMDD''),
314 				   ' || '              to_char(ps2.discount_date,''YYYYMMDD'')) <= ''' || TO_CHAR(P_CUT_DATE
315                                    ,'YYYYMMDD') || '''  )';
316     END IF;
317     IF (P_DEBUG_SWITCH = 'Y') THEN
318       /*SRW.MESSAGE('701'
319                  ,'SQL_ONLY_PAST_FLAG = ' || SQL_ONLY_PAST_FLAG)*/NULL;
320       /*SRW.MESSAGE('702'
321                  ,'SQL_ONLY_PAST_FLAG2 = ' || SQL_ONLY_PAST_FLAG2)*/NULL;
322       /*SRW.MESSAGE('703'
323                  ,'P_CUT_DATE = ' || TO_CHAR(P_CUT_DATE
324                         ,'DD-MON-YYYY'))*/NULL;
325     END IF;
326     RETURN (TRUE);
327   END SQL_ONLY_PAST;
328 
329    FUNCTION SQL_PAYMENT_GROUP_F RETURN BOOLEAN IS
330 
331   BEGIN
332 
333     IF P_PAYMENT_GROUP IS NOT NULL THEN
334 	     IF SUBSTR(P_GROUP_FIELD,1,1)='T' THEN
335 		  SQL_PAYMENT_GROUP_WH:='and  &'||'SQL_PAYMENT_GROUP';
336 	     ELSE
337 		  SQL_PAYMENT_GROUP_WH:='and i.pay_group_lookup_code='''||P_PAYMENT_GROUP||'''';
338 
339 	     END IF;
340     END IF;
341 
342     RETURN (TRUE);
343   END SQL_PAYMENT_GROUP_F;
344 
345 
346 
347   FUNCTION SQL_DISTRIBUTIONS_F RETURN BOOLEAN IS
348     ENCUMBRANCE_FLAG VARCHAR2(1);
349   BEGIN
350      SELECT
351       PURCH_ENCUMBRANCE_FLAG
352     INTO ENCUMBRANCE_FLAG
353     FROM
354       FINANCIALS_SYSTEM_PARAMETERS
355     WHERE SET_OF_BOOKS_ID = DECODE(P_REPORTING_LEVEL
356           ,'1000'
357           ,P_REPORTING_ENTITY_ID
358           ,SET_OF_BOOKS_ID)
359       AND ORG_ID = DECODE(P_REPORTING_LEVEL
360           ,'3000'
361           ,P_REPORTING_ENTITY_ID
362           ,ORG_ID);
363     IF P_MATCH_STATUS_FLAG_V = 'A' THEN
364       SQL_DISTRIBUTIONS := 'and not exists' ||
365       '((select aid1.invoice_id from ap_invoice_distributions aid1' ||
366       '  where aid1.invoice_id = id.invoice_id';
367       IF NVL(ENCUMBRANCE_FLAG
368          ,'N') = 'Y' THEN
369         SQL_DISTRIBUTIONS := SQL_DISTRIBUTIONS || '  and   nvl(aid1.match_status_flag,''N'') <> ''A'') ';
370       END IF;
371       IF NVL(ENCUMBRANCE_FLAG
372          ,'N') = 'N' THEN
373         SQL_DISTRIBUTIONS := SQL_DISTRIBUTIONS || '  AND   nvl(aid1.match_status_flag,''N'') not in (''A'', ''T'')) ';
374       END IF;
375       SQL_DISTRIBUTIONS := SQL_DISTRIBUTIONS || '  UNION' ||
376       ' (select aih1.invoice_id from ap_holds aih1' ||
377       '  where aih1.invoice_id = id.invoice_id' ||
378       '  and aih1.release_lookup_code is null))' ||
379       'and exists' || '(select null from ap_invoice_distributions aid2' ||
380       ' where aid2.invoice_id = id.invoice_id)';
381     END IF;
382     IF P_MATCH_STATUS_FLAG_V = 'N' THEN
383       SQL_DISTRIBUTIONS := 'and exists' || '((select aid2.invoice_id from ap_invoice_distributions aid2' ||
384       '  where aid2.invoice_id = id.invoice_id';
385       IF NVL(ENCUMBRANCE_FLAG
386          ,'N') = 'Y' THEN
387         SQL_DISTRIBUTIONS := SQL_DISTRIBUTIONS || '  and   nvl(aid2.match_status_flag,''N'') <> ''A'')';
388       END IF;
389       IF NVL(ENCUMBRANCE_FLAG
390          ,'N') = 'N' THEN
391         SQL_DISTRIBUTIONS := SQL_DISTRIBUTIONS || '  AND   nvl(aid2.match_status_flag,''N'') not in (''A'', ''T'')) ';
392       END IF;
393       SQL_DISTRIBUTIONS := SQL_DISTRIBUTIONS || '  UNION' || ' (select aih2.invoice_id from ap_holds aih2' ||
394       '  where aih2.invoice_id = id.invoice_id' || '  and aih2.release_lookup_code is null))';
395     END IF;
396     IF P_INV_POSTED_FLAG IS NOT NULL THEN
397       SQL_DISTRIBUTIONS := SQL_DISTRIBUTIONS || 'and nvl(ach1.gl_transfer_flag,''N'')=''' || P_INV_POSTED_FLAG || ''' ';
398     END IF;
399     IF P_CUT_DATE_v IS NOT NULL THEN
400       SQL_DISTRIBUTIONS := SQL_DISTRIBUTIONS || 'and to_char(nvl(id.accounting_date,sysdate),''YYYYMMDD'') <= ''' || TO_CHAR(P_CUT_DATE_v
401 				,'YYYYMMDD') || ''' ';
402     END IF;
403     IF P_INVOICE_PERIOD IS NOT NULL THEN
404       SQL_DISTRIBUTIONS := SQL_DISTRIBUTIONS || 'and id.period_name=''' || P_INVOICE_PERIOD || '''';
405     END IF;
406     IF (P_DEBUG_SWITCH = 'Y') THEN
407       /*SRW.MESSAGE('601'
408                  ,'SQL_DISTRIBUTIONS = ' || SQL_DISTRIBUTIONS)*/NULL;
409     END IF;
410     RETURN (TRUE);
411   END SQL_DISTRIBUTIONS_F;
412 
413   FUNCTION SQL_PAYMENTS RETURN BOOLEAN IS
414     L_START_DATE DATE;
415   BEGIN
416     IF P_CUT_DATE_v IS NULL THEN
417       P_CUT_DATE_v := SYSDATE;
418     END IF;
419     SQL_PAYMENTS1 := '';
420     SQL_PAYMENTS2 := '';
421     SQL_PAYMENTS3 := '';
422     P_ONLY_OPEN_INVOICES_V := P_ONLY_OPEN_INVOICES;
423     P_ONLY_PAID_INVOICES_V := P_ONLY_PAID_INVOICES;
424     IF P_ONLY_OPEN_INVOICES_v = 'N' AND P_ONLY_PAID_INVOICES_v = 'N' THEN
425       P_ONLY_OPEN_INVOICES_v := 'Y';
426     END IF;
427     IF P_PAYMENT_PERIOD IS NOT NULL THEN
428       SQL_PAYMENTS2 := SQL_PAYMENTS2 || 'and ip.period_name=''' || P_PAYMENT_PERIOD || ''' ';
429       P_ONLY_PAID_INVOICES_v := 'Y';
430       P_ONLY_OPEN_INVOICES_v := 'N';
431     END IF;
432     IF P_CHECK_VOUCHER IS NOT NULL THEN
433       SQL_PAYMENTS2 := SQL_PAYMENTS2 || 'and c.doc_sequence_value=''' || P_CHECK_VOUCHER || ''' ';
434       P_ONLY_PAID_INVOICES_v := 'Y';
435       P_ONLY_OPEN_INVOICES_v := 'N';
436     END IF;
437     IF P_CHECKRUN_NAME IS NOT NULL THEN
438       SQL_PAYMENTS2 := SQL_PAYMENTS2 || 'and c.checkrun_name=''' || P_CHECKRUN_NAME || ''' ';
439       P_ONLY_PAID_INVOICES_v := 'Y';
440       P_ONLY_OPEN_INVOICES_v := 'N';
441     END IF;
442     IF P_CONFIRMED = 'N' THEN
443       SQL_PAYMENTS2 := SQL_PAYMENTS2 || 'and to_char(ip.accounting_date,''DD-MM-YYYY'')=''31-12-2099'' ';
444     ELSIF P_CONFIRMED = 'Y' THEN
445       SQL_PAYMENTS2 := SQL_PAYMENTS2 || 'and to_char(ip.accounting_date,''YYYYMMDD'') <= ''' || TO_CHAR(P_CUT_DATE_v
446                               ,'YYYYMMDD') || ''' ';
447     ELSIF P_CONFIRMED IS NULL THEN
448       SQL_PAYMENTS2 := SQL_PAYMENTS2 || 'and (to_char(ip.accounting_date,''YYYYMMDD'') <= ''' || TO_CHAR(P_CUT_DATE_v
449                               ,'YYYYMMDD') || ''' or to_char(ip.accounting_date,''DD-MM-YYYY'')=''31-12-2099'') ';
450     END IF;
451     IF P_PAY_POSTED_FLAG IS NOT NULL THEN
452       SQL_PAYMENTS2 := SQL_PAYMENTS2 || 'and nvl(ach.gl_transfer_flag,''N'')=''' || P_PAY_POSTED_FLAG || ''' ';
453     END IF;
454     IF P_ONLY_PAID_INVOICES_v = 'Y' AND P_ONLY_OPEN_INVOICES_v = 'N' THEN
455       SQL_PAYMENTS1 := SQL_PAYMENTS1 || 'and exists (select null from ap_invoice_payments ip, ap_checks c  where i.invoice_id=ip.invoice_id and ip.check_id=c.check_id and c.void_date is null ' || SQL_PAYMENTS2 || ')';
456       SQL_PAYMENTS3 := SQL_PAYMENTS3 || 'and exists (select null from ap_invoice_payments ip, ap_checks c, ap_accounting_events aae,
457       ap_ae_headers ach ' ||
458       ' where ps.invoice_id=ip.invoice_id and ps.payment_num=ip.payment_num and ' ||
459       ' c.check_id = aae.source_id(+) and aae.source_table(+) = ''AP_CHECKS'' and aae.accounting_event_id = ach.accounting_event_id(+) and ' || ' ip.check_id=c.check_id and c.void_date is null ' || SQL_PAYMENTS2 || ')';
460     END IF;
461     IF P_ONLY_OPEN_INVOICES_v = 'Y' AND P_ONLY_PAID_INVOICES_v = 'Y' THEN
462       SELECT
463         TRUNC(START_DATE)
464       INTO L_START_DATE
465       FROM
466         GL_PERIOD_STATUSES
467       WHERE APPLICATION_ID = 200
468         AND NVL(ADJUSTMENT_PERIOD_FLAG
469          ,'N') = 'N'
470         AND TO_CHAR(P_CUT_DATE_v
471              ,'YYYYMMDD') between TO_CHAR(START_DATE
472              ,'YYYYMMDD')
473         AND TO_CHAR(END_DATE
474              ,'YYYYMMDD')
475         AND LEDGER_ID = C_SOB;
476       SQL_PAYMENTS1 := SQL_PAYMENTS1 || 'and (exists (' || 'select null from ap_payment_schedules ps where ps.invoice_id=i.invoice_id ' ||
477       'and (nvl(ps.amount_remaining,0)<>0 or ' ||
478       'not exists (select null from ap_invoice_payments ip, ap_checks c, ap_accounting_events aae, ap_ae_headers ach ' ||
479       'where ip.invoice_id=i.invoice_id and ps.payment_num=ip.payment_num and ip.check_id=c.check_id and c.void_date is null ' ||
480       'and c.check_id = aae.source_id(+) and aae.source_table(+) = ''AP_CHECKS'' and aae.accounting_event_id = ach.accounting_event_id(+) ' ||
481       SQL_PAYMENTS2 || ') ) )' || 'or exists (select null from ap_invoice_payments ip, ap_checks c '
482       || '           where i.invoice_id=ip.invoice_id and ip.check_id=c.check_id and c.void_date is null ' ||
483       '             and to_char(ip.accounting_date,''YYYYMMDD'') >=''' || TO_CHAR(L_START_DATE
484                               ,'YYYYMMDD') || '''' || '             and to_char(ip.accounting_date,''YYYYMMDD'') <=''' || TO_CHAR(P_CUT_DATE_v
485                               ,'YYYYMMDD') || '''))';
486       SQL_PAYMENTS3 := SQL_PAYMENTS3 || 'and ((nvl(ps.amount_remaining,0)<>0 or ' || 'not exists (select null from ap_invoice_payments ip, ap_checks c, ap_accounting_events aae, ap_ae_headers ach '
487       || 'where ip.invoice_id=ps.invoice_id and ps.payment_num=ip.payment_num and ip.check_id=c.check_id and c.void_date is null ' ||
488       'and c.check_id = aae.source_id(+) and aae.source_table(+) = ''AP_CHECKS'' and aae.accounting_event_id = ach.accounting_event_id(+) '
489       || SQL_PAYMENTS2 || '))' || 'or exists (select null from ap_invoice_payments ip, ap_checks c '
490       || '           where ps.invoice_id=ip.invoice_id and ip.check_id=c.check_id and c.void_date is null and ps.payment_num=ip.payment_num ' ||
491       '             and to_char(ip.accounting_date,''YYYYMMDD'') >= ''' || TO_CHAR(L_START_DATE
492                               ,'YYYYMMDD') || '''' || '             and to_char(ip.accounting_date,''YYYYMMDD'') <= ''' || TO_CHAR(P_CUT_DATE_v
493                               ,'YYYYMMDD') || '''))' || 'and not exists (select null from ap_invoice_payments ip, ap_checks c '
494                               || 'where ip.invoice_id=ps.invoice_id and ps.payment_num=ip.payment_num and ip.check_id=c.check_id and c.void_date is null ' ||
495                               ' and to_char(ip.accounting_date,''YYYYMMDD'') > ''' || TO_CHAR(P_CUT_DATE_v
496                               ,'YYYYMMDD') || ''' and ip.invoice_payment_type=''PREPAY'' and ps.amount_remaining=0)';
497     END IF;
498     IF P_ONLY_OPEN_INVOICES_v = 'Y' AND P_ONLY_PAID_INVOICES_v = 'N' THEN
499       SQL_PAYMENTS1 := SQL_PAYMENTS1 || 'and (exists (' || 'select null from ap_payment_schedules ps where ps.invoice_id=i.invoice_id ' ||
500       'and (nvl(ps.amount_remaining,0)<>0 or ' ||
501       'not exists (select null from ap_invoice_payments ip, ap_checks c, ap_accounting_events aae, ap_ae_headers ach ' ||
502       'where ip.invoice_id=i.invoice_id and ps.payment_num=ip.payment_num and ip.check_id=c.check_id and c.void_date is null ' ||
503       'and c.check_id = aae.source_id(+) and aae.source_table(+) = ''AP_CHECKS'' and aae.accounting_event_id = ach.accounting_event_id(+) ' || SQL_PAYMENTS2 || '))))';
504       SQL_PAYMENTS3 := SQL_PAYMENTS3 || 'and ((nvl(ps.amount_remaining,0)<>0 or ' || 'not exists (select null from ap_invoice_payments ip, ap_checks c, ap_accounting_events aae, ap_ae_headers ach ' ||
505       'where ip.invoice_id=ps.invoice_id and ps.payment_num=ip.payment_num and ip.check_id=c.check_id and c.void_date is null '
506       || 'and c.check_id = aae.source_id(+) and aae.source_table(+) = ''AP_CHECKS'' and aae.accounting_event_id = ach.accounting_event_id(+) '
507       || SQL_PAYMENTS2 || ')))' || 'and not exists (select null from ap_invoice_payments ip, ap_checks c '
508       || 'where ip.invoice_id=ps.invoice_id and ps.payment_num=ip.payment_num and ip.check_id=c.check_id and c.void_date is null ' || ' and to_char(ip.accounting_date,''YYYYMMDD'') > ''' ||
509       TO_CHAR(P_CUT_DATE_v
510                               ,'YYYYMMDD') || ''' and ip.invoice_payment_type=''PREPAY'' and ps.amount_remaining=0)';
511     END IF;
512 
513     IF (P_DEBUG_SWITCH = 'Y') THEN
514       /*SRW.MESSAGE('901'
515                  ,'SQL_PAYMEMTS1 = ' || SQL_PAYMENTS1)*/NULL;
516       /*SRW.MESSAGE('902'
517                  ,'SQL_PAYMEMTS2 = ' || SQL_PAYMENTS2)*/NULL;
518       /*SRW.MESSAGE('903'
519                  ,'SQL_PAYMEMTS3 = ' || SQL_PAYMENTS3)*/NULL;
520       /*SRW.MESSAGE('904'
521                  ,'P_CUT_DATE_v = ' || TO_CHAR(P_CUT_DATE_v
522                         ,'DD-MON-YYYY'))*/NULL;
523     END IF;
524     RETURN (TRUE);
525     RETURN NULL;
526   EXCEPTION
527     WHEN NO_DATA_FOUND THEN
528       RETURN (FALSE);
529   END SQL_PAYMENTS;
530 
531   FUNCTION C_BAL_FACTORFORMULA(DIST_BASE_AMOUNT IN NUMBER
532                               ,INVOICE_ID_v IN NUMBER) RETURN NUMBER IS
533   BEGIN
534     DECLARE
535       DIST_TOTAL NUMBER;
536     BEGIN
537       IF (DIST_BASE_AMOUNT IS NOT NULL) THEN
538         BEGIN
539           SELECT
540             SUM(NVL(BASE_AMOUNT
541                    ,AMOUNT))
542           INTO DIST_TOTAL
543           FROM
544             AP_INVOICE_DISTRIBUTIONS
545           WHERE INVOICE_ID = INVOICE_ID_v;
546         EXCEPTION
547           WHEN NO_DATA_FOUND THEN
548             DIST_TOTAL := DIST_BASE_AMOUNT;
549         END;
550         IF (DIST_TOTAL <> 0) THEN
551           RETURN (DIST_BASE_AMOUNT / DIST_TOTAL);
552         ELSE
553           RETURN (1);
554         END IF;
555       ELSE
556         RETURN (1);
557       END IF;
558     END;
559     RETURN NULL;
560   END C_BAL_FACTORFORMULA;
561 
562   FUNCTION C_INV_GROSS_BASEFORMULA(CANCELLED_DATE IN DATE
563                                   ,C_INV_GROSS_BASE0 IN NUMBER
564                                   ,CANCELLED_AMOUNT IN NUMBER
565                                   ,EXCHANGE_RATE IN NUMBER) RETURN NUMBER IS
566   BEGIN
567     IF NVL(CANCELLED_DATE
568        ,P_CUT_DATE_v) > P_CUT_DATE_v THEN
569       RETURN (C_INV_GROSS_BASE0 + ROUND(CANCELLED_AMOUNT * EXCHANGE_RATE
570                   ,C_PRECISION));
571     ELSE
572       RETURN (C_INV_GROSS_BASE0);
573     END IF;
574     RETURN NULL;
575   END C_INV_GROSS_BASEFORMULA;
576 
577   FUNCTION C_INV_GROSS_AMOUNTFORMULA(CANCELLED_DATE IN DATE
578                                     ,C_INV_GROSS_AMOUNT1 IN NUMBER
579                                     ,CANCELLED_AMOUNT IN NUMBER
580                                     ,C_INV_GROSS_AMOUNT0 IN NUMBER) RETURN NUMBER IS
581   BEGIN
582     IF P_GROUP_FIELD = 'T' THEN
583       IF NVL(CANCELLED_DATE
584          ,P_CUT_DATE_v) > P_CUT_DATE_v THEN
585         RETURN (C_INV_GROSS_AMOUNT1 + CANCELLED_AMOUNT + NVL(CP_INVPP_OPEN_AMOUNT
586                   ,0));
587       ELSE
588         RETURN (C_INV_GROSS_AMOUNT1 + NVL(CP_INVPP_OPEN_AMOUNT
589                   ,0));
590       END IF;
591     ELSE
592       IF NVL(CANCELLED_DATE
593          ,P_CUT_DATE_v) > P_CUT_DATE_v THEN
594         RETURN (C_INV_GROSS_AMOUNT0 + CANCELLED_AMOUNT + NVL(CP_INVPP_OPEN_BASE
595                   ,0));
596       ELSE
597         RETURN (C_INV_GROSS_AMOUNT0 + NVL(CP_INVPP_OPEN_BASE
598                   ,0));
599       END IF;
600     END IF;
601     RETURN NULL;
602   END C_INV_GROSS_AMOUNTFORMULA;
603 
604   FUNCTION C_INV_PAY_BASEFORMULA(INVOICE_ID_V IN NUMBER
605                                 ,C_INV_PAY_BASE0 IN NUMBER) RETURN NUMBER IS
606     L_CLEARING VARCHAR2(40);
607     L_START_DATE DATE;
608   BEGIN
609     SELECT
610       TRUNC(START_DATE)
611     INTO L_START_DATE
612     FROM
613       GL_PERIOD_STATUSES
614     WHERE APPLICATION_ID = 200
615       AND NVL(ADJUSTMENT_PERIOD_FLAG
616        ,'N') = 'N'
617       AND TRUNC(P_CUT_DATE_v) between START_DATE
618       AND END_DATE
619       AND SET_OF_BOOKS_ID = C_SOB;
620     SELECT
621       SUM(NVL(ID.BASE_AMOUNT
622              ,ID.AMOUNT)),
623       SUM(ID.AMOUNT),
624       MAX(ID.ACCOUNTING_DATE)
625     INTO CP_INVPP_OPEN_BASE,CP_INVPP_OPEN_AMOUNT,CP_INVPP_GL_DATE
626     FROM
627       AP_INVOICE_DISTRIBUTIONS ID,
628       AP_INVOICE_DISTRIBUTIONS PPD,
629       AP_INVOICES PP
630     WHERE ID.INVOICE_ID = INVOICE_ID_V
631       AND ( ( ID.LINE_TYPE_LOOKUP_CODE = 'PREPAY'
632       AND ID.PREPAY_DISTRIBUTION_ID = PPD.INVOICE_DISTRIBUTION_ID )
633     OR ( ID.LINE_TYPE_LOOKUP_CODE = 'TAX'
634       AND exists (
635       SELECT
636         1
637       FROM
638         AP_INVOICE_DISTRIBUTIONS SAMEID
639       WHERE SAMEID.INVOICE_ID = INVOICE_ID
640         AND SAMEID.LINE_TYPE_LOOKUP_CODE = 'PREPAY'
641         AND SAMEID.PREPAY_DISTRIBUTION_ID = PPD.INVOICE_DISTRIBUTION_ID
642         AND SAMEID.INVOICE_DISTRIBUTION_ID = ID.PREPAY_TAX_PARENT_ID ) ) )
643       AND PPD.INVOICE_ID = PP.INVOICE_ID
644       AND PP.INVOICE_TYPE_LOOKUP_CODE = 'PREPAYMENT';
645     RETURN (NVL(C_INV_PAY_BASE0
646               ,0) - NVL(CP_INVPP_OPEN_BASE
647               ,0));
648   EXCEPTION
649     WHEN OTHERS THEN
650       CP_INVPP_GL_DATE := TO_DATE('1952/01/01'
651                                  ,'YYYY/MM/DD');
652       RETURN (C_INV_PAY_BASE0);
653   END C_INV_PAY_BASEFORMULA;
654 
655   FUNCTION C_INV_GAINLOSSFORMULA(C_INV_GAINLOSS0 IN NUMBER) RETURN NUMBER IS
656   BEGIN
657     RETURN (C_INV_GAINLOSS0);
658   END C_INV_GAINLOSSFORMULA;
659 
660   FUNCTION C_INV_DISCOUNT_TAKEN_BASEFORMU(C_INV_DISC_TAKEN_BASE0 IN NUMBER) RETURN NUMBER IS
661   BEGIN
662     RETURN (C_INV_DISC_TAKEN_BASE0);
663   END C_INV_DISCOUNT_TAKEN_BASEFORMU;
664 
665   FUNCTION C_INV_DISCOUNT_AVAILABLEFORMUL(C_INV_DISC_AVAIL0 IN NUMBER
666                                          ,C_BAL_FACTOR IN NUMBER) RETURN NUMBER IS
667   BEGIN
668     RETURN (C_INV_DISC_AVAIL0 * C_BAL_FACTOR);
669   END C_INV_DISCOUNT_AVAILABLEFORMUL;
670 
671   FUNCTION NLS_PARAMETERS RETURN BOOLEAN IS
672     L_SUMMARY VARCHAR2(80);
673     L_YES VARCHAR2(80);
674     L_NO VARCHAR2(80);
675     L_ALL VARCHAR2(80);
676     L_APPROVAL_STATUS VARCHAR2(80);
677   BEGIN
678   P_MATCH_STATUS_FLAG_V := P_MATCH_STATUS_FLAG;
679     SELECT
680       MEANING
681     INTO L_SUMMARY
682     FROM
683       FND_LOOKUPS
684     WHERE LOOKUP_TYPE = 'JGZZ_AP_SUMMARY_LEVEL'
685       AND LOOKUP_CODE = P_SUMMARY_LEVEL;
686     C_SUMMARY_LEVEL := L_SUMMARY;
687     SELECT
688       MEANING
689     INTO L_APPROVAL_STATUS
690     FROM
691       FND_LOOKUPS
692     WHERE LOOKUP_TYPE = 'JGZZ_INVOICE_VALIDATION_STATUS'
693       AND LOOKUP_CODE = NVL(P_MATCH_STATUS_FLAG_V
694        ,'*');
695     C_APPROVAL_STATUS := L_APPROVAL_STATUS;
696     IF (P_MATCH_STATUS_FLAG_V = 'V') THEN
697       P_MATCH_STATUS_FLAG_V := 'A';
698     END IF;
699     SELECT
700       MEANING
701     INTO L_YES
702     FROM
703       FND_LOOKUPS
704     WHERE LOOKUP_TYPE = 'YES_NO_ALL'
705       AND LOOKUP_CODE = 'Y';
706     C_YES := L_YES;
707     SELECT
708       MEANING
709     INTO L_NO
710     FROM
711       FND_LOOKUPS
712     WHERE LOOKUP_TYPE = 'YES_NO_ALL'
713       AND LOOKUP_CODE = 'N';
714     C_NO := L_NO;
715     SELECT
716       MEANING
717     INTO L_ALL
718     FROM
719       FND_LOOKUPS
720     WHERE LOOKUP_TYPE = 'YES_NO_ALL'
721       AND LOOKUP_CODE = 'A';
722     C_ALL := L_ALL;
723     RETURN (TRUE);
724     RETURN NULL;
725   EXCEPTION
726     WHEN NO_DATA_FOUND THEN
727       RETURN (FALSE);
728   END NLS_PARAMETERS;
729 
730   FUNCTION C_APPROVE_FLAGFORMULA(INVOICE_ID_v IN NUMBER) RETURN VARCHAR2 IS
731   BEGIN
732     DECLARE
733       A_FLAG FND_LOOKUPS.MEANING%TYPE;
734       A_COUNT NUMBER;
735     BEGIN
736       A_FLAG := C_NO;
737       A_COUNT := 0;
738       SELECT
739         count(*)
740       INTO A_COUNT
741       FROM
742         AP_INVOICE_DISTRIBUTIONS AID
743       WHERE AID.INVOICE_ID = INVOICE_ID_v
744         AND NVL(AID.MATCH_STATUS_FLAG
745          ,'N') <> 'A';
746       IF (A_COUNT = 0) THEN
747         A_FLAG := C_YES;
748       END IF;
749       A_COUNT := 0;
750       SELECT
751         count(*)
752       INTO A_COUNT
753       FROM
754         AP_HOLDS AIH
755       WHERE AIH.INVOICE_ID = INVOICE_ID_v
756         AND AIH.RELEASE_LOOKUP_CODE is null;
757       IF (A_COUNT <> 0) THEN
758         A_FLAG := C_NO;
759       END IF;
760       RETURN (A_FLAG);
761     END;
762     RETURN NULL;
763   END C_APPROVE_FLAGFORMULA;
764 
765   FUNCTION CF_CUT_DATEFORMULA RETURN CHAR IS
766   BEGIN
767     RETURN (FND_DATE.DATE_TO_CHARDATE(P_CUT_DATE_v));
768   END CF_CUT_DATEFORMULA;
769 
770   FUNCTION CF_SYSDATEFORMULA RETURN CHAR IS
771   BEGIN
772     RETURN (FND_DATE.DATE_TO_CHARDT(SYSDATE));
773   END CF_SYSDATEFORMULA;
774 
775   FUNCTION CF_C_INV_DISCOUNT_DATEFORMULA(C_INV_DISCOUNT_DATE IN DATE) RETURN CHAR IS
776   BEGIN
777     RETURN (FND_DATE.DATE_TO_CHARDATE(C_INV_DISCOUNT_DATE));
778   END CF_C_INV_DISCOUNT_DATEFORMULA;
779 
780   FUNCTION CF_INV_CHECK_GL_DATEFORMULA(C_INV_CHECK_GL_DATE IN DATE) RETURN CHAR IS
781   BEGIN
782     IF NVL(C_INV_CHECK_GL_DATE
783        ,TO_DATE('1952/01/01'
784               ,'YYYY/MM/DD')) < NVL(CP_INVPP_GL_DATE
785        ,TO_DATE('1952/01/01'
786               ,'YYYY/MM/DD')) THEN
787       RETURN (FND_DATE.DATE_TO_CHARDATE(CP_INVPP_GL_DATE));
788     ELSE
789       RETURN (FND_DATE.DATE_TO_CHARDATE(C_INV_CHECK_GL_DATE));
790     END IF;
791   END CF_INV_CHECK_GL_DATEFORMULA;
792 
793   FUNCTION CF_ORGANIZATIONFORMULA(ORG_ID IN NUMBER) RETURN VARCHAR2 IS
794   BEGIN
795     DECLARE
796       OPERATING_UNIT_NAME HR_OPERATING_UNITS.NAME%TYPE;
797     BEGIN
798       SELECT
799         HR.NAME
800       INTO OPERATING_UNIT_NAME
801       FROM
802         HR_OPERATING_UNITS HR
803       WHERE HR.ORGANIZATION_ID = ORG_ID;
804       RETURN (OPERATING_UNIT_NAME);
805     EXCEPTION
806       WHEN NO_DATA_FOUND THEN
807         RETURN TO_CHAR(ORG_ID);
808     END;
809     RETURN NULL;
810   END CF_ORGANIZATIONFORMULA;
811 
812   FUNCTION CF_FLEXPROMPTFORMULA RETURN VARCHAR2 IS
813   BEGIN
814     DECLARE
815       L_GROUP VARCHAR2(80);
816     BEGIN
817       SELECT
818         MEANING
819       INTO L_GROUP
820       FROM
821         FND_LOOKUPS
822       WHERE LOOKUP_TYPE = 'JGZZ_AP_INVOICE_GROUP'
823         AND LOOKUP_CODE = P_GROUP_FIELD;
824       RETURN (L_GROUP);
825     EXCEPTION
826       WHEN NO_DATA_FOUND THEN
827         RETURN ('');
828     END;
829     RETURN NULL;
830   END CF_FLEXPROMPTFORMULA;
831 
832   FUNCTION AFTERPFORM RETURN BOOLEAN IS
833   BEGIN
834     FND_MO_REPORTING_API.INITIALIZE(P_REPORTING_LEVEL
835                                    ,P_REPORTING_ENTITY_ID
836                                    ,'AUTO');
837     P_ORG_WHERE_I := FND_MO_REPORTING_API.GET_PREDICATE('i'
838                                                        ,NULL);
839     P_ORG_WHERE_ID := FND_MO_REPORTING_API.GET_PREDICATE('id'
840                                                         ,NULL);
841     P_ORG_WHERE_VS := FND_MO_REPORTING_API.GET_PREDICATE('vs'
842                                                         ,NULL);
843     P_ORG_WHERE_PS := FND_MO_REPORTING_API.GET_PREDICATE('ps'
844                                                         ,NULL);
845     P_ORG_WHERE_AAE1 := FND_MO_REPORTING_API.GET_PREDICATE('aae1'
846                                                           ,NULL);
847     P_ORG_WHERE_ACH1 := FND_MO_REPORTING_API.GET_PREDICATE('ach1'
848                                                           ,NULL);
849     P_ORG_WHERE_SP := FND_MO_REPORTING_API.GET_PREDICATE('sp'
850                                                         ,NULL);
851     P_ORG_WHERE_AAE := FND_MO_REPORTING_API.GET_PREDICATE('aae'
852                                                          ,NULL);
853     P_ORG_WHERE_ACH := FND_MO_REPORTING_API.GET_PREDICATE('ach'
854                                                          ,NULL);
855     P_ORG_WHERE_IP := FND_MO_REPORTING_API.GET_PREDICATE('ip'
856                                                         ,NULL);
857     P_ORG_WHERE_C := FND_MO_REPORTING_API.GET_PREDICATE('c'
858                                                        ,NULL);
859     P_REPORTING_ENTITY_NAME := SUBSTRB(FND_MO_REPORTING_API.GET_REPORTING_ENTITY_NAME
860                                       ,1
861                                       ,50);
862     P_REPORTING_LEVEL_NAME := SUBSTRB(FND_MO_REPORTING_API.GET_REPORTING_LEVEL_NAME
863                                      ,1
864                                      ,50);
865     IF P_REPORTING_LEVEL = '1000' THEN
866       P_CHECK_LEDGER_IN_SP := MO_UTILS.CHECK_LEDGER_IN_SP(P_REPORTING_ENTITY_ID);
867       IF P_CHECK_LEDGER_IN_SP = 'N' THEN
868         FND_MESSAGE.SET_NAME('FND'
869                             ,'FND_MO_RPT_PARTIAL_LEDGER');
870         P_PARTIAL_LEDGER_MSG := FND_MESSAGE.GET;
871       END IF;
872     END IF;
873     RETURN (TRUE);
874   END AFTERPFORM;
875 
876   FUNCTION CP_INV_DUE_DATE_FMT_P RETURN VARCHAR2 IS
877   BEGIN
878     RETURN CP_INV_DUE_DATE_FMT;
879   END CP_INV_DUE_DATE_FMT_P;
880 
881   FUNCTION CP_INVPP_OPEN_BASE_P RETURN NUMBER IS
882   BEGIN
883     RETURN CP_INVPP_OPEN_BASE;
884   END CP_INVPP_OPEN_BASE_P;
885 
886   FUNCTION CP_INVPP_OPEN_AMOUNT_P RETURN NUMBER IS
887   BEGIN
888     RETURN CP_INVPP_OPEN_AMOUNT;
889   END CP_INVPP_OPEN_AMOUNT_P;
890 
891   FUNCTION CP_INVPP_GL_DATE_P RETURN DATE IS
892   BEGIN
893     RETURN CP_INVPP_GL_DATE;
894   END CP_INVPP_GL_DATE_P;
895 
896   FUNCTION C_FLEXDATA_P RETURN VARCHAR2 IS
897   BEGIN
898     RETURN C_FLEXDATA;
899   END C_FLEXDATA_P;
900 
901   FUNCTION SQL_PAYMENT_GROUP_P RETURN VARCHAR2 IS
902   BEGIN
903     RETURN SQL_PAYMENT_GROUP;
904   END SQL_PAYMENT_GROUP_P;
905 
906   FUNCTION SQL_INVOICE_CURRENCY_P RETURN VARCHAR2 IS
907   BEGIN
908     RETURN SQL_INVOICE_CURRENCY;
909   END SQL_INVOICE_CURRENCY_P;
910 
911   FUNCTION SQL_VENDOR_ID_P RETURN VARCHAR2 IS
912   BEGIN
913     RETURN SQL_VENDOR_ID;
914   END SQL_VENDOR_ID_P;
915 
916   FUNCTION SQL_ONLY_PAST_FLAG_P RETURN VARCHAR2 IS
917   BEGIN
918     RETURN SQL_ONLY_PAST_FLAG;
919   END SQL_ONLY_PAST_FLAG_P;
920 
921   FUNCTION SQL_DISTRIBUTIONS_P RETURN VARCHAR2 IS
922   BEGIN
923     RETURN SQL_DISTRIBUTIONS;
924   END SQL_DISTRIBUTIONS_P;
925 
926   FUNCTION SQL_PAYMENTS2_P RETURN VARCHAR2 IS
927   BEGIN
928     RETURN SQL_PAYMENTS2;
929   END SQL_PAYMENTS2_P;
930 
931   FUNCTION SQL_ONLY_PAST_FLAG2_P RETURN VARCHAR2 IS
932   BEGIN
933     RETURN SQL_ONLY_PAST_FLAG2;
934   END SQL_ONLY_PAST_FLAG2_P;
935 
936   FUNCTION SQL_PAYMENTS3_P RETURN VARCHAR2 IS
937   BEGIN
938     RETURN SQL_PAYMENTS3;
939   END SQL_PAYMENTS3_P;
940 
941   FUNCTION C_COAI_P RETURN NUMBER IS
942   BEGIN
943     RETURN C_COAI;
944   END C_COAI_P;
945 
946   FUNCTION SQL_PAYMENTS1_P RETURN VARCHAR2 IS
947   BEGIN
948     RETURN SQL_PAYMENTS1;
949   END SQL_PAYMENTS1_P;
950 
951   FUNCTION C_TITLE_P RETURN VARCHAR2 IS
952   BEGIN
953     RETURN C_TITLE;
954   END C_TITLE_P;
955 
956   FUNCTION C_SUMMARY_LEVEL_P RETURN VARCHAR2 IS
957   BEGIN
958     RETURN C_SUMMARY_LEVEL;
959   END C_SUMMARY_LEVEL_P;
960 
961   FUNCTION C_YES_P RETURN VARCHAR2 IS
962   BEGIN
963     RETURN C_YES;
964   END C_YES_P;
965 
966   FUNCTION C_APPROVAL_STATUS_P RETURN VARCHAR2 IS
967   BEGIN
968     RETURN C_APPROVAL_STATUS;
969   END C_APPROVAL_STATUS_P;
970 
971   FUNCTION C_NO_P RETURN VARCHAR2 IS
972   BEGIN
973     RETURN C_NO;
974   END C_NO_P;
975 
976   FUNCTION C_ALL_P RETURN VARCHAR2 IS
977   BEGIN
978     RETURN C_ALL;
979   END C_ALL_P;
980 
981   FUNCTION C_SOB_P RETURN NUMBER IS
982   BEGIN
983     RETURN C_SOB;
984   END C_SOB_P;
985 
986   FUNCTION C_HOLD_FLAG_P RETURN VARCHAR2 IS
987   BEGIN
988     RETURN C_HOLD_FLAG;
989   END C_HOLD_FLAG_P;
990 
991   FUNCTION C_PRECISION_P RETURN NUMBER IS
992   BEGIN
993     RETURN C_PRECISION;
994   END C_PRECISION_P;
995 
996   FUNCTION C_FUNCT_CURR_P RETURN VARCHAR2 IS
997   BEGIN
998     RETURN C_FUNCT_CURR;
999   END C_FUNCT_CURR_P;
1000 
1001   FUNCTION CP_PARTIAL_LEDGER_MSG_P RETURN VARCHAR2 IS
1002   BEGIN
1003     RETURN CP_PARTIAL_LEDGER_MSG;
1004   END CP_PARTIAL_LEDGER_MSG_P;
1005 END JG_JGZZSRCR_XMLP_PKG;
1006