DBA Data[Home] [Help]

PACKAGE BODY: APPS.ONT_OEXOEOCS_XMLP_PKG

Source


1 PACKAGE BODY ONT_OEXOEOCS_XMLP_PKG AS
2 /* $Header: OEXOEOCSB.pls 120.3 2008/05/05 12:37:45 dwkrishn noship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4   BEGIN
5     BEGIN
6 
7 	P_ORGANIZATION_ID1 := P_ORGANIZATION_ID;
8 
9       BEGIN
10         P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
11         /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
12       EXCEPTION
13         WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
14           BEGIN
15             /*SRW.MESSAGE(1000
16                        ,'Failed in BEFORE REPORT trigger')*/NULL;
17             /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
18           END;
19       END;
20       BEGIN
21        -- P_ORGANIZATION_ID := MO_GLOBAL.GET_CURRENT_ORG_ID;
22         P_ORGANIZATION_ID1 := MO_GLOBAL.GET_CURRENT_ORG_ID;
23       END;
24       BEGIN
25         IF P_ITEM IS NOT NULL THEN
26           SELECT
27             CONCATENATED_SEGMENTS
28           INTO P_ITEM_NAME
29           FROM
30             MTL_SYSTEM_ITEMS_KFV
31           WHERE INVENTORY_ITEM_ID = P_ITEM
32             AND CUSTOMER_ORDER_ENABLED_FLAG = 'Y'
33             AND BOM_ITEM_TYPE in ( 1 , 4 )
34             AND ORGANIZATION_ID = OE_SYS_PARAMETERS.VALUE('MASTER_ORGANIZATION_ID');
35         END IF;
36       END;
37       DECLARE
38         L_COMPANY_NAME VARCHAR2(100);
39         L_FUNCTIONAL_CURRENCY VARCHAR2(15);
40       BEGIN
41         SELECT
42           SOB.NAME,
43           SOB.CURRENCY_CODE
44         INTO L_COMPANY_NAME,L_FUNCTIONAL_CURRENCY
45         FROM
46           GL_SETS_OF_BOOKS SOB,
47           FND_CURRENCIES CUR
48         WHERE SOB.SET_OF_BOOKS_ID = P_SOB_ID
49           AND SOB.CURRENCY_CODE = CUR.CURRENCY_CODE;
50         RP_COMPANY_NAME := L_COMPANY_NAME;
51         RP_FUNCTIONAL_CURRENCY := L_FUNCTIONAL_CURRENCY;
52       EXCEPTION
53         WHEN NO_DATA_FOUND THEN
54           NULL;
55       END;
56       BEGIN
57         /*SRW.REFERENCE(P_ITEM_FLEX_CODE)*/NULL;
58         /*SRW.REFERENCE(P_ITEM_STRUCTURE_NUM)*/NULL;
59         IF P_ITEM IS NOT NULL THEN
60           LP_ITEM_FLEX_ALL_SEG := ' and ' || RP_ITEM_FLEX_ALL_SEG_WHERE;
61         END IF;
62 	IF (lp_item_flex_all_seg IS NULL) THEN
63 	lp_item_flex_all_seg := ' ';
64 END IF;
65       EXCEPTION
66         WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
67           /*SRW.MESSAGE(1
68                      ,'Failed in before report trigger:MSTK')*/NULL;
69       END;
70       DECLARE
71         L_REPORT_NAME VARCHAR2(240);
72       BEGIN
73         SELECT
74           CP.USER_CONCURRENT_PROGRAM_NAME
75         INTO L_REPORT_NAME
76         FROM
77           FND_CONCURRENT_PROGRAMS_VL CP,
78           FND_CONCURRENT_REQUESTS CR
79         WHERE CR.REQUEST_ID = P_CONC_REQUEST_ID
80           AND CP.APPLICATION_ID = CR.PROGRAM_APPLICATION_ID
81           AND CP.CONCURRENT_PROGRAM_ID = CR.CONCURRENT_PROGRAM_ID;
82         RP_REPORT_NAME := L_REPORT_NAME;
83 
84       IF (UPPER(RP_REPORT_NAME) = 'CANCELLED ORDERS REPORT (XML)') THEN
85 	RP_REPORT_NAME := 'Cancelled Orders Report' ;
86       END IF;
87 
88       EXCEPTION
89         WHEN NO_DATA_FOUND THEN
90           RP_REPORT_NAME := 'Cancelled Orders Report';
91       END;
92     END;
93     RETURN (TRUE);
94   END BEFOREREPORT;
95 
96   FUNCTION AFTERREPORT RETURN BOOLEAN IS
97   BEGIN
98     BEGIN
99       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
100     EXCEPTION
101       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
102         /*SRW.MESSAGE(1
103                    ,'Failed in AFTER REPORT TRIGGER')*/NULL;
104         RETURN (FALSE);
105     END;
106     RETURN (TRUE);
107   END AFTERREPORT;
108 
109   FUNCTION P_ITEM_FLEX_CODEVALIDTRIGGER RETURN BOOLEAN IS
110   BEGIN
111     RETURN (TRUE);
112   END P_ITEM_FLEX_CODEVALIDTRIGGER;
113 
114   FUNCTION P_USE_FUNCTIONAL_CURRENCYVALID RETURN BOOLEAN IS
115   BEGIN
116     RETURN (TRUE);
117   END P_USE_FUNCTIONAL_CURRENCYVALID;
118 
119   FUNCTION AFTERPFORM RETURN BOOLEAN IS
120   BEGIN
121     BEGIN
122     P_ORDER_DATE_LOW1 := TO_CHAR(P_ORDER_DATE_LOW,'DD-MON-YY');
123 	P_ORDER_DATE_HIGH1 := TO_CHAR(P_ORDER_DATE_HIGH,'DD-MON-YY');
124       IF P_ORDER_NUM_LOW IS NOT NULL AND P_ORDER_NUM_HIGH IS NOT NULL THEN
125         LP_ORDER_NUM := ' AND  h.order_number  between to_number(:p_order_num_low) and to_number(:p_order_num_high)  ';
126       ELSIF (P_ORDER_NUM_LOW IS NOT NULL) THEN
127         LP_ORDER_NUM := 'and h.order_number >= to_number(:p_order_num_low) ';
128       ELSIF (P_ORDER_NUM_HIGH IS NOT NULL) THEN
129         LP_ORDER_NUM := 'and h.order_number <= to_number(:p_order_num_high) ';
130       END IF;
131 
132 IF (lp_order_num IS NULL) THEN
133 	lp_order_num := ' ';
134 END IF;
135 
136       IF P_SALESREP_LOW IS NOT NULL AND P_SALESREP_HIGH IS NOT NULL THEN
137         LP_SALESREP := ' AND nvl(sr.name,''zzzzzz'') between :p_salesrep_low and :p_salesrep_high ';
138       ELSIF (P_SALESREP_LOW IS NOT NULL) THEN
139         LP_SALESREP := 'and sr.name >= :p_salesrep_low ';
140       ELSIF (P_SALESREP_HIGH IS NOT NULL) THEN
141         LP_SALESREP := 'and sr.name <= :p_salesrep_high ';
142       END IF;
143 
144       IF (lp_salesrep IS NULL) THEN
145 	lp_salesrep := ' ';
146 END IF;
147 
148       IF P_ORDER_DATE_LOW IS NOT NULL AND P_ORDER_DATE_HIGH IS NOT NULL THEN
149         LP_ORDER_DATE := ' AND  trunc(h.ordered_date, ''DD'')
150                                                   between  trunc(:p_order_date_low, ''DD'')
151                                                       and  trunc(:p_order_date_high, ''DD'') ';
152       ELSIF (P_ORDER_DATE_LOW IS NOT NULL) THEN
153         LP_ORDER_DATE := ' AND  trunc(h.ordered_date, ''DD'')
154                                                        >=  trunc(:p_order_date_low, ''DD'') ';
155       ELSIF (P_ORDER_DATE_HIGH IS NOT NULL) THEN
156         LP_ORDER_DATE := ' AND  trunc(h.ordered_date, ''DD'')
157                                                        <=  trunc(:p_order_date_high, ''DD'') ';
158       END IF;
159 
160 IF (lp_order_date IS NULL) THEN
161 	lp_order_date := ' ';
162 END IF;
163 
164       IF P_CUSTOMER_NAME_LOW IS NOT NULL AND P_CUSTOMER_NAME_HIGH IS NOT NULL THEN
165         LP_CUSTOMER_NAME := ' AND org.name between :p_customer_name_low and :p_customer_name_high ';
166       ELSIF (P_CUSTOMER_NAME_LOW IS NOT NULL) THEN
167         LP_CUSTOMER_NAME := 'and org.name >= :p_customer_name_low ';
168       ELSIF (P_CUSTOMER_NAME_HIGH IS NOT NULL) THEN
169         LP_CUSTOMER_NAME := 'and org.name <= :p_customer_name_high ';
170       END IF;
171 
172 IF (lp_customer_name IS NULL) THEN
173 	lp_customer_name := ' ';
174 END IF;
175 
176       IF P_ORDER_NUM_LOW = P_ORDER_NUM_HIGH THEN
177         NULL;
178       ELSE
179         IF P_ORDER_CATEGORY IS NOT NULL THEN
180           IF P_ORDER_CATEGORY = 'SALES' THEN
181             LP_ORDER_CATEGORY := 'and h.order_category_code in (''ORDER'', ''MIXED'') ';
182           ELSIF P_ORDER_CATEGORY = 'CREDIT' THEN
183             LP_ORDER_CATEGORY := 'and h.order_category_code in (''RETURN'', ''MIXED'') ';
184           ELSIF P_ORDER_CATEGORY = 'ALL' THEN
185             LP_ORDER_CATEGORY := NULL;
186           END IF;
187         ELSE
188           LP_ORDER_CATEGORY := 'and h.order_category_code in (''ORDER'', ''MIXED'') ';
189         END IF;
190       END IF;
191 
192       IF (lp_order_category IS NULL) THEN
193 	lp_order_category := ' ';
194 END IF;
195       IF P_LINE_CATEGORY IS NOT NULL THEN
196         IF P_LINE_CATEGORY = 'SALES' THEN
197           LP_LINE_CATEGORY := 'and l.line_category_code = ''ORDER'' ';
198         ELSIF P_LINE_CATEGORY = 'CREDIT' THEN
199           LP_LINE_CATEGORY := 'and l.line_category_code = ''RETURN'' ';
200         ELSIF P_LINE_CATEGORY = 'ALL' THEN
201           LP_LINE_CATEGORY := NULL;
202         END IF;
203       ELSE
204         LP_LINE_CATEGORY := 'and l.line_category_code = ''ORDER'' ';
205       END IF;
206     END;
207 
208 IF (lp_line_category IS NULL) THEN
209 	lp_line_category := ' ';
210 END IF;
211     RETURN (TRUE);
212   END AFTERPFORM;
213 
214 function Item_dspFormula(item_identifier_type in varchar2, IID number, ORDERED_ITEM_ID number, ORDERED_ITEM varchar2,C_ORGANIZATION_ID in varchar2,C_INVENTORY_ITEM_ID in varchar2) return Char is
215 v_item varchar2(2000);
216 v_description varchar2(500);
217 begin
218   if (item_identifier_type is null or item_identifier_type = 'INT')
219        or (p_print_description in ('I','D','F')) then
220     select sitems.concatenated_segments item,
221     	   sitems.description description
222     into   v_item,v_description
223     from   mtl_system_items_vl sitems
224     where
225 --    sitems.customer_order_enabled_flag = 'Y'    --> Commented for the bug 2864636
226 --    and    sitems.bom_item_type in (1,4)
227     nvl(sitems.organization_id,0) = nvl(oe_sys_parameters.value('MASTER_ORGANIZATION_ID',mo_global.get_current_org_id()),0)
228     and    sitems.inventory_item_id = iid;
229     rp_dummy_item := v_item;
230        rp_dummy_item := '';
231    v_item := fnd_flex_xml_publisher_apis.process_kff_combination_1('Item_dsp', 'INV', p_item_flex_code, p_item_structure_num, C_ORGANIZATION_ID,C_INVENTORY_ITEM_ID, 'ALL', 'Y', 'VALUE');
232 
233   elsif (item_identifier_type = 'CUST' and p_print_description in ('C','P','O')) then
234     select citems.customer_item_number item,
235     	   nvl(citems.customer_item_desc,sitems.description) description
236     into   v_item,v_description
237     from   mtl_customer_items citems,
238            mtl_customer_item_xrefs cxref,
239            mtl_system_items_vl sitems
240     where  citems.customer_item_id = cxref.customer_item_id
241     and    cxref.inventory_item_id = sitems.inventory_item_id
242     and    citems.customer_item_id = ordered_item_id
243     and    nvl(sitems.organization_id,0) = nvl(oe_sys_parameters.value('MASTER_ORGANIZATION_ID',mo_global.get_current_org_id()),0)
244     and    sitems.inventory_item_id = iid;
245 --    and    sitems.customer_order_enabled_flag = 'Y'
246 --    and    sitems.bom_item_type in (1,4)
247   elsif (p_print_description in ('C','P','O')) then
248    Begin
249     select items.cross_reference item,
250     	   nvl(items.description,sitems.description) description
251     into   v_item,v_description
252     from   mtl_cross_reference_types xtypes,
253            mtl_cross_references items,
254            mtl_system_items_vl sitems
255     where  xtypes.cross_reference_type = items.cross_reference_type
256     and    items.inventory_item_id = sitems.inventory_item_id
257     and    items.cross_reference = ordered_item
258     and    items.cross_reference_type = item_identifier_type
259     and    nvl(sitems.organization_id,0) = nvl(oe_sys_parameters.value('MASTER_ORGANIZATION_ID',mo_global.get_current_org_id()),0)
260     and    sitems.inventory_item_id = iid
261     --Bug 3433353 Begin
262     and    items.org_independent_flag = 'N'
263     and    items.organization_id = nvl(oe_sys_parameters.value('MASTER_ORGANIZATION_ID',mo_global.get_current_org_id()),0);
264 --    and    sitems.customer_order_enabled_flag = 'Y'
265 --    and    sitems.bom_item_type in (1,4)
266     Exception When NO_DATA_FOUND Then
267     select items.cross_reference item,
268     nvl(items.description,sitems.description) description
269     into v_item,v_description
270     from mtl_cross_reference_types xtypes,
271     mtl_cross_references items,
272     mtl_system_items_vl sitems
273     where xtypes.cross_reference_type =
274     items.cross_reference_type
275     and items.inventory_item_id =
276     sitems.inventory_item_id
277     and items.cross_reference = ordered_item
278     and items.cross_reference_type = item_identifier_type
279     and nvl(sitems.organization_id,0) = nvl(oe_sys_parameters.value('MASTER_ORGANIZATION_ID',mo_global.get_current_org_id()),0)
280     and sitems.inventory_item_id = iid
281     and items.org_independent_flag = 'Y';
282     End;
283 
284   end if;
285 
286   if (p_print_description in ('I','C')) then
287     return(v_item||' - '||v_description);
288   elsif (p_print_description in ('D','P')) then
289     return(v_description);
290   else
291     return(v_item);
292   end if;
293 
294 RETURN NULL;
295 Exception
296    When Others Then
297         return('Item Not Found');
298 end;
299 
300 
301   FUNCTION C_SET_LBLFORMULA RETURN VARCHAR2 IS
302   BEGIN
303     BEGIN
304       /*SRW.REFERENCE(P_ORDER_BY)*/NULL;
305       IF P_CUSTOMER_NAME_LOW IS NOT NULL OR P_CUSTOMER_NAME_HIGH IS NOT NULL THEN
306         RP_CUSTOMER_RANGE := 'From ' || NVL(SUBSTR(P_CUSTOMER_NAME_LOW
307                                        ,1
308                                        ,16)
309                                 ,'     ') || ' To ' || NVL(SUBSTR(P_CUSTOMER_NAME_HIGH
310                                        ,1
311                                        ,16)
312                                 ,'     ');
313       END IF;
314       IF P_SALESREP_LOW IS NOT NULL OR P_SALESREP_HIGH IS NOT NULL THEN
315         RP_SALESPERSON_RANGE := 'From ' || NVL(SUBSTR(P_SALESREP_LOW
316                                           ,1
317                                           ,16)
318                                    ,'     ') || ' To ' || NVL(SUBSTR(P_SALESREP_HIGH
319                                           ,1
320                                           ,16)
321                                    ,'     ');
322       END IF;
323       IF P_ORDER_DATE_LOW IS NOT NULL AND P_ORDER_DATE_HIGH IS NOT NULL THEN
324         --RP_ORDER_DATE_RANGE := 'From ' || P_ORDER_DATE_LOW || ' To ' || P_ORDER_DATE_HIGH;
325 	RP_ORDER_DATE_RANGE := 'From ' || P_ORDER_DATE_LOW1 || ' To ' || P_ORDER_DATE_HIGH1;
326       ELSIF P_ORDER_DATE_LOW IS NOT NULL THEN
327         --RP_ORDER_DATE_RANGE := 'From ' || P_ORDER_DATE_LOW || ' To ' || '       ';
328 	RP_ORDER_DATE_RANGE := 'From ' || P_ORDER_DATE_LOW1 || ' To ' || '       ';
329       ELSIF P_ORDER_DATE_HIGH IS NOT NULL THEN
330         --RP_ORDER_DATE_RANGE := 'From ' || '       ' || ' To ' || P_ORDER_DATE_HIGH;
331 	RP_ORDER_DATE_RANGE := 'From ' || '       ' || ' To ' || P_ORDER_DATE_HIGH1;
332       END IF;
333       IF P_ORDER_NUM_LOW IS NOT NULL OR P_ORDER_NUM_HIGH IS NOT NULL THEN
334         RP_ORDER_RANGE := 'From ' || NVL(P_ORDER_NUM_LOW
335                              ,'     ') || ' To ' || NVL(P_ORDER_NUM_HIGH
336                              ,'     ');
337       END IF;
338       IF P_ORDER_BY IS NOT NULL THEN
339         DECLARE
340           ORDER_BY VARCHAR2(80);
341         BEGIN
342           SELECT
343             MEANING
344           INTO ORDER_BY
345           FROM
346             OE_LOOKUPS
347           WHERE LOOKUP_TYPE = 'OEXOEOCS SORT BY'
348             AND LOOKUP_CODE = P_ORDER_BY;
349           RP_ORDER_BY := ORDER_BY;
350         EXCEPTION
351           WHEN NO_DATA_FOUND THEN
352             RP_ORDER_BY := P_ORDER_BY;
353         END;
354       END IF;
355       DECLARE
356         MEANING VARCHAR2(80);
357       BEGIN
358         SELECT
359           MEANING
360         INTO MEANING
361         FROM
362           FND_LOOKUPS
363         WHERE LOOKUP_TYPE = 'YES_NO'
364           AND LOOKUP_CODE = P_USE_FUNCTIONAL_CURRENCY;
365         RP_USE_FUNCTIONAL_CURRENCY := MEANING;
366       EXCEPTION
367         WHEN NO_DATA_FOUND THEN
368           RP_USE_FUNCTIONAL_CURRENCY := P_USE_FUNCTIONAL_CURRENCY;
369       END;
370       DECLARE
371         ITEM_DISPLAY_MEANING VARCHAR2(80);
372       BEGIN
373         SELECT
374           MEANING
375         INTO ITEM_DISPLAY_MEANING
376         FROM
377           OE_LOOKUPS
378         WHERE LOOKUP_TYPE = 'ITEM_DISPLAY_CODE'
379           AND LOOKUP_CODE = P_PRINT_DESCRIPTION;
380         RP_FLEX_OR_DESC := ITEM_DISPLAY_MEANING;
381       END;
382       RETURN (1);
383     END;
384     RETURN NULL;
385   END C_SET_LBLFORMULA;
386 
387   FUNCTION C_GL_CONV_RATEFORMULA(CURRENCY2 IN VARCHAR2
388                                 ,ORD_DATE IN DATE
389                                 ,CONVERSION_TYPE_CODE IN VARCHAR2
390                                 ,CONVERSION_RATE IN NUMBER) RETURN NUMBER IS
391   BEGIN
392     DECLARE
393       GL_RATE NUMBER;
394     BEGIN
395       /*SRW.REFERENCE(CURRENCY2)*/NULL;
396       /*SRW.REFERENCE(ORD_DATE)*/NULL;
397       /*SRW.REFERENCE(CONVERSION_TYPE_CODE)*/NULL;
398       IF P_USE_FUNCTIONAL_CURRENCY = 'Y' THEN
399         IF CURRENCY2 = RP_FUNCTIONAL_CURRENCY THEN
400           RETURN (1);
401         ELSE
402           IF CONVERSION_RATE IS NULL THEN
403             GL_RATE := GET_RATE(P_SOB_ID
404                                ,CURRENCY2
405                                ,ORD_DATE
406                                ,CONVERSION_TYPE_CODE);
407             RETURN (GL_RATE);
408           ELSE
409             RETURN (CONVERSION_RATE);
410           END IF;
411         END IF;
412       ELSE
413         RETURN (1);
414       END IF;
415     EXCEPTION
416       WHEN NO_DATA_FOUND THEN
417         RETURN (-1);
418       WHEN OTHERS THEN
419         RETURN (-1);
420     END;
421     RETURN NULL;
422   END C_GL_CONV_RATEFORMULA;
423 
424   FUNCTION C_AMOUNTFORMULA(AMOUNT IN NUMBER
425                           ,C_GL_CONV_RATE IN NUMBER
426                           ,C_PRECISION IN NUMBER) RETURN NUMBER IS
427   BEGIN
428     DECLARE
429       ORDER_AMOUNT NUMBER(14,2);
430     BEGIN
431       /*SRW.REFERENCE(AMOUNT)*/NULL;
432       /*SRW.REFERENCE(C_GL_CONV_RATE)*/NULL;
433       /*SRW.REFERENCE(C_PRECISION)*/NULL;
434       IF P_USE_FUNCTIONAL_CURRENCY = 'Y' THEN
435         IF C_GL_CONV_RATE <> -1 THEN
436           SELECT
437             C_GL_CONV_RATE * AMOUNT
438           INTO ORDER_AMOUNT
439           FROM
440             DUAL;
441           RETURN (ROUND(ORDER_AMOUNT
442                       ,C_PRECISION));
443         ELSE
444           RETURN (0);
445         END IF;
446       ELSE
447         RETURN (ROUND(AMOUNT
448                     ,C_PRECISION));
449       END IF;
450     END;
451     RETURN NULL;
452   END C_AMOUNTFORMULA;
453 
454   FUNCTION C_CURRENCY_CODEFORMULA(CURRENCY2 IN VARCHAR2) RETURN VARCHAR2 IS
455   BEGIN
456     /*SRW.REFERENCE(CURRENCY2)*/NULL;
457     IF P_USE_FUNCTIONAL_CURRENCY = 'Y' THEN
458       RETURN (RP_FUNCTIONAL_CURRENCY);
459     ELSE
460       RETURN (CURRENCY2);
461     END IF;
462     RETURN NULL;
463   END C_CURRENCY_CODEFORMULA;
464 
465   FUNCTION RP_ORDER_CATEGORYFORMULA RETURN VARCHAR2 IS
466   BEGIN
467     DECLARE
468       L_MEANING VARCHAR2(80);
469     BEGIN
470       SELECT
471         MEANING
472       INTO L_MEANING
473       FROM
474         OE_LOOKUPS
475       WHERE LOOKUP_TYPE = 'REPORT_ORDER_CATEGORY'
476         AND LOOKUP_CODE = P_ORDER_CATEGORY;
477       RETURN (L_MEANING);
478     EXCEPTION
479       WHEN NO_DATA_FOUND THEN
480         RETURN (NULL);
481     END;
482     RETURN NULL;
483   END RP_ORDER_CATEGORYFORMULA;
484 
485   FUNCTION RP_LINE_CATEGORYFORMULA RETURN VARCHAR2 IS
486   BEGIN
487     DECLARE
488       L_MEANING VARCHAR2(80);
489     BEGIN
490       SELECT
491         MEANING
492       INTO L_MEANING
493       FROM
494         OE_LOOKUPS
495       WHERE LOOKUP_TYPE = 'REPORT_LINE_DISPLAY'
496         AND LOOKUP_CODE = P_LINE_CATEGORY;
497       RETURN (L_MEANING);
498     EXCEPTION
499       WHEN NO_DATA_FOUND THEN
500         RETURN (NULL);
501     END;
502     RETURN NULL;
503   END RP_LINE_CATEGORYFORMULA;
504 
505   FUNCTION CF_UNIT4FORMULA(UNIT2 IN VARCHAR2) RETURN CHAR IS
506   BEGIN
507     CP_UNIT4 := UNIT2;
508     RETURN 1;
509   END CF_UNIT4FORMULA;
510 
511   FUNCTION CF_UNIT3FORMULA(UNIT1 IN VARCHAR2) RETURN CHAR IS
512   BEGIN
513     CP_UNIT3 := UNIT1;
514     RETURN 1;
515   END CF_UNIT3FORMULA;
516 
517   FUNCTION C_PRECISIONFORMULA(P_CURRENCY_CODE IN VARCHAR2) RETURN NUMBER IS
518   BEGIN
519     DECLARE
520       W_PRECISION NUMBER;
521     BEGIN
522       SELECT
523         PRECISION
524       INTO W_PRECISION
525       FROM
526         FND_CURRENCIES
527      -- WHERE CURRENCY_CODE = CURRENCY_CODE
528       WHERE CURRENCY_CODE = P_CURRENCY_CODE;
529       RETURN (W_PRECISION);
530     EXCEPTION
531       WHEN NO_DATA_FOUND THEN
532         W_PRECISION := 2;
533         RETURN (W_PRECISION);
534     END;
535     RETURN NULL;
536   END C_PRECISIONFORMULA;
537 
538   FUNCTION RP_DUMMY_ITEM_P RETURN VARCHAR2 IS
539   BEGIN
540     RETURN RP_DUMMY_ITEM;
541   END RP_DUMMY_ITEM_P;
542 
543   FUNCTION RP_REPORT_NAME_P RETURN VARCHAR2 IS
544   BEGIN
545     RETURN RP_REPORT_NAME;
546   END RP_REPORT_NAME_P;
547 
548   FUNCTION RP_SUB_TITLE_P RETURN VARCHAR2 IS
549   BEGIN
550     RETURN RP_SUB_TITLE;
551   END RP_SUB_TITLE_P;
552 
553   FUNCTION RP_COMPANY_NAME_P RETURN VARCHAR2 IS
554   BEGIN
555     RETURN RP_COMPANY_NAME;
556   END RP_COMPANY_NAME_P;
557 
558   FUNCTION RP_FUNCTIONAL_CURRENCY_P RETURN VARCHAR2 IS
559   BEGIN
560     RETURN RP_FUNCTIONAL_CURRENCY;
561   END RP_FUNCTIONAL_CURRENCY_P;
562 
563   FUNCTION RP_DATA_FOUND_P RETURN VARCHAR2 IS
564   BEGIN
565     RETURN RP_DATA_FOUND;
566   END RP_DATA_FOUND_P;
567 
568   FUNCTION RP_ITEM_FLEX_LPROMPT_P RETURN VARCHAR2 IS
569   BEGIN
570     RETURN RP_ITEM_FLEX_LPROMPT;
571   END RP_ITEM_FLEX_LPROMPT_P;
572 
573   FUNCTION RP_ITEM_FLEX_ALL_SEG_P RETURN VARCHAR2 IS
574   BEGIN
575     RETURN RP_ITEM_FLEX_ALL_SEG;
576   END RP_ITEM_FLEX_ALL_SEG_P;
577 
578   FUNCTION RP_ITEM_FLEX_APROMPT_P RETURN VARCHAR2 IS
579   BEGIN
580     RETURN RP_ITEM_FLEX_APROMPT;
581   END RP_ITEM_FLEX_APROMPT_P;
582 
583   FUNCTION RP_CUSTOMER_RANGE_P RETURN VARCHAR2 IS
584   BEGIN
585     RETURN RP_CUSTOMER_RANGE;
586   END RP_CUSTOMER_RANGE_P;
587 
588   FUNCTION RP_SALESPERSON_RANGE_P RETURN VARCHAR2 IS
589   BEGIN
590     RETURN RP_SALESPERSON_RANGE;
591   END RP_SALESPERSON_RANGE_P;
592 
593   FUNCTION RP_ORDER_RANGE_P RETURN VARCHAR2 IS
594   BEGIN
595     RETURN RP_ORDER_RANGE;
596   END RP_ORDER_RANGE_P;
597 
598   FUNCTION RP_ORDER_BY_P RETURN VARCHAR2 IS
599   BEGIN
600     RETURN RP_ORDER_BY;
601   END RP_ORDER_BY_P;
602 
603   FUNCTION RP_USE_FUNCTIONAL_CURRENCY_P RETURN VARCHAR2 IS
604   BEGIN
605     RETURN RP_USE_FUNCTIONAL_CURRENCY;
606   END RP_USE_FUNCTIONAL_CURRENCY_P;
607 
608   FUNCTION RP_FLEX_OR_DESC_P RETURN VARCHAR2 IS
609   BEGIN
610     RETURN RP_FLEX_OR_DESC;
611   END RP_FLEX_OR_DESC_P;
612 
613   FUNCTION RP_ITEM_FLEX_ALL_SEG_WHERE_P RETURN VARCHAR2 IS
614   BEGIN
615     RETURN RP_ITEM_FLEX_ALL_SEG_WHERE;
616   END RP_ITEM_FLEX_ALL_SEG_WHERE_P;
617 
618   FUNCTION RP_ORDER_DATE_RANGE_P RETURN VARCHAR2 IS
619   BEGIN
620     RETURN RP_ORDER_DATE_RANGE;
621   END RP_ORDER_DATE_RANGE_P;
622 
623   FUNCTION CP_UNIT3_P RETURN VARCHAR2 IS
624   BEGIN
625     RETURN CP_UNIT3;
626   END CP_UNIT3_P;
627 
628   FUNCTION CP_UNIT4_P RETURN VARCHAR2 IS
629   BEGIN
630     RETURN CP_UNIT4;
631   END CP_UNIT4_P;
632 
633   FUNCTION IS_FIXED_RATE(X_FROM_CURRENCY IN VARCHAR2
634                         ,X_TO_CURRENCY IN VARCHAR2
635                         ,X_EFFECTIVE_DATE IN DATE) RETURN VARCHAR2 IS
636     X0 VARCHAR2(2000);
637   BEGIN
638    /* STPROC.INIT('begin :X0 := GL_CURRENCY_API.IS_FIXED_RATE(:X_FROM_CURRENCY, :X_TO_CURRENCY, :X_EFFECTIVE_DATE); end;');
639     STPROC.BIND_O(X0);
640     STPROC.BIND_I(X_FROM_CURRENCY);
641     STPROC.BIND_I(X_TO_CURRENCY);
642     STPROC.BIND_I(X_EFFECTIVE_DATE);
643     STPROC.EXECUTE;
644     STPROC.RETRIEVE(1
645                    ,X0);*/
646 		   null;
647     RETURN X0;
648   END IS_FIXED_RATE;
649 
650   PROCEDURE GET_RELATION(X_FROM_CURRENCY IN VARCHAR2
651                         ,X_TO_CURRENCY IN VARCHAR2
652                         ,X_EFFECTIVE_DATE IN DATE
653                         ,X_FIXED_RATE IN OUT NOCOPY BOOLEAN
654                         ,X_RELATIONSHIP IN OUT NOCOPY VARCHAR2) IS
655   BEGIN
656    /* STPROC.INIT('declare X_FIXED_RATE BOOLEAN;
657    begin
658    X_FIXED_RATE := sys.diutil.int_to_bool(:X_FIXED_RATE);
659    GL_CURRENCY_API.GET_RELATION(:X_FROM_CURRENCY, :X_TO_CURRENCY, :X_EFFECTIVE_DATE, X_FIXED_RATE, :X_RELATIONSHIP); :X_FIXED_RATE := sys.diutil.bool_to_int(X_FIXED_RATE); end;');
660     STPROC.BIND_IO(X_FIXED_RATE);
661     STPROC.BIND_I(X_FROM_CURRENCY);
662     STPROC.BIND_I(X_TO_CURRENCY);
663     STPROC.BIND_I(X_EFFECTIVE_DATE);
664     STPROC.BIND_IO(X_RELATIONSHIP);
665     STPROC.EXECUTE;
666     STPROC.RETRIEVE(1
667                    ,X_FIXED_RATE);
668     STPROC.RETRIEVE(5
669                    ,X_RELATIONSHIP);*/
670 		   null;
671   END GET_RELATION;
672 
673   FUNCTION GET_EURO_CODE RETURN VARCHAR2 IS
674     X0 VARCHAR2(2000);
675   BEGIN
676  /*   STPROC.INIT('begin :X0 := GL_CURRENCY_API.GET_EURO_CODE; end;');
677     STPROC.BIND_O(X0);
678     STPROC.EXECUTE;
679     STPROC.RETRIEVE(1
680                    ,X0);*/
681 		   null;
682     RETURN X0;
683   END GET_EURO_CODE;
684 
685   FUNCTION GET_RATE(X_FROM_CURRENCY IN VARCHAR2
686                    ,X_TO_CURRENCY IN VARCHAR2
687                    ,X_CONVERSION_DATE IN DATE
688                    ,X_CONVERSION_TYPE IN VARCHAR2) RETURN NUMBER IS
689     X0 NUMBER;
690   BEGIN
691    /* STPROC.INIT('begin :X0 := GL_CURRENCY_API.GET_RATE(:X_FROM_CURRENCY, :X_TO_CURRENCY, :X_CONVERSION_DATE, :X_CONVERSION_TYPE); end;');
692     STPROC.BIND_O(X0);
693     STPROC.BIND_I(X_FROM_CURRENCY);
694     STPROC.BIND_I(X_TO_CURRENCY);
695     STPROC.BIND_I(X_CONVERSION_DATE);
696     STPROC.BIND_I(X_CONVERSION_TYPE);
697     STPROC.EXECUTE;
698     STPROC.RETRIEVE(1
699                    ,X0);
700 		   */ null;
701     RETURN X0;
702   END GET_RATE;
703 
704   FUNCTION GET_RATE(X_SET_OF_BOOKS_ID IN NUMBER
705                    ,X_FROM_CURRENCY IN VARCHAR2
706                    ,X_CONVERSION_DATE IN DATE
707                    ,X_CONVERSION_TYPE IN VARCHAR2) RETURN NUMBER IS
708     X0 NUMBER;
709   BEGIN
710   /*  STPROC.INIT('begin :X0 := GL_CURRENCY_API.GET_RATE(:X_SET_OF_BOOKS_ID, :X_FROM_CURRENCY, :X_CONVERSION_DATE, :X_CONVERSION_TYPE); end;');
711     STPROC.BIND_O(X0);
712     STPROC.BIND_I(X_SET_OF_BOOKS_ID);
713     STPROC.BIND_I(X_FROM_CURRENCY);
714     STPROC.BIND_I(X_CONVERSION_DATE);
715     STPROC.BIND_I(X_CONVERSION_TYPE);
716     STPROC.EXECUTE;
717     STPROC.RETRIEVE(1
718                    ,X0);
719 		   */ null;
720     RETURN X0;
721   END GET_RATE;
722 
723   FUNCTION CONVERT_AMOUNT(X_FROM_CURRENCY IN VARCHAR2
724                          ,X_TO_CURRENCY IN VARCHAR2
725                          ,X_CONVERSION_DATE IN DATE
726                          ,X_CONVERSION_TYPE IN VARCHAR2
727                          ,X_AMOUNT IN NUMBER) RETURN NUMBER IS
728     X0 NUMBER;
729   BEGIN
730   /*  STPROC.INIT('begin :X0 := GL_CURRENCY_API.CONVERT_AMOUNT(:X_FROM_CURRENCY, :X_TO_CURRENCY, :X_CONVERSION_DATE, :X_CONVERSION_TYPE, :X_AMOUNT); end;');
731     STPROC.BIND_O(X0);
732     STPROC.BIND_I(X_FROM_CURRENCY);
733     STPROC.BIND_I(X_TO_CURRENCY);
734     STPROC.BIND_I(X_CONVERSION_DATE);
735     STPROC.BIND_I(X_CONVERSION_TYPE);
736     STPROC.BIND_I(X_AMOUNT);
737     STPROC.EXECUTE;
738     STPROC.RETRIEVE(1
739                    ,X0);
740 		   */ null;
741     RETURN X0;
742   END CONVERT_AMOUNT;
743 
744   FUNCTION CONVERT_AMOUNT(X_SET_OF_BOOKS_ID IN NUMBER
745                          ,X_FROM_CURRENCY IN VARCHAR2
746                          ,X_CONVERSION_DATE IN DATE
747                          ,X_CONVERSION_TYPE IN VARCHAR2
748                          ,X_AMOUNT IN NUMBER) RETURN NUMBER IS
749     X0 NUMBER;
750   BEGIN
751  /*   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;');
752     STPROC.BIND_O(X0);
753     STPROC.BIND_I(X_SET_OF_BOOKS_ID);
754     STPROC.BIND_I(X_FROM_CURRENCY);
755     STPROC.BIND_I(X_CONVERSION_DATE);
756     STPROC.BIND_I(X_CONVERSION_TYPE);
757     STPROC.BIND_I(X_AMOUNT);
758     STPROC.EXECUTE;
759     STPROC.RETRIEVE(1
760                    ,X0);
761 		   */ null;
762     RETURN X0;
763   END CONVERT_AMOUNT;
764 
765   FUNCTION GET_DERIVE_TYPE(SOB_ID IN NUMBER
766                           ,PERIOD IN VARCHAR2
767                           ,CURR_CODE IN VARCHAR2) RETURN VARCHAR2 IS
768     X0 VARCHAR2(2000);
769   BEGIN
770     /* STPROC.INIT('begin :X0 := GL_CURRENCY_API.GET_DERIVE_TYPE(:SOB_ID, :PERIOD, :CURR_CODE); end;');
771     STPROC.BIND_O(X0);
772     STPROC.BIND_I(SOB_ID);
773     STPROC.BIND_I(PERIOD);
774     STPROC.BIND_I(CURR_CODE);
775     STPROC.EXECUTE;
776     STPROC.RETRIEVE(1
777                    ,X0);
778 		   */ null;
779     RETURN X0;
780   END GET_DERIVE_TYPE;
781 
782 END ONT_OEXOEOCS_XMLP_PKG;
783 
784