DBA Data[Home] [Help]

PACKAGE BODY: APPS.ONT_OEXPRPRS_XMLP_PKG

Source


1 PACKAGE BODY ONT_OEXPRPRS_XMLP_PKG AS
2 /* $Header: OEXPRPRSB.pls 120.2 2008/01/04 07:26:26 nchinnam noship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4   BEGIN
5     BEGIN
6       BEGIN
7  F1:=Oe_Sys_Parameters.Value('RECURRING_CHARGES',mo_global.get_current_org_id());
8         P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
9         /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
10         /*SRW.MESSAGE(5000
11                    ,'Changed Report is running')*/NULL;
12       EXCEPTION
13         WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
14           /*SRW.MESSAGE(1000
15                      ,'Failed in BEFORE REPORT trigger')*/NULL;
16           RETURN (FALSE);
17       END;
18       BEGIN
19         P_ORGANIZATION_ID := MO_GLOBAL.GET_CURRENT_ORG_ID;
20       END;
21       DECLARE
22         L_COMPANY_NAME VARCHAR2(100);
23         L_FUNCTIONAL_CURRENCY VARCHAR2(15);
24       BEGIN
25         SELECT
26           SOB.NAME,
27           SOB.CURRENCY_CODE
28         INTO L_COMPANY_NAME,L_FUNCTIONAL_CURRENCY
29         FROM
30           GL_SETS_OF_BOOKS SOB,
31           FND_CURRENCIES CUR
32         WHERE SOB.SET_OF_BOOKS_ID = P_SOB_ID
33           AND SOB.CURRENCY_CODE = CUR.CURRENCY_CODE;
34         RP_COMPANY_NAME := L_COMPANY_NAME;
35         RP_FUNCTIONAL_CURRENCY := L_FUNCTIONAL_CURRENCY;
36       EXCEPTION
37         WHEN NO_DATA_FOUND THEN
38           NULL;
39       END;
40       DECLARE
41         L_REPORT_NAME VARCHAR2(240);
42       BEGIN
43         SELECT
44           CP.USER_CONCURRENT_PROGRAM_NAME
45         INTO L_REPORT_NAME
46         FROM
47           FND_CONCURRENT_PROGRAMS_VL CP,
48           FND_CONCURRENT_REQUESTS CR
49         WHERE CR.REQUEST_ID = P_CONC_REQUEST_ID
50           AND CP.APPLICATION_ID = CR.PROGRAM_APPLICATION_ID
51           AND CP.CONCURRENT_PROGRAM_ID = CR.CONCURRENT_PROGRAM_ID;
52 	  L_REPORT_NAME := substr(L_REPORT_NAME,1,instr(L_REPORT_NAME,' (XML)'));
53         RP_REPORT_NAME := L_REPORT_NAME;
54       EXCEPTION
55         WHEN NO_DATA_FOUND THEN
56           RP_REPORT_NAME := 'Pricing Report - Summary ';
57       END;
58       DECLARE
59         L_ORDER_DATE_LOW VARCHAR2(50);
60         L_ORDER_DATE_HIGH VARCHAR2(50);
61         L_ORDER_AMOUNT_LOW VARCHAR2(50);
62         L_ORDER_AMOUNT_HIGH VARCHAR2(50);
63         L_ORDER_LIST_LOW VARCHAR2(50);
64         L_ORDER_LIST_HIGH VARCHAR2(50);
65         L_ORDER_NUMBER_LOW VARCHAR2(50);
66         L_ORDER_NUMBER_HIGH VARCHAR2(50);
67         L_ORDER_TYPE_LOW VARCHAR2(50);
68         L_ORDER_TYPE_HIGH VARCHAR2(50);
69         L_SALESREP_LOW VARCHAR2(50);
70         L_SALESREP_HIGH VARCHAR2(50);
71         L_CUSTOMER_NUMBER_LOW VARCHAR2(50);
72         L_CUSTOMER_NUMBER_HIGH VARCHAR2(50);
73         L_CUSTOMER_NAME_LOW VARCHAR2(50);
74         L_CUSTOMER_NAME_HIGH VARCHAR2(50);
75       BEGIN
76         IF (P_ORDER_DATE_LOW IS NULL) AND (P_ORDER_DATE_HIGH IS NULL) THEN
77           NULL;
78         ELSE
79           IF P_ORDER_DATE_LOW IS NULL THEN
80             L_ORDER_DATE_LOW := '   ';
81           ELSE
82             L_ORDER_DATE_LOW := TO_CHAR(P_ORDER_DATE_LOW
83                                        ,'DD-MON-YYYY');
84           END IF;
85           IF P_ORDER_DATE_HIGH IS NULL THEN
86             L_ORDER_DATE_HIGH := '   ';
87           ELSE
88             L_ORDER_DATE_HIGH := TO_CHAR(P_ORDER_DATE_HIGH
89                                         ,'DD-MON-YYYY');
90           END IF;
91           RP_ORDER_DATE_RANGE := 'From ' || L_ORDER_DATE_LOW || ' To ' || L_ORDER_DATE_HIGH;
92         END IF;
93         IF (P_ORDER_AMOUNT_LOW IS NULL) AND (P_ORDER_AMOUNT_HIGH IS NULL) THEN
94           NULL;
95         ELSE
96           IF P_ORDER_AMOUNT_LOW IS NULL THEN
97             L_ORDER_AMOUNT_LOW := '   ';
98           ELSE
99             L_ORDER_AMOUNT_LOW := SUBSTR(TO_CHAR(P_ORDER_AMOUNT_LOW)
100                                         ,1
101                                         ,18);
102           END IF;
103           IF P_ORDER_AMOUNT_HIGH IS NULL THEN
104             L_ORDER_AMOUNT_HIGH := '   ';
105           ELSE
106             L_ORDER_AMOUNT_HIGH := SUBSTR(TO_CHAR(P_ORDER_AMOUNT_HIGH)
107                                          ,1
108                                          ,18);
109           END IF;
110           RP_ORDER_AMOUNT_RANGE := 'From ' || L_ORDER_AMOUNT_LOW || ' To ' || L_ORDER_AMOUNT_HIGH;
111         END IF;
112         IF (P_ORDER_LIST_LOW IS NULL) AND (P_ORDER_LIST_HIGH IS NULL) THEN
113           NULL;
114         ELSE
115           IF P_ORDER_LIST_LOW IS NULL THEN
116             L_ORDER_LIST_LOW := '   ';
117           ELSE
118             L_ORDER_LIST_LOW := SUBSTR(TO_CHAR(P_ORDER_LIST_LOW)
119                                       ,1
120                                       ,18);
121           END IF;
122           IF P_ORDER_LIST_HIGH IS NULL THEN
123             L_ORDER_LIST_HIGH := '   ';
124           ELSE
125             L_ORDER_LIST_HIGH := SUBSTR(TO_CHAR(P_ORDER_LIST_HIGH)
126                                        ,1
127                                        ,18);
128           END IF;
129           RP_ORDER_LIST_RANGE := 'From ' || L_ORDER_LIST_LOW || ' To ' || L_ORDER_LIST_HIGH;
130         END IF;
131         IF (P_ORDER_NUM_LOW IS NULL) AND (P_ORDER_NUM_HIGH IS NULL) THEN
132           NULL;
133         ELSE
134           IF P_ORDER_NUM_LOW IS NULL THEN
135             L_ORDER_NUMBER_LOW := '   ';
136           ELSE
137             L_ORDER_NUMBER_LOW := SUBSTR(P_ORDER_NUM_LOW
138                                         ,1
139                                         ,18);
140           END IF;
141           IF P_ORDER_NUM_HIGH IS NULL THEN
142             L_ORDER_NUMBER_HIGH := '   ';
143           ELSE
144             L_ORDER_NUMBER_HIGH := SUBSTR((P_ORDER_NUM_HIGH)
145                                          ,1
146                                          ,18);
147           END IF;
148           RP_ORDER_NUMBER_RANGE := 'From ' || L_ORDER_NUMBER_LOW || ' To ' || L_ORDER_NUMBER_HIGH;
149         END IF;
150         IF (P_CUSTOMER_NUMBER_LO IS NULL) AND (P_CUSTOMER_NUMBER_HI IS NULL) THEN
151           NULL;
152         ELSE
153           IF P_CUSTOMER_NUMBER_LO IS NULL THEN
154             L_CUSTOMER_NUMBER_LOW := '   ';
155           ELSE
156             L_CUSTOMER_NUMBER_LOW := SUBSTR(P_CUSTOMER_NUMBER_LO
157                                            ,1
158                                            ,18);
159           END IF;
160           IF P_CUSTOMER_NUMBER_HI IS NULL THEN
161             L_CUSTOMER_NUMBER_HIGH := '   ';
162           ELSE
163             L_CUSTOMER_NUMBER_HIGH := SUBSTR((P_CUSTOMER_NUMBER_HI)
164                                             ,1
165                                             ,18);
166           END IF;
167           RP_CUSTOMER_NUMBER_RANGE := 'From ' || L_CUSTOMER_NUMBER_LOW || ' To ' || L_CUSTOMER_NUMBER_HIGH;
168         END IF;
169         IF (P_CUSTOMER_NAME_LO IS NULL) AND (P_CUSTOMER_NAME_HI IS NULL) THEN
170           NULL;
171         ELSE
172           IF P_CUSTOMER_NAME_LO IS NULL THEN
173             L_CUSTOMER_NAME_LOW := '   ';
174           ELSE
175             L_CUSTOMER_NAME_LOW := SUBSTR(P_CUSTOMER_NAME_LO
176                                          ,1
177                                          ,18);
178           END IF;
179           IF P_CUSTOMER_NAME_HI IS NULL THEN
180             L_CUSTOMER_NAME_HIGH := '   ';
181           ELSE
182             L_CUSTOMER_NAME_HIGH := SUBSTR((P_CUSTOMER_NAME_HI)
183                                           ,1
184                                           ,18);
185           END IF;
186           RP_CUSTOMER_NAME_RANGE := 'From ' || L_CUSTOMER_NAME_LOW || ' To ' || L_CUSTOMER_NAME_HIGH;
187         END IF;
188         IF (P_ORDER_TYPE_LO IS NULL) AND (P_ORDER_TYPE_HI IS NULL) THEN
189           NULL;
190         ELSE
191           IF P_ORDER_TYPE_LO IS NULL THEN
192             L_ORDER_TYPE_LOW := '   ';
193           ELSE
194             L_ORDER_TYPE_LOW := SUBSTR(L_ORDER_TYPE_LOW
195                                       ,1
196                                       ,18);
197           END IF;
198           IF P_ORDER_TYPE_HI IS NULL THEN
199             L_ORDER_TYPE_HIGH := '   ';
200           ELSE
201             L_ORDER_TYPE_HIGH := SUBSTR((L_ORDER_TYPE_HIGH)
202                                        ,1
203                                        ,18);
204           END IF;
205           RP_ORDER_TYPE_RANGE := 'From ' || L_ORDER_TYPE_LOW || ' To ' || L_ORDER_TYPE_HIGH;
206         END IF;
207         IF (P_SALESREP_LO IS NULL) AND (P_SALESREP_HI IS NULL) THEN
208           NULL;
209         ELSE
210           IF P_SALESREP_LO IS NULL THEN
211             L_SALESREP_LOW := '   ';
212           ELSE
213             L_SALESREP_LOW := SUBSTR(P_SALESREP_LO
214                                     ,1
215                                     ,18);
216           END IF;
217           IF P_SALESREP_HI IS NULL THEN
218             L_SALESREP_HIGH := '   ';
219           ELSE
220             L_SALESREP_HIGH := SUBSTR((P_SALESREP_HI)
221                                      ,1
222                                      ,18);
223           END IF;
224           RP_SALESREP_RANGE := 'From ' || L_SALESREP_LOW || ' To ' || L_SALESREP_HIGH;
225         END IF;
226       END;
227       DECLARE
228         L_MEANING VARCHAR2(80);
229         L_LOOKUP_TYPE VARCHAR2(80);
230       BEGIN
231         L_LOOKUP_TYPE := 'YES_NO';
232         SELECT
233           MEANING
234         INTO L_MEANING
235         FROM
236           FND_LOOKUPS
237         WHERE LOOKUP_TYPE = L_LOOKUP_TYPE
238           AND LOOKUP_CODE = SUBSTR(UPPER(P_OPEN_ORDERS_ONLY)
239               ,1
240               ,1);
241         RP_OPEN_ORDERS_ONLY := L_MEANING;
242       EXCEPTION
243         WHEN NO_DATA_FOUND THEN
244           RP_OPEN_ORDERS_ONLY := 'Yes';
245       END;
246       DECLARE
247         L_MEANING VARCHAR2(80);
248         L_LOOKUP_TYPE VARCHAR2(80);
249         L_LOOKUP_CODE VARCHAR2(80);
250       BEGIN
251         L_LOOKUP_TYPE := 'REPORT_ORDER_CATEGORY';
252         L_LOOKUP_CODE := P_ORDER_CATEGORY;
253         SELECT
254           MEANING
255         INTO L_MEANING
256         FROM
257           OE_LOOKUPS
258         WHERE LOOKUP_TYPE = L_LOOKUP_TYPE
259           AND LOOKUP_CODE = L_LOOKUP_CODE;
260         RP_ORDER_CATEGORY := L_MEANING;
261       EXCEPTION
262         WHEN NO_DATA_FOUND THEN
263           RP_ORDER_CATEGORY := 'All Orders';
264       END;
265       DECLARE
266         L_MEANING VARCHAR2(80);
267         L_LOOKUP_TYPE VARCHAR2(80);
268         L_LOOKUP_CODE VARCHAR2(80);
269       BEGIN
270         L_LOOKUP_TYPE := 'REPORT_LINE_DISPLAY';
271         L_LOOKUP_CODE := P_LINE_CATEGORY;
272         SELECT
273           MEANING
274         INTO L_MEANING
275         FROM
276           OE_LOOKUPS
277         WHERE LOOKUP_TYPE = L_LOOKUP_TYPE
278           AND LOOKUP_CODE = L_LOOKUP_CODE;
279         RP_LINE_CATEGORY := L_MEANING;
280       EXCEPTION
281         WHEN NO_DATA_FOUND THEN
282           RP_LINE_CATEGORY := 'All Lines';
283       END;
284     EXCEPTION
285       WHEN OTHERS THEN
286         /*SRW.MESSAGE(4000
287                    ,' Error in Before Report Trigger')*/NULL;
288     END;
289     DECLARE
290       L_AGREEMENT_NAME VARCHAR2(240);
291     BEGIN
292       IF (P_AGREEMENT IS NOT NULL) THEN
293         BEGIN
294           SELECT
295             NAME
296           INTO L_AGREEMENT_NAME
297           FROM
298             OE_AGREEMENTS
299           WHERE AGREEMENT_ID = P_AGREEMENT;
300           RP_AGREEMENT_NAME := L_AGREEMENT_NAME;
301         EXCEPTION
302           WHEN NO_DATA_FOUND THEN
303             RP_AGREEMENT_NAME := NULL;
304         END;
305       END IF;
306     END;
307     RETURN (TRUE);
308   END BEFOREREPORT;
309   FUNCTION AFTERREPORT RETURN BOOLEAN IS
310   BEGIN
311     BEGIN
312       EXECUTE IMMEDIATE
313         'alter session set sql_trace=false';
314       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
315     EXCEPTION
316       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
317         /*SRW.MESSAGE(1
318                    ,'Failed in AFTER REPORT TRIGGER')*/NULL;
319         RETURN (FALSE);
320     END;
321     RETURN (TRUE);
322   END AFTERREPORT;
323   FUNCTION AFTERPFORM RETURN BOOLEAN IS
324   BEGIN
325     BEGIN
326       IF (P_CUSTOMER_NAME_LO IS NOT NULL) AND (P_CUSTOMER_NAME_HI IS NOT NULL) THEN
327         LP_CUSTOMER_NAME := 'and ( PARTY.PARTY_NAME between :p_customer_name_lo and :p_customer_name_hi ) ';
328       ELSIF (P_CUSTOMER_NAME_LO IS NOT NULL) THEN
329         LP_CUSTOMER_NAME := 'and PARTY.PARTY_NAME >= :p_customer_name_lo ';
330       ELSIF (P_CUSTOMER_NAME_HI IS NOT NULL) THEN
331         LP_CUSTOMER_NAME := 'and PARTY.PARTY_NAME <= :p_customer_name_hi ';
332       END IF;
333       IF (P_CUSTOMER_NUMBER_LO IS NOT NULL) AND (P_CUSTOMER_NUMBER_HI IS NOT NULL) THEN
334         LP_CUSTOMER_NUMBER := 'and ( CUST_ACCT.ACCOUNT_NUMBER between :p_customer_number_lo and :p_customer_number_hi ) ';
335       ELSIF (P_CUSTOMER_NUMBER_LO IS NOT NULL) THEN
336         LP_CUSTOMER_NUMBER := 'and CUST_ACCT.ACCOUNT_NUMBER >= :p_customer_number_lo ';
337       ELSIF (P_CUSTOMER_NUMBER_HI IS NOT NULL) THEN
338         LP_CUSTOMER_NUMBER := 'and CUST_ACCT.ACCOUNT_NUMBER <= :p_customer_number_hi ';
339       END IF;
340       IF (P_AGREEMENT IS NOT NULL) THEN
341         LP_AGREEMENT := 'and ag.agreement_id = :p_agreement ';
342       END IF;
343       IF (P_SALESREP_LO IS NOT NULL) AND (P_SALESREP_HI IS NOT NULL) THEN
344         LP_SALESREP := 'and ( sr.name between :p_salesrep_lo and :p_salesrep_hi ) ';
345       ELSIF (P_SALESREP_LO IS NOT NULL) THEN
346         LP_SALESREP := 'and sr.name >= :p_salesrep_lo ';
347       ELSIF (P_SALESREP_HI IS NOT NULL) THEN
348         LP_SALESREP := 'and sr.name <= :p_salesrep_hi ';
349       END IF;
350       IF (P_ORDER_TYPE_LO IS NOT NULL) AND (P_ORDER_TYPE_HI IS NOT NULL) THEN
351         LP_ORDER_TYPE := 'and ( ot.transaction_type_id between :p_order_type_lo and :p_order_type_hi ) ';
352         SELECT
353           OEOT.NAME
354         INTO L_ORDER_TYPE_LOW
355         FROM
356           OE_TRANSACTION_TYPES_TL OEOT
357         WHERE OEOT.TRANSACTION_TYPE_ID = P_ORDER_TYPE_LO
358           AND OEOT.LANGUAGE = USERENV('LANG');
359         SELECT
360           OEOT.NAME
361         INTO L_ORDER_TYPE_HIGH
362         FROM
363           OE_TRANSACTION_TYPES_TL OEOT
364         WHERE OEOT.TRANSACTION_TYPE_ID = P_ORDER_TYPE_HI
365           AND OEOT.LANGUAGE = USERENV('LANG');
366       ELSIF (P_ORDER_TYPE_LO IS NOT NULL) THEN
367         LP_ORDER_TYPE := 'and ot.transaction_type_id >= :p_order_type_lo ';
368         SELECT
369           OEOT.NAME
370         INTO L_ORDER_TYPE_LOW
371         FROM
372           OE_TRANSACTION_TYPES_TL OEOT
373         WHERE OEOT.TRANSACTION_TYPE_ID = P_ORDER_TYPE_LO
374           AND OEOT.LANGUAGE = USERENV('LANG');
375       ELSIF (P_ORDER_TYPE_HI IS NOT NULL) THEN
376         LP_ORDER_TYPE := 'and ot.transaction_type_id <= :p_order_type_hi ';
377         SELECT
378           OEOT.NAME
379         INTO L_ORDER_TYPE_HIGH
380         FROM
381           OE_TRANSACTION_TYPES_TL OEOT
382         WHERE OEOT.TRANSACTION_TYPE_ID = P_ORDER_TYPE_HI
383           AND OEOT.LANGUAGE = USERENV('LANG');
384       END IF;
385       IF (P_ORDER_NUM_LOW IS NOT NULL) AND (P_ORDER_NUM_HIGH IS NOT NULL) THEN
386         LP_ORDER_NUM := 'and ( h.order_number between to_number(:p_order_num_low) and to_number(:p_order_num_high) ) ';
387       ELSIF (P_ORDER_NUM_LOW IS NOT NULL) THEN
388         LP_ORDER_NUM := 'and h.order_number >= to_number(:p_order_num_low) ';
389       ELSIF (P_ORDER_NUM_HIGH IS NOT NULL) THEN
390         LP_ORDER_NUM := 'and h.order_number <= to_number(:p_order_num_high) ';
391       END IF;
392       IF (P_ORDER_DATE_LOW IS NOT NULL) AND (P_ORDER_DATE_HIGH IS NOT NULL) THEN
393         LP_ORDER_DATE := 'and  (h.ordered_date between :p_order_date_low
394                          			      and :p_order_date_high) ';
395       ELSIF (P_ORDER_DATE_LOW IS NOT NULL) THEN
396         LP_ORDER_DATE := 'and h.ordered_date  >= :p_order_date_low ';
397       ELSIF (P_ORDER_DATE_HIGH IS NOT NULL) THEN
398         LP_ORDER_DATE := 'and h.ordered_date  <= :p_order_date_high ';
399       END IF;
400       IF ((P_ORDER_AMOUNT_LOW IS NULL) AND (P_ORDER_AMOUNT_HIGH IS NULL) AND (P_ORDER_LIST_LOW IS NULL) AND (P_ORDER_LIST_HIGH IS NULL)) THEN
401         NULL;
402       ELSE
403         IF (P_ORDER_AMOUNT_LOW IS NOT NULL) AND (P_ORDER_AMOUNT_HIGH IS NOT NULL) THEN
404           LP_ORDER_AMOUNT := ' sum(nvl(l.ordered_quantity,0)*
405                              			     nvl(l.unit_selling_price,0)) between :p_order_amount_low and :p_order_amount_high';
406         ELSIF (P_ORDER_AMOUNT_LOW IS NOT NULL) THEN
407           LP_ORDER_AMOUNT := ' sum(nvl(l.ordered_quantity,0)*
408                              			     nvl(l.unit_selling_price,0)) >= :p_order_amount_low ';
409         ELSIF (P_ORDER_AMOUNT_HIGH IS NOT NULL) THEN
410           LP_ORDER_AMOUNT := ' sum(nvl(l.ordered_quantity,0)*
411                              			     nvl(l.unit_selling_price,0)) <= :p_order_amount_high ';
412         END IF;
413         IF (P_ORDER_LIST_LOW IS NOT NULL) AND (P_ORDER_LIST_HIGH IS NOT NULL) THEN
414           LP_ORDER_LIST := ' sum(nvl(l.ordered_quantity,0)*
415                            			     nvl(l.unit_list_price,0)) between :p_order_list_low and :p_order_list_high';
416         ELSIF (P_ORDER_LIST_LOW IS NOT NULL) THEN
417           LP_ORDER_LIST := ' sum(nvl(l.ordered_quantity,0)*
418                            			     nvl(l.unit_list_price,0)) >= :p_order_list_low ';
419         ELSIF (P_ORDER_LIST_HIGH IS NOT NULL) THEN
420           LP_ORDER_LIST := ' sum(nvl(l.ordered_quantity,0)*
421                            			     nvl(l.unit_list_price,0)) <= :p_order_list_high ';
422         END IF;
423         IF (LP_ORDER_AMOUNT IS NOT NULL) AND (LP_ORDER_LIST IS NOT NULL) THEN
424           LP_HAVING := ' having ' || LP_ORDER_AMOUNT || '  and  ' || LP_ORDER_LIST;
425         ELSIF (LP_ORDER_AMOUNT IS NOT NULL) AND (LP_ORDER_LIST IS NULL) THEN
426           LP_HAVING := ' having ' || LP_ORDER_AMOUNT;
427         ELSIF (LP_ORDER_AMOUNT IS NULL) AND (LP_ORDER_LIST IS NOT NULL) THEN
428           LP_HAVING := ' having ' || LP_ORDER_LIST;
429         END IF;
430       END IF;
431       IF P_OPEN_ORDERS_ONLY = 'Y' THEN
432         LP_OPEN_ORDERS_ONLY := 'and nvl(h.open_flag,''N'') = ''Y'' ';
433       END IF;
434       IF P_ORDER_NUM_LOW = P_ORDER_NUM_HIGH THEN
435         NULL;
436       ELSE
437         IF P_ORDER_CATEGORY IS NOT NULL THEN
438           IF P_ORDER_CATEGORY = 'SALES' THEN
439             LP_ORDER_CATEGORY := 'and h.order_category_code in (''ORDER'', ''MIXED'') ';
440           ELSIF P_ORDER_CATEGORY = 'CREDIT' THEN
441             LP_ORDER_CATEGORY := 'and h.order_category_code in (''RETURN'', ''MIXED'') ';
442           ELSIF P_ORDER_CATEGORY = 'ALL' THEN
443             LP_ORDER_CATEGORY := ' ';
444           END IF;
445         END IF;
446       END IF;
447       IF P_LINE_CATEGORY IS NOT NULL THEN
448         IF P_LINE_CATEGORY = 'SALES' THEN
449           LP_LINE_CATEGORY := 'and l.line_category_code = ''ORDER'' ';
450         ELSIF P_LINE_CATEGORY = 'CREDIT' THEN
451           LP_LINE_CATEGORY := 'and l.line_category_code = ''RETURN'' ';
452         ELSIF P_LINE_CATEGORY = 'ALL' THEN
453           LP_LINE_CATEGORY := ' ';
454         END IF;
455       ELSE
456         LP_LINE_CATEGORY := ' ';
457       END IF;
458       IF (P_ORDER_BY IS NOT NULL) THEN
459         IF (P_ORDER_BY = 'CUSTOMER') THEN
460           LP_SORT_BY := ', PARTY.PARTY_NAME ';
461         ELSIF (P_ORDER_BY = 'ORDER_NUMBER') THEN
462           LP_SORT_BY := ', h.order_number ';
463         END IF;
464       ELSE
465         LP_SORT_BY := ', h.order_number ';
466       END IF;
467     END;
468     RETURN (TRUE);
469   END AFTERPFORM;
470   FUNCTION RP_ORDER_BYFORMULA RETURN VARCHAR2 IS
471   BEGIN
472     DECLARE
473       L_SORT_BY VARCHAR2(100);
474       L_LOOKUP_TYPE VARCHAR2(80);
475       L_LOOKUP_CODE VARCHAR2(80);
476     BEGIN
477       L_LOOKUP_TYPE := 'OEXPRPRS ORDER BY';
478       L_LOOKUP_CODE := P_ORDER_BY;
479       SELECT
480         MEANING
481       INTO L_SORT_BY
482       FROM
483         OE_LOOKUPS
484       WHERE LOOKUP_CODE = L_LOOKUP_CODE
485         AND LOOKUP_TYPE = L_LOOKUP_TYPE;
486       RETURN (L_SORT_BY);
487     EXCEPTION
488       WHEN NO_DATA_FOUND THEN
489         RETURN ('Order Number');
490     END;
491     RETURN NULL;
492   END RP_ORDER_BYFORMULA;
493   FUNCTION C_DISCOUNT_PRICEFORMULA(ORDER_AMOUNT IN NUMBER
494                                   ,ORDER_LIST IN NUMBER) RETURN NUMBER IS
495   BEGIN
496     /*SRW.REFERENCE(ORDER_AMOUNT)*/NULL;
497     /*SRW.REFERENCE(ORDER_LIST)*/NULL;
498     RETURN (NVL(ORDER_LIST
499               ,0) - NVL(ORDER_AMOUNT
500               ,0));
501   END C_DISCOUNT_PRICEFORMULA;
502   FUNCTION C_DATA_NOT_FOUNDFORMULA(CURRENCY2 IN VARCHAR2) RETURN NUMBER IS
503   BEGIN
504     RP_DATA_FOUND := CURRENCY2;
505     RETURN (0);
506   END C_DATA_NOT_FOUNDFORMULA;
507   FUNCTION C_ORDER_AMOUNTFORMULA(ORDER_AMOUNT IN NUMBER
508                                 ,C_PRE IN NUMBER) RETURN NUMBER IS
509   BEGIN
510     RETURN (ROUND(ORDER_AMOUNT
511                 ,C_PRE));
512   END C_ORDER_AMOUNTFORMULA;
513   FUNCTION C_ORDER_LISTFORMULA(ORDER_LIST IN NUMBER
514                               ,C_PRE IN NUMBER) RETURN NUMBER IS
515   BEGIN
516     RETURN (ROUND(ORDER_LIST
517                 ,C_PRE));
518   END C_ORDER_LISTFORMULA;
519   FUNCTION C_DISCOUNT_PRICE_CUFORMULA(S_DISCOUNT_PRICE_CU IN NUMBER
520                                      ,C_PRE IN NUMBER) RETURN NUMBER IS
521   BEGIN
522     RETURN (ROUND(S_DISCOUNT_PRICE_CU
523                 ,C_PRE));
524   END C_DISCOUNT_PRICE_CUFORMULA;
525   FUNCTION C_ORDER_LIST_CUFORMULA(S_ORDER_LIST_CU IN NUMBER
526                                  ,C_PRE IN NUMBER) RETURN NUMBER IS
527   BEGIN
528     RETURN (ROUND(S_ORDER_LIST_CU
529                 ,C_PRE));
530   END C_ORDER_LIST_CUFORMULA;
531   FUNCTION C_ORDER_AMOUNT_CUFORMULA(S_ORDER_AMOUNT_CU IN NUMBER
532                                    ,C_PRE IN NUMBER) RETURN NUMBER IS
533   BEGIN
534     RETURN (ROUND(S_ORDER_AMOUNT_CU
535                 ,C_PRE));
536   END C_ORDER_AMOUNT_CUFORMULA;
537   FUNCTION C_DISCOUNT_PRICE_OTFORMULA(S_DISCOUNT_PRICE_OT IN NUMBER
538                                      ,C_PRE IN NUMBER) RETURN NUMBER IS
539   BEGIN
540     RETURN (ROUND(S_DISCOUNT_PRICE_OT
541                 ,C_PRE));
542   END C_DISCOUNT_PRICE_OTFORMULA;
543   FUNCTION C_ORDER_LIST_OTFORMULA(S_ORDER_LIST_OT IN NUMBER
544                                  ,C_PRE IN NUMBER) RETURN NUMBER IS
545   BEGIN
546     RETURN (ROUND(S_ORDER_LIST_OT
547                 ,C_PRE));
548   END C_ORDER_LIST_OTFORMULA;
549   FUNCTION C_ORDER_AMOUNT_OTFORMULA(S_ORDER_AMOUNT_OT IN NUMBER
550                                    ,C_PRE IN NUMBER) RETURN NUMBER IS
551   BEGIN
552     RETURN (ROUND(S_ORDER_AMOUNT_OT
553                 ,C_PRE));
554   END C_ORDER_AMOUNT_OTFORMULA;
555   FUNCTION C_DISCOUNT_PRCE_CFORMULA(S_DISCOUNT_PRICE_C IN NUMBER
556                                    ,C_PRE IN NUMBER) RETURN NUMBER IS
557   BEGIN
558     RETURN (ROUND(S_DISCOUNT_PRICE_C
559                 ,C_PRE));
560   END C_DISCOUNT_PRCE_CFORMULA;
561   FUNCTION C_ORDER_LIST_CFORMULA(S_ORDER_LIST_C IN NUMBER
562                                 ,C_PRE IN NUMBER) RETURN NUMBER IS
563   BEGIN
564     RETURN (ROUND(S_ORDER_LIST_C
565                 ,C_PRE));
566   END C_ORDER_LIST_CFORMULA;
567   FUNCTION C_ORDER_AMOUNT_CFORMULA(S_ORDER_AMOUNT_C IN NUMBER
568                                   ,C_PRE IN NUMBER) RETURN NUMBER IS
569   BEGIN
570     RETURN (ROUND(S_ORDER_AMOUNT_C
571                 ,C_PRE));
572   END C_ORDER_AMOUNT_CFORMULA;
573   FUNCTION CF_1FORMULA(CHARGE_PERIODICITY_CODE IN VARCHAR2) RETURN VARCHAR2 IS
574     L_UOM_CLASS VARCHAR2(50) := FND_PROFILE.VALUE('ONT_UOM_CLASS_CHARGE_PERIODICITY');
575     L_CHARGE_PERIODICITY VARCHAR2(25);
576   BEGIN
577     IF CHARGE_PERIODICITY_CODE IS NOT NULL THEN
578       SELECT
579         UNIT_OF_MEASURE
580       INTO L_CHARGE_PERIODICITY
581       FROM
582         MTL_UNITS_OF_MEASURE_VL
583       WHERE UOM_CLASS = L_UOM_CLASS
584         AND UOM_CODE = CHARGE_PERIODICITY_CODE;
585       RETURN L_CHARGE_PERIODICITY;
586     ELSE
587       RETURN (P_ONE_TIME);
588     END IF;
589   EXCEPTION
590     WHEN NO_DATA_FOUND THEN
591       RETURN NULL;
592   END CF_1FORMULA;
593   FUNCTION CF_2FORMULA(S_ORDER_AMOUNT_P IN NUMBER
594                       ,C_PRE IN NUMBER) RETURN NUMBER IS
595   BEGIN
596     RETURN (ROUND(S_ORDER_AMOUNT_P
597                 ,C_PRE));
598   END CF_2FORMULA;
599   FUNCTION C_DISCOUNT_PRICE_PFORMULA(S_DISCOUNT_PRICE_P IN NUMBER
600                                     ,C_PRE IN NUMBER) RETURN NUMBER IS
601   BEGIN
602     RETURN (ROUND(S_DISCOUNT_PRICE_P
603                 ,C_PRE));
604   END C_DISCOUNT_PRICE_PFORMULA;
605   FUNCTION C_ORDER_LIST_PFORMULA(S_ORDER_LIST_P IN NUMBER
606                                 ,C_PRE IN NUMBER) RETURN NUMBER IS
607   BEGIN
608     RETURN (ROUND(S_ORDER_LIST_P
609                 ,C_PRE));
610   END C_ORDER_LIST_PFORMULA;
611   FUNCTION RP_REPORT_NAME_P RETURN VARCHAR2 IS
612   BEGIN
613     RETURN RP_REPORT_NAME;
614   END RP_REPORT_NAME_P;
615   FUNCTION RP_SUB_TITLE_P RETURN VARCHAR2 IS
616   BEGIN
617     RETURN RP_SUB_TITLE;
618   END RP_SUB_TITLE_P;
619   FUNCTION RP_COMPANY_NAME_P RETURN VARCHAR2 IS
620   BEGIN
621     RETURN RP_COMPANY_NAME;
622   END RP_COMPANY_NAME_P;
623   FUNCTION RP_FUNCTIONAL_CURRENCY_P RETURN VARCHAR2 IS
624   BEGIN
625     RETURN RP_FUNCTIONAL_CURRENCY;
626   END RP_FUNCTIONAL_CURRENCY_P;
627   FUNCTION RP_DATA_FOUND_P RETURN VARCHAR2 IS
628   BEGIN
629     RETURN RP_DATA_FOUND;
630   END RP_DATA_FOUND_P;
631   FUNCTION RP_ORDER_NUMBER_RANGE_P RETURN VARCHAR2 IS
632   BEGIN
633     RETURN RP_ORDER_NUMBER_RANGE;
634   END RP_ORDER_NUMBER_RANGE_P;
635   FUNCTION RP_ORDER_LIST_RANGE_P RETURN VARCHAR2 IS
636   BEGIN
637     RETURN RP_ORDER_LIST_RANGE;
638   END RP_ORDER_LIST_RANGE_P;
639   FUNCTION RP_ORDER_DATE_RANGE_P RETURN VARCHAR2 IS
640   BEGIN
641     RETURN RP_ORDER_DATE_RANGE;
642   END RP_ORDER_DATE_RANGE_P;
643   FUNCTION RP_OPEN_ORDERS_ONLY_P RETURN VARCHAR2 IS
644   BEGIN
645     RETURN RP_OPEN_ORDERS_ONLY;
646   END RP_OPEN_ORDERS_ONLY_P;
647   FUNCTION RP_ORDER_AMOUNT_RANGE_P RETURN VARCHAR2 IS
648   BEGIN
649     RETURN RP_ORDER_AMOUNT_RANGE;
650   END RP_ORDER_AMOUNT_RANGE_P;
651   FUNCTION RP_AGREEMENT_NAME_P RETURN VARCHAR2 IS
652   BEGIN
653     RETURN RP_AGREEMENT_NAME;
654   END RP_AGREEMENT_NAME_P;
655   FUNCTION RP_ORDER_TYPE_RANGE_P RETURN VARCHAR2 IS
656   BEGIN
657     RETURN RP_ORDER_TYPE_RANGE;
658   END RP_ORDER_TYPE_RANGE_P;
659   FUNCTION RP_CUSTOMER_NUMBER_RANGE_P RETURN VARCHAR2 IS
660   BEGIN
661     RETURN RP_CUSTOMER_NUMBER_RANGE;
662   END RP_CUSTOMER_NUMBER_RANGE_P;
663   FUNCTION RP_CUSTOMER_NAME_RANGE_P RETURN VARCHAR2 IS
664   BEGIN
665     RETURN RP_CUSTOMER_NAME_RANGE;
666   END RP_CUSTOMER_NAME_RANGE_P;
667   FUNCTION RP_SALESREP_RANGE_P RETURN VARCHAR2 IS
668   BEGIN
669     RETURN RP_SALESREP_RANGE;
670   END RP_SALESREP_RANGE_P;
671   FUNCTION RP_ORDER_CATEGORY_P RETURN VARCHAR2 IS
672   BEGIN
673     RETURN RP_ORDER_CATEGORY;
674   END RP_ORDER_CATEGORY_P;
675   FUNCTION RP_LINE_CATEGORY_P RETURN VARCHAR2 IS
676   BEGIN
677     RETURN RP_LINE_CATEGORY;
678   END RP_LINE_CATEGORY_P;
679 END ONT_OEXPRPRS_XMLP_PKG;
680