DBA Data[Home] [Help]

PACKAGE BODY: APPS.ONT_OEXOEOSR_XMLP_PKG

Source


1 PACKAGE BODY ONT_OEXOEOSR_XMLP_PKG AS
2 /* $Header: OEXOEOSRB.pls 120.1 2007/12/25 07:23:40 npannamp noship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4   BEGIN
5     BEGIN
6       BEGIN
7         P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
8         P_ORDER_DATE_LOW_V:=to_char(P_ORDER_DATE_LOW,'DD-MON-YY');
9         P_ORDER_DATE_HIGH_V:=to_char(P_ORDER_DATE_HIGH,'DD-MON-YY');
10         --added as fix
11         F1:=Oe_Sys_Parameters.Value('RECURRING_CHARGES',mo_global.get_current_org_id());
12         /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
13       EXCEPTION
14         WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
15           /*SRW.MESSAGE(1000
16                      ,'Failed in BEFORE REPORT trigger')*/NULL;
17           RETURN (FALSE);
18       END;
19       BEGIN
20        -- P_ORG_ID := MO_GLOBAL.GET_CURRENT_ORG_ID;
21         P_ORG_ID_V := MO_GLOBAL.GET_CURRENT_ORG_ID;
22       END;
23       DECLARE
24         L_COMPANY_NAME VARCHAR2(100);
25         L_FUNCTIONAL_CURRENCY VARCHAR2(15);
26       BEGIN
27         SELECT
28           SOB.NAME,
29           SOB.CURRENCY_CODE
30         INTO L_COMPANY_NAME,L_FUNCTIONAL_CURRENCY
31         FROM
32           GL_SETS_OF_BOOKS SOB,
33           FND_CURRENCIES CUR
34         WHERE SOB.SET_OF_BOOKS_ID = P_SOB_ID
35           AND SOB.CURRENCY_CODE = CUR.CURRENCY_CODE;
36         RP_COMPANY_NAME := L_COMPANY_NAME;
37         RP_FUNCTIONAL_CURRENCY := L_FUNCTIONAL_CURRENCY;
38       EXCEPTION
39         WHEN NO_DATA_FOUND THEN
40           NULL;
41       END;
42       DECLARE
43         L_ORDER_SOURCE_NAME VARCHAR2(50);
44       BEGIN
45         SELECT
46           NAME
47         INTO L_ORDER_SOURCE_NAME
48         FROM
49           OE_ORDER_SOURCES
50         WHERE ORDER_SOURCE_ID = NVL(P_ORDER_SOURCE
51            ,-999);
52         LP_ORDER_SOURCE_NAME := L_ORDER_SOURCE_NAME;
53       EXCEPTION
54         WHEN NO_DATA_FOUND THEN
55           NULL;
56       END;
57       DECLARE
58         L_REPORT_NAME VARCHAR2(240);
59       BEGIN
60         SELECT
61           CP.USER_CONCURRENT_PROGRAM_NAME
62         INTO L_REPORT_NAME
63         FROM
64           FND_CONCURRENT_PROGRAMS_VL CP,
65           FND_CONCURRENT_REQUESTS CR
66         WHERE CR.REQUEST_ID = P_CONC_REQUEST_ID
67           AND CP.APPLICATION_ID = CR.PROGRAM_APPLICATION_ID
68           AND CP.CONCURRENT_PROGRAM_ID = CR.CONCURRENT_PROGRAM_ID;
69         RP_REPORT_NAME := L_REPORT_NAME;
70       EXCEPTION
71         WHEN NO_DATA_FOUND THEN
72           RP_REPORT_NAME := 'Orders Summary Report';
73       END;
74       DECLARE
75         L_ORDER_TYPE_LOW_V VARCHAR2(50);
76         L_ORDER_TYPE_HIGH_V VARCHAR2(50);
77         L_CUSTOMER_NAME_LOW VARCHAR2(50);
78         L_CUSTOMER_NAME_HIGH VARCHAR2(50);
79         L_SALESREP_LOW VARCHAR2(50);
80         L_SALESREP_HIGH VARCHAR2(50);
81         L_ORDER_NUMBER_LOW VARCHAR2(50);
82         L_ORDER_NUMBER_HIGH VARCHAR2(50);
83         L_PO_NUMBER_LOW VARCHAR2(50);
84         L_PO_NUMBER_HIGH VARCHAR2(50);
85         L_ORDER_DATE_LOW VARCHAR2(50);
86         L_ORDER_DATE_HIGH VARCHAR2(50);
87         L_ORDER_STATUS_LOW VARCHAR2(50);
88         L_ORDER_STATUS_HIGH VARCHAR2(50);
89         L_COUNTRY_LOW VARCHAR2(50);
90         L_COUNTRY_HIGH VARCHAR2(50);
91         L_CREATED_BY_LOW VARCHAR2(50);
92         L_CREATED_BY_HIGH VARCHAR2(50);
93       BEGIN
94         IF (P_ORDER_TYPE_LOW IS NULL) AND (P_ORDER_TYPE_HIGH IS NULL) THEN
95           NULL;
96         ELSE
97           IF P_ORDER_TYPE_LOW IS NULL THEN
98             L_ORDER_TYPE_LOW_V := '   ';
99           ELSE
100             L_ORDER_TYPE_LOW_V := SUBSTR(L_ORDER_TYPE_LOW
101                                       ,1
102                                       ,18);
103           END IF;
104           IF P_ORDER_TYPE_HIGH IS NULL THEN
105             L_ORDER_TYPE_HIGH_V := '   ';
106           ELSE
107             L_ORDER_TYPE_HIGH_V := SUBSTR(L_ORDER_TYPE_HIGH
108                                        ,1
109                                        ,18);
110           END IF;
111           RP_ORDER_TYPE_RANGE := 'From ' || L_ORDER_TYPE_LOW_V || ' To ' || L_ORDER_TYPE_HIGH_V;
112         END IF;
113         IF (P_CUSTOMER_NAME_LOW IS NULL) AND (P_CUSTOMER_NAME_HIGH IS NULL) THEN
114           NULL;
115         ELSE
116           IF P_CUSTOMER_NAME_LOW IS NULL THEN
117             L_CUSTOMER_NAME_LOW := '   ';
118           ELSE
119             L_CUSTOMER_NAME_LOW := P_CUSTOMER_NAME_LOW;
120           END IF;
121           IF P_CUSTOMER_NAME_HIGH IS NULL THEN
122             L_CUSTOMER_NAME_HIGH := '   ';
123           ELSE
124             L_CUSTOMER_NAME_HIGH := P_CUSTOMER_NAME_HIGH;
125           END IF;
126           RP_CUSTOMER_NAME_RANGE := 'From ' || L_CUSTOMER_NAME_LOW || ' To ' || L_CUSTOMER_NAME_HIGH;
127         END IF;
128         IF (P_SALESREP_LOW IS NULL) AND (P_SALESREP_HIGH IS NULL) THEN
129           NULL;
130         ELSE
131           IF P_SALESREP_LOW IS NULL THEN
132             L_SALESREP_LOW := '   ';
133           ELSE
134             L_SALESREP_LOW := SUBSTR(P_SALESREP_LOW
135                                     ,1
136                                     ,18);
137           END IF;
138           IF P_SALESREP_HIGH IS NULL THEN
139             L_SALESREP_HIGH := '   ';
140           ELSE
141             L_SALESREP_HIGH := SUBSTR(P_SALESREP_HIGH
142                                      ,1
143                                      ,18);
144           END IF;
145           RP_SALESREP_RANGE := 'From ' || L_SALESREP_LOW || ' To ' || L_SALESREP_HIGH;
146         END IF;
147         IF (P_ORDER_NUM_LOW IS NULL) AND (P_ORDER_NUM_HIGH IS NULL) THEN
148           NULL;
149         ELSE
150           IF P_ORDER_NUM_LOW IS NULL THEN
151             L_ORDER_NUMBER_LOW := '   ';
152           ELSE
153             L_ORDER_NUMBER_LOW := SUBSTR(P_ORDER_NUM_LOW
154                                         ,1
155                                         ,18);
156           END IF;
157           IF P_ORDER_NUM_HIGH IS NULL THEN
158             L_ORDER_NUMBER_HIGH := '   ';
159           ELSE
160             L_ORDER_NUMBER_HIGH := SUBSTR((P_ORDER_NUM_HIGH)
161                                          ,1
162                                          ,18);
163           END IF;
164           RP_ORDER_NUMBER_RANGE := 'From ' || L_ORDER_NUMBER_LOW || ' To ' || L_ORDER_NUMBER_HIGH;
165         END IF;
166         IF (P_PO_NUM_LOW IS NULL) AND (P_PO_NUM_HIGH IS NULL) THEN
167           NULL;
168         ELSE
169           IF P_PO_NUM_LOW IS NULL THEN
170             L_PO_NUMBER_LOW := '   ';
171           ELSE
172             L_PO_NUMBER_LOW := SUBSTR(P_PO_NUM_LOW
173                                      ,1
174                                      ,18);
175           END IF;
176           IF P_PO_NUM_HIGH IS NULL THEN
177             L_PO_NUMBER_HIGH := '   ';
178           ELSE
179             L_PO_NUMBER_HIGH := SUBSTR((P_PO_NUM_HIGH)
180                                       ,1
181                                       ,18);
182           END IF;
183           RP_PO_NUMBER_RANGE := 'From ' || L_PO_NUMBER_LOW || ' To ' || L_PO_NUMBER_HIGH;
184         END IF;
185         IF (P_ORDER_DATE_LOW IS NULL) AND (P_ORDER_DATE_HIGH IS NULL) THEN
186           NULL;
187         ELSE
188           IF P_ORDER_DATE_LOW IS NULL THEN
189             L_ORDER_DATE_LOW := '   ';
190           ELSE
191             L_ORDER_DATE_LOW := P_ORDER_DATE_LOW;
192           END IF;
193           IF P_ORDER_DATE_HIGH IS NULL THEN
194             L_ORDER_DATE_HIGH := '   ';
195           ELSE
196             L_ORDER_DATE_HIGH := P_ORDER_DATE_HIGH;
197           END IF;
198           --RP_ORDER_DATE_RANGE := 'From ' || L_ORDER_DATE_LOW || ' To ' || L_ORDER_DATE_HIGH;
199           RP_ORDER_DATE_RANGE := 'From ' || substr(L_ORDER_DATE_LOW,1,7) ||substr(L_ORDER_DATE_LOW,10,11)|| ' To ' || substr(L_ORDER_DATE_HIGH,1,7)||substr(L_ORDER_DATE_HIGH,10,11);
200         END IF;
201         IF (P_ORDER_STATUS_LOW IS NULL) AND (P_ORDER_STATUS_HIGH IS NULL) THEN
202           NULL;
203         ELSE
204           IF P_ORDER_STATUS_LOW IS NULL THEN
205             L_ORDER_STATUS_LOW := '   ';
206           ELSE
207             L_ORDER_STATUS_LOW := SUBSTR(P_ORDER_STATUS_LOW
208                                         ,1
209                                         ,18);
210           END IF;
211           IF P_ORDER_STATUS_HIGH IS NULL THEN
212             L_ORDER_STATUS_HIGH := '   ';
213           ELSE
214             L_ORDER_STATUS_HIGH := SUBSTR((P_ORDER_STATUS_HIGH)
215                                          ,1
216                                          ,18);
217           END IF;
218           RP_ORDER_STATUS_RANGE := 'From ' || L_ORDER_STATUS_LOW || ' To ' || L_ORDER_STATUS_HIGH;
219         END IF;
220         IF (P_COUNTRY_LOW IS NULL) AND (P_COUNTRY_HIGH IS NULL) THEN
221           NULL;
222         ELSE
223           IF P_COUNTRY_LOW IS NULL THEN
224             L_COUNTRY_LOW := '   ';
225           ELSE
226             L_COUNTRY_LOW := SUBSTR(P_COUNTRY_LOW
227                                    ,1
228                                    ,18);
229           END IF;
230           IF P_COUNTRY_HIGH IS NULL THEN
231             L_COUNTRY_HIGH := '   ';
232           ELSE
233             L_COUNTRY_HIGH := SUBSTR((P_COUNTRY_HIGH)
234                                     ,1
235                                     ,18);
236           END IF;
237           RP_COUNTRY_RANGE := 'From ' || L_COUNTRY_LOW || ' To ' || L_COUNTRY_HIGH;
238         END IF;
239         IF (P_CREATED_BY_LOW IS NULL) AND (P_CREATED_BY_HIGH IS NULL) THEN
240           NULL;
241         ELSE
242           IF P_CREATED_BY_LOW IS NULL THEN
243             L_CREATED_BY_LOW := '   ';
244           ELSE
245             L_CREATED_BY_LOW := SUBSTR(P_CREATED_BY_LOW
246                                       ,1
247                                       ,18);
248           END IF;
249           IF P_CREATED_BY_HIGH IS NULL THEN
250             L_CREATED_BY_HIGH := '   ';
251           ELSE
252             L_CREATED_BY_HIGH := SUBSTR((P_CREATED_BY_HIGH)
253                                        ,1
254                                        ,18);
255           END IF;
256           RP_CREATED_BY_RANGE := 'From ' || L_CREATED_BY_LOW || ' To ' || L_CREATED_BY_HIGH;
257         END IF;
258       END;
259       DECLARE
260         L_AGREEMENT_NAME VARCHAR2(50);
261       BEGIN
262         IF (P_AGREEMENT IS NOT NULL) THEN
263           BEGIN
264             SELECT
265               NAME
266             INTO L_AGREEMENT_NAME
267             FROM
268               OE_AGREEMENTS
269             WHERE AGREEMENT_ID = P_AGREEMENT;
270             RP_AGREEMENT := L_AGREEMENT_NAME;
271           EXCEPTION
272             WHEN NO_DATA_FOUND THEN
273               RP_AGREEMENT := NULL;
274           END;
275         END IF;
276       END;
277       DECLARE
278         L_MEANING VARCHAR2(80);
279         L_LOOKUP_TYPE VARCHAR2(80);
280       BEGIN
281         L_LOOKUP_TYPE := 'YES_NO';
282         SELECT
283           MEANING
284         INTO L_MEANING
285         FROM
286           FND_LOOKUPS
287         WHERE LOOKUP_TYPE = L_LOOKUP_TYPE
288           AND LOOKUP_CODE = SUBSTR(UPPER(P_OPEN_ORDERS_ONLY)
289               ,1
290               ,1);
291         RP_OPEN_ORDERS_ONLY := L_MEANING;
292       EXCEPTION
293         WHEN NO_DATA_FOUND THEN
294           RP_OPEN_ORDERS_ONLY := 'Yes';
295       END;
296       IF P_ORDER_BY IS NOT NULL THEN
297         DECLARE
298           ORDER_BY VARCHAR2(80);
299           L_LOOKUP_TYPE VARCHAR2(80);
300           L_LOOKUP_CODE VARCHAR2(80);
301         BEGIN
302           L_LOOKUP_TYPE := 'ONT_OEXOEOSR_XMLP_PKG SORT BY';
303           L_LOOKUP_CODE := P_ORDER_BY;
304           SELECT
305             MEANING
306           INTO ORDER_BY
307           FROM
308             OE_LOOKUPS
309           WHERE LOOKUP_TYPE = L_LOOKUP_TYPE
310             AND LOOKUP_CODE = L_LOOKUP_CODE;
311           RP_ORDER_BY := ORDER_BY;
312         EXCEPTION
313           WHEN NO_DATA_FOUND THEN
314             RP_ORDER_BY := P_ORDER_BY;
315         END;
316       END IF;
317     END;
318     RETURN (TRUE);
319   END BEFOREREPORT;
320 
321   FUNCTION AFTERREPORT RETURN BOOLEAN IS
322   BEGIN
323     BEGIN
324       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
325     EXCEPTION
326       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
327         /*SRW.MESSAGE(1
328                    ,'Failed in AFTER REPORT TRIGGER')*/NULL;
329         RETURN (FALSE);
330     END;
331     RETURN (TRUE);
332   END AFTERREPORT;
333 
334   FUNCTION AFTERPFORM RETURN BOOLEAN IS
335   BEGIN
336     /*SRW.MESSAGE(99999
337                ,'$Header: ONT_OEXOEOSR_XMLP_PKG.rdf 120.7 2006/04/28 02:43 ddey ship
338 	       $')*/NULL;
339     /*SRW.MESSAGE(99999
340                ,'Oracle - Test Report')*/NULL;
341     BEGIN
342       IF (P_ORDER_TYPE_LOW IS NOT NULL) AND (P_ORDER_TYPE_HIGH IS NOT NULL) THEN
343         IF (P_ORDER_TYPE_LOW = P_ORDER_TYPE_HIGH) THEN
344           LP_ORDER_TYPE := ' and ot.transaction_type_id = :p_order_type_low ';
345           SELECT
346             OEOT.NAME
347           INTO L_ORDER_TYPE_LOW
348           FROM
349             OE_TRANSACTION_TYPES_TL OEOT
350           WHERE OEOT.TRANSACTION_TYPE_ID = P_ORDER_TYPE_LOW
351             AND OEOT.LANGUAGE = USERENV('LANG');
352         ELSE
353           LP_ORDER_TYPE := 'and ( ot.transaction_type_id between :p_order_type_low and :p_order_type_high ) ';
354           SELECT
355             OEOT.NAME
356           INTO L_ORDER_TYPE_LOW
357           FROM
358             OE_TRANSACTION_TYPES_TL OEOT
359           WHERE OEOT.TRANSACTION_TYPE_ID = P_ORDER_TYPE_LOW
360             AND OEOT.LANGUAGE = USERENV('LANG');
361           SELECT
362             OEOT.NAME
363           INTO L_ORDER_TYPE_HIGH
364           FROM
365             OE_TRANSACTION_TYPES_TL OEOT
366           WHERE OEOT.TRANSACTION_TYPE_ID = P_ORDER_TYPE_HIGH
367             AND OEOT.LANGUAGE = USERENV('LANG');
368         END IF;
369       ELSIF (P_ORDER_TYPE_LOW IS NOT NULL) THEN
370         LP_ORDER_TYPE := 'and ot.transaction_type_id >= :p_order_type_low ';
371         SELECT
372           OEOT.NAME
373         INTO L_ORDER_TYPE_LOW
374         FROM
375           OE_TRANSACTION_TYPES_TL OEOT
376         WHERE OEOT.TRANSACTION_TYPE_ID = P_ORDER_TYPE_LOW
377           AND OEOT.LANGUAGE = USERENV('LANG');
378       ELSIF (P_ORDER_TYPE_HIGH IS NOT NULL) THEN
379         LP_ORDER_TYPE := 'and ot.transaction_type_id <= :p_order_type_high ';
380         SELECT
381           OEOT.NAME
382         INTO L_ORDER_TYPE_HIGH
383         FROM
384           OE_TRANSACTION_TYPES_TL OEOT
385         WHERE OEOT.TRANSACTION_TYPE_ID = P_ORDER_TYPE_HIGH
386           AND OEOT.LANGUAGE = USERENV('LANG');
387       END IF;
388       IF (P_CUSTOMER_NAME_LOW IS NOT NULL) AND (P_CUSTOMER_NAME_HIGH IS NOT NULL) THEN
389         IF (P_CUSTOMER_NAME_LOW = P_CUSTOMER_NAME_HIGH) THEN
390           LP_CUSTOMER_NAME := ' and party.party_name = :p_customer_name_low ';
391         ELSE
392           LP_CUSTOMER_NAME := 'and ( party.party_name between :p_customer_name_low and :p_customer_name_high ) ';
393         END IF;
394       ELSIF (P_CUSTOMER_NAME_LOW IS NOT NULL) THEN
395         LP_CUSTOMER_NAME := 'and party.party_name >= :p_customer_name_low ';
396       ELSIF (P_CUSTOMER_NAME_HIGH IS NOT NULL) THEN
397         LP_CUSTOMER_NAME := 'and party.party_name <= :p_customer_name_high ';
398       END IF;
399       IF (P_ORDER_NUM_LOW IS NOT NULL) AND (P_ORDER_NUM_HIGH IS NOT NULL) THEN
400         IF (P_ORDER_NUM_LOW = P_ORDER_NUM_HIGH) THEN
401           LP_ORDER_NUM := 'and h.order_number = :p_order_num_low ';
402         ELSE
403           LP_ORDER_NUM := 'and ( h.order_number between to_number(:p_order_num_low) and to_number(:p_order_num_high) ) ';
404         END IF;
405       ELSIF (P_ORDER_NUM_LOW IS NOT NULL) THEN
406         LP_ORDER_NUM := 'and h.order_number >= to_number(:p_order_num_low) ';
407       ELSIF (P_ORDER_NUM_HIGH IS NOT NULL) THEN
408         LP_ORDER_NUM := 'and h.order_number <= to_number(:p_order_num_high) ';
409       END IF;
410       IF (P_SALESREP_LOW IS NOT NULL) AND (P_SALESREP_HIGH IS NOT NULL) THEN
411         IF (P_SALESREP_LOW = P_SALESREP_HIGH) THEN
412           LP_SALESREP := ' and sr.name = :p_salesrep_low ';
413         ELSE
414           LP_SALESREP := 'and  sr.name between :p_salesrep_low and :p_salesrep_high ';
415         END IF;
416       ELSIF (P_SALESREP_LOW IS NOT NULL) THEN
417         LP_SALESREP := 'and sr.name >= :p_salesrep_low ';
418       ELSIF (P_SALESREP_HIGH IS NOT NULL) THEN
419         LP_SALESREP := 'and sr.name <= :p_salesrep_high ';
420       END IF;
421       IF (P_COUNTRY_LOW IS NOT NULL) AND (P_COUNTRY_HIGH IS NOT NULL) THEN
422         LP_COUNTRY := 'and ( terr.territory_short_name between :p_country_low and :p_country_high ) ';
423       ELSIF (P_COUNTRY_LOW IS NOT NULL) THEN
424         LP_COUNTRY := 'and terr.territory_short_name >= :p_country_low ';
425       ELSIF (P_COUNTRY_HIGH IS NOT NULL) THEN
426         LP_COUNTRY := 'and terr.territory_short_name <= :p_country_high ';
427       END IF;
428       IF (P_PO_NUM_LOW IS NOT NULL) AND (P_PO_NUM_HIGH IS NOT NULL) THEN
429         IF (P_PO_NUM_LOW = P_PO_NUM_HIGH) THEN
430           LP_PO_NUM := ' and h.cust_po_number = :p_po_num_low ';
431         ELSE
432           LP_PO_NUM := 'and ( h.cust_po_number between :p_po_num_low and :p_po_num_high ) ';
433         END IF;
434       ELSIF (P_PO_NUM_LOW IS NOT NULL) THEN
435         LP_PO_NUM := 'and h.cust_po_number >= :p_po_num_low ';
436       ELSIF (P_PO_NUM_HIGH IS NOT NULL) THEN
437         LP_PO_NUM := 'and h.cust_po_number <= :p_po_num_high ';
438       END IF;
439       IF P_ORDER_DATE_LOW IS NOT NULL AND P_ORDER_DATE_HIGH IS NOT NULL THEN
440         LP_ORDER_DATE := ' AND  h.ordered_date  >=  :p_order_date_low and  h.ordered_date  < :p_order_date_high+1';
441       ELSIF (P_ORDER_DATE_LOW IS NOT NULL) THEN
442         LP_ORDER_DATE := 'and h.ordered_date >= :p_order_date_low';
443       ELSIF (P_ORDER_DATE_HIGH IS NOT NULL) THEN
444         LP_ORDER_DATE := 'and h.ordered_date <= :p_order_date_high+1';
445       END IF;
446       IF P_CREATED_BY_LOW IS NOT NULL AND P_CREATED_BY_HIGH IS NOT NULL THEN
447         LP_CREATED_BY := ' AND  u.user_name  between :p_created_by_low and  :p_created_by_high';
448       ELSIF (P_CREATED_BY_LOW IS NOT NULL) THEN
449         LP_CREATED_BY := 'and u.user_name >= :p_created_by_low';
450       ELSIF (P_CREATED_BY_HIGH IS NOT NULL) THEN
451         LP_CREATED_BY := 'and u.user_name <= :p_created_by_high';
452       END IF;
453       IF (P_AGREEMENT IS NOT NULL) THEN
454         LP_AGREEMENT := 'and  agree.agreement_id = :p_agreement';
455       END IF;
456       IF (P_ORDER_SOURCE IS NOT NULL) THEN
457         LP_ORDER_SOURCE := 'and  h.order_source_id = :p_order_source ';
458       END IF;
459       IF P_OPEN_ORDERS_ONLY = 'Y' THEN
460         LP_OPEN_ORDERS_ONLY := 'and nvl(h.open_flag,''N'') = ''Y'' ';
461       END IF;
462     END;
463     RETURN (TRUE);
464   END AFTERPFORM;
465 
466   FUNCTION C_DATA_NOT_FOUNDFORMULA(CURRENCY1 IN VARCHAR2) RETURN NUMBER IS
467   BEGIN
468     RP_DATA_FOUND := CURRENCY1;
469     RETURN (0);
470   END C_DATA_NOT_FOUNDFORMULA;
471 
472   FUNCTION RP_CURR_LABELFORMULA RETURN VARCHAR2 IS
473   BEGIN
474     IF SUBSTR(UPPER(P_ORDER_BY)
475           ,1
476           ,1) = 'O' THEN
477       RETURN ('  Currency');
478     ELSIF SUBSTR(UPPER(P_ORDER_BY)
479           ,1
480           ,1) = 'S' THEN
481       RETURN ('    Currency');
482     ELSE
483       RETURN ('Currency');
484     END IF;
485     RETURN NULL;
486   END RP_CURR_LABELFORMULA;
487 
488   FUNCTION C_ORDER_COUNTFORMULA RETURN NUMBER IS
489   BEGIN
490     RETURN (1);
491   END C_ORDER_COUNTFORMULA;
492 
493   FUNCTION C_LINE_COUNTFORMULA(HEADER_ID1 IN NUMBER) RETURN NUMBER IS
494   BEGIN
495     DECLARE
496       L_COUNT NUMBER(20);
497     BEGIN
498       /*SRW.REFERENCE(HEADER_ID1)*/NULL;
499       L_COUNT := 0;
500       SELECT
501         COUNT(1)
502       INTO L_COUNT
503       FROM
504         OE_ORDER_LINES_ALL L
505       WHERE L.HEADER_ID = HEADER_ID1;
506       RETURN (L_COUNT);
507     END;
508     RETURN NULL;
509   END C_LINE_COUNTFORMULA;
510 
511   FUNCTION RP_USE_FUNCTIONAL_CURRENCYFORM RETURN VARCHAR2 IS
512   BEGIN
513     DECLARE
514       L_TEMP VARCHAR2(100);
515       L_LOOKUP_TYPE VARCHAR2(80);
516       L_LOOKUP_CODE VARCHAR2(80);
517     BEGIN
518       L_LOOKUP_TYPE := 'YES_NO';
519       L_LOOKUP_CODE := P_USE_FUNCTIONAL_CURRENCY;
520       SELECT
521         MEANING
522       INTO L_TEMP
523       FROM
524         FND_LOOKUPS
525       WHERE LOOKUP_CODE = L_LOOKUP_CODE
526         AND LOOKUP_TYPE = L_LOOKUP_TYPE;
527       RETURN (L_TEMP);
528     EXCEPTION
529       WHEN NO_DATA_FOUND THEN
530         RETURN ('No');
531     END;
532     RETURN NULL;
533   END RP_USE_FUNCTIONAL_CURRENCYFORM;
534 
535   FUNCTION C_ORDER_AMOUNTFORMULA(CURRENCY1 IN VARCHAR2
536                                 ,ORDER_AMOUNT IN NUMBER
537                                 ,CONVERSION_TYPE_CODE IN VARCHAR2
538                                 ,ORDER_DATE IN DATE
539                                 ,CONVERSION_RATE IN NUMBER) RETURN NUMBER IS
540   BEGIN
541     DECLARE
542       L_CONVERSION_RATE NUMBER;
543     BEGIN
544       /*SRW.REFERENCE(CURRENCY1)*/NULL;
545       /*SRW.REFERENCE(RP_FUNCTIONAL_CURRENCY)*/NULL;
546       /*SRW.REFERENCE(ORDER_AMOUNT)*/NULL;
547       /*SRW.REFERENCE(CONVERSION_TYPE_CODE)*/NULL;
548       /*SRW.REFERENCE(ORDER_DATE)*/NULL;
549       L_CONVERSION_RATE := 0;
550       IF P_USE_FUNCTIONAL_CURRENCY = 'N' THEN
551         RETURN (ROUND(NVL(ORDER_AMOUNT
552                         ,0)
553                     ,2));
554       ELSIF P_USE_FUNCTIONAL_CURRENCY = 'Y' THEN
555         IF CURRENCY1 = RP_FUNCTIONAL_CURRENCY THEN
556           L_CONVERSION_RATE := 1;
557         ELSE
558           IF CONVERSION_RATE IS NULL THEN
559             L_CONVERSION_RATE := GET_RATE(P_SOB_ID
560                                          ,CURRENCY1
561                                          ,ORDER_DATE
562                                          ,CONVERSION_TYPE_CODE);
563           ELSE
564             L_CONVERSION_RATE := CONVERSION_RATE;
565           END IF;
566         END IF;
567         RETURN (NVL(L_CONVERSION_RATE
568                   ,0) * ROUND(NVL(ORDER_AMOUNT
569                         ,0)
570                     ,2));
571       END IF;
572     EXCEPTION
573       WHEN NO_DATA_FOUND THEN
574         RETURN (0);
575       WHEN OTHERS THEN
576         RETURN (0);
577     END;
578     RETURN NULL;
579   END C_ORDER_AMOUNTFORMULA;
580 
581   FUNCTION C_LIST_AMOUNTFORMULA(CURRENCY1 IN VARCHAR2
582                                ,LIST_VALUE IN NUMBER
583                                ,CONVERSION_TYPE_CODE IN VARCHAR2
584                                ,ORDER_DATE IN DATE
585                                ,CONVERSION_RATE IN NUMBER) RETURN NUMBER IS
586   BEGIN
587     DECLARE
588       L_CONVERSION_RATE NUMBER;
589     BEGIN
590       /*SRW.REFERENCE(CURRENCY1)*/NULL;
591       /*SRW.REFERENCE(RP_FUNCTIONAL_CURRENCY)*/NULL;
592       /*SRW.REFERENCE(LIST_VALUE)*/NULL;
593       /*SRW.REFERENCE(CONVERSION_TYPE_CODE)*/NULL;
594       /*SRW.REFERENCE(ORDER_DATE)*/NULL;
595       L_CONVERSION_RATE := 0;
596       IF P_USE_FUNCTIONAL_CURRENCY = 'N' THEN
597         RETURN (ROUND(NVL(LIST_VALUE
598                         ,0)
599                     ,2));
600       ELSIF P_USE_FUNCTIONAL_CURRENCY = 'Y' THEN
601         IF CURRENCY1 = RP_FUNCTIONAL_CURRENCY THEN
602           L_CONVERSION_RATE := 1;
603         ELSE
604           IF CONVERSION_RATE IS NULL THEN
605             L_CONVERSION_RATE := GET_RATE(P_SOB_ID
606                                          ,CURRENCY1
607                                          ,ORDER_DATE
608                                          ,CONVERSION_TYPE_CODE);
609           ELSE
610             L_CONVERSION_RATE := CONVERSION_RATE;
611           END IF;
612         END IF;
613         RETURN (NVL(L_CONVERSION_RATE
614                   ,0) * ROUND(NVL(LIST_VALUE
615                         ,0)
616                     ,2));
617       END IF;
618     EXCEPTION
619       WHEN NO_DATA_FOUND THEN
620         RETURN (0);
621       WHEN OTHERS THEN
622         RETURN (0);
623     END;
624   END C_LIST_AMOUNTFORMULA;
625 
626   FUNCTION C_SHIPPED_AMOUNTFORMULA(CURRENCY1 IN VARCHAR2
627                                   ,SHIP_VALUE IN NUMBER
628                                   ,CONVERSION_TYPE_CODE IN VARCHAR2
629                                   ,ORDER_DATE IN DATE
630                                   ,CONVERSION_RATE IN NUMBER) RETURN NUMBER IS
631   BEGIN
632     DECLARE
633       L_CONVERSION_RATE NUMBER;
634     BEGIN
635       /*SRW.REFERENCE(CURRENCY1)*/NULL;
636       /*SRW.REFERENCE(RP_FUNCTIONAL_CURRENCY)*/NULL;
637       /*SRW.REFERENCE(SHIP_VALUE)*/NULL;
638       /*SRW.REFERENCE(CONVERSION_TYPE_CODE)*/NULL;
639       /*SRW.REFERENCE(ORDER_DATE)*/NULL;
640       L_CONVERSION_RATE := 0;
641       IF P_USE_FUNCTIONAL_CURRENCY = 'N' THEN
642         RETURN (ROUND(NVL(SHIP_VALUE
643                         ,0)
644                     ,2));
645       ELSIF P_USE_FUNCTIONAL_CURRENCY = 'Y' THEN
646         IF CURRENCY1 = RP_FUNCTIONAL_CURRENCY THEN
647           L_CONVERSION_RATE := 1;
648         ELSE
649           IF CONVERSION_RATE IS NULL THEN
650             L_CONVERSION_RATE := GET_RATE(P_SOB_ID
651                                          ,CURRENCY1
652                                          ,ORDER_DATE
653                                          ,CONVERSION_TYPE_CODE);
654           ELSE
655             L_CONVERSION_RATE := CONVERSION_RATE;
656           END IF;
657         END IF;
658         RETURN (NVL(L_CONVERSION_RATE
659                   ,0) * ROUND(NVL(SHIP_VALUE
660                         ,0)
661                     ,2));
662       END IF;
663     EXCEPTION
664       WHEN NO_DATA_FOUND THEN
665         RETURN (0);
666       WHEN OTHERS THEN
667         RETURN (0);
668     END;
669   END C_SHIPPED_AMOUNTFORMULA;
670 
671   FUNCTION CF_1FORMULA(CHARGE_PERIODICITY_CODE IN VARCHAR2) RETURN CHAR IS
672     L_UOM_CLASS VARCHAR2(50) := FND_PROFILE.VALUE('ONT_UOM_CLASS_CHARGE_PERIODICITY');
673     L_CHARGE_PERIODICITY VARCHAR2(25);
674   BEGIN
675     IF CHARGE_PERIODICITY_CODE IS NOT NULL THEN
676       SELECT
677         UNIT_OF_MEASURE
678       INTO L_CHARGE_PERIODICITY
679       FROM
680         MTL_UNITS_OF_MEASURE_VL
681       WHERE UOM_CLASS = L_UOM_CLASS
682         AND UOM_CODE = CHARGE_PERIODICITY_CODE;
683       RETURN L_CHARGE_PERIODICITY;
684     ELSE
685       RETURN (P_ONE_TIME);
686     END IF;
687   EXCEPTION
688     WHEN NO_DATA_FOUND THEN
689       RETURN NULL;
690   END CF_1FORMULA;
691 
692   FUNCTION C_CURRENCYFORMULA(CURRENCY1 IN VARCHAR2) RETURN CHAR IS
693   BEGIN
694     IF P_USE_FUNCTIONAL_CURRENCY = 'N' THEN
695       RETURN (CURRENCY1);
696     ELSE
697       RETURN (RP_FUNCTIONAL_CURRENCY);
698     END IF;
699   END C_CURRENCYFORMULA;
700 
701   FUNCTION RP_REPORT_NAME_P RETURN VARCHAR2 IS
702   BEGIN
703     RETURN RP_REPORT_NAME;
704   END RP_REPORT_NAME_P;
705 
706   FUNCTION RP_SUB_TITLE_P RETURN VARCHAR2 IS
707   BEGIN
708     RETURN RP_SUB_TITLE;
709   END RP_SUB_TITLE_P;
710 
711   FUNCTION RP_COMPANY_NAME_P RETURN VARCHAR2 IS
712   BEGIN
713     RETURN RP_COMPANY_NAME;
714   END RP_COMPANY_NAME_P;
715 
716   FUNCTION RP_FUNCTIONAL_CURRENCY_P RETURN VARCHAR2 IS
717   BEGIN
718     RETURN RP_FUNCTIONAL_CURRENCY;
719   END RP_FUNCTIONAL_CURRENCY_P;
720 
721   FUNCTION RP_DATA_FOUND_P RETURN VARCHAR2 IS
722   BEGIN
723     RETURN RP_DATA_FOUND;
724   END RP_DATA_FOUND_P;
725 
726   FUNCTION RP_ORDER_NUMBER_RANGE_P RETURN VARCHAR2 IS
727   BEGIN
728     RETURN RP_ORDER_NUMBER_RANGE;
729   END RP_ORDER_NUMBER_RANGE_P;
730 
731   FUNCTION RP_SALESREP_RANGE_P RETURN VARCHAR2 IS
732   BEGIN
733     RETURN RP_SALESREP_RANGE;
734   END RP_SALESREP_RANGE_P;
735 
736   FUNCTION RP_CUSTOMER_NAME_RANGE_P RETURN VARCHAR2 IS
737   BEGIN
738     RETURN RP_CUSTOMER_NAME_RANGE;
739   END RP_CUSTOMER_NAME_RANGE_P;
740 
741   FUNCTION RP_ORDER_TYPE_RANGE_P RETURN VARCHAR2 IS
742   BEGIN
743     RETURN RP_ORDER_TYPE_RANGE;
744   END RP_ORDER_TYPE_RANGE_P;
745 
746   FUNCTION RP_OPEN_ORDERS_ONLY_P RETURN VARCHAR2 IS
747   BEGIN
748     RETURN RP_OPEN_ORDERS_ONLY;
749   END RP_OPEN_ORDERS_ONLY_P;
750 
751   FUNCTION RP_PO_NUMBER_RANGE_P RETURN VARCHAR2 IS
752   BEGIN
753     RETURN RP_PO_NUMBER_RANGE;
754   END RP_PO_NUMBER_RANGE_P;
755 
756   FUNCTION RP_ORDER_DATE_RANGE_P RETURN VARCHAR2 IS
757   BEGIN
758     RETURN RP_ORDER_DATE_RANGE;
759   END RP_ORDER_DATE_RANGE_P;
760 
761   FUNCTION RP_ORDER_STATUS_RANGE_P RETURN VARCHAR2 IS
762   BEGIN
763     RETURN RP_ORDER_STATUS_RANGE;
764   END RP_ORDER_STATUS_RANGE_P;
765 
766   FUNCTION RP_COUNTRY_RANGE_P RETURN VARCHAR2 IS
767   BEGIN
768     RETURN RP_COUNTRY_RANGE;
769   END RP_COUNTRY_RANGE_P;
770 
771   FUNCTION RP_CREATED_BY_RANGE_P RETURN VARCHAR2 IS
772   BEGIN
773     RETURN RP_CREATED_BY_RANGE;
774   END RP_CREATED_BY_RANGE_P;
775 
776   FUNCTION RP_ORDER_BY_P RETURN VARCHAR2 IS
777   BEGIN
778     RETURN RP_ORDER_BY;
779   END RP_ORDER_BY_P;
780 
781   FUNCTION RP_AGREEMENT_P RETURN VARCHAR2 IS
782   BEGIN
783     RETURN RP_AGREEMENT;
784   END RP_AGREEMENT_P;
785 
786   FUNCTION IS_FIXED_RATE(X_FROM_CURRENCY IN VARCHAR2
787                         ,X_TO_CURRENCY IN VARCHAR2
788                         ,X_EFFECTIVE_DATE IN DATE) RETURN VARCHAR2 IS
789     X0 VARCHAR2(2000);
790   BEGIN
791   begin X0 := GL_CURRENCY_API.IS_FIXED_RATE(X_FROM_CURRENCY, X_TO_CURRENCY, X_EFFECTIVE_DATE);
792   end;
793     /*STPROC.INIT('begin :X0 := GL_CURRENCY_API.IS_FIXED_RATE(:X_FROM_CURRENCY, :X_TO_CURRENCY, :X_EFFECTIVE_DATE); end;');
794     STPROC.BIND_O(X0);
795     STPROC.BIND_I(X_FROM_CURRENCY);
796     STPROC.BIND_I(X_TO_CURRENCY);
797     STPROC.BIND_I(X_EFFECTIVE_DATE);
798     STPROC.EXECUTE;
799     STPROC.RETRIEVE(1
800                    ,X0);*/
801     RETURN X0;
802   END IS_FIXED_RATE;
803 
804   PROCEDURE GET_RELATION(X_FROM_CURRENCY IN VARCHAR2
805                         ,X_TO_CURRENCY IN VARCHAR2
806                         ,X_EFFECTIVE_DATE IN DATE
807                         ,X_FIXED_RATE IN OUT NOCOPY BOOLEAN
808                         ,X_RELATIONSHIP IN OUT NOCOPY VARCHAR2) IS
809   BEGIN
810 
811     /*
812 
813     STPROC.BIND_IO(X_FIXED_RATE);
814     STPROC.BIND_I(X_FROM_CURRENCY);
815     STPROC.BIND_I(X_TO_CURRENCY);
816     STPROC.BIND_I(X_EFFECTIVE_DATE);
817     STPROC.BIND_IO(X_RELATIONSHIP);
818     STPROC.EXECUTE;
819     STPROC.RETRIEVE(1
820                    ,X_FIXED_RATE);
821     STPROC.RETRIEVE(5
822                    ,X_RELATIONSHIP);*/null;
823   END GET_RELATION;
824 
825   FUNCTION GET_EURO_CODE RETURN VARCHAR2 IS
826     X0 VARCHAR2(2000);
827   BEGIN
828   begin
829   X0 := GL_CURRENCY_API.GET_EURO_CODE;
830   end;
831     /*STPROC.INIT('begin :X0 := GL_CURRENCY_API.GET_EURO_CODE; end;');
832     STPROC.BIND_O(X0);
833     STPROC.EXECUTE;
834     STPROC.RETRIEVE(1
835                    ,X0);*/
836     RETURN X0;
837   END GET_EURO_CODE;
838 
839   FUNCTION GET_RATE(X_FROM_CURRENCY IN VARCHAR2
840                    ,X_TO_CURRENCY IN VARCHAR2
841                    ,X_CONVERSION_DATE IN DATE
842                    ,X_CONVERSION_TYPE IN VARCHAR2) RETURN NUMBER IS
843     X0 NUMBER;
844   BEGIN
845    /* STPROC.INIT('begin :X0 := GL_CURRENCY_API.GET_RATE(:X_FROM_CURRENCY, :X_TO_CURRENCY, :X_CONVERSION_DATE, :X_CONVERSION_TYPE); end;');
846     STPROC.BIND_O(X0);
847     STPROC.BIND_I(X_FROM_CURRENCY);
848     STPROC.BIND_I(X_TO_CURRENCY);
849     STPROC.BIND_I(X_CONVERSION_DATE);
850     STPROC.BIND_I(X_CONVERSION_TYPE);
851     STPROC.EXECUTE;
852     STPROC.RETRIEVE(1
853                    ,X0);*/null;
854     RETURN X0;
855   END GET_RATE;
856 
857   FUNCTION GET_RATE(X_SET_OF_BOOKS_ID IN NUMBER
858                    ,X_FROM_CURRENCY IN VARCHAR2
859                    ,X_CONVERSION_DATE IN DATE
860                    ,X_CONVERSION_TYPE IN VARCHAR2) RETURN NUMBER IS
861     X0 NUMBER;
862   BEGIN
863     /*STPROC.INIT('begin :X0 := GL_CURRENCY_API.GET_RATE(:X_SET_OF_BOOKS_ID, :X_FROM_CURRENCY, :X_CONVERSION_DATE, :X_CONVERSION_TYPE); end;');
864     STPROC.BIND_O(X0);
865     STPROC.BIND_I(X_SET_OF_BOOKS_ID);
866     STPROC.BIND_I(X_FROM_CURRENCY);
867     STPROC.BIND_I(X_CONVERSION_DATE);
868     STPROC.BIND_I(X_CONVERSION_TYPE);
869     STPROC.EXECUTE;
870     STPROC.RETRIEVE(1
871                    ,X0);*/null;
872     RETURN X0;
873   END GET_RATE;
874 
875   FUNCTION CONVERT_AMOUNT(X_FROM_CURRENCY IN VARCHAR2
876                          ,X_TO_CURRENCY IN VARCHAR2
877                          ,X_CONVERSION_DATE IN DATE
878                          ,X_CONVERSION_TYPE IN VARCHAR2
879                          ,X_AMOUNT IN NUMBER) RETURN NUMBER IS
880     X0 NUMBER;
881   BEGIN
882     /*STPROC.INIT('begin :X0 := GL_CURRENCY_API.CONVERT_AMOUNT(:X_FROM_CURRENCY, :X_TO_CURRENCY, :X_CONVERSION_DATE, :X_CONVERSION_TYPE, :X_AMOUNT); end;');
883     STPROC.BIND_O(X0);
884     STPROC.BIND_I(X_FROM_CURRENCY);
885     STPROC.BIND_I(X_TO_CURRENCY);
886     STPROC.BIND_I(X_CONVERSION_DATE);
887     STPROC.BIND_I(X_CONVERSION_TYPE);
888     STPROC.BIND_I(X_AMOUNT);
889     STPROC.EXECUTE;
890     STPROC.RETRIEVE(1
891                    ,X0);*/ null;
892     RETURN X0;
893   END CONVERT_AMOUNT;
894 
895   FUNCTION CONVERT_AMOUNT(X_SET_OF_BOOKS_ID IN NUMBER
896                          ,X_FROM_CURRENCY IN VARCHAR2
897                          ,X_CONVERSION_DATE IN DATE
898                          ,X_CONVERSION_TYPE IN VARCHAR2
899                          ,X_AMOUNT IN NUMBER) RETURN NUMBER IS
900     X0 NUMBER;
901   BEGIN
902     /*STPROC.INIT('begin :X0 := GL_CURRENCY_API.CONVERT_AMOUNT(:X_SET_OF_BOOKS_ID, :X_FROM_CURRENCY, :X_CONVERSION_DATE, :X_CONVERSION_TYPE, :X_AMOUNT); end;');
903     STPROC.BIND_O(X0);
904     STPROC.BIND_I(X_SET_OF_BOOKS_ID);
905     STPROC.BIND_I(X_FROM_CURRENCY);
906     STPROC.BIND_I(X_CONVERSION_DATE);
907     STPROC.BIND_I(X_CONVERSION_TYPE);
908     STPROC.BIND_I(X_AMOUNT);
909     STPROC.EXECUTE;
910     STPROC.RETRIEVE(1
911                    ,X0);*/ null;
912     RETURN X0;
913   END CONVERT_AMOUNT;
914 
915   FUNCTION GET_DERIVE_TYPE(SOB_ID IN NUMBER
916                           ,PERIOD IN VARCHAR2
917                           ,CURR_CODE IN VARCHAR2) RETURN VARCHAR2 IS
918     X0 VARCHAR2(2000);
919   BEGIN
920     /*STPROC.INIT('begin :X0 := GL_CURRENCY_API.GET_DERIVE_TYPE(:SOB_ID, :PERIOD, :CURR_CODE); end;');
921     STPROC.BIND_O(X0);
922     STPROC.BIND_I(SOB_ID);
923     STPROC.BIND_I(PERIOD);
924     STPROC.BIND_I(CURR_CODE);
925     STPROC.EXECUTE;
926     STPROC.RETRIEVE(1
927                    ,X0);*/null;
928     RETURN X0;
929   END GET_DERIVE_TYPE;
930 
931 END ONT_OEXOEOSR_XMLP_PKG;
932 
933