DBA Data[Home] [Help]

PACKAGE BODY: APPS.WSH_WSHRDPIK_XMLP_PKG

Source


1 PACKAGE BODY WSH_WSHRDPIK_XMLP_PKG AS
2 /* $Header: WSHRDPIKB.pls 120.4.12020000.2 2012/07/04 10:49:20 suppal ship $ */
3   FUNCTION AFTERPFORM RETURN BOOLEAN IS
4     CURSOR MAP_YES_NO(T IN VARCHAR2) IS
5       SELECT
6         MEANING
7       FROM
8         OE_LOOKUPS
9       WHERE LOOKUP_CODE = T
10         AND LOOKUP_TYPE = 'YES_NO'
11         AND TRUNC(SYSDATE) BETWEEN NVL(START_DATE_ACTIVE
12          ,TRUNC(SYSDATE))
13         AND NVL(END_DATE_ACTIVE
14          ,TRUNC(SYSDATE));
15     CURSOR STRUCT_NUM(FLEX_CODE IN VARCHAR2) IS
16       SELECT
17         ID_FLEX_NUM
18       FROM
19         FND_ID_FLEX_STRUCTURES
20       WHERE ID_FLEX_CODE = FLEX_CODE;
21     CLAUSE VARCHAR2(300);
22     VALUE VARCHAR2(300);
23     STRUCT_NUMBER NUMBER;
24   BEGIN
25     BEGIN
26       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
27       /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
28     EXCEPTION
29       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
30         /*SRW.MESSAGE(1000
31                    ,'Failed in After Form trigger')*/NULL;
32         RETURN (FALSE);
33     END;
34     IF (P_MOVE_ORDER_LOW IS NOT NULL AND P_MOVE_ORDER_HIGH IS NOT NULL) THEN
35       IF (P_MOVE_ORDER_LOW = P_MOVE_ORDER_HIGH) THEN
36         LP_MO_CLAUSE := 'and mtrh.request_number = :p_move_order_high';
37       ELSE
38         LP_MO_CLAUSE := 'and mtrh.request_number between :p_move_order_low and :p_move_order_high';
39       END IF;
40     ELSIF (P_MOVE_ORDER_LOW IS NULL AND P_MOVE_ORDER_HIGH IS NOT NULL) THEN
41       LP_MO_CLAUSE := 'and mtrh.request_number <= :p_move_order_high';
42     ELSIF (P_MOVE_ORDER_LOW IS NOT NULL AND P_MOVE_ORDER_HIGH IS NULL) THEN
43       LP_MO_CLAUSE := 'and mtrh.request_number >= :p_move_order_low';
44     END IF;
45     IF P_ITEM_DISPLAY = 'D' THEN
46       LP_ITEM_DISPLAY_VALUE := 'decode(wdd.inventory_item_id,NULL,wdd.item_description, msitl.description)';
47     ELSE
48       LP_ITEM_DISPLAY_VALUE := 'to_char(wdd.inventory_item_id)';
49     END IF;
50     IF (P_PICK_SLIP_NUM_LOW IS NOT NULL AND P_PICK_SLIP_NUM_HIGH IS NOT NULL) THEN
51       IF (P_PICK_SLIP_NUM_LOW = P_PICK_SLIP_NUM_HIGH) THEN
52         LP_PICK_SLIP_NUM := 'and wpsv.pick_slip_number = :p_pick_slip_num_high';
53         LP_PICK_SLIP_NUM_MMT := 'and mmt.pick_slip_number = :p_pick_slip_num_high';
54         LP_PICK_SLIP_NUM_MTRL := 'and mtrl.pick_slip_number = :p_pick_slip_num_high';
55       ELSE
56         LP_PICK_SLIP_NUM := 'and (wpsv.pick_slip_number between :p_pick_slip_num_low and :p_pick_slip_num_high)';
57         LP_PICK_SLIP_NUM_MMT := 'and (mmt.pick_slip_number between :p_pick_slip_num_low and :p_pick_slip_num_high)';
58         LP_PICK_SLIP_NUM_MTRL := 'and (mtrl.pick_slip_number between :p_pick_slip_num_low and :p_pick_slip_num_high)';
59       END IF;
60     ELSIF (P_PICK_SLIP_NUM_LOW IS NULL AND P_PICK_SLIP_NUM_HIGH IS NOT NULL) THEN
61       LP_PICK_SLIP_NUM := 'and wpsv.pick_slip_number <= :p_pick_slip_num_high';
62       LP_PICK_SLIP_NUM_MMT := 'and mmt.pick_slip_number <= :p_pick_slip_num_high';
63       LP_PICK_SLIP_NUM_MTRL := 'and mtrl.pick_slip_number <= :p_pick_slip_num_high';
64     ELSIF (P_PICK_SLIP_NUM_LOW IS NOT NULL AND P_PICK_SLIP_NUM_HIGH IS NULL) THEN
65       LP_PICK_SLIP_NUM := 'and wpsv.pick_slip_number >= :p_pick_slip_num_low';
66       LP_PICK_SLIP_NUM_MMT := 'and mmt.pick_slip_number >= :p_pick_slip_num_low';
67       LP_PICK_SLIP_NUM_MTRL := 'and mtrl.pick_slip_number >= :p_pick_slip_num_low';
68     END IF;
69     IF (P_ORDER_NUM_HIGH IS NOT NULL AND P_ORDER_NUM_LOW IS NOT NULL) THEN
70       IF (P_ORDER_NUM_HIGH = P_ORDER_NUM_LOW) THEN
71         LP_ORDER_NUM := ' and wdd.source_header_number = :p_order_num_low';
72       ELSE --Bug9508781
73         LP_ORDER_NUM := ' and wdd.source_header_number >= :p_order_num_low and wdd.source_header_number <=  :p_order_num_high';
74       END IF;
75     ELSIF (P_ORDER_NUM_LOW IS NOT NULL) THEN
76       LP_ORDER_NUM := ' and wdd.source_header_number >= :p_order_num_low';
77     ELSIF (P_ORDER_NUM_HIGH IS NOT NULL) THEN
78       LP_ORDER_NUM := ' and wdd.source_header_number <=  :p_order_num_high ';
79     END IF;
80     IF P_ORDER_TYPE_ID IS NOT NULL THEN
81       LP_ORDER_TYPE := ' AND  wdd.source_header_type_id  = :p_order_type_id ';
82     END IF;
83     IF LP_DETAIL_DATE_HIGH IS NOT NULL THEN
84       LP_DETAIL_DATE_HIGH := LP_DETAIL_DATE_HIGH + (86399 / 86400);
85     END IF;
86     IF (P_DETAIL_DATE_LOW IS NOT NULL AND LP_DETAIL_DATE_HIGH IS NOT NULL) THEN
87       LP_DETAIL_DATE_MMT := 'and (mmt.transaction_date between :p_detail_date_low and :lp_detail_date_high)';
88       LP_DETAIL_DATE_MTRL := 'and (mtrl.pick_slip_date between :p_detail_date_low and :lp_detail_date_high)';
89       LP_DETAIL_DATE_UNPICK := 'and (wpsv.creation_date between :p_detail_date_low and :lp_detail_date_high)';
90     ELSIF (P_DETAIL_DATE_LOW IS NULL AND LP_DETAIL_DATE_HIGH IS NOT NULL) THEN
91       LP_DETAIL_DATE_MMT := 'and mmt.transaction_date <= :lp_detail_date_high';
92       LP_DETAIL_DATE_MTRL := 'and mtrl.pick_slip_date <= :lp_detail_date_high';
93       LP_DETAIL_DATE_UNPICK := 'and wpsv.creation_date <= :lp_detail_date_high';
94     ELSIF (P_DETAIL_DATE_LOW IS NOT NULL AND P_DETAIL_DATE_HIGH IS NULL) THEN
95       LP_DETAIL_DATE_MMT := 'and mmt.transaction_date >= :p_detail_date_low';
96       LP_DETAIL_DATE_MTRL := 'and mtrl.pick_slip_date >= :p_detail_date_low';
97       LP_DETAIL_DATE_UNPICK := 'and wpsv.creation_date >= :p_detail_date_low';
98     END IF;
99     IF (P_CUSTOMER_ID IS NOT NULL) THEN
100       LP_CUSTOMER_ID := 'and wdd.customer_id = :p_customer_id';
101     END IF;
102     IF (P_FREIGHT_CODE IS NOT NULL) THEN
103       LP_SHIP_METHOD_CODE := 'and wdd.ship_method_code = :p_freight_code';
104     END IF;
105     LP_PICK_STATUS := ' ';
106     LP_PICK_STATUS_UNPICK := ' ';
107     IF P_PICK_STATUS <> 'A' THEN
108       IF P_PICK_STATUS = 'U' THEN
109         P_PICK_STATUS_VALUE := 'UNPICKED';
110         LP_PICK_STATUS := 'and 1 <> 1';
111       ELSIF P_PICK_STATUS = 'P' THEN
112         P_PICK_STATUS_VALUE := 'PICKED';
113         LP_PICK_STATUS_UNPICK := 'and 1 <> 1';
114       END IF;
115     END IF;
116     IF P_ORGANIZATION_ID IS NOT NULL THEN
117       LP_WAREHOUSE_CLAUSE := 'AND mtrl.organization_id = :p_organization_id';
118     END IF;
119     IF P_PRINTER_NAME = '-1' THEN
120       LP_PRINTER_NAME := 'and wpsv.subinventory_code not in
121                                      ( Select subinventory from wsh_report_printers wrp
122                                        where wrp.level_type_id = :P_LEVEL_TYPE_ID1
123                                        and   wrp.enabled_flag = :P_ENABLED_FLAG
124                                        and   wrp.CONCURRENT_PROGRAM_ID =  (
125                                                  select concurrent_program_id from
126                                                  fnd_concurrent_programs_vl
127                                                  where concurrent_program_name = :P_CONCURRENT_PROGRAM_NAME
128                                                  and application_id = :P_APPLICATION_ID
129                                                  and rownum = 1 )
130                                        and wrp.organization_id = wdd.organization_id  )
131                                     and wdd.organization_id  not in
132                                      ( Select wrp.level_value_id from wsh_report_printers wrp
133                                        where  wrp.level_type_id = :P_LEVEL_TYPE_ID2
134                                        and wrp.enabled_flag = :P_ENABLED_FLAG
135                                        and   wrp.CONCURRENT_PROGRAM_ID =  (
136                                                  select concurrent_program_id from
137                                                  fnd_concurrent_programs_vl
138                                                  where concurrent_program_name = :P_CONCURRENT_PROGRAM_NAME
139                                                  and application_id = :P_APPLICATION_ID
140                                                  and rownum = 1 ) )  ';
141     ELSIF P_PRINTER_NAME IS NOT NULL THEN
142       LP_PRINTER_NAME := 'and  ( wpsv.subinventory_code  in
143                                       ( Select wrp.subinventory from wsh_report_printers wrp
144                                        where wrp.level_type_id = :P_LEVEL_TYPE_ID1
145                                        and   wrp.enabled_flag = :P_ENABLED_FLAG
146                                        and   wrp.CONCURRENT_PROGRAM_ID = (
147                                                  select concurrent_program_id from
148                                                  fnd_concurrent_programs_vl
149                                                  where concurrent_program_name = :P_CONCURRENT_PROGRAM_NAME
150                                                  and application_id = :P_APPLICATION_ID
151                                                  and rownum = 1 )
152                                         and wrp.organization_id = wdd.organization_id
153                                         and wrp.printer_name =  :p_printer_name  )
154                                    or (wdd.organization_id   in
155                                         ( Select wrp.level_value_id from wsh_report_printers wrp
156                                           where wrp.level_type_id = :P_LEVEL_TYPE_ID2
157                                           and wrp.enabled_flag = :P_ENABLED_FLAG
158                                           and   wrp.printer_name = :p_printer_name
159                                           and   wrp.CONCURRENT_PROGRAM_ID = (
160                                                  select concurrent_program_id from
161                                                  fnd_concurrent_programs_vl
162                                                  where concurrent_program_name = :P_CONCURRENT_PROGRAM_NAME
163                                                  and application_id = :P_APPLICATION_ID
164                                                  and rownum = 1 )  )
165                                         and wpsv.subinventory_code not in
166                                             ( select wrp.subinventory
167                                               from wsh_Report_printers wrp
168                                               where wrp.level_type_id = :P_LEVEL_TYPE_ID1
169                                               and   wrp.enabled_flag = :P_ENABLED_FLAG
170                                               and   wrp.CONCURRENT_PROGRAM_ID =(
171                                                        select concurrent_program_id from
172                                                        fnd_concurrent_programs_vl
173                                                        where concurrent_program_name = :P_CONCURRENT_PROGRAM_NAME
174                                                        and application_id = :P_APPLICATION_ID
175                                                        and rownum = 1 )
176                                               and  wrp.organization_id = wdd.organization_id  )))' ; --bug 9278128
177     END IF;
178     OPEN MAP_YES_NO('Y');
179     FETCH MAP_YES_NO
180      INTO LP_YES;
181     CLOSE MAP_YES_NO;
182     OPEN MAP_YES_NO('N');
183     FETCH MAP_YES_NO
184      INTO LP_NO;
185     CLOSE MAP_YES_NO;
186     OPEN STRUCT_NUM(P_ITEM_FLEX_CODE);
187     FETCH STRUCT_NUM
188      INTO STRUCT_NUMBER;
189     CLOSE STRUCT_NUM;
190     LP_STRUCTURE_NUM := STRUCT_NUMBER;
191     RETURN TRUE;
192   EXCEPTION
193     WHEN OTHERS THEN
194       IF MAP_YES_NO%ISOPEN THEN
195         CLOSE MAP_YES_NO;
196       END IF;
197       RETURN FALSE;
198   END AFTERPFORM;
199 
200   FUNCTION AFTERREPORT RETURN BOOLEAN IS
201   BEGIN
202     BEGIN
203       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
204     EXCEPTION
205       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
206         /*SRW.MESSAGE(1
207                    ,'Failed in SRWEXIT')*/NULL;
208         RAISE;
209     END;
210     RETURN (TRUE);
211   END AFTERREPORT;
212 
213   FUNCTION BEFOREPFORM RETURN BOOLEAN IS
214   BEGIN
215     RETURN (TRUE);
216   END BEFOREPFORM;
217 
218   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
219   BEGIN
220     BEGIN
221       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
222 	LP_DETAIL_DATE_HIGH := P_DETAIL_DATE_HIGH;
223       /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
224     EXCEPTION
225       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
226         /*SRW.MESSAGE(1
227                    ,'Failed FND SRWINIT.')*/NULL;
228         /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
229     END;
230     RETURN (TRUE);
231   END BEFOREREPORT;
232 
233   FUNCTION F_LOT_QUANTITYFORMULA(DELIVERY_DETAIL_ID3 IN NUMBER
234                                 ,LOT_TXN_ID IN NUMBER
235                                 ,LOT_NUMBER1 IN VARCHAR2) RETURN NUMBER IS
236     LOT_QTY NUMBER := NULL;
237   BEGIN
238     IF DELIVERY_DETAIL_ID3 = -99 THEN
239       BEGIN
240         SELECT
241           SUM(ABS(TRANSACTION_QUANTITY))
242         INTO LOT_QTY
243         FROM
244           MTL_TRANSACTION_LOT_NUMBERS
245         WHERE TRANSACTION_ID = LOT_TXN_ID
246           AND LOT_NUMBER = LOT_NUMBER1
247         GROUP BY
248           TRANSACTION_ID,
249           LOT_NUMBER;
250         RETURN (LOT_QTY);
251       EXCEPTION
252         WHEN NO_DATA_FOUND THEN
253           BEGIN
254             SELECT
255               SUM(ABS(TRANSACTION_QUANTITY))
256             INTO LOT_QTY
257             FROM
258               MTL_TRANSACTION_LOTS_TEMP
259             WHERE TRANSACTION_TEMP_ID = LOT_TXN_ID
260               AND LOT_NUMBER = LOT_NUMBER1
261             GROUP BY
262               TRANSACTION_TEMP_ID,
263               LOT_NUMBER;
264             RETURN (LOT_QTY);
265           EXCEPTION
266             WHEN NO_DATA_FOUND THEN
267               BEGIN
268                 SELECT
269                   SUM(ABS(TRANSACTION_QUANTITY))
270                 INTO LOT_QTY
271                 FROM
272                   MTL_MATERIAL_TRANSACTIONS_TEMP
273                 WHERE TRANSACTION_TEMP_ID = LOT_TXN_ID
274                   AND ( REVISION IS NOT NULL
275                 OR LOCATOR_ID IS NOT NULL )
276                 GROUP BY
277                   TRANSACTION_TEMP_ID;
278                 RETURN (LOT_QTY);
279               EXCEPTION
280                 WHEN NO_DATA_FOUND THEN
281                   RETURN (NULL);
282               END;
283           END;
284       END;
285     ELSE
286       SELECT
287        NVL(PICKED_QUANTITY,REQUESTED_QUANTITY)
288       INTO LOT_QTY
289       FROM
290         WSH_DELIVERY_DETAILS
291       WHERE DELIVERY_DETAIL_ID = DELIVERY_DETAIL_ID3;
292     END IF;
293     RETURN LOT_QTY;
294   END F_LOT_QUANTITYFORMULA;
295 
296   FUNCTION G_TRANSACTION_TEMP_IDGROUPFILT(ORGANIZATION_ID IN NUMBER) RETURN BOOLEAN IS
297   BEGIN
298     IF WSH_UTIL_VALIDATE.CHECK_WMS_ORG(ORGANIZATION_ID) = 'Y' THEN
299       RETURN (TRUE);
300     ELSE
301       RETURN (FALSE);
302     END IF;
303   END G_TRANSACTION_TEMP_IDGROUPFILT;
304 
305   FUNCTION F_FROM_LOCATIONFORMULA(FROM_LOCATOR_ID IN NUMBER
306                                  ,ORGANIZATION_ID IN NUMBER) RETURN CHAR IS
307     NAME VARCHAR(2000) := NULL;
308     RESULT BOOLEAN := TRUE;
309   BEGIN
310     IF FROM_LOCATOR_ID IS NULL THEN
311       RETURN '';
312     END IF;
313     RESULT := FND_FLEX_KEYVAL.VALIDATE_CCID(APPL_SHORT_NAME => 'INV'
314                                            ,KEY_FLEX_CODE => P_LOCATOR_FLEX_CODE
315                                            ,STRUCTURE_NUMBER => LP_STRUCTURE_NUM
316                                            ,COMBINATION_ID => FROM_LOCATOR_ID
317                                            ,DATA_SET => ORGANIZATION_ID);
318     IF RESULT THEN
319       NAME := FND_FLEX_KEYVAL.CONCATENATED_VALUES;
320     END IF;
321     RETURN NAME;
322   END F_FROM_LOCATIONFORMULA;
323 
324   FUNCTION F_ITEM_DESCRIPTIONFORMULA(ITEM_INFO IN VARCHAR2
325                                     ,INVENTORY_ITEM_ID IN NUMBER
326                                     ,ORGANIZATION_ID IN NUMBER
327                                     ,ITEM_DESCRIPTION IN VARCHAR2) RETURN CHAR IS
328     NAME VARCHAR(2000) := NULL;
329   BEGIN
330     IF P_ITEM_DISPLAY = 'D' THEN
331       RETURN ITEM_INFO;
332     END IF;
333     IF P_ITEM_DISPLAY = 'F' THEN
334       NAME := WSH_UTIL_CORE.GET_ITEM_NAME(INVENTORY_ITEM_ID
335                                          ,ORGANIZATION_ID
336                                          ,P_ITEM_FLEX_CODE
337                                          ,LP_STRUCTURE_NUM);
338       RETURN NAME;
339     ELSE
340       NAME := WSH_UTIL_CORE.GET_ITEM_NAME(INVENTORY_ITEM_ID
341                                          ,ORGANIZATION_ID
342                                          ,P_ITEM_FLEX_CODE
343                                          ,LP_STRUCTURE_NUM);
344       RETURN NAME || '     ' || ITEM_DESCRIPTION;
345     END IF;
346   END F_ITEM_DESCRIPTIONFORMULA;
347 
348   FUNCTION F_REQUESTED_QUANTITYFORMULA(SOURCE_HEADER_ID1 IN NUMBER
349                                       ,SOURCE_LINE_ID1 IN NUMBER
350                                       ,MOVE_ORDER_LINE_ID1 IN NUMBER) RETURN NUMBER IS
351     REQ_QTY NUMBER;
352   BEGIN
353     SELECT
354       SUM(REQUESTED_QUANTITY)
355     INTO REQ_QTY
356     FROM
357       WSH_DELIVERY_DETAILS
358     WHERE SOURCE_HEADER_ID = SOURCE_HEADER_ID1
359       AND SOURCE_LINE_ID = SOURCE_LINE_ID1
360       AND MOVE_ORDER_LINE_ID = MOVE_ORDER_LINE_ID1
361       AND NVL(LINE_DIRECTION
362        ,'O') IN ( 'O' , 'IO' )
363       AND CONTAINER_FLAG in ( 'Y' , 'N' );
364     RETURN (REQ_QTY);
365   END F_REQUESTED_QUANTITYFORMULA;
366 
367   FUNCTION F_SHIPPED_QUANTITYFORMULA RETURN NUMBER IS
368     SHP_QTY NUMBER := NULL;
369   BEGIN
370     RETURN (SHP_QTY);
371   END F_SHIPPED_QUANTITYFORMULA;
372 
373   FUNCTION F_TO_LOCATIONFORMULA(TO_LOCATOR_ID IN NUMBER
374                                ,ORGANIZATION_ID IN NUMBER) RETURN CHAR IS
375     NAME VARCHAR(2000) := NULL;
376     RESULT BOOLEAN := TRUE;
377   BEGIN
378     IF TO_LOCATOR_ID IS NULL THEN
379       RETURN '';
380     END IF;
381     RESULT := FND_FLEX_KEYVAL.VALIDATE_CCID(APPL_SHORT_NAME => 'INV'
382                                            ,KEY_FLEX_CODE => P_LOCATOR_FLEX_CODE
383                                            ,STRUCTURE_NUMBER => LP_STRUCTURE_NUM
384                                            ,COMBINATION_ID => TO_LOCATOR_ID
385                                            ,DATA_SET => ORGANIZATION_ID);
386     IF RESULT THEN
387       NAME := FND_FLEX_KEYVAL.CONCATENATED_VALUES;
388     END IF;
389     RETURN NAME;
390   END F_TO_LOCATIONFORMULA;
391 
392   FUNCTION CF_REVISIONFORMULA(TRANSACTION_ID1 IN NUMBER) RETURN CHAR IS
393     REVISION MTL_ITEM_REVISIONS.REVISION%TYPE;
394   BEGIN
395     REVISION := ' ';
396     BEGIN
397       SELECT
398         REVISION
399       INTO REVISION
400       FROM
401         MTL_MATERIAL_TRANSACTIONS_TEMP
402       WHERE TRANSACTION_TEMP_ID = TRANSACTION_ID1;
403     EXCEPTION
404       WHEN NO_DATA_FOUND THEN
405         BEGIN
406           SELECT
407             REVISION
408           INTO REVISION
409           FROM
410             MTL_MATERIAL_TRANSACTIONS
411           WHERE TRANSACTION_ID = TRANSACTION_ID1;
412         EXCEPTION
413           WHEN NO_DATA_FOUND THEN
414             REVISION := ' ';
415         END;
416     END;
417     RETURN (REVISION);
418   END CF_REVISIONFORMULA;
419 
420   FUNCTION CF_TRIP_IDFORMULA(DELIVERY_ID1 IN NUMBER
421                             ,INITIAL_PICKUP_LOCATION_ID IN NUMBER) RETURN NUMBER IS
422     CURSOR C_GET_TRIP_NAME IS
423       SELECT
424         WT.TRIP_ID,
425         WT.NAME
426       FROM
427         WSH_TRIPS WT,
428         WSH_TRIP_STOPS WTS,
429         WSH_DELIVERY_LEGS WDL
430       WHERE WDL.DELIVERY_ID = DELIVERY_ID1
431         AND WTS.STOP_LOCATION_ID = INITIAL_PICKUP_LOCATION_ID
432         AND WTS.STOP_ID = WDL.PICK_UP_STOP_ID
433         AND WTS.TRIP_ID = WT.TRIP_ID;
434   BEGIN
435     IF DELIVERY_ID1 IS NULL THEN
436       CP_TRIP_NAME := NULL;
437       RETURN NULL;
438     ELSE
439       IF DELIVERY_ID1 = CP_CACHE_DELIVERY_ID THEN
440         CP_TRIP_NAME := CP_CACHE_TRIP_NAME;
441         RETURN CP_CACHE_TRIP_ID;
442       ELSE
443         OPEN C_GET_TRIP_NAME;
444         FETCH C_GET_TRIP_NAME
445          INTO CP_CACHE_TRIP_ID,CP_CACHE_TRIP_NAME;
446         IF C_GET_TRIP_NAME%NOTFOUND THEN
447           CLOSE C_GET_TRIP_NAME;
448           RAISE NO_DATA_FOUND;
449         END IF;
450         CLOSE C_GET_TRIP_NAME;
451         CP_CACHE_DELIVERY_ID := DELIVERY_ID1;
452         CP_TRIP_NAME := CP_CACHE_TRIP_NAME;
453         RETURN CP_CACHE_TRIP_ID;
454       END IF;
455     END IF;
456   EXCEPTION
457     WHEN NO_DATA_FOUND THEN
458       RETURN NULL;
459     WHEN OTHERS THEN
460       IF C_GET_TRIP_NAME%ISOPEN THEN
461         CLOSE C_GET_TRIP_NAME;
462       END IF;
463       RETURN NULL;
464   END CF_TRIP_IDFORMULA;
465 
466   FUNCTION CF_CUSTOMER_NAMEFORMULA(CUSTOMER_FLAG IN VARCHAR2
467                                   ,SOURCE_HEADER_ID IN NUMBER) RETURN CHAR IS
468     CURSOR CUSTOMER_NAME(O_ID IN NUMBER) IS
469       SELECT
470         SUBSTRB(PARTY.PARTY_NAME
471                ,1
472                ,50) CUSTOMER_NAME
473       FROM
474         HZ_PARTIES PARTY,
475         HZ_CUST_ACCOUNTS CUST_ACCT,
476         OE_ORDER_HEADERS_ALL OH
477       WHERE CUST_ACCT.PARTY_ID = PARTY.PARTY_ID
478         AND OH.HEADER_ID = O_ID
479         AND CUST_ACCT.CUST_ACCOUNT_ID = OH.SOLD_TO_ORG_ID;
480     NAME HZ_PARTIES.PARTY_NAME%TYPE := ' ';
481   BEGIN
482     IF CUSTOMER_FLAG = 'Y' THEN
483       OPEN CUSTOMER_NAME(SOURCE_HEADER_ID);
484       FETCH CUSTOMER_NAME
485        INTO NAME;
486       CLOSE CUSTOMER_NAME;
487     END IF;
488     RETURN NAME;
489   EXCEPTION
490     WHEN OTHERS THEN
491       RETURN ' ';
492   END CF_CUSTOMER_NAMEFORMULA;
493 
494   FUNCTION CF_CUSTOMERFORMULA(CUSTOMER_FLAG IN VARCHAR2
495                              ,SOURCE_HEADER_ID IN NUMBER) RETURN CHAR IS
496     CURSOR CUSTOMER_NAME(O_ID IN NUMBER) IS
497       SELECT
498         SUBSTRB(PARTY.PARTY_NAME
499                ,1
500                ,50) CUSTOMER_NAME
501       FROM
502         HZ_PARTIES PARTY,
503         HZ_CUST_ACCOUNTS CUST_ACCT,
504         OE_ORDER_HEADERS_ALL OH
505       WHERE CUST_ACCT.PARTY_ID = PARTY.PARTY_ID
506         AND OH.HEADER_ID = O_ID
507         AND CUST_ACCT.CUST_ACCOUNT_ID = OH.SOLD_TO_ORG_ID;
508     NAME HZ_PARTIES.PARTY_NAME%TYPE := ' ';
509   BEGIN
510     IF CUSTOMER_FLAG = 'Y' THEN
511       OPEN CUSTOMER_NAME(SOURCE_HEADER_ID);
512       FETCH CUSTOMER_NAME
513        INTO NAME;
514       CLOSE CUSTOMER_NAME;
515     END IF;
516     RETURN NAME;
517   EXCEPTION
518     WHEN OTHERS THEN
519       RETURN ' ';
520   END CF_CUSTOMERFORMULA;
521 
522   FUNCTION CF_ORDER_NUMBERFORMULA(ORDER_NUMBER_FLAG IN VARCHAR2
523                                  ,SOURCE_HEADER_NUMBER IN VARCHAR2) RETURN NUMBER IS
524   BEGIN
525     IF ORDER_NUMBER_FLAG = 'Y' THEN
526       RETURN SOURCE_HEADER_NUMBER;
527     ELSE
528       RETURN NULL;
529     END IF;
530   END CF_ORDER_NUMBERFORMULA;
531 
532   FUNCTION CF_TRIP_STOP_ADDRESS1FORMULA(TRIP_STOP_FLAG IN VARCHAR2
533                                        ,DELIVERY_FLAG IN VARCHAR2
534                                        ,CF_DELIVERY_ID IN NUMBER
535                                        ,PICK_SLIP_NUMBER IN NUMBER) RETURN CHAR IS
536     CURSOR TRIP_STOP_FROM_DLVY(P_DELIVERY_ID IN NUMBER) IS
537       SELECT
538         LOC.ADDRESS1,
539         LOC.ADDRESS2,
540         LOC.ADDRESS3,
541         LOC.ADDRESS4,
542         LOC.CITY || DECODE(LOC.CITY
543               ,NULL
544               ,''
545               ,', ') || NVL(LOC.STATE
546            ,LOC.PROVINCE) || DECODE(LOC.POSTAL_CODE
547               ,NULL
548               ,''
549               ,' ' || LOC.POSTAL_CODE) || DECODE(NVL(LOC.STATE
550                   ,NVL(LOC.PROVINCE
551                      ,LOC.POSTAL_CODE))
552               ,NULL
553               ,''
554               ,', ') || LOC.COUNTRY
555       FROM
556         WSH_TRIP_STOPS WTS,
557         WSH_DELIVERY_LEGS WDL,
558         WSH_LOCATIONS LOC
559       WHERE WDL.DELIVERY_ID = P_DELIVERY_ID
560         AND WDL.PICK_UP_STOP_ID = WTS.STOP_ID
561         AND WTS.STOP_LOCATION_ID = LOC.WSH_LOCATION_ID;
562     CURSOR TRIP_STOP_FROM_PS(X_PS_NUMBER IN NUMBER) IS
563       SELECT
564         LOC.ADDRESS1,
565         LOC.ADDRESS2,
566         LOC.ADDRESS3,
567         LOC.ADDRESS4,
568         LOC.CITY || DECODE(LOC.CITY
569               ,NULL
570               ,''
571               ,', ') || NVL(LOC.STATE
572            ,LOC.PROVINCE) || DECODE(LOC.POSTAL_CODE
573               ,NULL
574               ,''
575               ,' ' || LOC.POSTAL_CODE) || DECODE(NVL(LOC.STATE
576                   ,NVL(LOC.PROVINCE
577                      ,LOC.POSTAL_CODE))
578               ,NULL
579               ,''
580               ,', ') || LOC.COUNTRY
581       FROM
582         WSH_TRIP_STOPS WTS,
583         WSH_DELIVERY_LEGS WDL,
584         WSH_DELIVERY_ASSIGNMENTS_V WDA,
585         WSH_DELIVERY_DETAILS WDD,
586         MTL_MATERIAL_TRANSACTIONS_TEMP MMTT,
587         WSH_LOCATIONS LOC
588       WHERE MMTT.PICK_SLIP_NUMBER = X_PS_NUMBER
589         AND MMTT.MOVE_ORDER_LINE_ID = WDD.MOVE_ORDER_LINE_ID
590         AND MMTT.PICK_SLIP_NUMBER IS NOT NULL
591         AND ABS(NVL(MMTT.TRANSACTION_QUANTITY
592              ,0)) > 0
593         AND WDD.DELIVERY_DETAIL_ID = WDA.DELIVERY_DETAIL_ID
594         AND WDA.DELIVERY_ID = WDL.DELIVERY_ID
595         AND WDL.PICK_UP_STOP_ID = WTS.STOP_ID
596         AND WTS.STOP_LOCATION_ID = LOC.WSH_LOCATION_ID
597         AND NVL(WDD.LINE_DIRECTION
598          ,'O') IN ( 'O' , 'IO' )
599         AND WDD.CONTAINER_FLAG IN ( 'N' , 'Y' )
600       UNION ALL
601       SELECT
602         LOC.ADDRESS1,
603         LOC.ADDRESS2,
604         LOC.ADDRESS3,
605         LOC.ADDRESS4,
606         LOC.CITY || DECODE(LOC.CITY
607               ,NULL
608               ,''
609               ,', ') || NVL(LOC.STATE
610            ,LOC.PROVINCE) || DECODE(LOC.POSTAL_CODE
611               ,NULL
612               ,''
613               ,' ' || LOC.POSTAL_CODE) || DECODE(NVL(LOC.STATE
614                   ,NVL(LOC.PROVINCE
615                      ,LOC.POSTAL_CODE))
616               ,NULL
617               ,''
618               ,', ') || LOC.COUNTRY
619       FROM
620         WSH_TRIP_STOPS WTS,
621         WSH_DELIVERY_LEGS WDL,
622         WSH_DELIVERY_ASSIGNMENTS_V WDA,
623         WSH_DELIVERY_DETAILS WDD,
624         MTL_MATERIAL_TRANSACTIONS MMT,
625         WSH_LOCATIONS LOC
626       WHERE MMT.PICK_SLIP_NUMBER = X_PS_NUMBER
627         AND MMT.MOVE_ORDER_LINE_ID = WDD.MOVE_ORDER_LINE_ID
628         AND MMT.PICK_SLIP_NUMBER IS NOT NULL
629         AND NVL(MMT.TRANSACTION_QUANTITY
630          ,0) < 0
631         AND WDD.DELIVERY_DETAIL_ID = WDA.DELIVERY_DETAIL_ID
632         AND WDA.DELIVERY_ID = WDL.DELIVERY_ID
633         AND WDL.PICK_UP_STOP_ID = WTS.STOP_ID
634         AND WTS.STOP_LOCATION_ID = LOC.WSH_LOCATION_ID
635         AND NVL(WDD.LINE_DIRECTION
636          ,'O') IN ( 'O' , 'IO' )
637         AND WDD.CONTAINER_FLAG IN ( 'N' , 'Y' )
638       UNION ALL
639       SELECT
640         LOC.ADDRESS1,
641         LOC.ADDRESS2,
642         LOC.ADDRESS3,
643         LOC.ADDRESS4,
644         LOC.CITY || DECODE(LOC.CITY
645               ,NULL
646               ,''
647               ,', ') || NVL(LOC.STATE
648            ,LOC.PROVINCE) || DECODE(LOC.POSTAL_CODE
649               ,NULL
650               ,''
651               ,' ' || LOC.POSTAL_CODE) || DECODE(NVL(LOC.STATE
652                   ,NVL(LOC.PROVINCE
653                      ,LOC.POSTAL_CODE))
654               ,NULL
655               ,''
656               ,', ') || LOC.COUNTRY
657       FROM
658         WSH_TRIP_STOPS WTS,
659         WSH_DELIVERY_LEGS WDL,
660         WSH_DELIVERY_ASSIGNMENTS_V WDA,
661         WSH_DELIVERY_DETAILS WDD,
662         MTL_TXN_REQUEST_LINES MTRL,
663         WSH_LOCATIONS LOC
664       WHERE MTRL.PICK_SLIP_NUMBER = X_PS_NUMBER
665         AND MTRL.LINE_ID = WDD.MOVE_ORDER_LINE_ID
666         AND MTRL.PICK_SLIP_NUMBER IS NOT NULL
667         AND WDD.DELIVERY_DETAIL_ID = WDA.DELIVERY_DETAIL_ID
668         AND WDA.DELIVERY_ID = WDL.DELIVERY_ID
669         AND WDL.PICK_UP_STOP_ID = WTS.STOP_ID
670         AND WTS.STOP_LOCATION_ID = LOC.WSH_LOCATION_ID
671         AND NVL(WDD.LINE_DIRECTION
672          ,'O') IN ( 'O' , 'IO' )
673         AND WDD.CONTAINER_FLAG IN ( 'N' , 'Y' );
674     ADDR1 VARCHAR2(240) := ' ';
675     ADDR2 VARCHAR2(240) := ' ';
676     ADDR3 VARCHAR2(240) := ' ';
677     ADDR4 VARCHAR2(240) := ' ';
678     ADDR5 VARCHAR2(300) := ' ';
679   BEGIN
680     /*SRW.REFERENCE(TS_ADDR1)*/NULL;
681     /*SRW.REFERENCE(TS_ADDR2)*/NULL;
682     /*SRW.REFERENCE(TS_ADDR3)*/NULL;
683     /*SRW.REFERENCE(TS_ADDR4)*/NULL;
684     /*SRW.REFERENCE(TS_ADDR5)*/NULL;
685     IF TRIP_STOP_FLAG = 'Y' THEN
686       IF DELIVERY_FLAG = 'Y' THEN
687         OPEN TRIP_STOP_FROM_DLVY(CF_DELIVERY_ID);
688         FETCH TRIP_STOP_FROM_DLVY
689          INTO ADDR1,ADDR2,ADDR3,ADDR4,ADDR5;
690         CLOSE TRIP_STOP_FROM_DLVY;
691       ELSE
692         OPEN TRIP_STOP_FROM_PS(PICK_SLIP_NUMBER);
693         FETCH TRIP_STOP_FROM_PS
694          INTO ADDR1,ADDR2,ADDR3,ADDR4,ADDR5;
695         CLOSE TRIP_STOP_FROM_PS;
696       END IF;
697       TS_ADDR1 := ADDR1;
698       IF (ADDR2 IS NOT NULL) THEN
699         TS_ADDR2 := ADDR2;
700       ELSIF (ADDR2 IS NULL AND ADDR3 IS NOT NULL) THEN
701         TS_ADDR2 := ADDR3;
702       ELSIF (ADDR2 IS NULL AND ADDR3 IS NULL AND ADDR4 IS NOT NULL) THEN
703         TS_ADDR2 := ADDR4;
704       ELSIF (ADDR2 IS NULL AND ADDR3 IS NULL AND ADDR4 IS NULL) THEN
705         TS_ADDR2 := ADDR5;
706       ELSE
707         TS_ADDR2 := ' ';
708       END IF;
709       IF (ADDR2 IS NOT NULL AND ADDR3 IS NOT NULL) THEN
710         TS_ADDR3 := ADDR3;
711       ELSIF (ADDR2 IS NOT NULL AND ADDR3 IS NULL AND ADDR4 IS NOT NULL) THEN
712         TS_ADDR3 := ADDR4;
713       ELSIF (ADDR2 IS NOT NULL AND ADDR3 IS NULL AND ADDR4 IS NULL) THEN
714         TS_ADDR3 := ADDR5;
715       ELSIF (ADDR2 IS NULL AND ADDR3 IS NOT NULL AND ADDR4 IS NOT NULL) THEN
716         TS_ADDR3 := ADDR4;
717       ELSIF (ADDR2 IS NULL AND ADDR3 IS NOT NULL AND ADDR4 IS NULL) THEN
718         TS_ADDR3 := ADDR5;
719       ELSIF (ADDR2 IS NULL AND ADDR3 IS NULL AND ADDR4 IS NOT NULL) THEN
720         TS_ADDR3 := ADDR5;
721       ELSIF (ADDR2 IS NULL AND ADDR3 IS NULL AND ADDR4 IS NULL) THEN
722         TS_ADDR3 := ' ';
723       END IF;
724       IF (ADDR2 IS NOT NULL AND ADDR3 IS NOT NULL AND ADDR4 IS NOT NULL) THEN
725         TS_ADDR4 := ADDR4;
726       ELSIF (ADDR2 IS NOT NULL AND ADDR3 IS NULL AND ADDR4 IS NULL) THEN
727         TS_ADDR4 := ' ';
728       ELSIF (ADDR2 IS NOT NULL AND ADDR3 IS NULL AND ADDR4 IS NOT NULL) THEN
729         TS_ADDR4 := ADDR5;
730       ELSIF (ADDR2 IS NULL AND ADDR3 IS NOT NULL AND ADDR4 IS NOT NULL) THEN
731         TS_ADDR4 := ADDR5;
732       ELSIF (ADDR2 IS NOT NULL AND ADDR3 IS NOT NULL AND ADDR4 IS NULL) THEN
733         TS_ADDR4 := ADDR5;
734       ELSIF (ADDR2 IS NULL AND ADDR3 IS NOT NULL AND ADDR4 IS NULL) THEN
735         TS_ADDR4 := ' ';
736       ELSIF (ADDR2 IS NULL AND ADDR3 IS NULL AND ADDR4 IS NOT NULL) THEN
737         TS_ADDR4 := ' ';
738       ELSIF (ADDR2 IS NULL AND ADDR3 IS NULL AND ADDR4 IS NULL) THEN
739         TS_ADDR4 := ' ';
740       END IF;
741       IF ((ADDR2 IS NULL) OR (ADDR3 IS NULL) OR (ADDR4 IS NULL)) THEN
742         TS_ADDR5 := ' ';
743       ELSE
744         TS_ADDR5 := ADDR5;
745       END IF;
746     END IF;
747     RETURN ' ';
748   EXCEPTION
749     WHEN OTHERS THEN
750       RETURN ' ';
751   END CF_TRIP_STOP_ADDRESS1FORMULA;
752 
753   FUNCTION CF_DELIVERYFORMULA(DELIVERY_FLAG IN VARCHAR2
754                              ,DELIVERY_NAME IN VARCHAR2) RETURN CHAR IS
755   BEGIN
756     IF DELIVERY_FLAG = 'Y' THEN
757       RETURN DELIVERY_NAME;
758     ELSE
759       RETURN ' ';
760     END IF;
761   END CF_DELIVERYFORMULA;
762 
763   FUNCTION CF_REQUISITION_NUMBERFORMULA(SOURCE_HEADER_ID IN NUMBER) RETURN CHAR IS
764     CURSOR REQUISITION(X_ORDER_HEADER IN NUMBER) IS
765       SELECT
766         ORIG_SYS_DOCUMENT_REF
767       FROM
768         OE_ORDER_HEADERS_ALL
769       WHERE HEADER_ID = X_ORDER_HEADER
770         AND SOURCE_DOCUMENT_TYPE_ID = 10;
771     REQN_NUMBER OE_ORDER_HEADERS_ALL.ORIG_SYS_DOCUMENT_REF%TYPE := ' ';
772   BEGIN
773     OPEN REQUISITION(SOURCE_HEADER_ID);
774     FETCH REQUISITION
775      INTO REQN_NUMBER;
776     CLOSE REQUISITION;
777     RETURN REQN_NUMBER;
778   EXCEPTION
779     WHEN OTHERS THEN
780       RETURN ' ';
781   END CF_REQUISITION_NUMBERFORMULA;
782 
783   FUNCTION CF_SUBINVENTORYFORMULA(SUBINVENTORY_FLAG IN VARCHAR2
784                                  ,FROM_SUBINVENTORY IN VARCHAR2) RETURN CHAR IS
785   BEGIN
786     IF SUBINVENTORY_FLAG = 'Y' THEN
787       RETURN FROM_SUBINVENTORY;
788     ELSE
789       RETURN ' ';
790     END IF;
791   END CF_SUBINVENTORYFORMULA;
792 
793   FUNCTION CF_SHIPMENT_PRIORITYFORMULA(SHIPMENT_PRIORITY_FLAG IN VARCHAR2
794                                       ,PRIORITY IN VARCHAR2) RETURN CHAR IS
795   BEGIN
796     /*SRW.REFERENCE(SHIPMENT_PRIORITY_FLAG)*/NULL;
797     IF SHIPMENT_PRIORITY_FLAG = 'Y' THEN
798       RETURN PRIORITY;
799     ELSE
800       RETURN ' ';
801     END IF;
802   END CF_SHIPMENT_PRIORITYFORMULA;
803 
804   FUNCTION CF_SHIP_TO_ADDRESSFORMULA(SHIP_TO_FLAG IN VARCHAR2
805                                     ,PICK_SLIP_NUMBER IN NUMBER) RETURN CHAR IS
806     CURSOR SHIP_TO(X_PS_NUM IN NUMBER) IS
807       SELECT
808         LOC.ADDRESS1,
809         LOC.ADDRESS2,
810         LOC.ADDRESS3,
811         LOC.ADDRESS4,
812         LOC.CITY || DECODE(LOC.CITY
813               ,NULL
814               ,''
815               ,', ') || NVL(LOC.STATE
816            ,LOC.PROVINCE) || DECODE(LOC.POSTAL_CODE
817               ,NULL
818               ,''
819               ,' ' || LOC.POSTAL_CODE) || DECODE(NVL(LOC.STATE
820                   ,NVL(LOC.PROVINCE
821                      ,LOC.POSTAL_CODE))
822               ,NULL
823               ,''
824               ,', ') || LOC.COUNTRY
825       FROM
826         WSH_LOCATIONS LOC
827       WHERE LOC.WSH_LOCATION_ID = (
828         SELECT
829           WDD.SHIP_TO_LOCATION_ID
830         FROM
831           WSH_DELIVERY_DETAILS WDD,
832           WSH_PICK_SLIP_V WPSV
833         WHERE WPSV.PICK_SLIP_NUMBER = X_PS_NUM
834           AND WPSV.MOVE_ORDER_LINE_ID = WDD.MOVE_ORDER_LINE_ID
835           AND ROWNUM = 1 );
836     ADDR1 VARCHAR2(240) := ' ';
837     ADDR2 VARCHAR2(240) := ' ';
838     ADDR3 VARCHAR2(240) := ' ';
839     ADDR4 VARCHAR2(240) := ' ';
840     ADDR5 VARCHAR2(300) := ' ';
841   BEGIN
842     /*SRW.REFERENCE(ST_ADDR1)*/NULL;
843     /*SRW.REFERENCE(ST_ADDR2)*/NULL;
844     /*SRW.REFERENCE(ST_ADDR3)*/NULL;
845     /*SRW.REFERENCE(ST_ADDR4)*/NULL;
846     /*SRW.REFERENCE(ST_ADDR5)*/NULL;
847     IF SHIP_TO_FLAG = 'Y' THEN
848       OPEN SHIP_TO(PICK_SLIP_NUMBER);
849       FETCH SHIP_TO
850        INTO ADDR1,ADDR2,ADDR3,ADDR4,ADDR5;
851       CLOSE SHIP_TO;
852       ST_ADDR1 := ADDR1;
853       IF (ADDR2 IS NOT NULL) THEN
854         ST_ADDR2 := ADDR2;
855       ELSIF (ADDR2 IS NULL AND ADDR3 IS NOT NULL) THEN
856         ST_ADDR2 := ADDR3;
857       ELSIF (ADDR2 IS NULL AND ADDR3 IS NULL AND ADDR4 IS NOT NULL) THEN
858         ST_ADDR2 := ADDR4;
859       ELSIF (ADDR2 IS NULL AND ADDR3 IS NULL AND ADDR4 IS NULL) THEN
860         ST_ADDR2 := ADDR5;
861       ELSE
862         ST_ADDR2 := ' ';
863       END IF;
864       IF (ADDR2 IS NOT NULL AND ADDR3 IS NOT NULL) THEN
865         ST_ADDR3 := ADDR3;
866       ELSIF (ADDR2 IS NOT NULL AND ADDR3 IS NULL AND ADDR4 IS NOT NULL) THEN
867         ST_ADDR3 := ADDR4;
868       ELSIF (ADDR2 IS NOT NULL AND ADDR3 IS NULL AND ADDR4 IS NULL) THEN
869         ST_ADDR3 := ADDR5;
870       ELSIF (ADDR2 IS NULL AND ADDR3 IS NOT NULL AND ADDR4 IS NOT NULL) THEN
871         ST_ADDR3 := ADDR4;
872       ELSIF (ADDR2 IS NULL AND ADDR3 IS NOT NULL AND ADDR4 IS NULL) THEN
873         ST_ADDR3 := ADDR5;
874       ELSIF (ADDR2 IS NULL AND ADDR3 IS NULL AND ADDR4 IS NOT NULL) THEN
875         ST_ADDR3 := ADDR5;
876       ELSIF (ADDR2 IS NULL AND ADDR3 IS NULL AND ADDR4 IS NULL) THEN
877         ST_ADDR3 := ' ';
878       END IF;
879       IF (ADDR2 IS NOT NULL AND ADDR3 IS NOT NULL AND ADDR4 IS NOT NULL) THEN
880         ST_ADDR4 := ADDR4;
881       ELSIF (ADDR2 IS NOT NULL AND ADDR3 IS NULL AND ADDR4 IS NULL) THEN
882         ST_ADDR4 := ' ';
883       ELSIF (ADDR2 IS NOT NULL AND ADDR3 IS NULL AND ADDR4 IS NOT NULL) THEN
884         ST_ADDR4 := ADDR5;
885       ELSIF (ADDR2 IS NULL AND ADDR3 IS NOT NULL AND ADDR4 IS NOT NULL) THEN
886         ST_ADDR4 := ADDR5;
887       ELSIF (ADDR2 IS NOT NULL AND ADDR3 IS NOT NULL AND ADDR4 IS NULL) THEN
888         ST_ADDR4 := ADDR5;
889       ELSIF (ADDR2 IS NULL AND ADDR3 IS NOT NULL AND ADDR4 IS NULL) THEN
890         ST_ADDR4 := ' ';
891       ELSIF (ADDR2 IS NULL AND ADDR3 IS NULL AND ADDR4 IS NOT NULL) THEN
892         ST_ADDR4 := ' ';
893       ELSIF (ADDR2 IS NULL AND ADDR3 IS NULL AND ADDR4 IS NULL) THEN
894         ST_ADDR4 := ' ';
895       END IF;
896       IF ((ADDR2 IS NULL) OR (ADDR3 IS NULL) OR (ADDR4 IS NULL)) THEN
897         ST_ADDR5 := ' ';
898       ELSE
899         ST_ADDR5 := ADDR5;
900       END IF;
901     END IF;
902     RETURN ' ';
903   EXCEPTION
904     WHEN OTHERS THEN
905       RETURN '';
906   END CF_SHIP_TO_ADDRESSFORMULA;
907 
908   FUNCTION CF_CARRIERFORMULA(CARRIER_FLAG IN VARCHAR2
909                             ,CARRIER IN VARCHAR2) RETURN CHAR IS
910   BEGIN
911     DECLARE
912       L_MEANING FND_LOOKUP_VALUES_VL.MEANING%TYPE;
913       CURSOR SHP_MTHD(X_CARRIER IN VARCHAR) IS
914         SELECT
915           MEANING
916         FROM
917           FND_LOOKUP_VALUES_VL
918         WHERE LOOKUP_CODE = X_CARRIER
919           AND LOOKUP_TYPE = 'SHIP_METHOD'
920           AND VIEW_APPLICATION_ID = 3;
921     BEGIN
922       IF CARRIER_FLAG = 'Y' THEN
923         OPEN SHP_MTHD(CARRIER);
924         FETCH SHP_MTHD
925          INTO L_MEANING;
926         CLOSE SHP_MTHD;
927         RETURN L_MEANING;
928       ELSE
929         RETURN ' ';
930       END IF;
931     END;
932   END CF_CARRIERFORMULA;
933 
934   FUNCTION CF_TEMPFORMULA(SHIPMENT_PRIORITY_FLAG IN VARCHAR2
935                          ,PRIORITY IN VARCHAR2) RETURN CHAR IS
936   BEGIN
937     IF SHIPMENT_PRIORITY_FLAG = 'Y' THEN
938       RETURN PRIORITY;
939     ELSE
940       RETURN ' ';
941     END IF;
942   END CF_TEMPFORMULA;
943 
944   FUNCTION CF_DELIVERY_IDFORMULA(DELIVERY_FLAG IN VARCHAR2
945                                 ,DELIVERY_ID IN NUMBER) RETURN NUMBER IS
946   BEGIN
947     IF DELIVERY_FLAG = 'Y' THEN
948       RETURN (DELIVERY_ID);
949     ELSE
950       RETURN -1;
951     END IF;
952   END CF_DELIVERY_IDFORMULA;
953 
954   FUNCTION CF_WAREHOUSEFORMULA(ORGANIZATION_ID1 IN NUMBER) RETURN CHAR IS
955     CURSOR WAREHOUSE_NAME IS
956       SELECT
957         NAME
958       FROM
959         HR_ORGANIZATION_UNITS
960       WHERE ORGANIZATION_ID = ORGANIZATION_ID1;
961     CURSOR WAREHOUSE_CODE IS
962       SELECT
963         ORGANIZATION_CODE
964       FROM
965         MTL_PARAMETERS
966       WHERE ORGANIZATION_ID = ORGANIZATION_ID1;
967   BEGIN
968     OPEN WAREHOUSE_NAME;
969     FETCH WAREHOUSE_NAME
970      INTO CP_WAREHOUSE_NAME;
971     CLOSE WAREHOUSE_NAME;
972     OPEN WAREHOUSE_CODE;
973     FETCH WAREHOUSE_CODE
974      INTO CP_WAREHOUSE_CODE;
975     CLOSE WAREHOUSE_CODE;
976     RETURN ' ';
977   EXCEPTION
978     WHEN OTHERS THEN
979       IF WAREHOUSE_NAME%ISOPEN THEN
980         CLOSE WAREHOUSE_NAME;
981       END IF;
982       IF WAREHOUSE_CODE%ISOPEN THEN
983         CLOSE WAREHOUSE_CODE;
984       END IF;
985       RETURN ' ';
986   END CF_WAREHOUSEFORMULA;
987 
988   FUNCTION CF_TRIP_CHRFORMULA(CF_TRIP_ID IN NUMBER) RETURN CHAR IS
989   BEGIN
990     RETURN (TO_CHAR(CF_TRIP_ID));
991   END CF_TRIP_CHRFORMULA;
992 
993   FUNCTION CF_FREIGHT_TERMS_NAMEFORMULA(FREIGHT_TERMS IN VARCHAR2
994                                        ,SOURCE_CODE IN VARCHAR2) RETURN CHAR IS
995     L_FREIGHT_TERMS VARCHAR2(80);
996     CURSOR L_GET_FREIGHT_TERMS IS
997       SELECT
998         FV.FREIGHT_TERMS
999       FROM
1000         OE_FRGHT_TERMS_ACTIVE_V FV
1001       WHERE FV.FREIGHT_TERMS_CODE = FREIGHT_TERMS;
1002   BEGIN
1003     IF SOURCE_CODE = 'OE' THEN
1004       IF FREIGHT_TERMS IS NOT NULL THEN
1005         OPEN L_GET_FREIGHT_TERMS;
1006         FETCH L_GET_FREIGHT_TERMS
1007          INTO L_FREIGHT_TERMS;
1008         CLOSE L_GET_FREIGHT_TERMS;
1009       ELSE
1010         L_FREIGHT_TERMS := NULL;
1011       END IF;
1012     ELSIF SOURCE_CODE = 'OKE' THEN
1013       L_FREIGHT_TERMS := NULL;
1014     END IF;
1015     RETURN (L_FREIGHT_TERMS);
1016   EXCEPTION
1017     WHEN OTHERS THEN
1018       IF L_GET_FREIGHT_TERMS%ISOPEN THEN
1019         CLOSE L_GET_FREIGHT_TERMS;
1020       END IF;
1021       RAISE;
1022   END CF_FREIGHT_TERMS_NAMEFORMULA;
1023 
1024   FUNCTION CP_WAREHOUSE_CODE_P RETURN VARCHAR2 IS
1025   BEGIN
1026     RETURN CP_WAREHOUSE_CODE;
1027   END CP_WAREHOUSE_CODE_P;
1028 
1029   FUNCTION CP_WAREHOUSE_NAME_P RETURN VARCHAR2 IS
1030   BEGIN
1031     RETURN CP_WAREHOUSE_NAME;
1032   END CP_WAREHOUSE_NAME_P;
1033 
1034   FUNCTION ST_ADDR1_P RETURN VARCHAR2 IS
1035   BEGIN
1036     RETURN ST_ADDR1;
1037   END ST_ADDR1_P;
1038 
1039   FUNCTION TS_ADDR3_P RETURN VARCHAR2 IS
1040   BEGIN
1041     RETURN TS_ADDR3;
1042   END TS_ADDR3_P;
1043 
1044   FUNCTION TS_ADDR4_P RETURN VARCHAR2 IS
1045   BEGIN
1046     RETURN TS_ADDR4;
1047   END TS_ADDR4_P;
1048 
1049   FUNCTION TS_ADDR5_P RETURN VARCHAR2 IS
1050   BEGIN
1051     RETURN TS_ADDR5;
1052   END TS_ADDR5_P;
1053 
1054   FUNCTION TS_ADDR1_P RETURN VARCHAR2 IS
1055   BEGIN
1056     RETURN TS_ADDR1;
1057   END TS_ADDR1_P;
1058 
1059   FUNCTION TS_ADDR2_P RETURN VARCHAR2 IS
1060   BEGIN
1061     RETURN TS_ADDR2;
1062   END TS_ADDR2_P;
1063 
1064   FUNCTION ST_ADDR4_P RETURN VARCHAR2 IS
1065   BEGIN
1066     RETURN ST_ADDR4;
1067   END ST_ADDR4_P;
1068 
1069   FUNCTION ST_ADDR5_P RETURN VARCHAR2 IS
1070   BEGIN
1071     RETURN ST_ADDR5;
1072   END ST_ADDR5_P;
1073 
1074   FUNCTION ST_ADDR2_P RETURN VARCHAR2 IS
1075   BEGIN
1076     RETURN ST_ADDR2;
1077   END ST_ADDR2_P;
1078 
1079   FUNCTION ST_ADDR3_P RETURN VARCHAR2 IS
1080   BEGIN
1081     RETURN ST_ADDR3;
1082   END ST_ADDR3_P;
1083 
1084   FUNCTION CP_TRIP_NAME_P RETURN VARCHAR2 IS
1085   BEGIN
1086     RETURN CP_TRIP_NAME;
1087   END CP_TRIP_NAME_P;
1088 
1089   FUNCTION CP_CACHE_DELIVERY_ID_P RETURN NUMBER IS
1090   BEGIN
1091     RETURN CP_CACHE_DELIVERY_ID;
1092   END CP_CACHE_DELIVERY_ID_P;
1093 
1094   FUNCTION CP_CACHE_TRIP_NAME_P RETURN VARCHAR2 IS
1095   BEGIN
1096     RETURN CP_CACHE_TRIP_NAME;
1097   END CP_CACHE_TRIP_NAME_P;
1098 
1099   FUNCTION CP_CACHE_TRIP_ID_P RETURN NUMBER IS
1100   BEGIN
1101     RETURN CP_CACHE_TRIP_ID;
1102   END CP_CACHE_TRIP_ID_P;
1103 
1104   FUNCTION GET_DELIMITER(APPLICATION_SHORT_NAME IN VARCHAR2
1105                         ,KEY_FLEX_CODE IN VARCHAR2
1106                         ,STRUCTURE_NUMBER IN NUMBER) RETURN VARCHAR2 IS
1107     X0 VARCHAR2(2000);
1108   BEGIN
1109 /*    STPROC.INIT('begin :X0 := FND_FLEX_EXT.GET_DELIMITER(:APPLICATION_SHORT_NAME, :KEY_FLEX_CODE, :STRUCTURE_NUMBER); end;');
1110     STPROC.BIND_O(X0);
1111     STPROC.BIND_I(APPLICATION_SHORT_NAME);
1112     STPROC.BIND_I(KEY_FLEX_CODE);
1113     STPROC.BIND_I(STRUCTURE_NUMBER);
1114     STPROC.EXECUTE;
1115     STPROC.RETRIEVE(1
1116                    ,X0);*/
1117 X0 := FND_FLEX_EXT.GET_DELIMITER(APPLICATION_SHORT_NAME, KEY_FLEX_CODE, STRUCTURE_NUMBER);
1118     RETURN X0;
1119   END GET_DELIMITER;
1120 
1121   FUNCTION GET_CCID(APPLICATION_SHORT_NAME IN VARCHAR2
1122                    ,KEY_FLEX_CODE IN VARCHAR2
1123                    ,STRUCTURE_NUMBER IN NUMBER
1124                    ,VALIDATION_DATE IN VARCHAR2
1125                    ,CONCATENATED_SEGMENTS IN VARCHAR2) RETURN NUMBER IS
1126     X0 NUMBER;
1127   BEGIN
1128     /*STPROC.INIT('begin :X0 := FND_FLEX_EXT.GET_CCID(:APPLICATION_SHORT_NAME, :KEY_FLEX_CODE, :STRUCTURE_NUMBER, :VALIDATION_DATE, :CONCATENATED_SEGMENTS); end;');
1129     STPROC.BIND_O(X0);
1130     STPROC.BIND_I(APPLICATION_SHORT_NAME);
1131     STPROC.BIND_I(KEY_FLEX_CODE);
1132     STPROC.BIND_I(STRUCTURE_NUMBER);
1133     STPROC.BIND_I(VALIDATION_DATE);
1134     STPROC.BIND_I(CONCATENATED_SEGMENTS);
1135     STPROC.EXECUTE;
1136     STPROC.RETRIEVE(1
1137                    ,X0);*/
1138     X0 := FND_FLEX_EXT.GET_CCID(APPLICATION_SHORT_NAME, KEY_FLEX_CODE, STRUCTURE_NUMBER, VALIDATION_DATE, CONCATENATED_SEGMENTS);
1139     RETURN X0;
1140   END GET_CCID;
1141 
1142   FUNCTION GET_SEGS(APPLICATION_SHORT_NAME IN VARCHAR2
1143                    ,KEY_FLEX_CODE IN VARCHAR2
1144                    ,STRUCTURE_NUMBER IN NUMBER
1145                    ,COMBINATION_ID IN NUMBER) RETURN VARCHAR2 IS
1146     X0 VARCHAR2(2000);
1147   BEGIN
1148 /*    STPROC.INIT('begin :X0 := FND_FLEX_EXT.GET_SEGS(:APPLICATION_SHORT_NAME, :KEY_FLEX_CODE, :STRUCTURE_NUMBER, :COMBINATION_ID); end;');
1149     STPROC.BIND_O(X0);
1150     STPROC.BIND_I(APPLICATION_SHORT_NAME);
1151     STPROC.BIND_I(KEY_FLEX_CODE);
1152     STPROC.BIND_I(STRUCTURE_NUMBER);
1153     STPROC.BIND_I(COMBINATION_ID);
1154     STPROC.EXECUTE;
1155     STPROC.RETRIEVE(1
1156                    ,X0);*/
1157    X0 := FND_FLEX_EXT.GET_SEGS(APPLICATION_SHORT_NAME, KEY_FLEX_CODE, STRUCTURE_NUMBER, COMBINATION_ID);
1158     RETURN X0;
1159   END GET_SEGS;
1160   function B_task_idFt(organization_id varchar2) return varchar2 is
1161 begin
1162   if WSH_UTIL_VALIDATE.Check_Wms_Org(organization_id)='Y' then
1163     return ('TRUE');
1164   else
1165     return ('FALSE');
1166   end if;
1167  end;
1168 
1169 END WSH_WSHRDPIK_XMLP_PKG;
1170