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