DBA Data[Home] [Help]

PACKAGE BODY: APPS.WSH_WSHRDBDR_XMLP_PKG

Source


1 PACKAGE BODY WSH_WSHRDBDR_XMLP_PKG AS
2 /* $Header: WSHRDBDRB.pls 120.1.12020000.2 2012/07/04 10:19:18 suppal ship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4   BEGIN
5     BEGIN
6       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
7       /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
8     EXCEPTION
9       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
10         /*SRW.MESSAGE(1
11                    ,'Failed FND SRWINIT.')*/NULL;
12         /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
13     END;
14     BEGIN
15       DECLARE
16         L_REPORT_NAME VARCHAR2(240);
17       BEGIN
18         SELECT
19           CP.USER_CONCURRENT_PROGRAM_NAME
20         INTO L_REPORT_NAME
21         FROM
22           FND_CONCURRENT_PROGRAMS_VL CP,
23           FND_CONCURRENT_REQUESTS CR
24         WHERE CR.REQUEST_ID = P_CONC_REQUEST_ID
25           AND CP.APPLICATION_ID = CR.PROGRAM_APPLICATION_ID
26           AND CP.CONCURRENT_PROGRAM_ID = CR.CONCURRENT_PROGRAM_ID;
27         RP_REPORT_NAME := SUBSTR(L_REPORT_NAME,1,INSTR(L_REPORT_NAME,' (XML)'));
28       EXCEPTION
29         WHEN NO_DATA_FOUND THEN
30           RP_REPORT_NAME := 'Backorder Detail Report';
31       END;
32     END;
33     RETURN (TRUE);
34   END BEFOREREPORT;
35 
36   FUNCTION AFTERREPORT RETURN BOOLEAN IS
37   BEGIN
38     BEGIN
39       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
40     EXCEPTION
41       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
42         /*SRW.MESSAGE(1
43                    ,'Failed in SRWEXIT')*/NULL;
44         RAISE;
45     END;
46     RETURN (TRUE);
47   END AFTERREPORT;
48 
49   FUNCTION P_ORGANIZATION_IDVALIDTRIGGER RETURN BOOLEAN IS
50   BEGIN
51     RETURN (TRUE);
52   END P_ORGANIZATION_IDVALIDTRIGGER;
53 
54   FUNCTION P_ITEM_FLEX_CODEVALIDTRIGGER RETURN BOOLEAN IS
55   BEGIN
56     RETURN (TRUE);
57   END P_ITEM_FLEX_CODEVALIDTRIGGER;
58 
59   FUNCTION AFTERPFORM RETURN BOOLEAN IS
60   BEGIN
61     DECLARE
62       CURSOR STRUCT_NUM(FLEX_CODE IN VARCHAR2) IS
63         SELECT
64           ID_FLEX_NUM
65         FROM
66           FND_ID_FLEX_STRUCTURES
67         WHERE ID_FLEX_CODE = FLEX_CODE;
68       STRUCT_NUMBER NUMBER;
69     BEGIN
70       BEGIN
71         P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
72         /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
73       EXCEPTION
74         WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
75           /*SRW.MESSAGE(1000
76                      ,'Failed in After Form trigger')*/NULL;
77           RETURN (FALSE);
78       END;
79       --Bug 14133213 start
80       --If sort by is specified then populating the
81       --condition dynamically
82       IF P_SORT_BY IS NOT NULL
83       THEN
84          IF p_source_system ='OE' AND p_sort_by ='ORDER'
85          THEN
86             LP_ORDER_BY := ' TO_NUMBER(wdd.source_header_number)   ';
87          ELSE
88             IF p_sort_by ='ORDER'
89             THEN
90 	       LP_ORDER_BY := ' UPPER(wdd.source_header_number) ';
91             ELSIF p_sort_by ='CUSTOMER'
92             THEN
93 	       LP_ORDER_BY := ' UPPER(substrb(party.party_name,1,50)) ';
94             ELSIF p_sort_by ='WAREHOUSE'
95             THEN
96 	        LP_ORDER_BY := ' UPPER(ood.organization_name) ';
97             END IF;
98          END IF;
99       END IF;
100       --Bug 14133213 end
101       IF P_ORDER_NUM_HIGH IS NOT NULL AND P_ORDER_NUM_LOW IS NOT NULL THEN
102         LP_HEADER_NUMBER := ' AND  to_number(wdd.source_header_number) between :p_order_num_low and :p_order_num_high';
103       ELSIF (P_ORDER_NUM_LOW IS NOT NULL) THEN
104         LP_HEADER_NUMBER := ' and to_number(wdd.source_header_number) >= :p_order_num_low';
105       ELSIF (P_ORDER_NUM_HIGH IS NOT NULL) THEN
106         LP_HEADER_NUMBER := ' and to_number(wdd.source_header_number) <= :p_order_num_high';
107       ELSE
108         LP_HEADER_NUMBER := ' ';
109       END IF;
110       IF P_ITEM_CATE_SET_ID IS NOT NULL THEN
111         LP_ITEM_FROM := ' mtl_item_categories mic, ';
112         LP_ITEM_WHERE := '  and wdd.inventory_item_id = mic.inventory_item_id
113                                      		 and mic.organization_id =  wdd.organization_id
114                                      		 and mic.category_set_id = :p_item_cate_set_id ';
115         IF P_ITEM_CATEGORY_ID IS NOT NULL THEN
116           LP_ITEM_WHERE := LP_ITEM_WHERE || ' and mic.category_id = :p_item_category_id ';
117         END IF;
118       ELSE
119         LP_ITEM_FROM := ' ';
120 	LP_ITEM_WHERE := ' ';
121       END IF;
122       IF P_ITEM_ID IS NOT NULL THEN
123         LP_ITEM_ID := ' and wdd.inventory_item_id = :p_item_id ';
124       ELSE
125         LP_ITEM_ID := ' ';
126       END IF;
127       IF P_TRANSACTION_TYPE_ID IS NOT NULL THEN
128         SELECT
129           NAME
130         INTO RP_ORDER_TYPE_NAME
131         FROM
132           OE_TRXT_TYPES_NOORGS_VL
133         WHERE TRANSACTION_TYPE_ID = P_TRANSACTION_TYPE_ID;
134         LP_ORDER_TYPE := ' and wdd.source_header_type_id = :p_transaction_type_id ';
135       ELSE
136         LP_ORDER_TYPE := ' ';
137       END IF;
138       OPEN STRUCT_NUM(P_ITEM_FLEX_CODE);
139       FETCH STRUCT_NUM
140        INTO STRUCT_NUMBER;
141       CLOSE STRUCT_NUM;
142       LP_STRUCTURE_NUM := STRUCT_NUMBER;
143       IF P_SORT_BY IS NOT NULL THEN
144         BEGIN
145           SELECT meaning
146             INTO rp_sort_by
147             FROM fnd_lookup_values_vl
148             --Bug 14133213 modified the looktype to get the value of sortby
149            WHERE lookup_type = 'WSH_WSHRDBDR_SORT_BY'
150              AND enabled_flag = 'Y'
151              AND lookup_code = P_SORT_BY;
152         EXCEPTION
153           WHEN NO_DATA_FOUND THEN
154             NULL;
155         END;
156       END IF;
157       IF P_CUSTOMER_ID IS NOT NULL THEN
158         BEGIN
159           SELECT
160             SUBSTRB(PARTY.PARTY_NAME
161                    ,1
162                    ,50)
163           INTO RP_CUSTOMER
164           FROM
165             HZ_PARTIES PARTY,
166             HZ_CUST_ACCOUNTS CUST_ACCT
167           WHERE CUST_ACCT.PARTY_ID = PARTY.PARTY_ID
168             AND CUST_ACCT.CUST_ACCOUNT_ID = P_CUSTOMER_ID;
169         EXCEPTION
170           WHEN NO_DATA_FOUND THEN
171             NULL;
172         END;
173         LP_CUSTOMER := ' and wdd.customer_id = :p_customer_id';
174       ELSE
175         LP_CUSTOMER := ' ';
176       END IF;
177       IF P_CREATED_BY_ID IS NOT NULL THEN
178         BEGIN
179           SELECT
180             USER_NAME
181           INTO RP_USER
182           FROM
183             FND_USER
184           WHERE USER_ID = P_CREATED_BY_ID;
185           LP_CREATED_BY := ' and wdd.created_by = :p_created_by_id ';
186         EXCEPTION
187           WHEN NO_DATA_FOUND THEN
188             RP_USER := P_CREATED_BY_ID;
189         END;
190       ELSE
191 	  LP_CREATED_BY := ' ';
192       END IF;
193       IF P_SHIP_TO_COUNTRY_CODE IS NOT NULL THEN
194         BEGIN
195           SELECT
196             TERRITORY_SHORT_NAME
197           INTO RP_TERRITORY_CODE
198           FROM
199             FND_TERRITORIES_VL
200           WHERE TERRITORY_CODE = P_SHIP_TO_COUNTRY_CODE;
201           LP_COUNTRY_FROM := ' wsh_locations wl, ';
202           LP_COUNTRY_WHERE := ' and wdd.ship_to_location_id = wl.wsh_location_id
203                                 				and wl.country = :p_ship_to_country_code ';
204 
205         EXCEPTION
206           WHEN NO_DATA_FOUND THEN
207             RP_TERRITORY_CODE := P_SHIP_TO_COUNTRY_CODE;
208         END;
209       ELSE
210           LP_COUNTRY_FROM := ' ';
211           LP_COUNTRY_WHERE := ' ';
212       END IF;
213       IF P_ORGANIZATION_ID IS NOT NULL THEN
214         LP_WAREHOUSE := ' and wdd.organization_id = :p_organization_id';
215       ELSE
216         LP_WAREHOUSE := ' ';
217       END IF;
218     END;
219     RETURN (TRUE);
220   END AFTERPFORM;
221 
222   FUNCTION C_SET_LBLFORMULA RETURN VARCHAR2 IS
223     SCODE VARCHAR2(80);
224   BEGIN
225     IF P_SOURCE_SYSTEM = 'OE' THEN
226       RP_ORDER_NUM_LOW := P_ORDER_NUM_LOW;
227       RP_ORDER_NUM_HIGH := P_ORDER_NUM_HIGH;
228     END IF;
229     DECLARE
230       ITEM_DISPLAY_MEANING VARCHAR2(80);
231     BEGIN
232       SELECT
233         MEANING
234       INTO ITEM_DISPLAY_MEANING
235       FROM
236         WSH_LOOKUPS
237       WHERE LOOKUP_TYPE = 'ITEM_DISPLAY'
238         AND LOOKUP_CODE = P_ITEM_DISPLAY;
239       RP_FLEX_OR_DESC := ITEM_DISPLAY_MEANING;
240     EXCEPTION
241       WHEN NO_DATA_FOUND THEN
242         RP_FLEX_OR_DESC := NULL;
243     END;
244     IF P_ITEM_CATE_SET_ID IS NOT NULL THEN
245       DECLARE
246         CATEGORY_SET VARCHAR2(40);
247       BEGIN
248         SELECT
249           SUBSTR(DESCRIPTION
250                 ,1
251                 ,40)
252         INTO CATEGORY_SET
253         FROM
254           MTL_CATEGORY_SETS
255         WHERE CATEGORY_SET_ID = P_ITEM_CATE_SET_ID;
256         RP_CATEGORY_SET := CATEGORY_SET;
257       EXCEPTION
258         WHEN NO_DATA_FOUND THEN
259           RP_CATEGORY_SET := 'Not Set up';
260       END;
261     END IF;
262     IF P_ITEM_CATEGORY_ID IS NOT NULL THEN
263       DECLARE
264         CATEGORY VARCHAR2(40);
265       BEGIN
266         SELECT
267           SUBSTR(DESCRIPTION
268                 ,1
269                 ,40)
270         INTO CATEGORY
271         FROM
272           MTL_CATEGORIES
273         WHERE CATEGORY_ID = P_ITEM_CATEGORY_ID;
274         RP_CATEGORY := CATEGORY;
275       EXCEPTION
276         WHEN NO_DATA_FOUND THEN
277           RP_CATEGORY := 'Not Set up';
278       END;
279     END IF;
280     IF P_ORGANIZATION_ID IS NOT NULL THEN
281       DECLARE
282         WAREHOUSE_NAME HR_ORGANIZATION_UNITS.NAME%TYPE;
283       BEGIN
284         SELECT
285           NAME
286         INTO WAREHOUSE_NAME
287         FROM
288           HR_ORGANIZATION_UNITS
289         WHERE ORGANIZATION_ID = P_ORGANIZATION_ID;
290         RP_WAREHOUSE := WAREHOUSE_NAME;
291       EXCEPTION
292         WHEN NO_DATA_FOUND THEN
293           RP_WAREHOUSE := NULL;
294       END;
295     END IF;
296     IF P_ITEM_ID IS NOT NULL THEN
297       RP_ITEM := WSH_UTIL_CORE.GET_ITEM_NAME(P_ITEM_ID
298                                             ,P_ORGANIZATION_ID
299                                             ,P_ITEM_FLEX_CODE
300                                             ,LP_STRUCTURE_NUM);
301     END IF;
302     BEGIN
303       SELECT
304         MEANING
305       INTO SCODE
306       FROM
307         WSH_LOOKUPS
308       WHERE LOOKUP_CODE = P_SOURCE_SYSTEM
309         AND LOOKUP_TYPE = 'SOURCE_SYSTEM';
310     EXCEPTION
311       WHEN NO_DATA_FOUND THEN
312         NULL;
313     END;
314     RP_SOURCE_SYSTEM := SCODE;
315     RETURN (1);
316     RETURN NULL;
317   END C_SET_LBLFORMULA;
318 
319   FUNCTION CF_ITEM_DISPLAYFORMULA(INVENTORY_ITEM_ID IN NUMBER
320                                  ,ORGANIZATION_ID IN NUMBER
321                                  ,ITEM_DESCRIPTION IN VARCHAR2) RETURN VARCHAR2 IS
322   BEGIN
323     DECLARE
324       CURSOR INVENTORY_LABEL(ID IN NUMBER,ORG_ID IN NUMBER) IS
325         SELECT
326           DESCRIPTION
327         FROM
328           MTL_SYSTEM_ITEMS_VL
329         WHERE INVENTORY_ITEM_ID = ID
330           AND ORGANIZATION_ID = ORG_ID;
331       NAME VARCHAR2(800);
332     BEGIN
333       IF P_ITEM_DISPLAY = 'D' THEN
334         IF INVENTORY_ITEM_ID IS NOT NULL THEN
335           OPEN INVENTORY_LABEL(INVENTORY_ITEM_ID,ORGANIZATION_ID);
336           FETCH INVENTORY_LABEL
337            INTO NAME;
338           CLOSE INVENTORY_LABEL;
339         ELSE
340           NAME := ITEM_DESCRIPTION;
341         END IF;
342       ELSIF P_ITEM_DISPLAY = 'F' THEN
343         NAME := WSH_UTIL_CORE.GET_ITEM_NAME(INVENTORY_ITEM_ID
344                                            ,ORGANIZATION_ID
345                                            ,P_ITEM_FLEX_CODE
346                                            ,LP_STRUCTURE_NUM);
347       ELSE
348         IF INVENTORY_ITEM_ID IS NOT NULL THEN
349           OPEN INVENTORY_LABEL(INVENTORY_ITEM_ID,ORGANIZATION_ID);
350           FETCH INVENTORY_LABEL
351            INTO NAME;
352           CLOSE INVENTORY_LABEL;
353         ELSE
354           NAME := ITEM_DESCRIPTION;
355         END IF;
356         NAME := WSH_UTIL_CORE.GET_ITEM_NAME(INVENTORY_ITEM_ID
357                                            ,ORGANIZATION_ID
358                                            ,P_ITEM_FLEX_CODE
359                                            ,LP_STRUCTURE_NUM) || '     ' || NAME;
360       END IF;
361       RETURN NAME;
362     END;
363     RETURN NULL;
364   END CF_ITEM_DISPLAYFORMULA;
365 
366   FUNCTION CF_LINE_ITEM_DISPLAYFORMULA(LINE_ITEM IN NUMBER
367                                       ,ORGANIZATION_ID IN NUMBER
368                                       ,ITEM_DESCRIPTION IN VARCHAR2) RETURN VARCHAR2 IS
369   BEGIN
370     DECLARE
371       CURSOR INVENTORY_LABEL(ID IN NUMBER,ORG_ID IN NUMBER) IS
372         SELECT
373           DESCRIPTION
374         FROM
375           MTL_SYSTEM_ITEMS_VL
376         WHERE INVENTORY_ITEM_ID = ID
377           AND ORGANIZATION_ID = ORG_ID;
378       NAME VARCHAR2(800);
379     BEGIN
380       IF P_ITEM_DISPLAY = 'D' THEN
381         IF LINE_ITEM IS NOT NULL THEN
382           OPEN INVENTORY_LABEL(LINE_ITEM,ORGANIZATION_ID);
383           FETCH INVENTORY_LABEL
384            INTO NAME;
385           CLOSE INVENTORY_LABEL;
386         ELSE
387           NAME := ITEM_DESCRIPTION;
388         END IF;
389       ELSIF P_ITEM_DISPLAY = 'F' THEN
390         NAME := WSH_UTIL_CORE.GET_ITEM_NAME(LINE_ITEM
391                                            ,ORGANIZATION_ID
392                                            ,P_ITEM_FLEX_CODE
393                                            ,LP_STRUCTURE_NUM);
394       ELSE
395         IF LINE_ITEM IS NOT NULL THEN
396           OPEN INVENTORY_LABEL(LINE_ITEM,ORGANIZATION_ID);
397           FETCH INVENTORY_LABEL
398            INTO NAME;
399           CLOSE INVENTORY_LABEL;
400         ELSE
401           NAME := ITEM_DESCRIPTION;
402         END IF;
403         NAME := WSH_UTIL_CORE.GET_ITEM_NAME(LINE_ITEM
404                                            ,ORGANIZATION_ID
405                                            ,P_ITEM_FLEX_CODE
406                                            ,LP_STRUCTURE_NUM) || '     ' || NAME;
407       END IF;
408       RETURN NAME;
409     END;
410     RETURN NULL;
411   END CF_LINE_ITEM_DISPLAYFORMULA;
412 
413   FUNCTION CF_LINE_SHIPPED_QTYFORMULA(SOURCE_LINE_SET_ID IN NUMBER
414                                      ,SOURCE_HEADER_ID IN NUMBER
415                                      ,REQUESTED_QUANTITY_UOM IN VARCHAR2
416                                      ,ORDER_UOM IN VARCHAR2
417                                      ,LINE_ITEM IN NUMBER) RETURN NUMBER IS
418   BEGIN
419     DECLARE
420       L_SHIPPED_QTY NUMBER;
421       SHIPPED_QTY_ORD_UOM NUMBER;
422     BEGIN
423       IF SOURCE_LINE_SET_ID IS NOT NULL THEN
424         BEGIN
425           SELECT
426             SUM(NVL(SHIPPED_QUANTITY
427                    ,0))
428           INTO L_SHIPPED_QTY
429           FROM
430             WSH_DELIVERY_DETAILS
431           WHERE SOURCE_HEADER_ID = CF_LINE_SHIPPED_QTYFORMULA.SOURCE_HEADER_ID
432             AND SOURCE_LINE_SET_ID = CF_LINE_SHIPPED_QTYFORMULA.SOURCE_LINE_SET_ID
433             AND RELEASED_STATUS = 'C'
434             AND SOURCE_CODE = P_SOURCE_SYSTEM
435           GROUP BY
436             SOURCE_LINE_SET_ID;
437         EXCEPTION
438           WHEN NO_DATA_FOUND THEN
439             SELECT
440               SUM(NVL(SHIPPED_QUANTITY
441                      ,0))
442             INTO L_SHIPPED_QTY
443             FROM
444               WSH_DELIVERY_DETAILS WDD
445             WHERE SOURCE_LINE_ID = CF_LINE_SHIPPED_QTYFORMULA.SOURCE_LINE_SET_ID
446               AND RELEASED_STATUS = 'C'
447               AND SOURCE_CODE = P_SOURCE_SYSTEM
448             GROUP BY
449               SOURCE_LINE_ID;
450         END;
451       END IF;
452       SHIPPED_QTY_ORD_UOM := WSH_WV_UTILS.CONVERT_UOM(REQUESTED_QUANTITY_UOM
453                                                      ,ORDER_UOM
454                                                      ,L_SHIPPED_QTY
455                                                      ,LINE_ITEM);
456       RETURN (NVL(SHIPPED_QTY_ORD_UOM
457                 ,0));
458     EXCEPTION
459       WHEN NO_DATA_FOUND THEN
460         RETURN 0;
461     END;
462   END CF_LINE_SHIPPED_QTYFORMULA;
463 
464     FUNCTION CF_SELLING_PRICEFORMULA(SOURCE_LINE_ID IN NUMBER) RETURN NUMBER IS
465     SPRICE NUMBER;
466   BEGIN
467     IF P_SOURCE_SYSTEM = 'OE' THEN
468       SELECT
469         OL.UNIT_SELLING_PRICE
470       INTO SPRICE
471       FROM
472         OE_ORDER_LINES_ALL OL
473       WHERE OL.LINE_ID = CF_SELLING_PRICEFORMULA.SOURCE_LINE_ID;
474     END IF;
475     RETURN (SPRICE);
476   EXCEPTION
477     WHEN OTHERS THEN
478       RETURN (NULL);
479   END CF_SELLING_PRICEFORMULA;
480 
481   FUNCTION CF_LINE_BO_QTYFORMULA(SOURCE_LINE_SET_ID IN NUMBER
482                                 ,SOURCE_HEADER_ID IN NUMBER
483                                 ,REQUESTED_QUANTITY_UOM IN VARCHAR2
484                                 ,ORDER_UOM IN VARCHAR2
485                                 ,LINE_ITEM IN NUMBER) RETURN NUMBER IS
486   BEGIN
487     DECLARE
488       BO_QTY NUMBER;
489       BO_QTY_ORD_UOM NUMBER;
490     BEGIN
491       IF SOURCE_LINE_SET_ID IS NOT NULL THEN
492         BEGIN
493           SELECT
494             SUM(NVL(REQUESTED_QUANTITY
495                    ,0))
496           INTO BO_QTY
497           FROM
498             WSH_DELIVERY_DETAILS
499           WHERE SOURCE_HEADER_ID = CF_LINE_BO_QTYFORMULA.SOURCE_HEADER_ID
500             AND SOURCE_LINE_SET_ID = CF_LINE_BO_QTYFORMULA.SOURCE_LINE_SET_ID
501             AND RELEASED_STATUS = 'B'
502 	    AND   replenishment_status IS NULL -- bug#6689448 (replenishment project)
503             AND SOURCE_CODE = P_SOURCE_SYSTEM
504           GROUP BY
505             SOURCE_LINE_SET_ID;
506         EXCEPTION
507           WHEN NO_DATA_FOUND THEN
508             SELECT
509               SUM(NVL(REQUESTED_QUANTITY
510                      ,0))
511             INTO BO_QTY
512             FROM
513               WSH_DELIVERY_DETAILS
514             WHERE SOURCE_LINE_ID = CF_LINE_BO_QTYFORMULA.SOURCE_LINE_SET_ID
515               AND RELEASED_STATUS = 'B'
516               AND   replenishment_status IS NULL -- bug#6689448 (replenishment project)
517               AND SOURCE_CODE = P_SOURCE_SYSTEM;
518         END;
519       END IF;
520       BO_QTY_ORD_UOM := WSH_WV_UTILS.CONVERT_UOM(REQUESTED_QUANTITY_UOM
521                                                 ,ORDER_UOM
522                                                 ,BO_QTY
523                                                 ,LINE_ITEM);
524       RETURN (NVL(BO_QTY_ORD_UOM
525                 ,0));
526     EXCEPTION
527       WHEN NO_DATA_FOUND THEN
528         RETURN 0;
529     END;
530   END CF_LINE_BO_QTYFORMULA;
531 
532   FUNCTION CF_LINE_ORDERED_AMTFORMULA(CF_LINE_ORDERED_QTY IN NUMBER
533                                      ,CF_selling_price IN NUMBER) RETURN NUMBER IS
534   BEGIN
535     DECLARE
536       ORD_AMT NUMBER;
537     BEGIN
538       ORD_AMT := TRUNC((NVL(CF_LINE_ORDERED_QTY
539                           ,0) * NVL(CF_selling_price
540                           ,0))
541                       ,4);
542       RETURN (ORD_AMT);
543     END;
544   END CF_LINE_ORDERED_AMTFORMULA;
545 
546   FUNCTION CF_LINE_BO_AMTFORMULA(CF_LINE_BO_QTY IN NUMBER
547                                 ,CF_selling_price IN NUMBER) RETURN NUMBER IS
548   BEGIN
549     DECLARE
550       BO_AMT NUMBER;
551     BEGIN
552       BO_AMT := TRUNC((NVL(CF_LINE_BO_QTY
553                          ,0) * NVL(CF_selling_price
554                          ,0))
555                      ,4);
556       RETURN (BO_AMT);
557     END;
558   END CF_LINE_BO_AMTFORMULA;
559 
560   FUNCTION CF_LINE_ORDERED_QTYFORMULA(SOURCE_LINE_SET_ID IN NUMBER) RETURN NUMBER IS
561   BEGIN
562     DECLARE
563       LINE_SET_ORD_QTY NUMBER;
564     BEGIN
565       IF P_SOURCE_SYSTEM = 'OE' THEN
566         IF SOURCE_LINE_SET_ID IS NOT NULL THEN
567           BEGIN
568             SELECT
569               SUM(NVL(ORDERED_QUANTITY
570                      ,0))
571             INTO LINE_SET_ORD_QTY
572             FROM
573               OE_ORDER_LINES_ALL
574             WHERE LINE_SET_ID = SOURCE_LINE_SET_ID
575             GROUP BY
576               LINE_SET_ID;
577           EXCEPTION
578             WHEN NO_DATA_FOUND THEN
579               SELECT
580                 SUM(NVL(ORDERED_QUANTITY
581                        ,0))
582               INTO LINE_SET_ORD_QTY
583               FROM
584                 OE_ORDER_LINES_ALL
585               WHERE LINE_ID = SOURCE_LINE_SET_ID;
586           END;
587         END IF;
588         RETURN LINE_SET_ORD_QTY;
589       ELSE
590         RETURN NULL;
591       END IF;
592     EXCEPTION
593       WHEN NO_DATA_FOUND THEN
594         RETURN 0;
595     END;
596   END CF_LINE_ORDERED_QTYFORMULA;
597 
598   FUNCTION CF_PROMISE_DATEFORMULA(SOURCE_LINE_ID IN NUMBER) RETURN DATE IS
599     PDATE VARCHAR2(20);
600   BEGIN
601     IF P_SOURCE_SYSTEM = 'OE' THEN
602       SELECT
603         OL.PROMISE_DATE
604       INTO PDATE
605       FROM
606         OE_ORDER_LINES_ALL OL
607       WHERE OL.LINE_ID = SOURCE_LINE_ID;
608     END IF;
609     RETURN (PDATE);
610   EXCEPTION
611     WHEN OTHERS THEN
612       RETURN (NULL);
613   END CF_PROMISE_DATEFORMULA;
614 
615   FUNCTION CF_DAYS_LATEFORMULA(CF_PROMISE_DATE IN DATE) RETURN NUMBER IS
616  --   DLATE NUMBER;
617   BEGIN
618     DLATE := TRUNC(SYSDATE) - TRUNC(CF_PROMISE_DATE);
619     RETURN (DLATE);
620   END CF_DAYS_LATEFORMULA;
621 
622   FUNCTION CF_SOURCE_CODEFORMULA(SOURCE_CODE IN VARCHAR2) RETURN CHAR IS
623     SCODE VARCHAR2(80);
624   BEGIN
625     SELECT
626       MEANING
627     INTO SCODE
628     FROM
629       WSH_LOOKUPS
630     WHERE LOOKUP_CODE = CF_SOURCE_CODEFORMULA.SOURCE_CODE
631       AND LOOKUP_TYPE = 'SOURCE_SYSTEM';
632     RETURN (SCODE);
633   END CF_SOURCE_CODEFORMULA;
634 
635   FUNCTION CF_DISTINCT_UOMFORMULA(ORDER_NUMBER IN VARCHAR2) RETURN NUMBER IS
636     UOM_COUNT NUMBER;
637   BEGIN
638     SELECT
639       count(distinct( LINES.ORDER_QUANTITY_UOM ))
640     INTO UOM_COUNT
641     FROM
642       OE_ORDER_LINES_ALL LINES,
643       OE_ORDER_HEADERS_ALL HEAD
644     WHERE LINES.HEADER_ID = HEAD.HEADER_ID
645       AND HEAD.ORDER_NUMBER = CF_DISTINCT_UOMFORMULA.ORDER_NUMBER;
646     IF UOM_COUNT > 1 THEN
647       RETURN 0;
648     ELSE
649       RETURN 1;
650     END IF;
651     -- bug 14133213 added exception handling
652     -- because in case of source as OKE the order number can be string
653     -- and the above code will give invalid number exception.
654   EXCEPTION
655    WHEN OTHERS THEN
656       RETURN 1;
657   END CF_DISTINCT_UOMFORMULA;
658 
659   FUNCTION CF_SORT_ENABLEDFORMULA(CS_COUNT_DUOM IN NUMBER
660                                  ,CS_SUM_DUOM IN NUMBER) RETURN NUMBER IS
661   BEGIN
662     IF CS_COUNT_DUOM <> CS_SUM_DUOM THEN
663       RETURN 0;
664     ELSE
665       RETURN 1;
666     END IF;
667   END CF_SORT_ENABLEDFORMULA;
668 
669   FUNCTION CF_CURR_ENABLEDFORMULA(CS_COUNT_SORT_ENABLED IN NUMBER
670                                  ,CS_SUM_SORT_ENABLED IN NUMBER) RETURN NUMBER IS
671   BEGIN
672     IF CS_COUNT_SORT_ENABLED <> CS_SUM_SORT_ENABLED THEN
673       RETURN 0;
674     ELSE
675       RETURN 1;
676     END IF;
677   END CF_CURR_ENABLEDFORMULA;
678 
679   FUNCTION RP_REPORT_NAME_P RETURN VARCHAR2 IS
680   BEGIN
681     RETURN RP_REPORT_NAME;
682   END RP_REPORT_NAME_P;
683 
684   FUNCTION RP_SUB_TITLE_P RETURN VARCHAR2 IS
685   BEGIN
686     RETURN RP_SUB_TITLE;
687   END RP_SUB_TITLE_P;
688 
689   FUNCTION RP_DATA_FOUND_P RETURN VARCHAR2 IS
690   BEGIN
691     RETURN RP_DATA_FOUND;
692   END RP_DATA_FOUND_P;
693 
694   FUNCTION RP_ITEM_FLEX_ALL_SEG_P RETURN VARCHAR2 IS
695   BEGIN
696     RETURN RP_ITEM_FLEX_ALL_SEG;
697   END RP_ITEM_FLEX_ALL_SEG_P;
698 
699   FUNCTION RP_ITEM_FLEX_ALL_SEG_WHERE_P RETURN VARCHAR2 IS
700   BEGIN
701     RETURN RP_ITEM_FLEX_ALL_SEG_WHERE;
702   END RP_ITEM_FLEX_ALL_SEG_WHERE_P;
703 
704   FUNCTION RP_ORDER_BY_P RETURN VARCHAR2 IS
705   BEGIN
706     RETURN RP_ORDER_BY;
707   END RP_ORDER_BY_P;
708 
709   FUNCTION RP_FLEX_OR_DESC_P RETURN VARCHAR2 IS
710   BEGIN
711     RETURN RP_FLEX_OR_DESC;
712   END RP_FLEX_OR_DESC_P;
713 
714   FUNCTION RP_ORDER_RANGE_P RETURN VARCHAR2 IS
715   BEGIN
716     RETURN RP_ORDER_RANGE;
717   END RP_ORDER_RANGE_P;
718 
719   FUNCTION RP_CATEGORY_SET_P RETURN VARCHAR2 IS
720   BEGIN
721     RETURN RP_CATEGORY_SET;
722   END RP_CATEGORY_SET_P;
723 
724   FUNCTION RP_CATEGORY_P RETURN VARCHAR2 IS
725   BEGIN
726     RETURN RP_CATEGORY;
727   END RP_CATEGORY_P;
728 
729   FUNCTION RP_ORDER_NUM_HIGH_P RETURN NUMBER IS
730   BEGIN
731     RETURN RP_ORDER_NUM_HIGH;
732   END RP_ORDER_NUM_HIGH_P;
733 
734   FUNCTION RP_ORDER_NUM_LOW_P RETURN NUMBER IS
735   BEGIN
736     RETURN RP_ORDER_NUM_LOW;
737   END RP_ORDER_NUM_LOW_P;
738 
739   FUNCTION RP_WAREHOUSE_P RETURN VARCHAR2 IS
740   BEGIN
741     RETURN RP_WAREHOUSE;
742   END RP_WAREHOUSE_P;
743 
744   FUNCTION RP_ITEM_P RETURN VARCHAR2 IS
745   BEGIN
746     RETURN RP_ITEM;
747   END RP_ITEM_P;
748 
749   FUNCTION RP_SOURCE_SYSTEM_P RETURN VARCHAR2 IS
750   BEGIN
751     RETURN RP_SOURCE_SYSTEM;
752   END RP_SOURCE_SYSTEM_P;
753 
754   PROCEDURE SET_NAME(APPLICATION IN VARCHAR2
755                     ,NAME IN VARCHAR2) IS
756   BEGIN
757     /*STPROC.INIT('begin FND_MESSAGE.SET_NAME(:APPLICATION, :NAME); end;');
758     STPROC.BIND_I(APPLICATION);
759     STPROC.BIND_I(NAME);
760     STPROC.EXECUTE; */NULL;
761   END SET_NAME;
762 
763   PROCEDURE SET_TOKEN(TOKEN IN VARCHAR2
764                      ,VALUE IN VARCHAR2
765                      ,TRANSLATE IN BOOLEAN) IS
766   BEGIN
767     /*STPROC.INIT('declare TRANSLATE BOOLEAN; begin TRANSLATE := sys.diutil.int_to_bool(:TRANSLATE); FND_MESSAGE.SET_TOKEN(:TOKEN, :VALUE, TRANSLATE); end;');
768     STPROC.BIND_I(TRANSLATE);
769     STPROC.BIND_I(TOKEN);
770     STPROC.BIND_I(VALUE);
771     STPROC.EXECUTE;*/NULL;
772   END SET_TOKEN;
773 
774   PROCEDURE RETRIEVE(MSGOUT OUT NOCOPY VARCHAR2) IS
775   BEGIN
776     /*STPROC.INIT('begin FND_MESSAGE.RETRIEVE(:MSGOUT); end;');
777     STPROC.BIND_O(MSGOUT);
778     STPROC.EXECUTE;
779     STPROC.RETRIEVE(1
780                    ,MSGOUT);*/NULL;
781   END RETRIEVE;
782 
783   PROCEDURE CLEAR IS
784   BEGIN
785     /*STPROC.INIT('begin FND_MESSAGE.CLEAR; end;');
786     STPROC.EXECUTE;*/NULL;
787   END CLEAR;
788 
789   FUNCTION GET_STRING(APPIN IN VARCHAR2
790                      ,NAMEIN IN VARCHAR2) RETURN VARCHAR2 IS
791     X0 VARCHAR2(2000);
792   BEGIN
793     /*STPROC.INIT('begin :X0 := FND_MESSAGE.GET_STRING(:APPIN, :NAMEIN); end;');
794     STPROC.BIND_O(X0);
795     STPROC.BIND_I(APPIN);
796     STPROC.BIND_I(NAMEIN);
797     STPROC.EXECUTE;
798     STPROC.RETRIEVE(1
799                    ,X0);
800     RETURN X0;*/
801     RETURN(NULL);
802   END GET_STRING;
803 
804   FUNCTION GET_NUMBER(APPIN IN VARCHAR2
805                      ,NAMEIN IN VARCHAR2) RETURN NUMBER IS
806     X0 NUMBER;
807   BEGIN
808     /*STPROC.INIT('begin :X0 := FND_MESSAGE.GET_NUMBER(:APPIN, :NAMEIN); end;');
809     STPROC.BIND_O(X0);
810     STPROC.BIND_I(APPIN);
811     STPROC.BIND_I(NAMEIN);
812     STPROC.EXECUTE;
813     STPROC.RETRIEVE(1
814                    ,X0);
815     RETURN X0;*/
816     RETURN(NULL);
817   END GET_NUMBER;
818 
819   FUNCTION GET RETURN VARCHAR2 IS
820     X0 VARCHAR2(2000);
821   BEGIN
822     /*STPROC.INIT('begin :X0 := FND_MESSAGE.GET; end;');
823     STPROC.BIND_O(X0);
824     STPROC.EXECUTE;
825     STPROC.RETRIEVE(1
826                    ,X0);
827     RETURN X0;*/
828     RETURN(NULL);
829   END GET;
830 
831   FUNCTION GET_ENCODED RETURN VARCHAR2 IS
832     X0 VARCHAR2(2000);
833   BEGIN
834     /*STPROC.INIT('begin :X0 := FND_MESSAGE.GET_ENCODED; end;');
835     STPROC.BIND_O(X0);
836     STPROC.EXECUTE;
837     STPROC.RETRIEVE(1
838                    ,X0);
839     RETURN X0;*/
840     RETURN(NULL);
841   END GET_ENCODED;
842 
843   PROCEDURE PARSE_ENCODED(ENCODED_MESSAGE IN VARCHAR2
844                          ,APP_SHORT_NAME OUT NOCOPY VARCHAR2
845                          ,MESSAGE_NAME OUT NOCOPY VARCHAR2) IS
846   BEGIN
847     /*STPROC.INIT('begin FND_MESSAGE.PARSE_ENCODED(:ENCODED_MESSAGE, :APP_SHORT_NAME, :MESSAGE_NAME); end;');
848     STPROC.BIND_I(ENCODED_MESSAGE);
849     STPROC.BIND_O(APP_SHORT_NAME);
850     STPROC.BIND_O(MESSAGE_NAME);
851     STPROC.EXECUTE;
852     STPROC.RETRIEVE(2
853                    ,APP_SHORT_NAME);
854     STPROC.RETRIEVE(3
855                    ,MESSAGE_NAME);*/
856       NULL;
857   END PARSE_ENCODED;
858 
859   PROCEDURE SET_ENCODED(ENCODED_MESSAGE IN VARCHAR2) IS
860   BEGIN
861     /*STPROC.INIT('begin FND_MESSAGE.SET_ENCODED(:ENCODED_MESSAGE); end;');
862     STPROC.BIND_I(ENCODED_MESSAGE);
863     STPROC.EXECUTE;*/NULL;
864   END SET_ENCODED;
865 
866   PROCEDURE RAISE_ERROR IS
867   BEGIN
868 /*    STPROC.INIT('begin FND_MESSAGE.RAISE_ERROR; end;');
869     STPROC.EXECUTE;*/NULL;
870   END RAISE_ERROR;
871 
872 END WSH_WSHRDBDR_XMLP_PKG;
873 
874