DBA Data[Home] [Help]

PACKAGE BODY: APPS.ONT_OEXOEIOD_XMLP_PKG

Source


1 PACKAGE BODY ONT_OEXOEIOD_XMLP_PKG AS
2 /* $Header: OEXOEIODB.pls 120.3 2008/05/05 09:03:31 dwkrishn noship $ */
3   FUNCTION AFTERREPORT RETURN BOOLEAN IS
4   BEGIN
5     BEGIN
6       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
7     EXCEPTION
8       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
9         /*SRW.MESSAGE(1
10                    ,'Failed in AFTER REPORT TRIGGER')*/NULL;
11         RETURN (FALSE);
12     END;
13     RETURN (TRUE);
14   END AFTERREPORT;
15 
16   FUNCTION P_ITEM_FLEX_CODEVALIDTRIGGER RETURN BOOLEAN IS
17   BEGIN
18     RETURN (TRUE);
19   END P_ITEM_FLEX_CODEVALIDTRIGGER;
20 
21   FUNCTION AFTERPFORM RETURN BOOLEAN IS
22   BEGIN
23     BEGIN
24       /*SRW.REFERENCE(P_SALESREP_LOW)*/NULL;
25       /*SRW.REFERENCE(P_SALESREP_HIGH)*/NULL;
26       IF (P_ORDER_TYPE_LOW IS NOT NULL) AND (P_ORDER_TYPE_HIGH IS NOT NULL) THEN
27         LP_ORDER_TYPE := 'and ( ot.transaction_type_id between p_order_type_low and p_order_type_high ) ';
28         SELECT
29           OEOT.NAME
30         INTO L_ORDER_TYPE_LOW
31         FROM
32           OE_TRANSACTION_TYPES_TL OEOT
33         WHERE OEOT.TRANSACTION_TYPE_ID = P_ORDER_TYPE_LOW
34           AND OEOT.LANGUAGE = USERENV('LANG');
35         SELECT
36           OEOT.NAME
37         INTO L_ORDER_TYPE_HIGH
38         FROM
39           OE_TRANSACTION_TYPES_TL OEOT
40         WHERE OEOT.TRANSACTION_TYPE_ID = P_ORDER_TYPE_HIGH
41           AND OEOT.LANGUAGE = USERENV('LANG');
42       ELSIF (P_ORDER_TYPE_LOW IS NOT NULL) THEN
43         LP_ORDER_TYPE := 'and ot.transaction_type_id >= :p_order_type_low ';
44         SELECT
45           OEOT.NAME
46         INTO L_ORDER_TYPE_LOW
47         FROM
48           OE_TRANSACTION_TYPES_TL OEOT
49         WHERE OEOT.TRANSACTION_TYPE_ID = P_ORDER_TYPE_LOW
50           AND OEOT.LANGUAGE = USERENV('LANG');
51       ELSIF (P_ORDER_TYPE_HIGH IS NOT NULL) THEN
52         LP_ORDER_TYPE := 'and ot.transaction_type_id <= p_order_type_high ';
53         SELECT
54           OEOT.NAME
55         INTO L_ORDER_TYPE_HIGH
56         FROM
57           OE_TRANSACTION_TYPES_TL OEOT
58         WHERE OEOT.TRANSACTION_TYPE_ID = P_ORDER_TYPE_HIGH
59           AND OEOT.LANGUAGE = USERENV('LANG');
60       END IF;
61       IF (P_CUSTOMER_NAME_LOW IS NOT NULL) AND (P_CUSTOMER_NAME_HIGH IS NOT NULL) THEN
62         LP_CUSTOMER_NAME := 'and ( party.party_name between :p_customer_name_low and :p_customer_name_high ) ';
63       ELSIF (P_CUSTOMER_NAME_LOW IS NOT NULL) THEN
64         LP_CUSTOMER_NAME := 'and party.party_name >= :p_customer_name_low ';
65       ELSIF (P_CUSTOMER_NAME_HIGH IS NOT NULL) THEN
66         LP_CUSTOMER_NAME := 'and party.party_name <= :p_customer_name_high ';
67       END IF;
68       IF (P_ORDER_NUM_LOW IS NOT NULL) AND (P_ORDER_NUM_HIGH IS NOT NULL) THEN
69         IF (P_ORDER_NUM_LOW = P_ORDER_NUM_HIGH) THEN
70           LP_ORDER_NUM := 'and h.order_number = :p_order_num_low ';
71         ELSE
72           LP_ORDER_NUM := 'and ( h.order_number between :p_order_num_low and :p_order_num_high ) ';
73         END IF;
74       ELSIF (P_ORDER_NUM_LOW IS NOT NULL) THEN
75         LP_ORDER_NUM := 'and h.order_number >= :p_order_num_low ';
76       ELSIF (P_ORDER_NUM_HIGH IS NOT NULL) THEN
77         LP_ORDER_NUM := 'and h.order_number <= :p_order_num_high ';
78       END IF;
79       IF (P_SALESREP_LOW IS NOT NULL) AND (P_SALESREP_HIGH IS NOT NULL) THEN
80         LP_SALESREP := 'and  (nvl(sr.name,''zzzzzz'') between :p_salesrep_low and :p_salesrep_high ) ';
81       ELSIF (P_SALESREP_LOW IS NOT NULL) THEN
82         LP_SALESREP := 'and nvl(sr.name,''zzzzzz'') >= :p_salesrep_low ';
83       ELSIF (P_SALESREP_HIGH IS NOT NULL) THEN
84         LP_SALESREP := 'and nvl(sr.name,''zzzzzz'') <= :p_salesrep_high ';
85       END IF;
86       IF (P_COUNTRY_LOW IS NOT NULL) THEN
87         LP_COUNTRY := 'and terr.territory_short_name  =  :p_country_low ';
88       END IF;
89       IF P_OPEN_ORDERS_ONLY = 'Y' THEN
90         LP_OPEN_ORDERS_ONLY := 'and h.open_flag = ''Y'' ';
91       END IF;
92       IF P_ORDER_NUM_LOW = P_ORDER_NUM_HIGH THEN
93         NULL;
94       ELSE
95         IF P_ORDER_CATEGORY IS NOT NULL THEN
96           IF P_ORDER_CATEGORY = 'SALES' THEN
97             LP_ORDER_CATEGORY := 'and h.order_category_code in (''ORDER'', ''MIXED'') ';
98           ELSIF P_ORDER_CATEGORY = 'CREDIT' THEN
99             LP_ORDER_CATEGORY := 'and h.order_category_code in (''RETURN'', ''MIXED'') ';
100           ELSIF P_ORDER_CATEGORY = 'ALL' THEN
101             LP_ORDER_CATEGORY := NULL;
102           END IF;
103         ELSE
104           LP_ORDER_CATEGORY := 'and h.order_category_code in (''ORDER'', ''MIXED'') ';
105         END IF;
106       END IF;
107       IF P_LINE_CATEGORY IS NOT NULL THEN
108         IF P_LINE_CATEGORY = 'SALES' THEN
109           LP_LINE_CATEGORY := 'and l.line_category_code = ''ORDER'' ';
110         ELSIF P_LINE_CATEGORY = 'CREDIT' THEN
111           LP_LINE_CATEGORY := 'and l.line_category_code = ''RETURN'' ';
112         ELSIF P_LINE_CATEGORY = 'ALL' THEN
113           LP_LINE_CATEGORY := NULL;
114         END IF;
115       ELSE
116         LP_LINE_CATEGORY := 'and l.line_category_code = ''ORDER'' ';
117       END IF;
118     END;
119     RETURN (TRUE);
120   END AFTERPFORM;
121 
122   FUNCTION C_DATA_NOT_FOUNDFORMULA(CURRENCY1 IN VARCHAR2) RETURN NUMBER IS
123   BEGIN
124     RP_DATA_FOUND := CURRENCY1;
125     RETURN (0);
126   END C_DATA_NOT_FOUNDFORMULA;
127 
128   FUNCTION RP_CURR_LABELFORMULA RETURN VARCHAR2 IS
129   BEGIN
130     IF SUBSTR(UPPER(P_ORDER_BY)
131           ,1
132           ,1) = 'O' THEN
133       RETURN ('  Currency:');
134     ELSIF SUBSTR(UPPER(P_ORDER_BY)
135           ,1
136           ,1) = 'S' THEN
137       RETURN ('    Currency:');
138     ELSE
139       RETURN ('Currency:');
140     END IF;
141     RETURN NULL;
142   END RP_CURR_LABELFORMULA;
143 
144   FUNCTION C_ORDER_COUNTFORMULA RETURN NUMBER IS
145   BEGIN
146     RETURN (1);
147   END C_ORDER_COUNTFORMULA;
148 
149   FUNCTION RP_ORDER_BYFORMULA RETURN VARCHAR2 IS
150   BEGIN
151     DECLARE
152       L_TEMP VARCHAR2(100);
153     BEGIN
154       SELECT
155         MEANING
156       INTO L_TEMP
157       FROM
158         OE_LOOKUPS
159       WHERE LOOKUP_TYPE = 'OEXOEIOD ORDER BY'
160         AND SUBSTR(LOOKUP_CODE
161             ,1
162             ,1) = SUBSTR(UPPER(P_ORDER_BY)
163             ,1
164             ,1);
165       RETURN (L_TEMP);
166     EXCEPTION
167       WHEN NO_DATA_FOUND THEN
168         RETURN ('Customer');
169     END;
170     RETURN NULL;
171   END RP_ORDER_BYFORMULA;
172 
173   FUNCTION C_LINE_COUNTFORMULA(HEADER_ID1 IN NUMBER) RETURN NUMBER IS
174   BEGIN
175     DECLARE
176       L_COUNT NUMBER(20);
177     BEGIN
178       /*SRW.REFERENCE(HEADER_ID1)*/NULL;
179       L_COUNT := 0;
180       SELECT
181         1
182       INTO L_COUNT
183       FROM
184         OE_ORDER_LINES_ALL L,
185         RA_CUSTOMER_TRX_LINES_ALL TRXL,
186         OE_ORDER_HEADERS H
187       WHERE L.HEADER_ID = C_LINE_COUNTFORMULA.HEADER_ID1
188         AND H.HEADER_ID = L.HEADER_ID
189         AND TRXL.INTERFACE_LINE_CONTEXT = P_INVOICE_LINE_CONTEXT
190         AND TRXL.INTERFACE_LINE_ATTRIBUTE1 = H.ORDER_NUMBER
191         AND TO_CHAR(L.LINE_ID) = TRXL.INTERFACE_LINE_ATTRIBUTE6
192         AND NVL(L.ORG_ID
193          ,0) = NVL(LP_ORG_ID
194          ,0)
195         AND NVL(TRXL.ORG_ID
196          ,0) = NVL(LP_ORG_ID
197          ,0)
198         AND ROWNUM = 1;
199       RETURN (L_COUNT);
200     EXCEPTION
201       WHEN NO_DATA_FOUND THEN
202         L_COUNT := 0;
203         RETURN (L_COUNT);
204     END;
205     RETURN NULL;
206   END C_LINE_COUNTFORMULA;
207 
208   FUNCTION C_CONVERT_AMOUNTFORMULA(CURRENCY1 IN VARCHAR2
209                                   ,AMOUNT IN NUMBER
210                                   ,CONVERSION_TYPE_CODE IN VARCHAR2
211                                   ,ORDER_DATE IN DATE
212                                   ,CONVERSION_RATE IN NUMBER) RETURN NUMBER IS
213   BEGIN
214     DECLARE
215       L_CONVERSION_RATE NUMBER(15);
216       L_CURRENCY VARCHAR2(15);
217       L_PRECISION NUMBER;
218     BEGIN
219       /*SRW.REFERENCE(CURRENCY1)*/NULL;
220       /*SRW.REFERENCE(RP_FUNCTIONAL_CURRENCY)*/NULL;
221       /*SRW.REFERENCE(C_AMOUNT)*/NULL;
222       /*SRW.REFERENCE(AMOUNT)*/NULL;
223       /*SRW.REFERENCE(CONVERSION_TYPE_CODE)*/NULL;
224       /*SRW.REFERENCE(ORDER_DATE)*/NULL;
225       L_CONVERSION_RATE := 0;
226       BEGIN
227         IF P_USE_FUNCTIONAL_CURRENCY = 'N' THEN
228           L_CURRENCY := CURRENCY1;
229         ELSE
230           L_CURRENCY := RP_FUNCTIONAL_CURRENCY;
231         END IF;
232         SELECT
233           PRECISION
234         INTO L_PRECISION
235         FROM
236           FND_CURRENCIES
237         WHERE CURRENCY_CODE = L_CURRENCY;
238       EXCEPTION
239         WHEN NO_DATA_FOUND THEN
240           L_PRECISION := 2;
241       END;
242       IF P_USE_FUNCTIONAL_CURRENCY = 'N' THEN
243         C_AMOUNT := ROUND(NVL(AMOUNT
244                              ,0)
245                          ,L_PRECISION);
246         RETURN (0);
247       END IF;
248       IF P_USE_FUNCTIONAL_CURRENCY = 'Y' THEN
249         IF CURRENCY1 = RP_FUNCTIONAL_CURRENCY THEN
250           L_CONVERSION_RATE := 1;
251         ELSE
252           IF CONVERSION_RATE IS NULL THEN
253             L_CONVERSION_RATE := GET_RATE(P_SOB_ID
254                                          ,CURRENCY1
255                                          ,ORDER_DATE
256                                          ,CONVERSION_TYPE_CODE);
257           ELSE
258             L_CONVERSION_RATE := CONVERSION_RATE;
259           END IF;
260         END IF;
261         C_AMOUNT := ROUND((NVL(L_CONVERSION_RATE
262                              ,0) * NVL(AMOUNT
263                              ,0))
264                          ,L_PRECISION);
265         RETURN (0);
266       END IF;
267     EXCEPTION
268       WHEN NO_DATA_FOUND THEN
269         C_AMOUNT := 0;
270         RETURN (0);
271       WHEN OTHERS THEN
272         C_AMOUNT := 0;
273         RETURN (0);
274     END;
275     RETURN NULL;
276   END C_CONVERT_AMOUNTFORMULA;
277 
278   FUNCTION RP_USE_FUNCTIONAL_CURRENCYFORM RETURN VARCHAR2 IS
279   BEGIN
280     DECLARE
281       L_TEMP VARCHAR2(100);
282     BEGIN
283       SELECT
284         MEANING
285       INTO L_TEMP
286       FROM
287         FND_LOOKUPS
288       WHERE LOOKUP_CODE = P_USE_FUNCTIONAL_CURRENCY
289         AND LOOKUP_TYPE = 'YES_NO';
290       RETURN (L_TEMP);
291     EXCEPTION
292       WHEN NO_DATA_FOUND THEN
293         RETURN ('No');
294     END;
295     RETURN NULL;
296   END RP_USE_FUNCTIONAL_CURRENCYFORM;
297 
298   FUNCTION C_CONVERT_SVC_AMOUNTFORMULA(CURRENCY1 IN VARCHAR2
299                                       ,SVC_AMOUNT IN NUMBER
300                                       ,CONVERSION_TYPE_CODE IN VARCHAR2
301                                       ,ORDER_DATE IN DATE
302                                       ,CONVERSION_RATE IN NUMBER) RETURN NUMBER IS
303   BEGIN
304     DECLARE
305       L_CONVERSION_RATE NUMBER(15);
306       L_CURRENCY VARCHAR2(15);
307       L_PRECISION NUMBER;
308     BEGIN
309       /*SRW.REFERENCE(CURRENCY1)*/NULL;
310       /*SRW.REFERENCE(RP_FUNCTIONAL_CURRENCY)*/NULL;
311       /*SRW.REFERENCE(C_SVC_AMOUNT)*/NULL;
312       /*SRW.REFERENCE(SVC_AMOUNT)*/NULL;
313       /*SRW.REFERENCE(CONVERSION_TYPE_CODE)*/NULL;
314       /*SRW.REFERENCE(ORDER_DATE)*/NULL;
315       L_CONVERSION_RATE := 0;
316       BEGIN
317         IF P_USE_FUNCTIONAL_CURRENCY = 'N' THEN
318           L_CURRENCY := CURRENCY1;
319         ELSE
320           L_CURRENCY := RP_FUNCTIONAL_CURRENCY;
321         END IF;
322         SELECT
323           PRECISION
324         INTO L_PRECISION
325         FROM
326           FND_CURRENCIES
327         WHERE CURRENCY_CODE = L_CURRENCY;
328       EXCEPTION
329         WHEN NO_DATA_FOUND THEN
330           L_PRECISION := 2;
331       END;
332       IF P_USE_FUNCTIONAL_CURRENCY = 'N' THEN
333         C_SVC_AMOUNT := ROUND(NVL(SVC_AMOUNT
334                                  ,0)
335                              ,L_PRECISION);
336         RETURN (0);
337       END IF;
338       IF P_USE_FUNCTIONAL_CURRENCY = 'Y' THEN
339         IF CURRENCY1 = RP_FUNCTIONAL_CURRENCY THEN
340           L_CONVERSION_RATE := 1;
341         ELSE
342           IF CONVERSION_RATE IS NULL THEN
343             L_CONVERSION_RATE := GET_RATE(P_SOB_ID
344                                          ,CURRENCY1
345                                          ,ORDER_DATE
346                                          ,CONVERSION_TYPE_CODE);
347           ELSE
348             L_CONVERSION_RATE := CONVERSION_RATE;
349           END IF;
350         END IF;
351         C_SVC_AMOUNT := ROUND((NVL(L_CONVERSION_RATE
352                                  ,0) * NVL(SVC_AMOUNT
353                                  ,0))
354                              ,L_PRECISION);
355         RETURN (0);
356       END IF;
357     EXCEPTION
358       WHEN NO_DATA_FOUND THEN
359         C_SVC_AMOUNT := 0;
360         RETURN (0);
361       WHEN OTHERS THEN
362         C_SVC_AMOUNT := 0;
363         RETURN (0);
364     END;
365     RETURN NULL;
366   END C_CONVERT_SVC_AMOUNTFORMULA;
367 
368   FUNCTION S_AMOUNT_ONFORMULA(C_AMT_INV1 IN NUMBER
369                              ,C_SVC_AMT1 IN NUMBER) RETURN NUMBER IS
370   BEGIN
371     RETURN (NVL(C_AMT_INV1
372               ,0) + NVL(C_SVC_AMT1
373               ,0));
374   END S_AMOUNT_ONFORMULA;
375 
376   FUNCTION S_AMOUNT_CUFORMULA(C_AMT_INV_CU IN NUMBER
377                              ,C_SVC_AMT_INV_CU IN NUMBER) RETURN NUMBER IS
378   BEGIN
379     RETURN (NVL(C_AMT_INV_CU
380               ,0) + NVL(C_SVC_AMT_INV_CU
381               ,0));
382   END S_AMOUNT_CUFORMULA;
383 
384   FUNCTION S_AMOUNT_CURFORMULA(C_AMT_INV_CUR IN NUMBER
385                               ,C_SVC_AMT_INV_CUR IN NUMBER) RETURN NUMBER IS
386   BEGIN
387     RETURN (NVL(C_AMT_INV_CUR
388               ,0) + NVL(C_SVC_AMT_INV_CUR
389               ,0));
390   END S_AMOUNT_CURFORMULA;
391 
392   FUNCTION S_AMOUNT_CPBFORMULA(C_AMT_INV_CPB IN NUMBER
393                               ,C_SVC_AMT_INV_CPB IN NUMBER) RETURN NUMBER IS
394   BEGIN
395     RETURN (NVL(C_AMT_INV_CPB
396               ,0) + NVL(C_SVC_AMT_INV_CPB
397               ,0));
398   END S_AMOUNT_CPBFORMULA;
399 
400   FUNCTION S_AMOUNT_OTFORMULA(C_AMT_INV_OT IN NUMBER
401                              ,C_SVC_AMT_OT IN NUMBER) RETURN NUMBER IS
402   BEGIN
403     RETURN (NVL(C_AMT_INV_OT
404               ,0) + NVL(C_SVC_AMT_OT
405               ,0));
406   END S_AMOUNT_OTFORMULA;
407 
408   FUNCTION S_AMOUNT_SPFORMULA(C_AMT_INV_SP IN NUMBER
409                              ,C_SVC_AMT_INV_SP IN NUMBER) RETURN NUMBER IS
410   BEGIN
411     RETURN (NVL(C_AMT_INV_SP
412               ,0) + NVL(C_SVC_AMT_INV_SP
413               ,0));
414   END S_AMOUNT_SPFORMULA;
415 
416   FUNCTION BEFOREPFORM RETURN BOOLEAN IS
417   BEGIN
418     RETURN (TRUE);
419   END BEFOREPFORM;
420 
421   FUNCTION RP_ORDER_CATEGORYFORMULA RETURN CHAR IS
422   BEGIN
423     DECLARE
424       L_MEANING VARCHAR2(80);
425     BEGIN
426       SELECT
427         MEANING
428       INTO L_MEANING
429       FROM
430         OE_LOOKUPS
431       WHERE LOOKUP_TYPE = 'REPORT_ORDER_CATEGORY'
432         AND LOOKUP_CODE = P_ORDER_CATEGORY;
433       RETURN (L_MEANING);
434     EXCEPTION
435       WHEN NO_DATA_FOUND THEN
436         RETURN (NULL);
437     END;
438     RETURN NULL;
439   END RP_ORDER_CATEGORYFORMULA;
440 
441   FUNCTION RP_LINE_CATEGORYFORMULA RETURN CHAR IS
442   BEGIN
443     DECLARE
444       L_MEANING VARCHAR2(80);
445     BEGIN
446       SELECT
447         MEANING
448       INTO L_MEANING
449       FROM
450         OE_LOOKUPS
451       WHERE LOOKUP_TYPE = 'REPORT_LINE_DISPLAY'
452         AND LOOKUP_CODE = P_LINE_CATEGORY;
453       RETURN (L_MEANING);
454     EXCEPTION
455       WHEN NO_DATA_FOUND THEN
456         RETURN (NULL);
457     END;
458     RETURN NULL;
459   END RP_LINE_CATEGORYFORMULA;
460 
461   FUNCTION C_MASTER_ORGFORMULA RETURN CHAR IS
462     V_MASTER_ORG VARCHAR2(20);
463   BEGIN
464     SELECT
465       NVL(OE_SYS_PARAMETERS.VALUE('MASTER_ORGANIZATION_ID'
466                                  ,MO_GLOBAL.GET_CURRENT_ORG_ID)
467          ,0)
468     INTO V_MASTER_ORG
469     FROM
470       DUAL;
471     RETURN V_MASTER_ORG;
472   END C_MASTER_ORGFORMULA;
473 
474   FUNCTION C_QUANTITY_CURFORMULA(S_QUANTITY_CUR IN NUMBER
475                                 ,S_SVC_QUANTITY_CUR IN NUMBER) RETURN NUMBER IS
476   BEGIN
477     RETURN (S_QUANTITY_CUR + S_SVC_QUANTITY_CUR);
478   END C_QUANTITY_CURFORMULA;
479 
480   FUNCTION C_QUANTITY_SPFORMULA(S_QUANTITY_SP IN NUMBER
481                                ,S_SVC_QUANTITY_SP IN NUMBER) RETURN NUMBER IS
482   BEGIN
483     RETURN (S_QUANTITY_SP + S_SVC_QUANTITY_SP);
484   END C_QUANTITY_SPFORMULA;
485 
486   FUNCTION CF_1FORMULA(S_QUANTITY_OT IN NUMBER
487                       ,S_SVC_QUANTITY_OT IN NUMBER) RETURN NUMBER IS
488   BEGIN
489     RETURN (S_QUANTITY_OT + S_SVC_QUANTITY_OT);
490   END CF_1FORMULA;
491 
492   FUNCTION CF_1FORMULA0009(S_QUANTITY_CPB IN NUMBER
493                           ,S_SVC_QUANTITY_CPB IN NUMBER) RETURN NUMBER IS
494   BEGIN
495     RETURN (S_QUANTITY_CPB + S_SVC_QUANTITY_CPB);
496   END CF_1FORMULA0009;
497 
498   FUNCTION CF_1FORMULA0011(S_QUANTITY_CU IN NUMBER
499                           ,S_SVC_QUANTITY_CU IN NUMBER) RETURN NUMBER IS
500   BEGIN
501     RETURN (S_QUANTITY_CU + S_SVC_QUANTITY_CU);
502   END CF_1FORMULA0011;
503 
504   FUNCTION C_QUANTITY_ONFORMULA(S_QUANTITY_ON IN NUMBER
505                                ,S_SVC_QUANTITY_ON IN NUMBER) RETURN NUMBER IS
506   BEGIN
507     RETURN (S_QUANTITY_ON + S_SVC_QUANTITY_ON);
508   END C_QUANTITY_ONFORMULA;
509 
510   FUNCTION C_PRECISIONFORMULA(CURRENCY1 IN VARCHAR2) RETURN NUMBER IS
511   BEGIN
512     DECLARE
513       W_PRECISION NUMBER;
514     BEGIN
515       SELECT
516         PRECISION
517       INTO W_PRECISION
518       FROM
519         FND_CURRENCIES
520       WHERE CURRENCY_CODE = CURRENCY1;
521       RETURN (W_PRECISION);
522     EXCEPTION
523       WHEN NO_DATA_FOUND THEN
524         W_PRECISION := 2;
525         RETURN (W_PRECISION);
526     END;
527     RETURN NULL;
528   END C_PRECISIONFORMULA;
529 
530   FUNCTION C_CURRENCYFORMULA(CURRENCY1 IN VARCHAR2) RETURN CHAR IS
531   BEGIN
532     IF P_USE_FUNCTIONAL_CURRENCY = 'N' THEN
533       RETURN (CURRENCY1);
534     ELSE
535       RETURN (RP_FUNCTIONAL_CURRENCY);
536     END IF;
537   END C_CURRENCYFORMULA;
538 
539   FUNCTION C_AMOUNT_P RETURN NUMBER IS
540   BEGIN
541     RETURN C_AMOUNT;
542   END C_AMOUNT_P;
543 
544   FUNCTION C_SVC_AMOUNT_P RETURN NUMBER IS
545   BEGIN
546     RETURN C_SVC_AMOUNT;
547   END C_SVC_AMOUNT_P;
548 
549   FUNCTION RP_SVC_DUMMY_ITEM_P RETURN DATE IS
550   BEGIN
551     RETURN RP_SVC_DUMMY_ITEM;
552   END RP_SVC_DUMMY_ITEM_P;
553 
554   FUNCTION RP_REPORT_NAME_P RETURN VARCHAR2 IS
555   BEGIN
556     RETURN RP_REPORT_NAME;
557   END RP_REPORT_NAME_P;
558 
559   FUNCTION RP_SUB_TITLE_P RETURN VARCHAR2 IS
560   BEGIN
561     RETURN RP_SUB_TITLE;
562   END RP_SUB_TITLE_P;
563 
564   FUNCTION RP_COMPANY_NAME_P RETURN VARCHAR2 IS
565   BEGIN
566     RETURN RP_COMPANY_NAME;
567   END RP_COMPANY_NAME_P;
568 
569   FUNCTION RP_FUNCTIONAL_CURRENCY_P RETURN VARCHAR2 IS
570   BEGIN
571     RETURN RP_FUNCTIONAL_CURRENCY;
572   END RP_FUNCTIONAL_CURRENCY_P;
573 
574   FUNCTION RP_DATA_FOUND_P RETURN VARCHAR2 IS
575   BEGIN
576     RETURN RP_DATA_FOUND;
577   END RP_DATA_FOUND_P;
578 
579   FUNCTION RP_ITEM_FLEX_ALL_SEG_P RETURN VARCHAR2 IS
580   BEGIN
581     RETURN RP_ITEM_FLEX_ALL_SEG;
582   END RP_ITEM_FLEX_ALL_SEG_P;
583 
584   FUNCTION RP_ORDER_NUMBER_RANGE_P RETURN VARCHAR2 IS
585   BEGIN
586     RETURN RP_ORDER_NUMBER_RANGE;
587   END RP_ORDER_NUMBER_RANGE_P;
588 
589   FUNCTION RP_SALESREP_RANGE_P RETURN VARCHAR2 IS
590   BEGIN
591     RETURN RP_SALESREP_RANGE;
592   END RP_SALESREP_RANGE_P;
593 
594   FUNCTION RP_CUSTOMER_NAME_RANGE_P RETURN VARCHAR2 IS
595   BEGIN
596     RETURN RP_CUSTOMER_NAME_RANGE;
597   END RP_CUSTOMER_NAME_RANGE_P;
598 
599   FUNCTION RP_ORDER_TYPE_RANGE_P RETURN VARCHAR2 IS
600   BEGIN
601     RETURN RP_ORDER_TYPE_RANGE;
602   END RP_ORDER_TYPE_RANGE_P;
603 
604   FUNCTION RP_OPEN_ORDERS_ONLY_P RETURN VARCHAR2 IS
605   BEGIN
606     RETURN RP_OPEN_ORDERS_ONLY;
607   END RP_OPEN_ORDERS_ONLY_P;
608 
609   FUNCTION RP_PRINT_DESCRIPTION_P RETURN VARCHAR2 IS
610   BEGIN
611     RETURN RP_PRINT_DESCRIPTION;
612   END RP_PRINT_DESCRIPTION_P;
613 
614   FUNCTION RP_DUMMY_ITEM_P RETURN VARCHAR2 IS
615   BEGIN
616     RETURN RP_DUMMY_ITEM;
617   END RP_DUMMY_ITEM_P;
618 
619   FUNCTION IS_FIXED_RATE(X_FROM_CURRENCY IN VARCHAR2
620                         ,X_TO_CURRENCY IN VARCHAR2
621                         ,X_EFFECTIVE_DATE IN DATE) RETURN VARCHAR2 IS
622     X0 VARCHAR2(2000);
623   BEGIN
624    /* STPROC.INIT('begin :X0 := GL_CURRENCY_API.IS_FIXED_RATE(:X_FROM_CURRENCY, :X_TO_CURRENCY, :X_EFFECTIVE_DATE); end;');
625     STPROC.BIND_O(X0);
626     STPROC.BIND_I(X_FROM_CURRENCY);
627     STPROC.BIND_I(X_TO_CURRENCY);
628     STPROC.BIND_I(X_EFFECTIVE_DATE);
629     STPROC.EXECUTE;
630     STPROC.RETRIEVE(1
631                    ,X0);*/
632 
633     X0 := GL_CURRENCY_API.IS_FIXED_RATE(X_FROM_CURRENCY, X_TO_CURRENCY, X_EFFECTIVE_DATE);
634 
635     RETURN X0;
636   END IS_FIXED_RATE;
637 
638   PROCEDURE GET_RELATION(X_FROM_CURRENCY IN VARCHAR2
639                         ,X_TO_CURRENCY IN VARCHAR2
640                         ,X_EFFECTIVE_DATE IN DATE
641                         ,X_FIXED_RATE IN OUT NOCOPY BOOLEAN
642                         ,X_RELATIONSHIP IN OUT NOCOPY VARCHAR2) IS
643   BEGIN
644     /*STPROC.INIT('declare X_FIXED_RATE BOOLEAN; begin X_FIXED_RATE := sys.diutil.int_to_bool(:X_FIXED_RATE); GL_CURRENCY_API.GET_RELATION(:X_FROM_CURRENCY, :X_TO_CURRENCY, :X_EFFECTIVE_DATE, X_FIXED_RATE, :X_RELATIONSHIP);
645     :X_FIXED_RATE := sys.diutil.bool_to_int(X_FIXED_RATE); end;');
646     STPROC.BIND_IO(X_FIXED_RATE);
647     STPROC.BIND_I(X_FROM_CURRENCY);
648     STPROC.BIND_I(X_TO_CURRENCY);
649     STPROC.BIND_I(X_EFFECTIVE_DATE);
650     STPROC.BIND_IO(X_RELATIONSHIP);
651     STPROC.EXECUTE;
652     STPROC.RETRIEVE(1
653                    ,X_FIXED_RATE);
654     STPROC.RETRIEVE(5
655                    ,X_RELATIONSHIP);*/
656 
657     GL_CURRENCY_API.GET_RELATION(X_FROM_CURRENCY, X_TO_CURRENCY, X_EFFECTIVE_DATE, X_FIXED_RATE, X_RELATIONSHIP);
658 
659   END GET_RELATION;
660 
661   FUNCTION GET_EURO_CODE RETURN VARCHAR2 IS
662     X0 VARCHAR2(2000);
663   BEGIN
664    /* STPROC.INIT('begin :X0 := GL_CURRENCY_API.GET_EURO_CODE; end;');
665     STPROC.BIND_O(X0);
666     STPROC.EXECUTE;
667     STPROC.RETRIEVE(1
668                    ,X0);*/
669 
670     X0 := GL_CURRENCY_API.GET_EURO_CODE;
671     RETURN X0;
672   END GET_EURO_CODE;
673 
674   FUNCTION GET_RATE(X_FROM_CURRENCY IN VARCHAR2
675                    ,X_TO_CURRENCY IN VARCHAR2
676                    ,X_CONVERSION_DATE IN DATE
677                    ,X_CONVERSION_TYPE IN VARCHAR2) RETURN NUMBER IS
678     X0 NUMBER;
679   BEGIN
680     /*STPROC.INIT('begin :X0 := GL_CURRENCY_API.GET_RATE(:X_FROM_CURRENCY, :X_TO_CURRENCY, :X_CONVERSION_DATE, :X_CONVERSION_TYPE); end;');
681     STPROC.BIND_O(X0);
682     STPROC.BIND_I(X_FROM_CURRENCY);
683     STPROC.BIND_I(X_TO_CURRENCY);
684     STPROC.BIND_I(X_CONVERSION_DATE);
685     STPROC.BIND_I(X_CONVERSION_TYPE);
686     STPROC.EXECUTE;
687     STPROC.RETRIEVE(1
688                    ,X0);*/
689     X0 := GL_CURRENCY_API.GET_RATE(X_FROM_CURRENCY, X_TO_CURRENCY, X_CONVERSION_DATE, X_CONVERSION_TYPE);
690     RETURN X0;
691   END GET_RATE;
692 
693   FUNCTION GET_RATE(X_SET_OF_BOOKS_ID IN NUMBER
694                    ,X_FROM_CURRENCY IN VARCHAR2
695                    ,X_CONVERSION_DATE IN DATE
696                    ,X_CONVERSION_TYPE IN VARCHAR2) RETURN NUMBER IS
697     X0 NUMBER;
698   BEGIN
699    /* STPROC.INIT('begin :X0 := GL_CURRENCY_API.GET_RATE(:X_SET_OF_BOOKS_ID, :X_FROM_CURRENCY, :X_CONVERSION_DATE, :X_CONVERSION_TYPE); end;');
700     STPROC.BIND_O(X0);
701     STPROC.BIND_I(X_SET_OF_BOOKS_ID);
702     STPROC.BIND_I(X_FROM_CURRENCY);
703     STPROC.BIND_I(X_CONVERSION_DATE);
704     STPROC.BIND_I(X_CONVERSION_TYPE);
705     STPROC.EXECUTE;
706     STPROC.RETRIEVE(1
707                    ,X0);*/
708 
709 		   X0 := GL_CURRENCY_API.GET_RATE(X_SET_OF_BOOKS_ID, X_FROM_CURRENCY, X_CONVERSION_DATE, X_CONVERSION_TYPE);
710     RETURN X0;
711   END GET_RATE;
712 
713   FUNCTION CONVERT_AMOUNT(X_FROM_CURRENCY IN VARCHAR2
714                          ,X_TO_CURRENCY IN VARCHAR2
715                          ,X_CONVERSION_DATE IN DATE
716                          ,X_CONVERSION_TYPE IN VARCHAR2
717                          ,X_AMOUNT IN NUMBER) RETURN NUMBER IS
718     X0 NUMBER;
719   BEGIN
720     /*STPROC.INIT('begin :X0 := GL_CURRENCY_API.CONVERT_AMOUNT(:X_FROM_CURRENCY, :X_TO_CURRENCY, :X_CONVERSION_DATE, :X_CONVERSION_TYPE, :X_AMOUNT); end;');
721     STPROC.BIND_O(X0);
722     STPROC.BIND_I(X_FROM_CURRENCY);
723     STPROC.BIND_I(X_TO_CURRENCY);
724     STPROC.BIND_I(X_CONVERSION_DATE);
725     STPROC.BIND_I(X_CONVERSION_TYPE);
726     STPROC.BIND_I(X_AMOUNT);
727     STPROC.EXECUTE;
728     STPROC.RETRIEVE(1
729                    ,X0);*/
730     X0 := GL_CURRENCY_API.CONVERT_AMOUNT(X_FROM_CURRENCY, X_TO_CURRENCY, X_CONVERSION_DATE, X_CONVERSION_TYPE, X_AMOUNT);
731 
732     RETURN X0;
733   END CONVERT_AMOUNT;
734 
735   FUNCTION CONVERT_AMOUNT(X_SET_OF_BOOKS_ID IN NUMBER
736                          ,X_FROM_CURRENCY IN VARCHAR2
737                          ,X_CONVERSION_DATE IN DATE
738                          ,X_CONVERSION_TYPE IN VARCHAR2
739                          ,X_AMOUNT IN NUMBER) RETURN NUMBER IS
740     X0 NUMBER;
741   BEGIN
742     /*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;');
743     STPROC.BIND_O(X0);
744     STPROC.BIND_I(X_SET_OF_BOOKS_ID);
745     STPROC.BIND_I(X_FROM_CURRENCY);
746     STPROC.BIND_I(X_CONVERSION_DATE);
747     STPROC.BIND_I(X_CONVERSION_TYPE);
748     STPROC.BIND_I(X_AMOUNT);
749     STPROC.EXECUTE;
750     STPROC.RETRIEVE(1
751                    ,X0);*/
752     X0 := GL_CURRENCY_API.CONVERT_AMOUNT(X_SET_OF_BOOKS_ID, X_FROM_CURRENCY, X_CONVERSION_DATE, X_CONVERSION_TYPE, X_AMOUNT);
753     RETURN X0;
754   END CONVERT_AMOUNT;
755 
756   FUNCTION GET_DERIVE_TYPE(SOB_ID IN NUMBER
757                           ,PERIOD IN VARCHAR2
758                           ,CURR_CODE IN VARCHAR2) RETURN VARCHAR2 IS
759     X0 VARCHAR2(2000);
760   BEGIN
761     /*STPROC.INIT('begin :X0 := GL_CURRENCY_API.GET_DERIVE_TYPE(:SOB_ID, :PERIOD, :CURR_CODE); end;');
762     STPROC.BIND_O(X0);
763     STPROC.BIND_I(SOB_ID);
764     STPROC.BIND_I(PERIOD);
765     STPROC.BIND_I(CURR_CODE);
766     STPROC.EXECUTE;
767     STPROC.RETRIEVE(1
768                    ,X0);*/
769     X0 := GL_CURRENCY_API.GET_DERIVE_TYPE(SOB_ID, PERIOD, CURR_CODE);
770     RETURN X0;
771   END GET_DERIVE_TYPE;
772 
773   FUNCTION RATE_EXISTS(X_FROM_CURRENCY IN VARCHAR2
774                       ,X_TO_CURRENCY IN VARCHAR2
775                       ,X_CONVERSION_DATE IN DATE
776                       ,X_CONVERSION_TYPE IN VARCHAR2) RETURN VARCHAR2 IS
777     X0 VARCHAR2(2000);
778   BEGIN
779     /*STPROC.INIT('begin :X0 := GL_CURRENCY_API.RATE_EXISTS(:X_FROM_CURRENCY, :X_TO_CURRENCY, :X_CONVERSION_DATE, :X_CONVERSION_TYPE); end;');
780     STPROC.BIND_O(X0);
781     STPROC.BIND_I(X_FROM_CURRENCY);
782     STPROC.BIND_I(X_TO_CURRENCY);
783     STPROC.BIND_I(X_CONVERSION_DATE);
784     STPROC.BIND_I(X_CONVERSION_TYPE);
785     STPROC.EXECUTE;
786     STPROC.RETRIEVE(1
787                    ,X0);*/
788 
789     X0 := GL_CURRENCY_API.RATE_EXISTS(X_FROM_CURRENCY, X_TO_CURRENCY, X_CONVERSION_DATE,  X_CONVERSION_TYPE);
790     RETURN X0;
791   END RATE_EXISTS;
792 
793 
794  FUNCTION BEFOREREPORT RETURN BOOLEAN IS
795  BEGIN
796 
797 	DECLARE
798 	BEGIN
799 
800 		/*BEGIN
801 		SRW.USER_EXIT('FND SRWINIT');
802 		EXCEPTION
803 			WHEN SRW.USER_EXIT_FAILURE THEN
804 			SRW.MESSAGE (1000,'Failed in BEFORE REPORT trigger');
805 		return (FALSE);
806 		END;*/null;
807 
808 
809 	BEGIN /*MOAC*/
810 
811 		LP_ORG_ID:= MO_GLOBAL.GET_CURRENT_ORG_ID();
812 
813 	END;
814 
815 /*
816 DECLARE
817 COUNT_OE_ORDER_HEADERS NUMBER(10);
818 COUNT_oe_order_lines_all NUMBER(10);
819 COUNT_oe_transaction_types_tl NUMBER(10);
820 COUNT_hz_cust_site_uses_all NUMBER(10);
821 COUNT_hz_cust_acct_sites_all NUMBER(10);
822 COUNT_hz_party_sites NUMBER(10);
823 COUNT_hz_locations NUMBER(10);
824 COUNT_ra_salesreps_all NUMBER(10);
825 COUNT_fnd_territories_vl NUMBER(10);
826 COUNT_hz_parties NUMBER(10);
827 COUNT_hz_cust_accounts NUMBER(10);
828 
829 BEGIN
830 
831 SELECT COUNT(*) INTO COUNT_OE_ORDER_HEADERS FROM OE_ORDER_HEADERS;
832 
833 SELECT COUNT(*) INTO COUNT_oe_order_lines_all FROM oe_order_lines_all;
834 
835 SELECT COUNT(*) INTO COUNT_oe_transaction_types_tl FROM oe_transaction_types_tl;
836 
837 SELECT COUNT(*) INTO COUNT_hz_cust_site_uses_all FROM hz_cust_site_uses_all;
838 
839 SELECT COUNT(*) INTO COUNT_hz_cust_acct_sites_all FROM hz_cust_acct_sites_all;
840 
841 SELECT COUNT(*) INTO COUNT_hz_party_sites FROM hz_party_sites;
842 
843 SELECT COUNT(*) INTO COUNT_hz_locations FROM hz_locations;
844 
845 SELECT COUNT(*) INTO COUNT_ra_salesreps_all FROM ra_salesreps_all;
846 
847 SELECT COUNT(*) INTO COUNT_fnd_territories_vl FROM fnd_territories_vl;
848 
849 SELECT COUNT(*) INTO COUNT_hz_parties FROM hz_parties;
850 
851 SELECT COUNT(*) INTO COUNT_hz_cust_accounts FROM hz_cust_accounts;
852 
853 DSP_COUNT:= DSP_COUNT ||' COUNT_OE_ORDER_HEADERS-->' || COUNT_OE_ORDER_HEADERS || ' COUNT_oe_order_lines_all--->' || COUNT_oe_order_lines_all ||'COUNT_oe_transaction_types_tl--->' || COUNT_oe_transaction_types_tl || 'COUNT_hz_cust_site_uses_all--->' ||
854 COUNT_hz_cust_site_uses_all || 'COUNT_hz_cust_acct_sites_all--->' || COUNT_hz_cust_acct_sites_all || 'COUNT_hz_party_sites--->'||COUNT_hz_party_sites|| 'COUNT_hz_locations-->' ||COUNT_hz_locations||'COUNT_ra_salesreps_all-->' ||
855 COUNT_ra_salesreps_all||' COUNT_fnd_territories_vl-->'|| COUNT_fnd_territories_vl || 'COUNT_hz_parties--->' || COUNT_hz_parties||' COUNT_hz_cust_accounts-->'|| COUNT_hz_cust_accounts;
856 
857 END;*/
858 /*------------------------------------------------------------------------------
859 Following PL/SQL block gets the company name, functional currency and precision.
860 ------------------------------------------------------------------------------*/
861 
862 
863   DECLARE
864   l_company_name            VARCHAR2 (100);
865   l_functional_currency     VARCHAR2  (15);
866 
867   BEGIN
868 
869     SELECT sob.name                   ,
870 	   sob.currency_code
871     INTO
872 	   l_company_name ,
873 	   l_functional_currency
874     FROM    gl_sets_of_books sob,
875 	    fnd_currencies cur
876     WHERE  sob.set_of_books_id = p_sob_id
877     AND    sob.currency_code = cur.currency_code
878     ;
879 
880     rp_company_name            := l_company_name;
881     rp_functional_currency     := l_functional_currency ;
882 
883   EXCEPTION
884     WHEN NO_DATA_FOUND THEN
885       NULL ;
886   END ;
887 
888 /*------------------------------------------------------------------------------
889 Following PL/SQL block gets the report name for the passed concurrent request Id.
890 ------------------------------------------------------------------------------*/
891   DECLARE
892       l_report_name  VARCHAR2(240);
893   BEGIN
894       SELECT cp.user_concurrent_program_name
895       INTO   l_report_name
896       FROM   FND_CONCURRENT_PROGRAMS_VL cp,
897 	     FND_CONCURRENT_REQUESTS cr
898       WHERE  cr.request_id     = P_CONC_REQUEST_ID
899       AND    cp.application_id = cr.program_application_id
900       AND    cp.concurrent_program_id = cr.concurrent_program_id
901       ;
902 
903       RP_Report_Name := l_report_name;
904   EXCEPTION
905       WHEN NO_DATA_FOUND
906       THEN RP_REPORT_NAME := 'Order/Invoice Detail Report';
907   END;
908 
909 /*------------------------------------------------------------------------------
910 Following PL/SQL block builds up the lexical parameters, to be used in the
911 WHERE clause of the query. This also populates the report level variables, used
912 to store the flexfield structure.
913 ------------------------------------------------------------------------------*/
914   /*BEGIN
915     SRW.REFERENCE(P_item_flex_code);
916     SRW.REFERENCE(P_item_structure_num);
917 
918     SRW.USER_EXIT('FND FLEXSQL CODE=":p_item_flex_code"
919 			   NUM=":p_item_structure_num"
920 			   APPL_SHORT_NAME="INV"
921 			   OUTPUT=":rp_item_flex_all_seg"
922 			   MODE="SELECT"
923 			   DISPLAY="ALL"
924 			   TABLEALIAS="SI"
925 			    ');
926   EXCEPTION
927     WHEN SRW.USER_EXIT_FAILURE THEN
928     srw.message(2000,'Failed in BEFORE REPORT trigger. FND FLEXSQL USER_EXIT');
929   END;*/
930 
931 
932   DECLARE
933       l_order_type_low             VARCHAR2 (50);
934       l_order_type_high            VARCHAR2 (50);
935       l_customer_name_low          VARCHAR2 (50);
936       l_customer_name_high         VARCHAR2 (50);
937       l_salesrep_low               VARCHAR2 (50);
938       l_salesrep_high              VARCHAR2 (50);
939       l_order_number_low           VARCHAR2 (50);
940       l_order_number_high          VARCHAR2 (50);
941 
942   BEGIN
943 
944   if ( p_order_type_low is NULL) AND ( p_order_type_high is NULL ) then
945     NULL ;
946   else
947     if p_order_type_low is NULL then
948       l_order_type_low := '   ';
949     else
950       l_order_type_low := substr(l_order_type_low ,1,18);
951     end if ;
952     if p_order_type_high is NULL then
953       l_order_type_high := '   ';
954     else
955       l_order_type_high := substr(l_order_type_high,1,18);
956     end if ;
957     rp_order_type_range  := 'From '||l_order_type_low||' To '||l_order_type_high ;
958 
959   end if ;
960 
961 
962   if ( p_customer_name_low is NULL) AND ( p_customer_name_high is NULL ) then
963     NULL ;
964   else
965     if p_customer_name_low is NULL then
966       l_customer_name_low := '   ';
967     else
968       l_customer_name_low := substr(p_customer_name_low,1,18) ;
969     end if ;
970     if p_customer_name_high is NULL then
971       l_customer_name_high := '   ';
972     else
973       l_customer_name_high := substr(p_customer_name_high,1,18);
974     end if ;
975     rp_customer_name_range  := 'From '||l_customer_name_low||' To '||l_customer_name_high ;
976   end if ;
977 
978   if ( p_salesrep_low is NULL) AND ( p_salesrep_high is NULL ) then
979     NULL ;
980   else
981     if p_salesrep_low is NULL then
982       l_salesrep_low := '   ';
983     else
984       l_salesrep_low := substr(p_salesrep_low,1,18) ;
985     end if ;
986     if p_salesrep_high is NULL then
987       l_salesrep_high := '   ';
988     else
989       l_salesrep_high := substr(p_salesrep_high,1,18);
990     end if ;
991     rp_salesrep_range  := 'From '||l_salesrep_low||' To '||l_salesrep_high ;
992   end if ;
993 
994   if ( p_order_num_low is NULL) AND ( p_order_num_high is NULL ) then
995     NULL ;
996   else
997     if p_order_num_low is NULL then
998       l_order_number_low := '   ';
999     else
1000       l_order_number_low := substr(p_order_num_low,1,18) ;
1001     end if ;
1002     if p_order_num_high is NULL then
1003       l_order_number_high := '   ';
1004     else
1005       l_order_number_high := substr((p_order_num_high),1,18);
1006     end if ;
1007     rp_order_number_range  := 'From '||l_order_number_low||' To '||l_order_number_high ;
1008   end if ;
1009 
1010   END ;
1011 
1012 DECLARE
1013     l_meaning       VARCHAR2 (80);
1014   BEGIN
1015     SELECT MEANING
1016     INTO   l_meaning
1017     FROM OE_LOOKUPS
1018     WHERE LOOKUP_TYPE = 'ITEM_DISPLAY_CODE'
1019     AND LOOKUP_CODE  = substr(upper(p_print_description),1,1)
1020     ;
1021 
1022     rp_print_description := l_meaning ;
1023   EXCEPTION WHEN NO_DATA_FOUND THEN
1024     rp_print_description := 'Internal Item Description';
1025   when OTHERS then
1026   /*srw.message(2000,'Failed in BEFORE REPORT trigger. Get Print Description'); */null;
1027 
1028   END ;
1029 
1030 /*DECLARE
1031     l_meaning       VARCHAR2 (80);
1032   BEGIN
1033     SELECT MEANING
1034     INTO   l_meaning
1035     FROM  OE_LOOKUPS
1036     WHERE LOOKUP_TYPE = 'ITEM_DISPLAY_CODE'
1037     AND LOOKUP_CODE  = substr(upper(p_print_description),1,1)
1038     ;
1039 
1040     rp_print_description := l_meaning ;
1041   EXCEPTION WHEN NO_DATA_FOUND THEN
1042     rp_print_description := 'Description';
1043   END ;
1044 */
1045 
1046 DECLARE
1047     l_meaning       VARCHAR2 (80);
1048   BEGIN
1049     SELECT MEANING
1050     INTO   l_meaning
1051     FROM FND_LOOKUPS
1052     WHERE LOOKUP_TYPE = 'YES_NO'
1053     AND LOOKUP_CODE  = substr(upper(p_open_orders_only),1,1)
1054     ;
1055 
1056     rp_open_orders_only := l_meaning ;
1057   EXCEPTION WHEN NO_DATA_FOUND THEN
1058     rp_open_orders_only := 'Yes';
1059   END ;
1060 
1061 END ;
1062   RETURN (TRUE);
1063  END BEFOREREPORT;
1064 
1065 FUNCTION ITEM_DSPFORMULA(ITEM_IDENTIFIER_TYPE IN VARCHAR2,INVENTORY_ITEM_ID IN NUMBER, C_MASTER_ORG IN VARCHAR2,ORDERED_ITEM_ID IN NUMBER,ORDERED_ITEM IN VARCHAR2,SI_ORGANIZATION_ID IN NUMBER, SI_INVENTORY_ITEM_ID IN NUMBER) RETURN VARCHAR2 IS
1066 v_item varchar2(2000);
1067 v_description varchar2(500);
1068 begin
1069   if (item_identifier_type is null or item_identifier_type = 'INT')
1070        or (p_print_description in ('I','D','F')) then
1071     select sitems.description description
1072     into   v_description
1073     from   mtl_system_items_vl sitems
1074 --    where  sitems.customer_order_enabled_flag = 'Y'
1075 --    and    sitems.bom_item_type in (1,4)
1076     where    nvl(sitems.organization_id,0) = c_master_org
1077     and    sitems.inventory_item_id = ITEM_DSPFORMULA.inventory_item_id;
1078     rp_dummy_item := v_item;
1079       /*   srw.reference (:item_flex);
1080          srw.reference (:p_item_flex_code);
1081          srw.reference (:Item_dsp);
1082          srw.reference (:p_item_structure_num);
1083          srw.user_exit (' FND FLEXIDVAL
1084 		    CODE=":p_item_flex_code"
1085 		    NUM=":p_item_structure_num"
1086 		    APPL_SHORT_NAME="INV"
1087 		    DATA= ":item_flex"
1088 		    VALUE=":Item_dsp"
1089 		    DISPLAY="ALL"'
1090 		);*/
1091    -- rp_dummy_item := '';
1092     v_item := fnd_flex_xml_publisher_apis.process_kff_combination_1('Item_dsp', 'INV', p_item_flex_code, p_item_structure_num, SI_ORGANIZATION_ID, SI_INVENTORY_ITEM_ID, 'ALL', 'Y', 'VALUE');
1093   elsif (item_identifier_type = 'CUST' and p_print_description in ('C','P','O')) then
1094     select citems.customer_item_number item,
1095     	   nvl(citems.customer_item_desc,sitems.description) description
1096     into   v_item,v_description
1097     from   mtl_customer_items citems,
1098            mtl_customer_item_xrefs cxref,
1099            mtl_system_items_vl sitems
1100     where  citems.customer_item_id = cxref.customer_item_id
1101     and    cxref.inventory_item_id = sitems.inventory_item_id
1102     and    citems.customer_item_id = ordered_item_id
1103     and    nvl(sitems.organization_id,0) = c_master_org
1104     and    sitems.inventory_item_id = ITEM_DSPFORMULA.inventory_item_id;
1105 --    and    sitems.customer_order_enabled_flag = 'Y'
1106 --    and    sitems.bom_item_type in (1,4)
1107   elsif (p_print_description in ('C','P','O')) then
1108     Begin
1109     select items.cross_reference item,
1110     	   nvl(items.description,sitems.description) description
1111     into   v_item,v_description
1112     from   mtl_cross_reference_types xtypes,
1113            mtl_cross_references items,
1114            mtl_system_items_vl sitems
1115     where  xtypes.cross_reference_type = items.cross_reference_type
1116     and    items.inventory_item_id = sitems.inventory_item_id
1117     and    items.cross_reference = ordered_item
1118     and    items.cross_reference_type = item_identifier_type
1119     and    nvl(sitems.organization_id,0) = c_master_org
1120     and    sitems.inventory_item_id = ITEM_DSPFORMULA.inventory_item_id
1121   --Bug 3433353 begin
1122     and    items.org_independent_flag = 'N'
1123     and    items.organization_id = c_master_org;
1124 --    and    sitems.customer_order_enabled_flag = 'Y'
1125 --    and    sitems.bom_item_type in (1,4)
1126     Exception When NO_DATA_FOUND Then
1127     select items.cross_reference item,
1128     nvl(items.description,sitems.description) description
1129     into v_item,v_description
1130     from mtl_cross_reference_types xtypes,
1131     mtl_cross_references items,
1132     mtl_system_items_vl sitems
1133     where xtypes.cross_reference_type =
1134     items.cross_reference_type
1135     and items.inventory_item_id =
1136     sitems.inventory_item_id
1137     and items.cross_reference = ordered_item
1138     and items.cross_reference_type = item_identifier_type
1139     and nvl(sitems.organization_id,0) = c_master_org
1140     and sitems.inventory_item_id = ITEM_DSPFORMULA.inventory_item_id
1141     and items.org_independent_flag = 'Y';
1142     End;
1143 --Bug 343353 End
1144   end if;
1145 
1146   if (p_print_description in ('I','C')) then
1147     return(v_item||' - '||v_description);
1148   elsif (p_print_description in ('D','P')) then
1149     return(v_description);
1150   else
1151     return(v_item);
1152   end if;
1153 
1154 
1155 
1156 RETURN NULL;
1157 Exception
1158    When Others Then
1159         return('Item Not Found');
1160 end ITEM_DSPFORMULA;
1161 END ONT_OEXOEIOD_XMLP_PKG;
1162 
1163