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.3 2008/02/18 10:42:26 dwkrishn noship $ */
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(5000);
79   BEGIN
80     BEGIN
81       P_BATCHES := '  ';
82       P_WSH_PICKING_BATCHES_TABLE := ' ';
83       P_WE_WPB_OUTER_JOIN := ' ';
84       P_HINT_1 := ' ';
85       IF (P_MOVE_ORDER_LOW IS NOT NULL OR P_MOVE_ORDER_HIGH IS NOT NULL) THEN
86         P_WSH_PICKING_BATCHES_TABLE := ' wsh_picking_batches wpb, ';
87         P_WE_WPB_OUTER_JOIN := ' and  wpb.batch_id   =  we.batch_id ';
88         P_HINT_1 := '/*+leading(wpb)*/ ';
89         IF (P_MOVE_ORDER_LOW IS NOT NULL AND P_MOVE_ORDER_HIGH IS NOT NULL) THEN
90           IF (P_MOVE_ORDER_LOW < P_MOVE_ORDER_HIGH) THEN
91             P_BATCHES := ' and wpb.name between :p_move_order_low and :p_move_order_high ';
92           ELSIF (P_MOVE_ORDER_LOW = P_MOVE_ORDER_HIGH) THEN
93             P_BATCHES := ' and wpb.name = :p_move_order_low ';
94           END IF;
95         ELSIF P_MOVE_ORDER_LOW IS NULL THEN
96           P_BATCHES := ' and wpb.name <= :p_move_order_high ';
97         ELSE
98           P_BATCHES := ' and wpb.name >= :p_move_order_low ';
99         END IF;
100       END IF;
101     END;
102     P_REQUEST := ' ';
103     P_EXCEPTION := ' ';
104     P_LOGGING_ENTITY_LOCATION := ' ';
105     P_TRIP := '  ';
106     P_DELIVERY := ' ';
107     P_SEVERITY_STATUS := ' ';
108     P_CREATION_UPDATE_DATE := ' ';
109     IF (P_REQUEST_ID IS NOT NULL) THEN
110       P_REQUEST := ' and we.request_id = :p_request_id ';
111     END IF;
112     IF (P_EXCEPTION_NAME IS NOT NULL) THEN
113       P_EXCEPTION := ' and we.exception_name = :p_exception_name ';
114     END IF;
115     IF (P_LOGGING_ENTITY IS NOT NULL) THEN
116       P_LOGGING_ENTITY_LOCATION := ' and we.logging_entity = :p_logging_entity ';
117     END IF;
118     IF (P_LOGGED_LOCATION_ID IS NOT NULL) THEN
119       P_LOGGING_ENTITY_LOCATION := P_LOGGING_ENTITY_LOCATION || ' and we.logged_at_location_id = :p_logged_location_id ';
120     END IF;
121     IF (P_EXCEPTION_LOCATION_ID IS NOT NULL) THEN
122       P_LOGGING_ENTITY_LOCATION := P_LOGGING_ENTITY_LOCATION || ' and we.exception_location_id = :p_exception_location_id ';
123     END IF;
124     IF (P_TRIP_ID_LOW IS NOT NULL) THEN
125       P_TRIP := ' and nvl(we.trip_id, -1) >= decode(:p_request_id, null, :p_trip_id_low, nvl(we.trip_id, -1)) ';
126     END IF;
127     IF (P_TRIP_ID_HIGH IS NOT NULL) THEN
128       P_TRIP := P_TRIP || ' and nvl(we.trip_id, -1) <= decode(:p_request_id, null, :p_trip_id_high, nvl(we.trip_id, -1)) ';
129     END IF;
130     IF (P_REQUEST_ID IS NULL) THEN
131       IF (P_DELIVERY_ID_LOW IS NOT NULL) THEN
132         P_DELIVERY := ' and we.delivery_id >= :p_delivery_id_low ';
133       END IF;
134       IF (P_DELIVERY_ID_HIGH IS NOT NULL) THEN
135         P_DELIVERY := P_DELIVERY || ' and we.delivery_id <= :p_delivery_id_high ';
136       END IF;
137     END IF;
138     IF (P_SEVERITY IS NOT NULL) THEN
139       P_SEVERITY_STATUS := ' and we.severity = :p_severity ';
140     END IF;
141     IF (P_STATUS IS NOT NULL) THEN
142       P_SEVERITY_STATUS := P_SEVERITY_STATUS || ' and we.status = :p_status ';
143     END IF;
144     IF (P_CREATION_DATE_FROM IS NOT NULL) THEN
145       P_CREATION_UPDATE_DATE := ' and we.creation_date >= :p_creation_date_from ';
146     END IF;
147     IF (P_CREATION_DATE_TO IS NOT NULL) THEN
148       P_CREATION_UPDATE_DATE := P_CREATION_UPDATE_DATE || ' and we.creation_date - ( 86399/86400 ) <= :p_creation_date_to ';
149     END IF;
150     IF (P_LAST_UPDATE_DATE_FROM IS NOT NULL) THEN
151       P_CREATION_UPDATE_DATE := P_CREATION_UPDATE_DATE || ' and we.last_update_date >= :p_last_update_date_from ';
152     END IF;
153     IF (P_LAST_UPDATE_DATE_TO IS NOT NULL) THEN
154       P_CREATION_UPDATE_DATE := P_CREATION_UPDATE_DATE || ' and we.last_update_date - ( 86399/86400 ) <= :p_last_update_date_to ';
155     END IF;
156     L_DEL_LINES_CONT := '';
157     IF P_DELIVERY_ID_LOW IS NOT NULL OR P_DELIVERY_ID_HIGH IS NOT NULL THEN
158       L_DEL_LINES_CONT := 'UNION select
159                              EXCEPTION_ID
160                            ,LOGGED_AT_LOCATION_ID
161                            ,LE.MEANING LOGGING_ENTITY_MEANING
162                            ,EXCEPTION_NAME
163                            ,EXCEPTION_LOCATION_ID
164                            ,MESSAGE
165                            ,SEV.MEANING SEVERITY_MEANING
166                            ,MANUALLY_LOGGED
167                            ,STA.MEANING STATUS_MEANING
168                            ,we.TRIP_ID
169                            ,TRIP_NAME
170                            ,we.TRIP_STOP_ID
171                            ,we.DELIVERY_ID
172                            ,DELIVERY_NAME
173                            ,we.DELIVERY_DETAIL_ID
174                            ,DELIVERY_ASSIGNMENT_ID
175                            ,we.CONTAINER_NAME
176                            , P_ITEM_FLEXSQL   C_ITEM_FLEXDAT
177                            ,we.INVENTORY_ITEM_ID
178                            ,we.LOT_NUMBER
179                           -- HW OPM Convergence Project. Commented Sublot
180                           -- ,we.SUBLOT_NUMBER
181                            ,we.REVISION
182                            ,we.SERIAL_NUMBER
183                            ,UNIT_OF_MEASURE
184                            ,UNIT_OF_MEASURE2
185                            ,QUANTITY
186                            ,QUANTITY2
187                            ,we.SUBINVENTORY
188                            ,we.LOCATOR_ID
189                            , P_LOCATOR_FLEXSQL   C_LOCATOR_FLEXDAT
190                            ,ARRIVAL_DATE
191                            ,DEPARTURE_DATE
192                            ,ERROR_MESSAGE
193                            ,we.CREATION_DATE
194                            ,we.REQUEST_ID
195                            ,WND.NAME DEL_NAME
196                            ,WT.NAME TRP_NAME
197                            from
198                                 wsh_exceptions we,
199                                 mtl_system_items sys,
200                                 mtl_item_locations loc, ' || P_WSH_PICKING_BATCHES_TABLE || ' wsh_lookups sta,
201                                 wsh_lookups sev,
202                                 wsh_lookups le,
203                                 WSH_NEW_DELIVERIES WND,
204                                 WSH_TRIPS WT,
205                                 WSH_TRIP_STOPS WTS,
206                                 WSH_DELIVERY_DETAILS WDD
207                           where
208                             sta.lookup_type = ''EXCEPTION_STATUS''
209                             and sta.lookup_code = we.status
210                             and sev.lookup_type IN ( ''EXCEPTION_SEVERITY'',''EXCEPTION_BEHAVIOR'')
211                             and sev.lookup_code = we.severity
212                             and le.lookup_type = ''LOGGING_ENTITY''
213                             and le.lookup_code = logging_entity
214                             and sys.organization_id(+) = we.exception_location_id
215                             and sys.inventory_item_id(+) = we.inventory_item_id
216                             and loc.inventory_location_id(+) = we.locator_id
217                             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%'')
218                             and we.DELIVERY_ID = WND.DELIVERY_ID (+)
219                             and we.TRIP_ID = WT.TRIP_ID (+)
220                             and we.TRIP_STOP_ID = WTS.STOP_ID (+)
221                             and we.DELIVERY_DETAIL_ID = WDD.DELIVERY_DETAIL_ID (+)
222                             and  ( WND.SHIPMENT_DIRECTION is null or WND.SHIPMENT_DIRECTION IN (''O'', ''IO'') )      --Bug# 3748009
223                             and  ( WND.DELIVERY_TYPE is null or WND.DELIVERY_TYPE = ''STANDARD'') -- R12 MDC changes
224                             and  ( WT.SHIPMENTS_TYPE_FLAG is null or WT.SHIPMENTS_TYPE_FLAG IN (''O'', ''M'')   )     --Bug# 3748009
225                             and  ( WTS.SHIPMENTS_TYPE_FLAG is null or WTS.SHIPMENTS_TYPE_FLAG  IN (''O'', ''M'')  )   --Bug# 3748009
226                             and  ( WDD.LINE_DIRECTION is null or WDD.LINE_DIRECTION IN (''O'', ''IO'')  )   ';
227       L_DEL_LINES_CONT := L_DEL_LINES_CONT || P_BATCHES;
228       L_DEL_LINES_CONT := L_DEL_LINES_CONT || ' and (
229                               we.exception_id IN (
230                               SELECT we1.exception_id
231                               FROM   wsh_exceptions we1, wsh_delivery_assignments_v wda
232                               WHERE  we1.delivery_detail_id = wda.delivery_detail_id ';
233       IF P_DELIVERY_ID_LOW IS NOT NULL THEN
234         L_DEL_LINES_CONT := L_DEL_LINES_CONT || ' AND wda.delivery_id >= :p_delivery_id_low ';
235       END IF;
236       IF P_DELIVERY_ID_HIGH IS NOT NULL THEN
237         L_DEL_LINES_CONT := L_DEL_LINES_CONT || ' AND wda.delivery_id <= :p_delivery_id_high ';
238       END IF;
239       L_DEL_LINES_CONT := L_DEL_LINES_CONT || ' AND    wda.delivery_id IS NOT NULL
240                               AND    we1.status <> ''CLOSED''
241                               )
242                               OR we.exception_id IN (
243                               SELECT we1.exception_id
244                               FROM   wsh_exceptions we1, wsh_delivery_assignments_v wda, wsh_delivery_details wdd1
245                               WHERE  we1.delivery_detail_id = wdd1.delivery_detail_id --LPN Synch Up.added delivery_detail_id instead of container_name..samanna
246                               AND    wdd1.container_flag = ''Y''
247                               AND    wdd1.delivery_detail_id = wda.delivery_detail_id ';
248       IF P_DELIVERY_ID_LOW IS NOT NULL THEN
249         L_DEL_LINES_CONT := L_DEL_LINES_CONT || ' AND wda.delivery_id >= :p_delivery_id_low ';
250       END IF;
251       IF P_DELIVERY_ID_HIGH IS NOT NULL THEN
252         L_DEL_LINES_CONT := L_DEL_LINES_CONT || ' AND wda.delivery_id <= :p_delivery_id_high ';
253       END IF;
254       L_DEL_LINES_CONT := L_DEL_LINES_CONT || ' AND    wda.delivery_id IS NOT NULL
255                               AND    we1.status <> ''CLOSED''
256                               ) )';
257       P_DEL_LINES_CONT := L_DEL_LINES_CONT;
258     END IF;
259     IF P_SORT_BY = '1' THEN
260       P_ORDER_BY := ' order by we.exception_name ';
261     END IF;
262     IF P_SORT_BY = '2' THEN
263       P_ORDER_BY := ' order by we.severity, we.trip_name, we.delivery_name ';
264     END IF;
265     IF P_SORT_BY = '3' THEN
266       P_ORDER_BY := ' order by we.severity, we.delivery_name, we.trip_name ';
267     END IF;
268     IF P_SORT_BY = '4' THEN
269       P_ORDER_BY := ' order by we.status, we.trip_name, we.delivery_name ';
270     END IF;
271     IF P_SORT_BY = '5' THEN
272       P_ORDER_BY := ' order by we.status, we.delivery_name, we.trip_name ';
273     END IF;
274     IF P_SORT_BY = '6' THEN
275       P_ORDER_BY := ' order by we.trip_name, we.delivery_name ';
276     END IF;
277     IF P_SORT_BY = '7' THEN
278       P_ORDER_BY := ' order by we.delivery_name, we.trip_name ';
279     END IF;
280     IF P_SORT_BY = '8' THEN
281       P_ORDER_BY := ' order by we.creation_date, we.trip_name, we.delivery_name ';
282     END IF;
283     IF P_SORT_BY = '9' THEN
284       P_ORDER_BY := ' order by we.creation_date, we.delivery_name, we.trip_name ';
285     END IF;
286     IF P_SORT_BY = '10' THEN
287       P_ORDER_BY := ' order by we.logging_entity ';
288     END IF;
289     RETURN (TRUE);
290   END AFTERPFORM;
291 
292   FUNCTION C_LOGGED_LOCATIONFORMULA(LOGGED_AT_LOCATION_ID IN NUMBER) RETURN CHAR IS
293     L_LOGGED_LOCATION VARCHAR2(121);
294   BEGIN
295     IF LOGGED_AT_LOCATION_ID IS NOT NULL THEN
296       L_LOGGED_LOCATION := WSH_UTIL_CORE.GET_LOCATION_DESCRIPTION(LOGGED_AT_LOCATION_ID
297                                                                  ,'NEW UI CODE');
298       RETURN (L_LOGGED_LOCATION);
299     ELSE
300       RETURN (NULL);
301     END IF;
305     L_EXCEPTION_LOCATION VARCHAR2(121);
302   END C_LOGGED_LOCATIONFORMULA;
303 
304   FUNCTION C_EXCEPTION_LOCATIONFORMULA(EXCEPTION_LOCATION_ID IN NUMBER) RETURN CHAR IS
306   BEGIN
307     IF EXCEPTION_LOCATION_ID IS NOT NULL THEN
308       L_EXCEPTION_LOCATION := WSH_UTIL_CORE.GET_LOCATION_DESCRIPTION(EXCEPTION_LOCATION_ID
309                                                                     ,'NEW UI CODE');
310       RETURN (L_EXCEPTION_LOCATION);
311     ELSE
312       RETURN (NULL);
313     END IF;
314   END C_EXCEPTION_LOCATIONFORMULA;
315 
316   FUNCTION CF_CONTAINER_NAMEFORMULA(CONTAINER_NAME IN VARCHAR2
317                                    ,DELIVERY_DETAIL_ID IN NUMBER) RETURN VARCHAR2 IS
318     CURSOR C_NAME(X_DETAIL_ID IN NUMBER) IS
319       SELECT
320         CONTAINER_NAME,
321         CONTAINER_FLAG
322       FROM
323         WSH_DELIVERY_DETAILS WDD
324       WHERE WDD.DELIVERY_DETAIL_ID = X_DETAIL_ID;
325     L_INFO C_NAME%ROWTYPE;
326   BEGIN
327     IF CONTAINER_NAME IS NOT NULL THEN
328       CP_DELIVERY_DETAIL_ID := DELIVERY_DETAIL_ID;
329       RETURN CONTAINER_NAME;
330     END IF;
331     IF DELIVERY_DETAIL_ID IS NULL THEN
332       CP_DELIVERY_DETAIL_ID := NULL;
333       RETURN NULL;
334     END IF;
335     OPEN C_NAME(DELIVERY_DETAIL_ID);
336     FETCH C_NAME
337      INTO L_INFO;
338     CLOSE C_NAME;
339     IF L_INFO.CONTAINER_FLAG = 'Y' THEN
340       CP_DELIVERY_DETAIL_ID := NULL;
341     ELSE
342       CP_DELIVERY_DETAIL_ID := DELIVERY_DETAIL_ID;
343     END IF;
344     RETURN L_INFO.CONTAINER_NAME;
345   EXCEPTION
346     WHEN OTHERS THEN
347       IF C_NAME%ISOPEN THEN
348         CLOSE C_NAME;
349       END IF;
350       CP_DELIVERY_DETAIL_ID := DELIVERY_DETAIL_ID;
351       RETURN CONTAINER_NAME;
352   END CF_CONTAINER_NAMEFORMULA;
353 
354   FUNCTION CF_DELIVERY_NAMEFORMULA(DELIVERY_DETAIL_ID IN NUMBER
355                                   ,DEL_NAME IN VARCHAR2) RETURN CHAR IS
356     L_DELIVERY VARCHAR2(30);
357     CURSOR C_DELIVERY(P_DELIVERY_DETAIL_ID IN NUMBER) IS
358       SELECT
359         NAME
360       FROM
361         WSH_NEW_DELIVERIES WND,
362         WSH_DELIVERY_DETAILS WDD,
363         WSH_DELIVERY_ASSIGNMENTS_V WDA
364       WHERE WDD.DELIVERY_DETAIL_ID = P_DELIVERY_DETAIL_ID
365         AND WDA.DELIVERY_DETAIL_ID = WDD.DELIVERY_DETAIL_ID
366         AND WDA.DELIVERY_ID = WND.DELIVERY_ID
367         AND WND.DELIVERY_TYPE = 'STANDARD';
368   BEGIN
369     IF DELIVERY_DETAIL_ID IS NOT NULL AND DEL_NAME IS NULL THEN
370       OPEN C_DELIVERY(DELIVERY_DETAIL_ID);
371       FETCH C_DELIVERY
372        INTO L_DELIVERY;
373       CLOSE C_DELIVERY;
374     ELSE
375       L_DELIVERY := DEL_NAME;
376     END IF;
377     RETURN (L_DELIVERY);
378   END CF_DELIVERY_NAMEFORMULA;
379 
380   FUNCTION CP_DELIVERY_DETAIL_ID_P RETURN NUMBER IS
381   BEGIN
382     RETURN CP_DELIVERY_DETAIL_ID;
383   END CP_DELIVERY_DETAIL_ID_P;
384 
385   FUNCTION CP_EXCEPTION_LOCATION_NAME_P RETURN VARCHAR2 IS
386   BEGIN
387     RETURN CP_EXCEPTION_LOCATION_NAME;
388   END CP_EXCEPTION_LOCATION_NAME_P;
389 
390   FUNCTION CP_SHIP_FROM_LOCATION_NAME_P RETURN VARCHAR2 IS
391   BEGIN
392     RETURN CP_SHIP_FROM_LOCATION_NAME;
393   END CP_SHIP_FROM_LOCATION_NAME_P;
394 
395   FUNCTION CP_WAREHOUSE_NAME_P RETURN VARCHAR2 IS
396   BEGIN
397     RETURN CP_WAREHOUSE_NAME;
398   END CP_WAREHOUSE_NAME_P;
399 
400 END WSH_WSHRDXCP_XMLP_PKG;
401