1 PACKAGE BODY WSH_WSHRDBOL_XMLP_PKG AS
2 /* $Header: WSHRDBOLB.pls 120.3.12010000.3 2009/12/03 10:39:11 mvudugul ship $ */
3 FUNCTION AFTERPFORM RETURN BOOLEAN IS
4 BEGIN
5 P_DELIVERY_DATE_HIGH_V:=P_DELIVERY_DATE_HIGH;
6 LP_WHERE_CLAUSE := 'where 1 = 1';
7 IF P_DELIVERY_LEG_ID IS NOT NULL THEN
8 LP_DELIVERY_LEG_ID := 'AND wbrv.delivery_leg_id = :P_DELIVERY_LEG_ID';
9 END IF;
10 IF P_DELIVERY_DATE_HIGH IS NOT NULL THEN
11 --P_DELIVERY_DATE_HIGH := P_DELIVERY_DATE_HIGH + (86399 / 86400);
12 P_DELIVERY_DATE_HIGH_V := P_DELIVERY_DATE_HIGH + (86399 / 86400);
13 END IF;
14 --IF P_DELIVERY_DATE_LOW IS NOT NULL OR P_DELIVERY_DATE_HIGH IS NOT NULL THEN
15 IF P_DELIVERY_DATE_LOW IS NOT NULL OR P_DELIVERY_DATE_HIGH_V IS NOT NULL THEN
16 IF P_DELIVERY_DATE_LOW IS NULL THEN
17 --LP_DATE_RANGE := 'AND wbrv.delivery_leg_id IN (select distinct delivery_leg_id from wsh_delivery_legs where pick_up_stop_id in (select stop_id from wsh_trip_stops where planned_departure_date <= :P_DELIVERY_DATE_HIGH))';
18 LP_DATE_RANGE := 'AND wbrv.delivery_leg_id IN (select distinct delivery_leg_id from wsh_delivery_legs where pick_up_stop_id in (select stop_id from wsh_trip_stops where planned_departure_date <= :P_DELIVERY_DATE_HIGH_V))';
19 --ELSIF P_DELIVERY_DATE_HIGH IS NULL THEN
20 ELSIF P_DELIVERY_DATE_HIGH_V IS NULL THEN
21 LP_DATE_RANGE := 'AND wbrv.delivery_leg_id IN (select distinct delivery_leg_id from wsh_delivery_legs where pick_up_stop_id in (select stop_id from wsh_trip_stops where planned_departure_date >= :P_DELIVERY_DATE_LOW))';
22 ELSE
23 --LP_DATE_RANGE := 'AND wbrv.delivery_leg_id in (select distinct delivery_leg_id from wsh_delivery_legs where pick_up_stop_id in
24 --(select stop_id from wsh_trip_stops where planned_departure_date between :P_DELIVERY_DATE_LOW and :P_DELIVERY_DATE_HIGH))';
25 LP_DATE_RANGE := 'AND wbrv.delivery_leg_id in (select distinct delivery_leg_id from wsh_delivery_legs where pick_up_stop_id in
26 (select stop_id from wsh_trip_stops where planned_departure_date between :P_DELIVERY_DATE_LOW and :P_DELIVERY_DATE_HIGH_V))';
27 END IF;
28 END IF;
29 IF P_FREIGHT_CODE IS NOT NULL THEN
30 LP_FREIGHT_CODE := 'AND wbrv.ship_method = :P_FREIGHT_CODE';
31 END IF;
32 IF P_DELIVERY_ID IS NOT NULL THEN
33 LP_DELIVERY_ID := 'AND (wbrv.delivery_id = :P_DELIVERY_ID or
34 exists (select delivery_id from wsh_delivery_legs wdl1
35 where wdl1.delivery_id = wbrv.delivery_id
36 and delivery_leg_id in
37 (select parent_delivery_leg_id from wsh_delivery_legs
38 where delivery_id = :P_DELIVERY_ID))
39 or
40 exists ( select delivery_id from wsh_delivery_legs wdl2
41 where wdl2.delivery_id = wbrv.delivery_id
42 and parent_delivery_leg_id in
43 (select delivery_leg_id from wsh_delivery_legs
44 where delivery_id = :P_DELIVERY_ID))
45 )';
46 END IF;
47 --Commented following in bug 7409923
48 /*
49 IF P_DELIVERY_ID IS NULL AND P_TRIP_ID IS NULL THEN
50 LP_DELIVERY_ID := 'AND (exists (select delivery_id from wsh_delivery_legs wdl1
51 where wdl1.delivery_id = wbrv.delivery_id
52 and delivery_leg_id in
53 (select parent_delivery_leg_id from wsh_delivery_legs
54 where rownum=1))
55 or
56 exists ( select delivery_id from wsh_delivery_legs wdl2
57 where wdl2.delivery_id = wbrv.delivery_id
58 and parent_delivery_leg_id is not null)
59 )';
60 END IF;
61 */
62
63 IF P_ORGANIZATION_ID IS NOT NULL THEN
64 LP_ORGANIZATION_ID := 'AND wbrv.organization_id = :P_ORGANIZATION_ID';
65 END IF;
66 IF P_TRIP_ID IS NOT NULL THEN
67 LP_TRIP_ID := 'AND wbrv.delivery_leg_id in (select distinct delivery_leg_id from wsh_delivery_legs where pick_up_stop_id in (select stop_id from wsh_trip_stops where trip_id = :P_TRIP_ID ))';
68 END IF;
69 RETURN (TRUE);
70 END AFTERPFORM;
71
72 FUNCTION CF_LPNFORMULA(MASTER_CONTAINER_LPN IN VARCHAR2) RETURN CHAR IS
73 L_LPN VARCHAR2(30);
74 BEGIN
75 /*SRW.REFERENCE(MASTER_CONTAINER_LPN)*/NULL;
76 RETURN ('LPN# ' || MASTER_CONTAINER_LPN);
77 END CF_LPNFORMULA;
78
79 FUNCTION CF_CONTAINER_ITEM_DESCRIPTIONF(DELIVERY_DETAIL_ID IN NUMBER
80 ,ORGANIZATION_ID IN NUMBER) RETURN CHAR IS
81 L_DESCRIPTION VARCHAR2(32767) := NULL;
82 L_CLASSIFICATION VARCHAR2(32767) := NULL;
83 L_HM VARCHAR2(1) := NULL;
84 L_NUM_PACKAGES NUMBER := NULL;
85 L_RETURN_STATUS VARCHAR2(1) := NULL;
86 BEGIN
87 /*SRW.REFERENCE(DELIVERY_DETAIL_ID)*/NULL;
88 WSH_BOLS_UTIL_PKG.GET_MASTER_CONTAINER_CONTENTS(DELIVERY_DETAIL_ID
89 ,'REPORT'
90 ,P_ITEM_DISPLAY
91 ,ORGANIZATION_ID
92 ,L_CLASSIFICATION
93 ,L_DESCRIPTION
94 ,L_HM
95 ,L_NUM_PACKAGES
96 ,L_RETURN_STATUS);
97 CP_CLASSIFICATION := L_CLASSIFICATION;
98 CP_HM := L_HM;
99 CP_NUM_PACKAGES := L_NUM_PACKAGES;
100 RETURN (L_DESCRIPTION);
101 END CF_CONTAINER_ITEM_DESCRIPTIONF;
102
103 FUNCTION CF_CONTAINER_GROSS_WTFORMULA(MASTER_CONTAINER_GROSS_WEIGHT IN NUMBER
104 ,MASTER_CONTAINER_WEIGHT_UOM IN VARCHAR2) RETURN CHAR IS
105 BEGIN
106 /*SRW.REFERENCE(MASTER_CONTAINER_GROSS_WEIGHT)*/NULL;
107 /*SRW.REFERENCE(MASTER_CONTAINER_WEIGHT_UOM)*/NULL;
108 RETURN ('G ' || TO_CHAR(MASTER_CONTAINER_GROSS_WEIGHT) || ' ' || MASTER_CONTAINER_WEIGHT_UOM);
109 END CF_CONTAINER_GROSS_WTFORMULA;
110
111 FUNCTION CF_1FORMULA(MASTER_CONTAINER_NET_WEIGHT IN NUMBER
112 ,MASTER_CONTAINER_WEIGHT_UOM IN VARCHAR2) RETURN CHAR IS
113 BEGIN
114 /*SRW.REFERENCE(MASTER_CONTAINER_NET_WEIGHT)*/NULL;
115 /*SRW.REFERENCE(MASTER_CONTAINER_WEIGHT_UOM)*/NULL;
116 RETURN ('N ' || TO_CHAR(MASTER_CONTAINER_NET_WEIGHT) || ' ' || MASTER_CONTAINER_WEIGHT_UOM);
117 END CF_1FORMULA;
118
119 FUNCTION CF_CONTAINER_TARE_WTFORMULA(MASTER_CONTAINER_TARE_WEIGHT IN NUMBER
120 ,MASTER_CONTAINER_WEIGHT_UOM IN VARCHAR2) RETURN CHAR IS
121 BEGIN
122 /*SRW.REFERENCE(MASTER_CONTAINER_TARE_WEIGHT)*/NULL;
123 /*SRW.REFERENCE(MASTER_CONTAINER_WEIGHT_UOM)*/NULL;
124 RETURN ('T ' || TO_CHAR(MASTER_CONTAINER_TARE_WEIGHT) || ' ' || MASTER_CONTAINER_WEIGHT_UOM);
125 END CF_CONTAINER_TARE_WTFORMULA;
126
127 FUNCTION CF_CONTAINER_VOLUMEFORMULA(MASTER_CONTAINER_VOLUME IN NUMBER
128 ,MASTER_CONTAINER_VOLUME_UOM IN VARCHAR2) RETURN CHAR IS
129 BEGIN
130 /*SRW.REFERENCE(MASTER_CONTAINER_VOLUME)*/NULL;
131 /*SRW.REFERENCE(MASTER_CONTAINER_VOLUME_UOM)*/NULL;
132 RETURN (TO_CHAR(MASTER_CONTAINER_VOLUME) || ' ' || MASTER_CONTAINER_VOLUME_UOM);
133 END CF_CONTAINER_VOLUMEFORMULA;
134
135 FUNCTION CF_UNPACKED_ITEM_DESCFORMULA(UNPACKED_ITEM_DESCRIPTION IN VARCHAR2
136 ,UNPACKED_ITEM_SHIPPED_QUANTITY IN NUMBER
137 ,UNPACKED_ITEM_QUANTITY_UOM IN VARCHAR2
138 ,UNPACKED_ITEM_ORGANIZATION_ID IN NUMBER
139 ,UNPACKED_ITEM_INV_ITEM_ID IN NUMBER
140 ,UNPACKED_ITEM_QUANTITY_UOM2 IN VARCHAR2
141 ,UNPACKED_ITEM_SHIPPED_QTY2 IN NUMBER) RETURN CHAR IS
142 CURSOR INVENTORY_LABEL(ID IN NUMBER,ORG_ID IN NUMBER) IS
143 SELECT
144 DESCRIPTION
145 FROM
146 MTL_SYSTEM_ITEMS_VL
147 WHERE INVENTORY_ITEM_ID = ID
148 AND ORGANIZATION_ID = ORG_ID;
149 L_DESCRIPTION VARCHAR2(1900);
150 L_SECOND_DESC VARCHAR2(100);
151 MESG VARCHAR2(10);
152 L_ITEM_DESC VARCHAR2(250);
153 BEGIN
154 /*SRW.REFERENCE(UNPACKED_ITEM_DESCRIPTION)*/NULL;
155 /*SRW.REFERENCE(UNPACKED_ITEM_SHIPPED_QUANTITY)*/NULL;
156 /*SRW.REFERENCE(UNPACKED_ITEM_QUANTITY_UOM)*/NULL;
157 /*SRW.REFERENCE(UNPACKED_ITEM_ORGANIZATION_ID)*/NULL;
158 /*SRW.REFERENCE(UNPACKED_ITEM_INV_ITEM_ID)*/NULL;
159 L_ITEM_DESC := UNPACKED_ITEM_DESCRIPTION;
160 IF (UNPACKED_ITEM_INV_ITEM_ID IS NOT NULL) THEN
161 OPEN INVENTORY_LABEL(UNPACKED_ITEM_INV_ITEM_ID,UNPACKED_ITEM_ORGANIZATION_ID);
162 FETCH INVENTORY_LABEL
163 INTO L_ITEM_DESC;
164 IF (INVENTORY_LABEL%NOTFOUND) THEN
165 L_ITEM_DESC := UNPACKED_ITEM_DESCRIPTION;
166 END IF;
167 CLOSE INVENTORY_LABEL;
168 END IF;
169 IF P_ITEM_DISPLAY = 'D' THEN
170 L_DESCRIPTION := L_ITEM_DESC;
171 ELSIF P_ITEM_DISPLAY = 'F' THEN
172 /* commented by anvarshn for lsp . added code to replace GENERIC_FLEX_NAME with get_item_name
173 L_DESCRIPTION := WSH_UTIL_CORE.GENERIC_FLEX_NAME(UNPACKED_ITEM_INV_ITEM_ID
174 ,UNPACKED_ITEM_ORGANIZATION_ID
175 ,'INV'
176 ,P_ITEM_FLEX_CODE
177 ,101);
178 ELSE
179 L_DESCRIPTION := WSH_UTIL_CORE.GENERIC_FLEX_NAME(UNPACKED_ITEM_INV_ITEM_ID
180 ,UNPACKED_ITEM_ORGANIZATION_ID
181 ,'INV'
182 ,P_ITEM_FLEX_CODE
183 ,101) || ' ' || L_ITEM_DESC;
184 */
185 L_DESCRIPTION := WSH_UTIL_CORE.get_item_name(UNPACKED_ITEM_INV_ITEM_ID
186 ,UNPACKED_ITEM_ORGANIZATION_ID
187 ,'MSTK'
188 ,101,'Y');
189 ELSE
190 L_DESCRIPTION := WSH_UTIL_CORE.get_item_name(UNPACKED_ITEM_INV_ITEM_ID
191 ,UNPACKED_ITEM_ORGANIZATION_ID
192 ,'MSTK'
193 ,101, 'Y') || ' ' || L_ITEM_DESC;
194 END IF;
195 IF (NVL(UNPACKED_ITEM_QUANTITY_UOM2
196 ,'*') <> '*') THEN
197 L_SECOND_DESC := ' ( ' || NVL(UNPACKED_ITEM_SHIPPED_QTY2
198 ,0) || ' ' || UNPACKED_ITEM_QUANTITY_UOM2 || ' )';
199 ELSE
200 L_SECOND_DESC := NULL;
201 END IF;
202 FND_MESSAGE.SET_NAME('WSH'
203 ,'WSH_WEB_OF_LABEL');
204 MESG := FND_MESSAGE.GET;
205 RETURN (TO_CHAR(UNPACKED_ITEM_SHIPPED_QUANTITY) || ' ' || UNPACKED_ITEM_QUANTITY_UOM || L_SECOND_DESC || ' ' || MESG || ' ' || L_DESCRIPTION);
206 END CF_UNPACKED_ITEM_DESCFORMULA;
207
208 FUNCTION CF_UNPACKED_ITEM_WTFORMULA(UNPACKED_ITEM_NET_WEIGHT IN NUMBER
209 ,UNPACKED_ITEM_WEIGHT_UOM IN VARCHAR2) RETURN CHAR IS
210 BEGIN
211 /*SRW.REFERENCE(UNPACKED_ITEM_NET_WEIGHT)*/NULL;
212 /*SRW.REFERENCE(UNPACKED_ITEM_WEIGHT_UOM)*/NULL;
213 RETURN (TO_CHAR(UNPACKED_ITEM_NET_WEIGHT) || ' ' || UNPACKED_ITEM_WEIGHT_UOM);
214 END CF_UNPACKED_ITEM_WTFORMULA;
215
216 FUNCTION CF_UNPACKED_ITEM_VOLFORMULA(UNPACKED_ITEM_VOLUME IN NUMBER
217 ,UNPACKED_ITEM_VOLUME_UOM IN VARCHAR2) RETURN CHAR IS
218 BEGIN
219 /*SRW.REFERENCE(UNPACKED_ITEM_VOLUME)*/NULL;
220 /*SRW.REFERENCE(UNPACKED_ITEM_VOLUME_UOM)*/NULL;
221 RETURN (TO_CHAR(UNPACKED_ITEM_VOLUME) || ' ' || UNPACKED_ITEM_VOLUME_UOM);
222 END CF_UNPACKED_ITEM_VOLFORMULA;
223
224 FUNCTION CF_FC_COLLECT_CURRENCYFORMULA(FC_COLLECT_CURRENCY IN VARCHAR2) RETURN NUMBER IS
225 BEGIN
226 /*SRW.REFERENCE(FC_COLLECT_CURRENCY)*/NULL;
227 CP_TOTAL_COLLECT_CURRENCY := FC_COLLECT_CURRENCY;
228 RETURN (0);
229 END CF_FC_COLLECT_CURRENCYFORMULA;
230
231 FUNCTION CP_NUM_PACKAGESFORMULA RETURN NUMBER IS
232 BEGIN
233 NULL;
234 END CP_NUM_PACKAGESFORMULA;
235
236 FUNCTION CF_NUM_OF_LPN1FORMULA(DELIVERY_ID3 IN NUMBER) RETURN NUMBER IS
237 CURSOR LPN IS
238 SELECT
239 NUMBER_OF_LPN
240 FROM
241 WSH_NEW_DELIVERIES
242 WHERE DELIVERY_ID = DELIVERY_ID3;
243 L_NUM_LPN NUMBER;
244 BEGIN
245 OPEN LPN;
246 FETCH LPN
247 INTO L_NUM_LPN;
248 CLOSE LPN;
249 RETURN (L_NUM_LPN);
250 END CF_NUM_OF_LPN1FORMULA;
251
252 FUNCTION BEFOREREPORT RETURN BOOLEAN IS
253 BEGIN
254 BEGIN
255 P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
256 /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
257 EXCEPTION
258 WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
259 /*SRW.MESSAGE(1
260 ,'Failed FND SRWINIT.')*/NULL;
261 /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
262 END;
263 RETURN (TRUE);
264 END BEFOREREPORT;
265
266 FUNCTION AFTERREPORT RETURN BOOLEAN IS
267 BEGIN
268 BEGIN
269 /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
270 EXCEPTION
271 WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
272 /*SRW.MESSAGE(1
273 ,'Failed in SRWEXIT')*/NULL;
274 RAISE;
275 END;
276 RETURN (TRUE);
277 END AFTERREPORT;
278
279 FUNCTION LP_WHERE_CLAUSEVALIDTRIGGER RETURN BOOLEAN IS
280 BEGIN
281 RETURN (TRUE);
282 END LP_WHERE_CLAUSEVALIDTRIGGER;
283
284 FUNCTION CF_DOCK_CODEFORMULA(DELIVERY_ID3 IN NUMBER) RETURN CHAR IS
285 L_DOCK_CODE WSH_DELIVERY_DETAILS.CUSTOMER_DOCK_CODE%TYPE;
286 L_PREV_DOCK_CODE WSH_DELIVERY_DETAILS.CUSTOMER_DOCK_CODE%TYPE;
287 L_COUNT NUMBER;
288 CURSOR C_DOCK IS
289 SELECT
290 DISTINCT
291 ( WDD.CUSTOMER_DOCK_CODE )
292 FROM
293 WSH_DELIVERY_DETAILS WDD,
294 WSH_DELIVERY_ASSIGNMENTS_V WDA
295 WHERE WDA.DELIVERY_ID = DELIVERY_ID3
296 AND WDA.DELIVERY_DETAIL_ID = WDD.DELIVERY_DETAIL_ID
297 AND NVL(WDD.CONTAINER_FLAG
298 ,'N') = 'N'
299 AND WDD.CUSTOMER_DOCK_CODE is not null
300 GROUP BY
301 WDD.CUSTOMER_DOCK_CODE;
302 BEGIN
303 L_COUNT := 0;
304 L_PREV_DOCK_CODE := NULL;
305 L_DOCK_CODE := NULL;
306 OPEN C_DOCK;
307 LOOP
308 FETCH C_DOCK
309 INTO L_DOCK_CODE;
310 EXIT WHEN C_DOCK%NOTFOUND;
311 L_COUNT := L_COUNT + 1;
312 IF (L_COUNT > 1) THEN
313 IF (L_DOCK_CODE <> L_PREV_DOCK_CODE) THEN
314 L_DOCK_CODE := NULL;
315 CLOSE C_DOCK;
316 EXIT;
317 END IF;
318 END IF;
319 L_PREV_DOCK_CODE := L_DOCK_CODE;
320 END LOOP;
321 CLOSE C_DOCK;
322 RETURN L_DOCK_CODE;
323 EXCEPTION
324 WHEN NO_DATA_FOUND THEN
325 L_DOCK_CODE := NULL;
326 RETURN (L_DOCK_CODE);
327 WHEN OTHERS THEN
328 L_DOCK_CODE := NULL;
329 RETURN (L_DOCK_CODE);
330 END CF_DOCK_CODEFORMULA;
331
332 FUNCTION CF_CARRIER_NAMEFORMULA(SHIP_METHOD IN VARCHAR2) RETURN CHAR IS
333 L_CARRIER_NAME VARCHAR2(30);
334 L_CARRIER_ID NUMBER;
335 BEGIN
336 SELECT
337 CARRIER_ID
338 INTO L_CARRIER_ID
339 FROM
340 WSH_CARRIER_SERVICES
341 WHERE SHIP_METHOD_CODE = SHIP_METHOD;
342 SELECT
343 PARTY_NAME
344 INTO L_CARRIER_NAME
345 FROM
346 HZ_PARTIES
347 WHERE PARTY_ID = L_CARRIER_ID;
348 RETURN (L_CARRIER_NAME);
349 EXCEPTION
350 WHEN OTHERS THEN
351 RETURN (NULL);
352 END CF_CARRIER_NAMEFORMULA;
353
354 FUNCTION CF_MBOL_NUMBERFORMULA(TRIP_ID1 IN NUMBER) RETURN CHAR IS
355 L_MBOL_NUMBER VARCHAR2(50);
356 BEGIN
357 SELECT
358 SEQUENCE_NUMBER
359 INTO L_MBOL_NUMBER
360 FROM
361 WSH_DOCUMENT_INSTANCES
362 WHERE ENTITY_ID = TRIP_ID1
363 AND ENTITY_NAME = 'WSH_TRIPS';
364 RETURN L_MBOL_NUMBER;
365 EXCEPTION
366 WHEN NO_DATA_FOUND THEN
367 RETURN NULL;
368 END CF_MBOL_NUMBERFORMULA;
369
370 FUNCTION CF_CUSTOMER_NAMEFORMULA(CUSTOMER_NAME IN VARCHAR2) RETURN CHAR IS
371 L_CUSTOMER_NAME HZ_PARTIES.PARTY_NAME%TYPE;
372 L_PERSON_TITLE HZ_PARTIES.PERSON_TITLE%TYPE;
373 L_PERSON_TITLE_UP HZ_PARTIES.PERSON_TITLE%TYPE;
374 L_LOOKUP_TYPE VARCHAR2(20);
375 BEGIN
376 /*SRW.REFERENCE(CUSTOMER_NAME)*/NULL;
377 SELECT
378 PARTY_NAME,
379 NVL(PERSON_PRE_NAME_ADJUNCT
380 ,PERSON_TITLE) TITLE
381 INTO L_CUSTOMER_NAME,L_PERSON_TITLE
382 FROM
383 HZ_PARTIES
384 WHERE PARTY_NAME = CUSTOMER_NAME;
385 IF L_PERSON_TITLE IS NOT NULL THEN
386 BEGIN
387 L_LOOKUP_TYPE := 'RESPONSIBILITY';
388 L_PERSON_TITLE_UP := UPPER(L_PERSON_TITLE);
389 SELECT
390 MEANING || ' ' || L_CUSTOMER_NAME
391 INTO L_CUSTOMER_NAME
392 FROM
393 AR_LOOKUPS
394 WHERE LOOKUP_CODE = L_PERSON_TITLE_UP
395 AND LOOKUP_TYPE = L_LOOKUP_TYPE;
396 EXCEPTION
397 WHEN OTHERS THEN
398 L_CUSTOMER_NAME := L_PERSON_TITLE || ' ' || L_CUSTOMER_NAME;
399 END;
400 END IF;
401 RETURN (L_CUSTOMER_NAME);
402 EXCEPTION
403 WHEN OTHERS THEN
404 RETURN (CUSTOMER_NAME);
405 END CF_CUSTOMER_NAMEFORMULA;
406
407 FUNCTION CF_COMMODITY_CLASSFORMULA(UNPACKED_ITEM_INV_ITEM_ID IN NUMBER
408 ,UNPACKED_ITEM_ORGANIZATION_ID IN NUMBER) RETURN CHAR IS
409 L_CLASS_LIST VARCHAR2(1000);
410 CURSOR C_CATEGORY(C_INV_ITEM_ID IN NUMBER,C_INV_ORG_ID IN NUMBER) IS
411 SELECT
412 CONCATENATED_SEGMENTS COMM_CLASS
413 FROM
414 MTL_CATEGORIES_KFV MC,
415 MTL_ITEM_CATEGORIES MIC,
416 MTL_CATEGORY_SETS_VL MCSTL
417 WHERE MIC.INVENTORY_ITEM_ID = C_INV_ITEM_ID
418 AND MIC.ORGANIZATION_ID = C_INV_ORG_ID
419 AND MIC.CATEGORY_SET_ID = MCSTL.CATEGORY_SET_ID
420 AND MC.CATEGORY_ID = MIC.CATEGORY_ID
421 AND MCSTL.CATEGORY_SET_NAME = 'WSH_COMMODITY_CODE'
422 ORDER BY
423 MC.CATEGORY_ID;
424 BEGIN
425 /*SRW.REFERENCE(UNPACKED_ITEM_INV_ITEM_ID)*/NULL;
426 /*SRW.REFERENCE(UNPACKED_ITEM_ORGANIZATION_ID)*/NULL;
427 FOR c_rec IN C_CATEGORY(UNPACKED_ITEM_INV_ITEM_ID,UNPACKED_ITEM_ORGANIZATION_ID) LOOP
428 IF (L_CLASS_LIST IS NULL) THEN
429 L_CLASS_LIST := C_REC.COMM_CLASS;
430 ELSE
431 L_CLASS_LIST := L_CLASS_LIST || ', ' || C_REC.COMM_CLASS;
432 END IF;
433 END LOOP;
434 RETURN (L_CLASS_LIST);
435 EXCEPTION
436 WHEN OTHERS THEN
437 RETURN (NULL);
438 END CF_COMMODITY_CLASSFORMULA;
439
440 FUNCTION CF_DETAIL_COMM_CLASSFORMULA(DELIVERY_DETAIL_ID IN NUMBER) RETURN CHAR IS
441 L_CLASS_LIST VARCHAR2(4000);
442 CURSOR C_CATEGORY(C_INV_ITEM_ID IN NUMBER,C_INV_ORG_ID IN NUMBER) IS
443 SELECT
444 MC.SEGMENT1 || '-' || MC.SEGMENT2 || '-' || MC.SEGMENT3 COMM_CLASS
445 FROM
446 MTL_CATEGORIES MC,
447 MTL_ITEM_CATEGORIES MIC,
448 MTL_CATEGORY_SETS_VL MCSTL
449 WHERE MIC.INVENTORY_ITEM_ID = C_INV_ITEM_ID
450 AND MIC.ORGANIZATION_ID = C_INV_ORG_ID
451 AND MIC.CATEGORY_SET_ID = MCSTL.CATEGORY_SET_ID
452 AND MC.CATEGORY_ID = MIC.CATEGORY_ID
453 AND MCSTL.CATEGORY_SET_NAME = 'WSH_COMMODITY_CODE'
454 ORDER BY
455 MC.CATEGORY_ID;
456 CURSOR C_DLV_DETAIL(C_DELIVERY_DETAIL_ID IN NUMBER) IS
457 SELECT
458 DISTINCT
459 INVENTORY_ITEM_ID,
460 ORGANIZATION_ID
461 FROM
462 WSH_DELIVERY_DETAILS WDD
463 WHERE WDD.DELIVERY_DETAIL_ID IN (
464 SELECT
465 WDA.DELIVERY_DETAIL_ID
466 FROM
467 WSH_DELIVERY_ASSIGNMENTS WDA
468 START WITH WDA.DELIVERY_DETAIL_ID = C_DELIVERY_DETAIL_ID
469 CONNECT BY prior WDA.DELIVERY_DETAIL_ID = WDA.PARENT_DELIVERY_DETAIL_ID )
470 AND WDD.CONTAINER_FLAG = 'N';
471 BEGIN
472 /*SRW.REFERENCE(DELIVERY_DETAIL_ID)*/NULL;
473 FOR c_1 IN C_DLV_DETAIL(DELIVERY_DETAIL_ID) LOOP
474 FOR c_cat IN C_CATEGORY(c_1.inventory_item_id,c_1.organization_id) LOOP
475 IF (L_CLASS_LIST IS NULL) THEN
476 L_CLASS_LIST := C_CAT.COMM_CLASS;
477 ELSE
478 L_CLASS_LIST := L_CLASS_LIST || ', ' || C_CAT.COMM_CLASS;
479 END IF;
480 END LOOP;
481 END LOOP;
482 IF (LENGTH(L_CLASS_LIST) > 2000) THEN
483 L_CLASS_LIST := SUBSTR(L_CLASS_LIST
484 ,1
485 ,2000);
486 END IF;
487 RETURN (L_CLASS_LIST);
488 EXCEPTION
489 WHEN OTHERS THEN
490 RETURN (NULL);
491 END CF_DETAIL_COMM_CLASSFORMULA;
492
493 FUNCTION CF_SRC_HDR_IDFORMULA RETURN NUMBER IS
494 CURSOR C_MATCH_DLV_DETAIL(C_INV_ITEM_ID IN NUMBER,C_INV_ORG_ID IN NUMBER,C_DELIVERY_ID IN NUMBER) IS
495 SELECT
496 WDD.DELIVERY_DETAIL_ID,
497 WDD.SOURCE_HEADER_ID,
498 WDD.SOURCE_LINE_ID,
499 WDD.TOP_MODEL_LINE_ID
500 FROM
501 WSH_DELIVERY_DETAILS WDD,
502 WSH_DELIVERY_ASSIGNMENTS WDA
503 WHERE WDA.DELIVERY_ID = C_DELIVERY_ID
504 AND WDA.DELIVERY_DETAIL_ID = WDD.DELIVERY_DETAIL_ID
505 AND WDD.INVENTORY_ITEM_ID = C_INV_ITEM_ID
506 AND WDD.ORGANIZATION_ID = C_INV_ORG_ID
507 AND WDD.TOP_MODEL_LINE_ID IS NOT NULL
508 AND ROWNUM = 1;
509 L_SRC_HEADER_ID NUMBER;
510 L_SRC_LINE_ID NUMBER;
511 L_TOP_MODEL_LINE_ID NUMBER;
512 BEGIN
513 RETURN (L_SRC_HEADER_ID);
514 EXCEPTION
515 WHEN OTHERS THEN
516 CP_TOP_MODEL_LINE_ID := NULL;
517 CP_SRC_LINE_ID := NULL;
518 RETURN (NULL);
519 END CF_SRC_HDR_IDFORMULA;
520
521 FUNCTION CP_CLASSIFICATION_P RETURN VARCHAR2 IS
522 BEGIN
523 RETURN CP_CLASSIFICATION;
524 END CP_CLASSIFICATION_P;
525
526 FUNCTION CP_NUM_PACKAGES_P RETURN NUMBER IS
527 BEGIN
528 RETURN CP_NUM_PACKAGES;
529 END CP_NUM_PACKAGES_P;
530
531 FUNCTION CP_TOP_MODEL_LINE_ID_P RETURN NUMBER IS
532 BEGIN
533 RETURN CP_TOP_MODEL_LINE_ID;
534 END CP_TOP_MODEL_LINE_ID_P;
535
536 FUNCTION CP_SRC_LINE_ID_P RETURN NUMBER IS
537 BEGIN
538 RETURN CP_SRC_LINE_ID;
539 END CP_SRC_LINE_ID_P;
540
541 FUNCTION CP_CONTAINER_CLASSIFICATION_P RETURN VARCHAR2 IS
542 BEGIN
543 RETURN CP_CONTAINER_CLASSIFICATION;
544 END CP_CONTAINER_CLASSIFICATION_P;
545
546 FUNCTION CP_HM_P RETURN VARCHAR2 IS
547 BEGIN
548 RETURN CP_HM;
549 END CP_HM_P;
550
551 FUNCTION CP_TOTAL_PREPAID_AMOUNT_P RETURN NUMBER IS
552 BEGIN
553 RETURN CP_TOTAL_PREPAID_AMOUNT;
554 END CP_TOTAL_PREPAID_AMOUNT_P;
555
556 FUNCTION CP_TOTAL_PREPAID_CURRENCY_P RETURN VARCHAR2 IS
557 BEGIN
558 RETURN CP_TOTAL_PREPAID_CURRENCY;
559 END CP_TOTAL_PREPAID_CURRENCY_P;
560
561 FUNCTION CP_TOTAL_COLLECT_CURRENCY_P RETURN VARCHAR2 IS
562 BEGIN
563 RETURN CP_TOTAL_COLLECT_CURRENCY;
564 END CP_TOTAL_COLLECT_CURRENCY_P;
565
566 END WSH_WSHRDBOL_XMLP_PKG;
567
568