DBA Data[Home] [Help]

PACKAGE BODY: APPS.WSH_WSHRDXCP_XMLP_PKG

Source


1 PACKAGE BODY WSH_WSHRDXCP_XMLP_PKG AS
2 /* $Header: WSHRDXCPB.pls 120.6 2010/07/07 13:07:05 gbhargav ship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4   C_DATE_FORMAT varchar2(20);
5   BEGIN
6      BEGIN
7       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
8       C_DATE_FORMAT := 'DD-MON-YY';
9       CP_CREATION_DATE_FROM := to_char(P_CREATION_DATE_FROM,C_DATE_FORMAT);
10       CP_CREATION_DATE_TO := to_char(P_CREATION_DATE_TO,C_DATE_FORMAT);
11       CP_LAST_UPDATE_DATE_FROM := to_char(P_LAST_UPDATE_DATE_FROM,C_DATE_FORMAT);
12       CP_LAST_UPDATE_DATE_TO := to_char(P_LAST_UPDATE_DATE_TO,C_DATE_FORMAT);
13       /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
14     EXCEPTION
15       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
16         /*SRW.MESSAGE(1
17                    ,'Failed FND SRWINIT.')*/NULL;
18         /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
19     END;
20     DECLARE
21       P_ORG_ID_CHAR VARCHAR2(100) := TO_CHAR(P_ORG_ID);
22     BEGIN
23       /*SRW.USER_EXIT('FND PUTPROFILE NAME="' || 'MFG_ORGANIZATION_ID' || '" FIELD="' || P_ORG_ID_CHAR || '"')*/NULL;
24     EXCEPTION
25       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
26         /*SRW.MESSAGE(020
27                    ,'Failed in before report trigger, setting org profile ')*/NULL;
28         RAISE;
29     END;
30     BEGIN
31       NULL;
32     EXCEPTION
33       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
34         /*SRW.MESSAGE(1
35                    ,'Before Report: LocatorFlex')*/NULL;
36     END;
37     BEGIN
38       NULL;
39     EXCEPTION
40       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
41         /*SRW.MESSAGE(1
42                    ,'Before Report: ItemFlex')*/NULL;
43     END;
44     DECLARE
45       CURSOR WAREHOUSE_NAME IS
46         SELECT
47           NAME
48         FROM
49           HR_ORGANIZATION_UNITS
50         WHERE ORGANIZATION_ID = P_ORG_ID;
51     BEGIN
52       OPEN WAREHOUSE_NAME;
53       FETCH WAREHOUSE_NAME
54        INTO CP_WAREHOUSE_NAME;
55       CLOSE WAREHOUSE_NAME;
56       CP_EXCEPTION_LOCATION_NAME := WSH_UTIL_CORE.GET_LOCATION_DESCRIPTION(P_EXCEPTION_LOCATION_ID
57                                                                           ,'NEW UI CODE');
58       CP_SHIP_FROM_LOCATION_NAME := WSH_UTIL_CORE.GET_LOCATION_DESCRIPTION(P_LOGGED_LOCATION_ID
59                                                                           ,'NEW UI CODE');
60     END;
61     RETURN (TRUE);
62   END BEFOREREPORT;
63 
64   FUNCTION AFTERREPORT RETURN BOOLEAN IS
65   BEGIN
66     BEGIN
67       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
68     EXCEPTION
69       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
70         /*SRW.MESSAGE(1
71                    ,'Failed in SRWEXIT')*/NULL;
72         RAISE;
73     END;
74     RETURN (TRUE);
75   END AFTERREPORT;
76 
77   FUNCTION AFTERPFORM RETURN BOOLEAN IS
78     L_DEL_LINES_CONT VARCHAR2(10000);
79     L_DEL_LINES_CONT_TEMP VARCHAR2(5000); --Bug 8800213
80   BEGIN
81     BEGIN
82       P_BATCHES := '  ';
83       P_WSH_PICKING_BATCHES_TABLE := ' ';
84       P_WE_WPB_OUTER_JOIN := ' ';
85       P_HINT_1 := ' ';
86       IF (P_MOVE_ORDER_LOW IS NOT NULL OR P_MOVE_ORDER_HIGH IS NOT NULL) THEN
87         P_WSH_PICKING_BATCHES_TABLE := ' wsh_picking_batches wpb, ';
88         P_WE_WPB_OUTER_JOIN := ' and  wpb.batch_id   =  we.batch_id ';
89         P_HINT_1 := '/*+leading(wpb)*/ ';
90         IF (P_MOVE_ORDER_LOW IS NOT NULL AND P_MOVE_ORDER_HIGH IS NOT NULL) THEN
91           IF (P_MOVE_ORDER_LOW < P_MOVE_ORDER_HIGH) THEN
92             P_BATCHES := ' and wpb.name between :p_move_order_low and :p_move_order_high ';
93           ELSIF (P_MOVE_ORDER_LOW = P_MOVE_ORDER_HIGH) THEN
94             P_BATCHES := ' and wpb.name = :p_move_order_low ';
95           END IF;
96         ELSIF P_MOVE_ORDER_LOW IS NULL THEN
97           P_BATCHES := ' and wpb.name <= :p_move_order_high ';
98         ELSE
99           P_BATCHES := ' and wpb.name >= :p_move_order_low ';
100         END IF;
101       END IF;
102     END;
103     P_REQUEST := ' ';
104     P_EXCEPTION := ' ';
105     P_LOGGING_ENTITY_LOCATION := ' ';
106     P_TRIP := '  ';
107     P_DELIVERY := ' ';
108     P_SEVERITY_STATUS := ' ';
109     P_CREATION_UPDATE_DATE := ' ';
110     IF (P_REQUEST_ID IS NOT NULL and P_REQUEST_ID <> -99 ) THEN      --Bug 8800213 added P_REQUEST_ID != -99
111       P_REQUEST := ' and we.request_id = :p_request_id ';
112     END IF;
113     IF (P_EXCEPTION_NAME IS NOT NULL) THEN
114       P_EXCEPTION := ' and we.exception_name = :p_exception_name ';
115     END IF;
116     IF (P_LOGGING_ENTITY IS NOT NULL) THEN
117       P_LOGGING_ENTITY_LOCATION := ' and we.logging_entity = :p_logging_entity ';
118     END IF;
119     IF (P_LOGGED_LOCATION_ID IS NOT NULL) THEN
120       P_LOGGING_ENTITY_LOCATION := P_LOGGING_ENTITY_LOCATION || ' and we.logged_at_location_id = :p_logged_location_id ';
121     END IF;
122     IF (P_EXCEPTION_LOCATION_ID IS NOT NULL) THEN
123       P_LOGGING_ENTITY_LOCATION := P_LOGGING_ENTITY_LOCATION || ' and we.exception_location_id = :p_exception_location_id ';
124     END IF;
125 
126     IF (P_REQUEST_ID IS NULL) THEN --bug 8800213 check trip only when P_REQUEST_ID is null
127       IF (P_TRIP_ID_LOW IS NOT NULL) THEN
128          P_TRIP := ' and nvl(we.trip_id, -1) >= decode(:p_request_id, null, :p_trip_id_low, nvl(we.trip_id, -1)) ';
129       END IF;
130 
131       IF (P_TRIP_ID_HIGH IS NOT NULL) THEN
132         P_TRIP := P_TRIP || ' and nvl(we.trip_id, -1) <= decode(:p_request_id, null, :p_trip_id_high, nvl(we.trip_id, -1)) ';
133       END IF;
134     END IF;
135 
136     IF (P_REQUEST_ID IS NULL) THEN
137       IF (P_DELIVERY_ID_LOW IS NOT NULL) THEN
138         P_DELIVERY := ' and we.delivery_id >= :p_delivery_id_low ';
139       END IF;
140       IF (P_DELIVERY_ID_HIGH IS NOT NULL) THEN
141         P_DELIVERY := P_DELIVERY || ' and we.delivery_id <= :p_delivery_id_high ';
142       END IF;
143     END IF;
144     IF (P_SEVERITY IS NOT NULL) THEN
145       P_SEVERITY_STATUS := ' and we.severity = :p_severity ';
146     END IF;
147     IF (P_STATUS IS NOT NULL) THEN
148       P_SEVERITY_STATUS := P_SEVERITY_STATUS || ' and we.status = :p_status ';
149     END IF;
150     IF (P_CREATION_DATE_FROM IS NOT NULL) THEN
151       P_CREATION_UPDATE_DATE := ' and we.creation_date >= :p_creation_date_from ';
152     END IF;
153     IF (P_CREATION_DATE_TO IS NOT NULL) THEN
154       P_CREATION_UPDATE_DATE := P_CREATION_UPDATE_DATE || ' and we.creation_date - ( 86399/86400 ) <= :p_creation_date_to ';
155     END IF;
156     IF (P_LAST_UPDATE_DATE_FROM IS NOT NULL) THEN
157       P_CREATION_UPDATE_DATE := P_CREATION_UPDATE_DATE || ' and we.last_update_date >= :p_last_update_date_from ';
158     END IF;
159     IF (P_LAST_UPDATE_DATE_TO IS NOT NULL) THEN
160       P_CREATION_UPDATE_DATE := P_CREATION_UPDATE_DATE || ' and we.last_update_date - ( 86399/86400 ) <= :p_last_update_date_to ';
161     END IF;
162     L_DEL_LINES_CONT := '';
163     IF ((P_DELIVERY_ID_LOW IS NOT NULL OR P_DELIVERY_ID_HIGH IS NOT NULL) AND
164          (P_MOVE_ORDER_LOW IS NULL AND P_MOVE_ORDER_HIGH IS NULL)) THEN    --Bug 8800213 Don't populate L_DEL_LINES_CONT for Pick release online and concurrent
165     --{
166          --Bug 8993846 broken the query into select clause and where clause so that after select clause query flexfield lexicals can be accessed in data template.
167          P_DEL_LINES_CONT:= 'UNION select
168          --Bug 8800213 :Adding the hint to improve performance
169          /*+ leading(wda)*/
170          EXCEPTION_ID         --Bug 8800213 indented all columns to left to reduce the dynamic string length
171          ,LOGGED_AT_LOCATION_ID
172          ,LE.MEANING LOGGING_ENTITY_MEANING
173          ,EXCEPTION_NAME
174          ,EXCEPTION_LOCATION_ID
175          ,MESSAGE
176          ,SEV.MEANING SEVERITY_MEANING
177          ,MANUALLY_LOGGED
178          ,STA.MEANING STATUS_MEANING
179          ,we.TRIP_ID
180          ,TRIP_NAME
181          ,we.TRIP_STOP_ID
182          ,we.DELIVERY_ID
183          ,DELIVERY_NAME
184          ,we.DELIVERY_DETAIL_ID
185          ,we.DELIVERY_ASSIGNMENT_ID
186          ,we.CONTAINER_NAME
187          ,' || P_ITEM_FLEXSQL ||' C_ITEM_FLEXDAT --bug 8800213 placed P_ITEM_FLEXSQL outside string so that its values is appended
188          ,we.INVENTORY_ITEM_ID
189          ,we.LOT_NUMBER
190          -- HW OPM Convergence Project. Commented Sublot
191          -- ,we.SUBLOT_NUMBER
192          ,we.REVISION
193          ,we.SERIAL_NUMBER
194          ,UNIT_OF_MEASURE
195          ,UNIT_OF_MEASURE2
196          ,QUANTITY
197          ,QUANTITY2
198          ,we.SUBINVENTORY
199          ,we.LOCATOR_ID
200          ,'|| P_LOCATOR_FLEXSQL  ||' C_LOCATOR_FLEXDAT --bug 8800213 placed  P_LOCATOR_FLEXSQL outside string so that its values is appended
201          ,ARRIVAL_DATE
202          ,DEPARTURE_DATE
203          ,ERROR_MESSAGE
204          ,we.CREATION_DATE
205          ,we.REQUEST_ID
206          ,WND.NAME DEL_NAME
207          ,WT.NAME TRP_NAME
208           --Bug 8800213 added following columns as main query has these columns.
209          ,WSH_WSHRDXCP_XMLP_PKG.c_exception_locationformula(EXCEPTION_LOCATION_ID) C_Exception_Location
210          ,WSH_WSHRDXCP_XMLP_PKG.c_logged_locationformula(LOGGED_AT_LOCATION_ID) C_Logged_Location
211          ,WSH_WSHRDXCP_XMLP_PKG.cf_container_nameformula(we.CONTAINER_NAME, we.DELIVERY_DETAIL_ID) CF_container_name
212          ,WSH_WSHRDXCP_XMLP_PKG.cf_delivery_nameformula(we.DELIVERY_DETAIL_ID, WND.NAME) CF_delivery_name
213          ,WSH_WSHRDXCP_XMLP_PKG.CP_delivery_detail_id_p CP_delivery_detail_id';
214 
215           L_DEL_LINES_CONT_TEMP :=
216          'from
217                wsh_exceptions we,
218                mtl_system_items sys,
219                mtl_item_locations loc, ' || P_WSH_PICKING_BATCHES_TABLE || ' wsh_lookups sta,
220                wsh_lookups sev,
221                wsh_lookups le,
222                WSH_NEW_DELIVERIES WND,
223                WSH_TRIPS WT,
224                WSH_TRIP_STOPS WTS,
225                WSH_DELIVERY_DETAILS WDD,
226                WSH_DELIVERY_ASSIGNMENTS_V WDA  --Bug 8800213
227          where
228                sta.lookup_type = ''EXCEPTION_STATUS''
229                and sta.lookup_code = we.status
230                and sev.lookup_type IN ( ''EXCEPTION_SEVERITY'',''EXCEPTION_BEHAVIOR'')
231                and sev.lookup_code = we.severity
232                and le.lookup_type = ''LOGGING_ENTITY''
233                and le.lookup_code = logging_entity
234                and sys.organization_id(+) = we.exception_location_id
235                and sys.inventory_item_id(+) = we.inventory_item_id
236                and loc.inventory_location_id(+) = we.locator_id
237                and loc.organization_id(+) = we.exception_location_id ' || P_WE_WPB_OUTER_JOIN || ' and (we.exception_name IS NULL OR we.exception_name not like ''WSH_IB%'')
238                and we.DELIVERY_ID = WND.DELIVERY_ID (+)
239                and we.TRIP_ID = WT.TRIP_ID (+)
240                and we.TRIP_STOP_ID = WTS.STOP_ID (+)
241                and we.DELIVERY_DETAIL_ID = WDD.DELIVERY_DETAIL_ID (+)
242                and  ( WND.SHIPMENT_DIRECTION is null or WND.SHIPMENT_DIRECTION IN (''O'', ''IO'') )      --Bug# 3748009
243                and  ( WND.DELIVERY_TYPE is null or WND.DELIVERY_TYPE = ''STANDARD'') -- R12 MDC changes
244                and  ( WT.SHIPMENTS_TYPE_FLAG is null or WT.SHIPMENTS_TYPE_FLAG IN (''O'', ''M'')   )     --Bug# 3748009
245                and  ( WTS.SHIPMENTS_TYPE_FLAG is null or WTS.SHIPMENTS_TYPE_FLAG  IN (''O'', ''M'')  )   --Bug# 3748009
246                and  ( WDD.LINE_DIRECTION is null or WDD.LINE_DIRECTION IN (''O'', ''IO'')  )   ';
247 
248           --Bug 8800213 : Adding the common part of the unions, to the main string.
249           P_DEL_LINES_CONT_1 := P_DEL_LINES_CONT_1||L_DEL_LINES_CONT_TEMP;
250 
251           P_DEL_LINES_CONT_1 := P_DEL_LINES_CONT_1 || P_BATCHES;
252 
253           --Bug 8800213 commented above code and rebuild the queries to seperate out delivery details and container query
254           P_DEL_LINES_CONT_1 := P_DEL_LINES_CONT_1 || ' ';
255 
256           IF P_DELIVERY_ID_LOW IS NOT NULL THEN
257                P_DEL_LINES_CONT_1 := P_DEL_LINES_CONT_1 || ' AND wda.delivery_id >= :p_delivery_id_low ';
258           END IF;
259 
260           IF P_DELIVERY_ID_HIGH IS NOT NULL THEN
261               P_DEL_LINES_CONT_1 := P_DEL_LINES_CONT_1 || ' AND wda.delivery_id <= :p_delivery_id_high ';
262           END IF;
263        	  --Bug 8310786:The following part of query ensures that only exceptions logged against delivery details are selected.
264           P_DEL_LINES_CONT_1 := P_DEL_LINES_CONT_1 || ' AND    wda.delivery_id IS NOT NULL
265                     AND we.delivery_detail_id = wda.delivery_detail_id
266                     AND    we.status <> ''CLOSED''    ';
267 
268           --Bug 8310786: Adding the common part of the unions, to the main string.
269           P_DEL_LINES_CONT_2 := P_DEL_LINES_CONT_2 ||L_DEL_LINES_CONT_TEMP;
270           --Bug# 3726195
271           P_DEL_LINES_CONT_2 := P_DEL_LINES_CONT_2 || P_BATCHES;
272 
273           P_DEL_LINES_CONT_2 := P_DEL_LINES_CONT_2 || ' ';
274 
275           IF  P_DELIVERY_ID_LOW IS NOT NULL THEN
276               P_DEL_LINES_CONT_2 := P_DEL_LINES_CONT_2 || ' AND wda.delivery_id >= :p_delivery_id_low ';
277           END IF;
278 
279           IF P_DELIVERY_ID_HIGH IS NOT NULL THEN
280              P_DEL_LINES_CONT_2 := P_DEL_LINES_CONT_2 || ' AND wda.delivery_id <= :p_delivery_id_high ';
281           END IF;
282 
283           --Bug 8310786: The following part of query ensures that only exceptions logged against containers are selected.
284           P_DEL_LINES_CONT_2 := P_DEL_LINES_CONT_2 || ' AND    wda.delivery_id IS NOT NULL
285             AND wdd.delivery_detail_id = wda.delivery_detail_id
286             AND wdd.container_flag     = ''Y''
287             AND we.container_name      = wdd.container_name
288             AND    we.status <> ''CLOSED''    ';
289 
290     --}
291     ELSE
292     --{
293          P_DEL_LINES_CONT := '--';
294          P_DEL_LINES_CONT_1 := '--';
295          P_DEL_LINES_CONT_2 := '--';
296     --}
297     END IF;
298     IF P_SORT_BY = '1' THEN
299       P_ORDER_BY := ' order by we.exception_name ';
300     END IF;
301     IF P_SORT_BY = '2' THEN
302       P_ORDER_BY := ' order by we.severity, we.trip_name, we.delivery_name ';
303     END IF;
304     IF P_SORT_BY = '3' THEN
305       P_ORDER_BY := ' order by we.severity, we.delivery_name, we.trip_name ';
306     END IF;
307     IF P_SORT_BY = '4' THEN
308       P_ORDER_BY := ' order by we.status, we.trip_name, we.delivery_name ';
309     END IF;
310     IF P_SORT_BY = '5' THEN
311       P_ORDER_BY := ' order by we.status, we.delivery_name, we.trip_name ';
312     END IF;
313     IF P_SORT_BY = '6' THEN
314       P_ORDER_BY := ' order by we.trip_name, we.delivery_name ';
315     END IF;
316     IF P_SORT_BY = '7' THEN
317       P_ORDER_BY := ' order by we.delivery_name, we.trip_name ';
318     END IF;
319     IF P_SORT_BY = '8' THEN
320       P_ORDER_BY := ' order by we.creation_date, we.trip_name, we.delivery_name ';
321     END IF;
322     IF P_SORT_BY = '9' THEN
323       P_ORDER_BY := ' order by we.creation_date, we.delivery_name, we.trip_name ';
324     END IF;
325     IF P_SORT_BY = '10' THEN
326       P_ORDER_BY := ' order by we.logging_entity ';
327     END IF;
328     RETURN (TRUE);
329   END AFTERPFORM;
330 
331   FUNCTION C_LOGGED_LOCATIONFORMULA(LOGGED_AT_LOCATION_ID IN NUMBER) RETURN CHAR IS
332     L_LOGGED_LOCATION VARCHAR2(121);
333   BEGIN
334     IF LOGGED_AT_LOCATION_ID IS NOT NULL THEN
335       L_LOGGED_LOCATION := WSH_UTIL_CORE.GET_LOCATION_DESCRIPTION(LOGGED_AT_LOCATION_ID
336                                                                  ,'NEW UI CODE');
337       RETURN (L_LOGGED_LOCATION);
338     ELSE
339       RETURN (NULL);
340     END IF;
341   END C_LOGGED_LOCATIONFORMULA;
342 
343   FUNCTION C_EXCEPTION_LOCATIONFORMULA(EXCEPTION_LOCATION_ID IN NUMBER) RETURN CHAR IS
344     L_EXCEPTION_LOCATION VARCHAR2(121);
345   BEGIN
346     IF EXCEPTION_LOCATION_ID IS NOT NULL THEN
347       L_EXCEPTION_LOCATION := WSH_UTIL_CORE.GET_LOCATION_DESCRIPTION(EXCEPTION_LOCATION_ID
348                                                                     ,'NEW UI CODE');
349       RETURN (L_EXCEPTION_LOCATION);
350     ELSE
351       RETURN (NULL);
352     END IF;
353   END C_EXCEPTION_LOCATIONFORMULA;
354 
355   FUNCTION CF_CONTAINER_NAMEFORMULA(CONTAINER_NAME IN VARCHAR2
356                                    ,DELIVERY_DETAIL_ID IN NUMBER) RETURN VARCHAR2 IS
357     CURSOR C_NAME(X_DETAIL_ID IN NUMBER) IS
358       SELECT
359         CONTAINER_NAME,
360         CONTAINER_FLAG
361       FROM
362         WSH_DELIVERY_DETAILS WDD
363       WHERE WDD.DELIVERY_DETAIL_ID = X_DETAIL_ID;
364     L_INFO C_NAME%ROWTYPE;
365   BEGIN
366     IF CONTAINER_NAME IS NOT NULL THEN
367       CP_DELIVERY_DETAIL_ID := DELIVERY_DETAIL_ID;
368       RETURN CONTAINER_NAME;
369     END IF;
370     IF DELIVERY_DETAIL_ID IS NULL THEN
371       CP_DELIVERY_DETAIL_ID := NULL;
372       RETURN NULL;
373     END IF;
374     OPEN C_NAME(DELIVERY_DETAIL_ID);
375     FETCH C_NAME
376      INTO L_INFO;
377     CLOSE C_NAME;
378     IF L_INFO.CONTAINER_FLAG = 'Y' THEN
379       CP_DELIVERY_DETAIL_ID := NULL;
380     ELSE
381       CP_DELIVERY_DETAIL_ID := DELIVERY_DETAIL_ID;
382     END IF;
383     RETURN L_INFO.CONTAINER_NAME;
384   EXCEPTION
385     WHEN OTHERS THEN
386       IF C_NAME%ISOPEN THEN
387         CLOSE C_NAME;
388       END IF;
389       CP_DELIVERY_DETAIL_ID := DELIVERY_DETAIL_ID;
390       RETURN CONTAINER_NAME;
391   END CF_CONTAINER_NAMEFORMULA;
392 
393   FUNCTION CF_DELIVERY_NAMEFORMULA(DELIVERY_DETAIL_ID IN NUMBER
394                                   ,DEL_NAME IN VARCHAR2) RETURN CHAR IS
395     L_DELIVERY VARCHAR2(30);
396     CURSOR C_DELIVERY(P_DELIVERY_DETAIL_ID IN NUMBER) IS
397       SELECT
398         NAME
399       FROM
400         WSH_NEW_DELIVERIES WND,
401         WSH_DELIVERY_DETAILS WDD,
402         WSH_DELIVERY_ASSIGNMENTS_V WDA
403       WHERE WDD.DELIVERY_DETAIL_ID = P_DELIVERY_DETAIL_ID
404         AND WDA.DELIVERY_DETAIL_ID = WDD.DELIVERY_DETAIL_ID
405         AND WDA.DELIVERY_ID = WND.DELIVERY_ID
406         AND WND.DELIVERY_TYPE = 'STANDARD';
407   BEGIN
408     IF DELIVERY_DETAIL_ID IS NOT NULL AND DEL_NAME IS NULL THEN
409       OPEN C_DELIVERY(DELIVERY_DETAIL_ID);
410       FETCH C_DELIVERY
411        INTO L_DELIVERY;
412       CLOSE C_DELIVERY;
413     ELSE
414       L_DELIVERY := DEL_NAME;
415     END IF;
416     RETURN (L_DELIVERY);
417   END CF_DELIVERY_NAMEFORMULA;
418 
419   FUNCTION CP_DELIVERY_DETAIL_ID_P RETURN NUMBER IS
420   BEGIN
421     RETURN CP_DELIVERY_DETAIL_ID;
422   END CP_DELIVERY_DETAIL_ID_P;
423 
424   FUNCTION CP_EXCEPTION_LOCATION_NAME_P RETURN VARCHAR2 IS
425   BEGIN
426     RETURN CP_EXCEPTION_LOCATION_NAME;
427   END CP_EXCEPTION_LOCATION_NAME_P;
428 
429   FUNCTION CP_SHIP_FROM_LOCATION_NAME_P RETURN VARCHAR2 IS
430   BEGIN
431     RETURN CP_SHIP_FROM_LOCATION_NAME;
432   END CP_SHIP_FROM_LOCATION_NAME_P;
433 
434   FUNCTION CP_WAREHOUSE_NAME_P RETURN VARCHAR2 IS
435   BEGIN
436     RETURN CP_WAREHOUSE_NAME;
437   END CP_WAREHOUSE_NAME_P;
438 
439 END WSH_WSHRDXCP_XMLP_PKG;
440