DBA Data[Home] [Help]

PACKAGE BODY: APPS.AP_APXCRRCR_XMLP_PKG

Source


1 PACKAGE BODY AP_APXCRRCR_XMLP_PKG AS
2 /* $Header: APXCRRCRB.pls 120.0 2007/12/27 07:37:38 vjaganat noship $ */
3   FUNCTION CUSTOM_INIT RETURN BOOLEAN IS
4   BEGIN
5     /*SRW.MESSAGE(1
6                ,'in custom init')*/NULL;
7     SELECT
8       NVL(P_CHECK_DATE_V
9          ,DECODE(PAYMENT_DATE_OPTION
10                ,'REQUESTDATE'
11                ,SYSDATE
12                ,SYSDATE + ADDL_PAYMENT_DAYS)),
13       NVL(P_PAY_THROUGH_DATE_V
14          ,SYSDATE + ADDL_PAY_THRU_DAYS),
15       HI_PAYMENT_PRIORITY,
16       LOW_PAYMENT_PRIORITY,
17       PAY_ONLY_WHEN_DUE_FLAG,
18       ZERO_INV_ALLOWED_FLAG,
19       VENDOR_ID,
20       sysdate - ADDL_PAY_FROM_DAYS,
21       INV_EXCHANGE_RATE_TYPE,
22       PAYMENT_METHOD_CODE,
23       VENDOR_TYPE_LOOKUP_CODE,
24       OU_GROUP_OPTION,
25       LE_GROUP_OPTION,
26       CURRENCY_GROUP_OPTION,
27       PAY_GROUP_OPTION,
28       PARTY_ID,
29       DECODE(PAY_ONLY_WHEN_DUE_FLAG
30             ,'Y'
31             ,TO_DATE('01/01/80'
32                    ,'MM/DD/RR')
33             ,NVL(P_PAY_THROUGH_DATE_V
34                ,SYSDATE + ADDL_PAY_THRU_DAYS)),
35       TEMPLATE_NAME
36     INTO P_CHECK_DATE_V,P_PAY_THROUGH_DATE_V,C_HI_PAYMENT_PRIORITY,
37     C_LOW_PAYMENT_PRIORITY,P_PAY_ONLY_WHEN_DUE_FLAG,C_ZERO_INVOICES_ALLOWED,
38     C_VENDOR_ID,C_PAY_FROM_DATE,C_INV_EXCHANGE_RATE_TYPE,C_PAYMENT_METHOD_CODE,
39     C_VENDOR_TYPE_LOOKUP_CODE,C_OU_GROUP_OPTION,C_LE_GROUP_OPTION,C_CURRENCY_GROUP_OPTION,
40     C_PAY_GROUP_OPTION,C_PARTY_ID,C_DISC_PAY_THRU_DATE,C_TEMPLATE_NAME
41     FROM
42       AP_PAYMENT_TEMPLATES
43     WHERE TEMPLATE_ID = P_TEMPLATE_ID;
44     IF P_INCLUDE_UNVALIDATED = 'N' THEN
45       C_UNVALIDATED_PREDICATE := 'AND inv1.wfapproval_status in ' || '(''NOT REQUIRED'',''WFAPPROVED'',''MANUALLY APPROVED'') ';
46     END IF;
47     IF P_INCLUDE_UNAPPROVED = 'N' THEN
48       C_UNAPPROVED_PREDICATE := 'AND NOT EXISTS (' || 'SELECT 1 ' || 'FROM   ap_invoices_derived_v AIDV '
49       || 'WHERE  AIDV.invoice_id = inv1.invoice_id ' || 'AND    AIDV.approval_status_lookup_code IN '
50       || '(''NEVER APPROVED'', ''NEEDS REAPPROVAL'', ''UNAPPROVED'')) ';
51     END IF;
52     RETURN (TRUE);
53     RETURN NULL;
54   EXCEPTION
55     WHEN OTHERS THEN
56       RETURN (FALSE);
57   END CUSTOM_INIT;
58 
59   FUNCTION GET_COVER_PAGE_VALUES RETURN BOOLEAN IS
60   BEGIN
61     RETURN (TRUE);
62     RETURN NULL;
63   EXCEPTION
64     WHEN OTHERS THEN
65       RETURN (FALSE);
66   END GET_COVER_PAGE_VALUES;
67 
68   FUNCTION GET_NLS_STRINGS RETURN BOOLEAN IS
69     NLS_ALL AP_LOOKUP_CODES.DISPLAYED_FIELD%TYPE;
70     NLS_YES FND_LOOKUPS.MEANING%TYPE;
71     NLS_NO FND_LOOKUPS.MEANING%TYPE;
72     NLS_HOLDS AP_LOOKUP_CODES.DISPLAYED_FIELD%TYPE;
73   BEGIN
74     NLS_ALL := '';
75     NLS_YES := '';
76     NLS_NO := '';
77     NLS_HOLDS := '';
78     SELECT
79       LY.MEANING,
80       LN.MEANING,
81       LA.DISPLAYED_FIELD,
82       LH.DISPLAYED_FIELD
83     INTO NLS_YES,NLS_NO,NLS_ALL,NLS_HOLDS
84     FROM
85       FND_LOOKUPS LY,
86       FND_LOOKUPS LN,
87       AP_LOOKUP_CODES LA,
88       AP_LOOKUP_CODES LH
89     WHERE LY.LOOKUP_TYPE = 'YES_NO'
90       AND LY.LOOKUP_CODE = 'Y'
91       AND LN.LOOKUP_TYPE = 'YES_NO'
92       AND LN.LOOKUP_CODE = 'N'
93       AND LA.LOOKUP_TYPE = 'NLS REPORT PARAMETER'
94       AND LA.LOOKUP_CODE = 'ALL'
95       AND LH.LOOKUP_TYPE = 'NLS TRANSLATION'
96       AND LH.LOOKUP_CODE = 'HOLDS';
97     C_NLS_YES := NLS_YES;
98     C_NLS_NO := NLS_NO;
99     C_NLS_ALL := NLS_ALL;
100     C_NLS_HOLDS := NLS_HOLDS;
101     FND_MESSAGE.SET_NAME('SQLAP'
102                         ,'AP_APPRVL_NO_DATA');
103     C_NLS_NO_DATA_EXISTS := FND_MESSAGE.GET;
104     C_NLS_NO_DATA_EXISTS := ' ' || C_NLS_NO_DATA_EXISTS || ' ';
105     FND_MESSAGE.SET_NAME('SQLAP'
106                         ,'AP_ALL_END_OF_REPORT');
107     C_NLS_END_OF_REPORT := FND_MESSAGE.GET;
108     C_NLS_END_OF_REPORT := ' ' || C_NLS_END_OF_REPORT || ' ';
109     RETURN (TRUE);
110     RETURN NULL;
111   EXCEPTION
112     WHEN OTHERS THEN
113       RETURN (FALSE);
114   END GET_NLS_STRINGS;
115 
116   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
117   BEGIN
118     DECLARE
119       INIT_FAILURE EXCEPTION;
120     BEGIN
121     --added as fix
122     P_CHECK_DATE_V:=P_CHECK_DATE;
123     P_PAY_THROUGH_DATE_v:=P_PAY_THROUGH_DATE;
124 
125       /*SRW.MESSAGE(0
126                  ,'Beginning Cash Requirements report ...')*/NULL;
127       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
128       /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
129       IF (P_DEBUG_SWITCH = 'Y') THEN
130         /*SRW.MESSAGE('1'
131                    ,'After SRWINIT')*/NULL;
132       END IF;
133       IF (GET_COMPANY_NAME <> TRUE) THEN
134         RAISE INIT_FAILURE;
135       END IF;
136       IF (P_DEBUG_SWITCH = 'Y') THEN
137         /*SRW.MESSAGE('2'
138                    ,'After Get_Company_Name')*/NULL;
139       END IF;
140       IF (GET_NLS_STRINGS <> TRUE) THEN
141         RAISE INIT_FAILURE;
142       END IF;
143       IF (P_DEBUG_SWITCH = 'Y') THEN
144         /*SRW.MESSAGE('3'
145                    ,'After Get_NLS_Strings')*/NULL;
146       END IF;
147       BEGIN
148         SELECT
149           SORT_BY_ALTERNATE_FIELD
150         INTO SORT_BY_ALTERNATE
151         FROM
152           AP_SYSTEM_PARAMETERS;
153       EXCEPTION
154         WHEN OTHERS THEN
155           SORT_BY_ALTERNATE := 'N';
156       END;
157       IF (CUSTOM_INIT <> TRUE) THEN
158         RAISE INIT_FAILURE;
159       END IF;
160       IF (P_DEBUG_SWITCH = 'Y') THEN
161         /*SRW.MESSAGE('7'
162                    ,'After Custom_Init')*/NULL;
163       END IF;
164       IF (P_DEBUG_SWITCH = 'Y') THEN
165         /*SRW.BREAK*/NULL;
166       END IF;
167 
168       --added as fix
169       P_PAY_THROUGH_DATE_v1:=to_char(P_PAY_THROUGH_DATE_v,'DD-MON-YY');
170       P_CHECK_DATE_V1:=to_char(P_CHECK_DATE_V,'DD-MON-YY');
171       RETURN (TRUE);
172     EXCEPTION
173       WHEN OTHERS THEN
174         /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
175     END;
176     RETURN (TRUE);
177   END BEFOREREPORT;
178 
179   FUNCTION AFTERREPORT RETURN BOOLEAN IS
180   BEGIN
181     BEGIN
182       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
183       IF (P_DEBUG_SWITCH = 'Y') THEN
184         /*SRW.MESSAGE('20'
185                    ,'After SRWEXIT')*/NULL;
186       END IF;
187     EXCEPTION
188       WHEN OTHERS THEN
189         /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
190     END;
191     RETURN (TRUE);
192   END AFTERREPORT;
193 
194   FUNCTION GET_COMPANY_NAME RETURN BOOLEAN IS
195   BEGIN
196     C_REPORT_START_DATE := SYSDATE;
197     RETURN (TRUE);
198     RETURN NULL;
199   EXCEPTION
200     WHEN OTHERS THEN
201       RETURN (FALSE);
202   END GET_COMPANY_NAME;
203 
204   FUNCTION CALCULATE_RUN_TIME RETURN BOOLEAN IS
205     END_DATE DATE;
206     START_DATE DATE;
207   BEGIN
208     END_DATE := SYSDATE;
209     START_DATE := C_REPORT_START_DATE;
210     C_REPORT_RUN_TIME := TO_CHAR(TO_DATE('01/01/0001'
211                                         ,'DD/MM/YYYY') + ((END_DATE - START_DATE))
212                                 ,'HH24:MI:SS');
213     RETURN (TRUE);
214     RETURN NULL;
215   EXCEPTION
216     WHEN OTHERS THEN
217       /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
218   END CALCULATE_RUN_TIME;
219 
220   FUNCTION C_PAY_DATEFORMULA(C_SORT_PAY_DATE IN DATE) RETURN VARCHAR2 IS
221   BEGIN
222     DECLARE
223       L_HOLD_COUNT NUMBER;
224       L_DISC_DATE DATE;
225       L_DATE DATE;
226     BEGIN
227       RETURN (TO_CHAR(C_SORT_PAY_DATE
228                     ,'DD-MON-YY'));
229     END;
230   END C_PAY_DATEFORMULA;
231 
232   FUNCTION C_HOLD_COUNTFORMULA(C_INVOICE_ID IN NUMBER) RETURN NUMBER IS
233   BEGIN
234     DECLARE
235       L_HOLD_COUNT NUMBER;
236     BEGIN
237       IF P_INCLUDE_UNAPPROVED = 'N' THEN
238         RETURN (0);
239       END IF;
240       /*SRW.REFERENCE(C_INVOICE_ID)*/NULL;
241       SELECT
242         COUNT(HC.HOLD_LOOKUP_CODE)
243       INTO L_HOLD_COUNT
244       FROM
245         AP_HOLDS HC
246       WHERE HC.INVOICE_ID = C_INVOICE_ID
247         AND HC.RELEASE_LOOKUP_CODE IS NULL;
248       RETURN (L_HOLD_COUNT);
249     END;
250     RETURN NULL;
251   END C_HOLD_COUNTFORMULA;
252 
253   FUNCTION C_NLS_SUMMARY_FLAGFORMULA RETURN VARCHAR2 IS
254   BEGIN
255     BEGIN
256       IF P_SUMMARY_FLAG = 'Y' THEN
257         RETURN (C_NLS_YES);
258       ELSE
259         RETURN (C_NLS_NO);
260       END IF;
261     END;
262     RETURN NULL;
263   END C_NLS_SUMMARY_FLAGFORMULA;
264 
265   FUNCTION C_APPROVED_STATUSFORMULA(C_INVOICE_ID IN NUMBER) RETURN VARCHAR2 IS
266   BEGIN
267     DECLARE
268       STATUS VARCHAR2(8);
269     BEGIN
270       SELECT
271         'Approved'
272       INTO STATUS
273       FROM
274         DUAL
275       WHERE ( ( NOT EXISTS (
276         SELECT
277           'Unreleased holds exist'
278         FROM
279           AP_HOLDS H
280         WHERE H.INVOICE_ID = C_INVOICE_ID
281           AND H.RELEASE_LOOKUP_CODE is null ) )
282         AND ( EXISTS (
283         SELECT
284           'Invoice has been approved'
285         FROM
286           FINANCIALS_SYSTEM_PARAMETERS FP
287         WHERE exists (
288           SELECT
289             'Invoice has been approved'
290           FROM
291             AP_INVOICE_DISTRIBUTIONS D1
292           WHERE D1.INVOICE_ID = C_INVOICE_ID )
293           AND ( ( NVL(FP.PURCH_ENCUMBRANCE_FLAG
294            ,'N') = 'N'
295           AND not exists (
296           SELECT
297             'Invoice is not fully approved'
298           FROM
299             AP_INVOICE_DISTRIBUTIONS D2
300           WHERE D2.INVOICE_ID = C_INVOICE_ID
301             AND NVL(D2.MATCH_STATUS_FLAG
302              ,'N') = 'N' ) )
303         OR ( NVL(FP.PURCH_ENCUMBRANCE_FLAG
304            ,'N') = 'Y'
305           AND not exists (
306           SELECT
307             'Invoice is not fully approved'
308           FROM
309             AP_INVOICE_DISTRIBUTIONS D3
310           WHERE D3.INVOICE_ID = C_INVOICE_ID
311             AND NVL(D3.MATCH_STATUS_FLAG
312              ,'N') <> 'A' ) ) ) ) ) );
313       IF STATUS IS NOT NULL THEN
314         RETURN (C_NLS_YES);
315       ELSE
316         RETURN (C_NLS_NO);
317       END IF;
318     EXCEPTION
319       WHEN NO_DATA_FOUND THEN
320         RETURN (C_NLS_NO);
321     END;
322     RETURN NULL;
323   END C_APPROVED_STATUSFORMULA;
324 
325   FUNCTION C_AMOUNT_ROUNDFORMULA(C_CURRENCY_CODE IN VARCHAR2
326                                 ,C_AMOUNT IN NUMBER) RETURN NUMBER IS
327   BEGIN
328     DECLARE
329       L_DISC_AMT NUMBER;
330       L_AMOUNT NUMBER;
331     BEGIN
332       /*SRW.REFERENCE(C_CURRENCY_CODE)*/NULL;
333       /*SRW.REFERENCE(C_AMOUNT)*/NULL;
334       RETURN (AP_UTILITIES_PKG.AP_ROUND_CURRENCY(C_AMOUNT
335                                                ,C_CURRENCY_CODE));
336     END;
337   END C_AMOUNT_ROUNDFORMULA;
338 
339   FUNCTION C_AMOUNTFORMULA(C_TAKE_DISC_FLAG IN VARCHAR2
340                           ,C_DISC_AMT IN NUMBER
341                           ,C_DISC_DATE IN DATE
342                           ,C_SEC_DISC_DATE IN DATE
343                           ,C_SEC_DISC_AMT IN NUMBER
344                           ,C_THRD_DISC_DATE IN DATE
345                           ,C_THRD_DISC_AMT IN NUMBER
346                           ,C_GROSS_AMOUNT IN NUMBER
347                           ,C_AMT_REMAINING IN NUMBER) RETURN NUMBER IS
348   BEGIN
349     DECLARE
350       L_DISC_AMT NUMBER;
351       L_AMOUNT NUMBER;
352     BEGIN
353       IF (C_TAKE_DISC_FLAG = 'Y') THEN
354         L_DISC_AMT := NVL(C_DISC_AMT
355                          ,0);
356       ELSE
357         IF P_CHECK_DATE_V <= NVL(C_DISC_DATE
358            ,SYSDATE - 9000) THEN
359           L_DISC_AMT := NVL(C_DISC_AMT
360                            ,0);
361         ELSE
362           IF P_CHECK_DATE_V <= NVL(C_SEC_DISC_DATE
363              ,SYSDATE - 9000) THEN
364             L_DISC_AMT := NVL(C_SEC_DISC_AMT
365                              ,0);
366           ELSE
367             IF P_CHECK_DATE_V <= NVL(C_THRD_DISC_DATE
368                ,SYSDATE - 9000) THEN
369               L_DISC_AMT := NVL(C_THRD_DISC_AMT
370                                ,0);
371             ELSE
372               L_DISC_AMT := 0;
373             END IF;
374           END IF;
375         END IF;
376       END IF;
377       IF C_GROSS_AMOUNT = 0 THEN
378         L_DISC_AMT := 0;
379       ELSE
380         L_DISC_AMT := L_DISC_AMT * (C_AMT_REMAINING / C_GROSS_AMOUNT);
381       END IF;
382       IF P_PAY_ONLY_WHEN_DUE_FLAG = 'Y' THEN
383         IF (C_TAKE_DISC_FLAG = 'N') THEN
384           L_AMOUNT := NVL(C_AMT_REMAINING
385                          ,0);
386         ELSE
387           L_AMOUNT := NVL(C_AMT_REMAINING
388                          ,0) - L_DISC_AMT;
389         END IF;
390       ELSE
391         L_AMOUNT := NVL(C_AMT_REMAINING
392                        ,0) - L_DISC_AMT;
393       END IF;
394       RETURN (L_AMOUNT);
395     END;
396   END C_AMOUNTFORMULA;
397 
398   FUNCTION C_BASE_CURRENCY_AMOUNTFORMULA(C_TAKE_DISC_FLAG IN VARCHAR2
399                                         ,C_DISC_AMT IN NUMBER
400                                         ,C_DISC_DATE IN DATE
401                                         ,C_SEC_DISC_DATE IN DATE
402                                         ,C_SEC_DISC_AMT IN NUMBER
403                                         ,C_THRD_DISC_DATE IN DATE
404                                         ,C_THRD_DISC_AMT IN NUMBER
405                                         ,C_GROSS_AMOUNT IN NUMBER
406                                         ,C_AMT_REMAINING IN NUMBER
407                                         ,C_BASE_MIN_ACCOUNT_UNIT IN NUMBER
408                                         ,C_EXCH_RATE IN NUMBER
409                                         ,C_PAYMENT_CROSS_RATE IN NUMBER
410                                         ,C_BASE_PRECISION IN NUMBER) RETURN NUMBER IS
411   BEGIN
412     DECLARE
413       L_DISC_AMT NUMBER;
414       L_AMOUNT NUMBER;
415     BEGIN
416       IF (C_TAKE_DISC_FLAG = 'Y') THEN
417         L_DISC_AMT := NVL(C_DISC_AMT
418                          ,0);
419       ELSE
420         IF P_CHECK_DATE_V <= NVL(C_DISC_DATE
421            ,SYSDATE - 9000) THEN
422           L_DISC_AMT := NVL(C_DISC_AMT
423                            ,0);
424         ELSE
425           IF P_CHECK_DATE_V <= NVL(C_SEC_DISC_DATE
426              ,SYSDATE - 9000) THEN
427             L_DISC_AMT := NVL(C_SEC_DISC_AMT
428                              ,0);
429           ELSE
430             IF P_CHECK_DATE_V <= NVL(C_THRD_DISC_DATE
431                ,SYSDATE - 9000) THEN
432               L_DISC_AMT := NVL(C_THRD_DISC_AMT
433                                ,0);
434             ELSE
435               L_DISC_AMT := 0;
436             END IF;
437           END IF;
438         END IF;
439       END IF;
440       IF C_GROSS_AMOUNT = 0 THEN
441         L_DISC_AMT := 0;
442       ELSE
443         L_DISC_AMT := L_DISC_AMT * (C_AMT_REMAINING / C_GROSS_AMOUNT);
444       END IF;
445       IF P_PAY_ONLY_WHEN_DUE_FLAG = 'Y' THEN
446         IF (C_TAKE_DISC_FLAG = 'N') THEN
447           L_AMOUNT := NVL(C_AMT_REMAINING
448                          ,0);
449         ELSE
450           L_AMOUNT := C_AMT_REMAINING - L_DISC_AMT;
451         END IF;
452       ELSE
453         L_AMOUNT := NVL(C_AMT_REMAINING
454                        ,0) - L_DISC_AMT;
455       END IF;
456       IF C_BASE_MIN_ACCOUNT_UNIT IS NULL THEN
457         L_AMOUNT := ROUND((L_AMOUNT * NVL(C_EXCH_RATE
458                              ,1) / NVL(C_PAYMENT_CROSS_RATE
459                              ,1))
460                          ,C_BASE_PRECISION);
461       ELSE
462         L_AMOUNT := ROUND((L_AMOUNT * NVL(C_EXCH_RATE
463                              ,1) / NVL(C_PAYMENT_CROSS_RATE
464                              ,1)) / C_BASE_MIN_ACCOUNT_UNIT) * C_BASE_MIN_ACCOUNT_UNIT;
465       END IF;
466       RETURN (L_AMOUNT);
467     END;
468   END C_BASE_CURRENCY_AMOUNTFORMULA;
469 
470   FUNCTION C_SORT_PAY_DATEFORMULA(C_TAKE_DISC_FLAG IN VARCHAR2
471                                  ,C_DUE_DATE IN DATE
472                                  ,C_DISC_DATE IN DATE
473                                  ,C_SEC_DISC_DATE IN DATE
474                                  ,C_THRD_DISC_DATE IN DATE) RETURN DATE IS
475   BEGIN
476     DECLARE
477       L_HOLD_COUNT NUMBER;
478       L_DISC_DATE DATE;
479       L_DATE DATE;
480     BEGIN
481       IF (C_TAKE_DISC_FLAG = 'Y') THEN
482         L_DISC_DATE := C_DUE_DATE;
483       ELSE
484         IF P_CHECK_DATE_V <= NVL(C_DISC_DATE
485            ,SYSDATE - 9000) THEN
486           L_DISC_DATE := C_DISC_DATE;
487         ELSE
488           IF P_CHECK_DATE_V <= NVL(C_SEC_DISC_DATE
489              ,SYSDATE - 9000) THEN
490             L_DISC_DATE := C_SEC_DISC_DATE;
491           ELSE
492             IF P_CHECK_DATE_V <= NVL(C_THRD_DISC_DATE
493                ,SYSDATE - 9000) THEN
494               L_DISC_DATE := C_THRD_DISC_DATE;
495             ELSE
496               L_DISC_DATE := C_DUE_DATE;
497             END IF;
498           END IF;
499         END IF;
500       END IF;
501       IF P_PAY_ONLY_WHEN_DUE_FLAG = 'Y' THEN
502         IF (NVL(C_TAKE_DISC_FLAG
503            ,'N') = 'Y') THEN
504           L_DATE := C_DUE_DATE;
505         ELSE
506           L_DATE := L_DISC_DATE;
507         END IF;
508       ELSE
509         L_DATE := L_DISC_DATE;
510       END IF;
511       RETURN (TRUNC(L_DATE));
512     END;
513   END C_SORT_PAY_DATEFORMULA;
514 
515   FUNCTION C_NLS_INCL_UNAPPROVEDFORMULA RETURN CHAR IS
516   BEGIN
517     IF P_INCLUDE_UNAPPROVED = 'Y' THEN
518       RETURN (C_NLS_YES);
519     ELSE
520       RETURN (C_NLS_NO);
521     END IF;
522   END C_NLS_INCL_UNAPPROVEDFORMULA;
523 
524   FUNCTION C_NLS_INCL_UNVALIDATEDFORMULA RETURN CHAR IS
525   BEGIN
526     IF P_INCLUDE_UNVALIDATED = 'Y' THEN
527       RETURN (C_NLS_YES);
528     ELSE
529       RETURN (C_NLS_NO);
530     END IF;
531   END C_NLS_INCL_UNVALIDATEDFORMULA;
532 
533   FUNCTION C_REPORT_START_DATE_P RETURN DATE IS
534   BEGIN
535     RETURN C_REPORT_START_DATE;
536   END C_REPORT_START_DATE_P;
537 
538   FUNCTION C_NLS_YES_P RETURN VARCHAR2 IS
539   BEGIN
540     RETURN C_NLS_YES;
541   END C_NLS_YES_P;
542 
543   FUNCTION C_NLS_NO_P RETURN VARCHAR2 IS
544   BEGIN
545     RETURN C_NLS_NO;
546   END C_NLS_NO_P;
547 
548   FUNCTION C_NLS_ALL_P RETURN VARCHAR2 IS
549   BEGIN
550     RETURN C_NLS_ALL;
551   END C_NLS_ALL_P;
552 
553   FUNCTION C_NLS_NO_DATA_EXISTS_P RETURN VARCHAR2 IS
554   BEGIN
555     RETURN C_NLS_NO_DATA_EXISTS;
556   END C_NLS_NO_DATA_EXISTS_P;
557 
558   FUNCTION C_REPORT_RUN_TIME_P RETURN VARCHAR2 IS
559   BEGIN
560     RETURN C_REPORT_RUN_TIME;
561   END C_REPORT_RUN_TIME_P;
562 
563   FUNCTION C_CHART_OF_ACCOUNTS_ID_P RETURN NUMBER IS
564   BEGIN
565     RETURN C_CHART_OF_ACCOUNTS_ID;
566   END C_CHART_OF_ACCOUNTS_ID_P;
567 
568   FUNCTION C_NLS_END_OF_REPORT_P RETURN VARCHAR2 IS
569   BEGIN
570     RETURN C_NLS_END_OF_REPORT;
571   END C_NLS_END_OF_REPORT_P;
572 
573   FUNCTION C_HI_PAYMENT_PRIORITY_P RETURN NUMBER IS
574   BEGIN
575     RETURN C_HI_PAYMENT_PRIORITY;
576   END C_HI_PAYMENT_PRIORITY_P;
577 
578   FUNCTION C_LOW_PAYMENT_PRIORITY_P RETURN NUMBER IS
579   BEGIN
580     RETURN C_LOW_PAYMENT_PRIORITY;
581   END C_LOW_PAYMENT_PRIORITY_P;
582 
583   FUNCTION C_ZERO_INVOICES_ALLOWED_P RETURN VARCHAR2 IS
584   BEGIN
585     RETURN C_ZERO_INVOICES_ALLOWED;
586   END C_ZERO_INVOICES_ALLOWED_P;
587 
588   FUNCTION C_VENDOR_ID_P RETURN NUMBER IS
589   BEGIN
590     RETURN C_VENDOR_ID;
591   END C_VENDOR_ID_P;
592 
593   FUNCTION C_PAY_FROM_DATE_P RETURN DATE IS
594   BEGIN
595     RETURN C_PAY_FROM_DATE;
596   END C_PAY_FROM_DATE_P;
597 
598   FUNCTION C_PAYMENT_METHOD_CODE_P RETURN VARCHAR2 IS
599   BEGIN
600     RETURN C_PAYMENT_METHOD_CODE;
601   END C_PAYMENT_METHOD_CODE_P;
602 
603   FUNCTION C_VENDOR_TYPE_LOOKUP_CODE_P RETURN VARCHAR2 IS
604   BEGIN
605     RETURN C_VENDOR_TYPE_LOOKUP_CODE;
606   END C_VENDOR_TYPE_LOOKUP_CODE_P;
607 
608   FUNCTION C_OU_GROUP_OPTION_P RETURN VARCHAR2 IS
609   BEGIN
610     RETURN C_OU_GROUP_OPTION;
611   END C_OU_GROUP_OPTION_P;
612 
613   FUNCTION C_LE_GROUP_OPTION_P RETURN VARCHAR2 IS
614   BEGIN
615     RETURN C_LE_GROUP_OPTION;
616   END C_LE_GROUP_OPTION_P;
617 
618   FUNCTION C_CURRENCY_GROUP_OPTION_P RETURN VARCHAR2 IS
619   BEGIN
620     RETURN C_CURRENCY_GROUP_OPTION;
621   END C_CURRENCY_GROUP_OPTION_P;
622 
623   FUNCTION C_PAY_GROUP_OPTION_P RETURN VARCHAR2 IS
624   BEGIN
625     RETURN C_PAY_GROUP_OPTION;
626   END C_PAY_GROUP_OPTION_P;
627 
628   FUNCTION C_INV_EXCHANGE_RATE_TYPE_P RETURN VARCHAR2 IS
629   BEGIN
630     RETURN C_INV_EXCHANGE_RATE_TYPE;
631   END C_INV_EXCHANGE_RATE_TYPE_P;
632 
633   FUNCTION C_PARTY_ID_P RETURN NUMBER IS
634   BEGIN
635     RETURN C_PARTY_ID;
636   END C_PARTY_ID_P;
637 
638   FUNCTION C_DISC_PAY_THRU_DATE_P RETURN DATE IS
639   BEGIN
640     RETURN C_DISC_PAY_THRU_DATE;
641   END C_DISC_PAY_THRU_DATE_P;
642 
643   FUNCTION C_TEMPLATE_NAME_P RETURN VARCHAR2 IS
644   BEGIN
645     RETURN C_TEMPLATE_NAME;
646   END C_TEMPLATE_NAME_P;
647 
648   FUNCTION C_UNAPPROVED_PREDICATE_P RETURN VARCHAR2 IS
649   BEGIN
650     RETURN C_UNAPPROVED_PREDICATE;
651   END C_UNAPPROVED_PREDICATE_P;
652 
653   FUNCTION C_UNVALIDATED_PREDICATE_P RETURN VARCHAR2 IS
654   BEGIN
655     RETURN C_UNVALIDATED_PREDICATE;
656   END C_UNVALIDATED_PREDICATE_P;
657 
658   FUNCTION C_NLS_HOLDS_P RETURN VARCHAR2 IS
659   BEGIN
660     RETURN C_NLS_HOLDS;
661   END C_NLS_HOLDS_P;
662 
663 END AP_APXCRRCR_XMLP_PKG;
664 
665