DBA Data[Home] [Help]

PACKAGE BODY: APPS.WSH_WSHRDASP_XMLP_PKG

Source


1 PACKAGE BODY WSH_WSHRDASP_XMLP_PKG AS
2 /* $Header: WSHRDASPB.pls 120.4 2010/08/30 12:13:23 anvarshn ship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4     CURSOR GET_BATCH_NAME(V_BATCH_ID IN NUMBER) IS
5       SELECT
6         WPB.NAME
7       FROM
8         WSH_PICKING_BATCHES WPB
9       WHERE WPB.BATCH_ID = V_BATCH_ID;
10     CURSOR GET_CUSTOMER IS
11       SELECT
12         SUBSTRB(PARTY.PARTY_NAME
13                ,1
14                ,50) CUSTOMER_NAME
15       FROM
16         HZ_PARTIES PARTY,
17         HZ_CUST_ACCOUNTS CUST_ACCT
18       WHERE CUST_ACCT.PARTY_ID = PARTY.PARTY_ID
19         AND CUST_ACCT.CUST_ACCOUNT_ID = SUBSTR(P_CUSTOMER_ID,3); --RTV changes
20     --RTV changes
21     CURSOR GET_SUPPLIER IS
22       SELECT
23         SUBSTRB(PARTY.PARTY_NAME
24                ,1
25                ,50) CUSTOMER_NAME
26       FROM
27         HZ_PARTIES PARTY,
28         PO_VENDORS PV
29       WHERE PV.PARTY_ID = PARTY.PARTY_ID
30         AND PV.VENDOR_ID = SUBSTR(P_CUSTOMER_ID,3);
31     --RTV changes
32     CURSOR GET_DELIVERY(P_DELID IN NUMBER) IS
33       SELECT
34         NAME
35       FROM
36         WSH_NEW_DELIVERIES
37       WHERE DELIVERY_ID = P_DELID;
38     CURSOR GET_ORG_NAME IS
39       SELECT
40         NAME
41       FROM
42         HR_ALL_ORGANIZATION_UNITS
43       WHERE ORGANIZATION_ID = P_ORG;
44     CURSOR GET_SHIP_METHOD IS
45       SELECT
46         MEANING
47       FROM
48         FND_LOOKUP_VALUES_VL
49       WHERE LOOKUP_TYPE = 'SHIP METHOD'
50         AND LOOKUP_CODE = P_SHIP_METHOD_CODE;
51     CURSOR GET_SHIP_CONF_RULE_NAME IS
52       SELECT
53         NAME
54       FROM
55         WSH_SHIP_CONFIRM_RULES
56       WHERE SHIP_CONFIRM_RULE_ID = P_SC_RULE_ID;
57     CURSOR GET_YES_NO_LOOKUP IS
58       SELECT
59         MEANING
60       FROM
61         FND_LOOKUPS
62       WHERE LOOKUP_TYPE = 'YES_NO'
63         AND LOOKUP_CODE = P_EXCEPTIONS_ONLY;
64     CURSOR GET_AUTO_SC_ENABLE_MESSAGE IS
65       SELECT
66         MESSAGE_TEXT
67       FROM
68         FND_NEW_MESSAGES
69       WHERE MESSAGE_NAME = 'WSH_AUTO_SC_MESSAGE'
70         AND LANGUAGE_CODE = USERENV('LANG');
71     APF BOOLEAN;
72   BEGIN
73     BEGIN
74       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
75 
76        /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
77     EXCEPTION
78       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
79         /*SRW.MESSAGE(1
80                    ,'Failed FND SRWINIT.')*/NULL;
81         /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
82     END;
83     IF P_BATCH_TYPE = 'SC' AND P_SC_BATCH_ID IS NOT NULL THEN
84       OPEN GET_BATCH_NAME(P_SC_BATCH_ID);
85       FETCH GET_BATCH_NAME
86        INTO CP_BATCH_NAME;
87       CLOSE GET_BATCH_NAME;
88       CP_BATCH_ID := P_SC_BATCH_ID;
89     ELSIF P_BATCH_TYPE = 'AP' AND P_AP_BATCH_ID IS NOT NULL THEN
90       OPEN GET_BATCH_NAME(P_AP_BATCH_ID);
91       FETCH GET_BATCH_NAME
92        INTO CP_BATCH_NAME;
93       CLOSE GET_BATCH_NAME;
94       CP_BATCH_ID := P_AP_BATCH_ID;
95     END IF;
96     IF P_SHIP_METHOD_CODE IS NOT NULL THEN
97       CP_SHIP_METHOD := WSH_UTIL_CORE.GET_LOOKUP_MEANING('SHIP METHOD'
98                                                         ,P_SHIP_METHOD_CODE);
99     END IF;
100     IF P_PR_BATCH_ID IS NOT NULL THEN
101       OPEN GET_BATCH_NAME(P_PR_BATCH_ID);
102       FETCH GET_BATCH_NAME
103        INTO CP_PR_BATCH;
104       CLOSE GET_BATCH_NAME;
105     END IF;
106     IF P_SHIP_FROM IS NOT NULL THEN
107       CP_SHIP_FROM := WSH_UTIL_CORE.GET_LOCATION_DESCRIPTION(P_SHIP_FROM
108                                                             ,'NEW UI CODE');
109     END IF;
110     IF P_SHIP_TO IS NOT NULL THEN
111       CP_SHIP_TO := WSH_UTIL_CORE.GET_LOCATION_DESCRIPTION(P_SHIP_TO
112                                                           ,'NEW UI CODE');
113     END IF;
114     IF P_CUSTOMER_ID IS NOT NULL THEN
115       --RTV changes
116       IF SUBSTR(P_CUSTOMER_ID,1,1) = 'V' THEN
117         OPEN GET_SUPPLIER;
118         FETCH GET_SUPPLIER
119          INTO CP_CUSTOMER;
120         CLOSE GET_SUPPLIER;
121       ELSE
122         OPEN GET_CUSTOMER;
123         FETCH GET_CUSTOMER
124          INTO CP_CUSTOMER;
125         CLOSE GET_CUSTOMER;
126       END IF;
127       --RTV changes
128     END IF;
129     IF P_ORG IS NOT NULL THEN
130       OPEN GET_ORG_NAME;
131       FETCH GET_ORG_NAME
132        INTO CP_ORG;
133       CLOSE GET_ORG_NAME;
134     END IF;
135     IF P_DELIVERY_FROM IS NOT NULL THEN
136       OPEN GET_DELIVERY(P_DELIVERY_FROM);
137       FETCH GET_DELIVERY
138        INTO CP_DELIVERY_FROM;
139       CLOSE GET_DELIVERY;
140     END IF;
141     IF P_DELIVERY_TO IS NOT NULL THEN
142       OPEN GET_DELIVERY(P_DELIVERY_TO);
143       FETCH GET_DELIVERY
144        INTO CP_DELIVERY_TO;
145       CLOSE GET_DELIVERY;
146     END IF;
147     IF P_EXCEPTIONS_ONLY IS NOT NULL THEN
148       CP_EXCEPTIONS_ONLY := WSH_UTIL_CORE.GET_LOOKUP_MEANING('YES_NO',P_EXCEPTIONS_ONLY);
149     END IF;
150     IF P_BATCH_TYPE = 'SC' THEN
151       OPEN GET_SHIP_CONF_RULE_NAME;
152       FETCH GET_SHIP_CONF_RULE_NAME
153        INTO CP_AUTO_CONFIRM_RULE;
154       CLOSE GET_SHIP_CONF_RULE_NAME;
155     END IF;
156     IF P_BATCH_TYPE = 'SC' THEN
157       OPEN GET_AUTO_SC_ENABLE_MESSAGE;
158       FETCH GET_AUTO_SC_ENABLE_MESSAGE
159        INTO P_AUTO_SC_MESSAGE;
160       CLOSE GET_AUTO_SC_ENABLE_MESSAGE;
161     END IF;
162     CP_PICKUP_DATE_FROM :=TO_CHAR (P_PICKUP_DATE_FROM ,'YYYY/MM/DD');
163     CP_PICKUP_DATE_TO := TO_CHAR (P_PICKUP_DATE_TO ,'YYYY/MM/DD');
164     CP_DROPOFF_DATE_FROM := TO_CHAR (P_DROPOFF_DATE_FROM,'yyyy/MM/DD');
165     CP_DROPOFF_DATE_TO := TO_CHAR (P_DROPOFF_DATE_TO,'YYYY/MM/DD');
166 
167     LP_PICKUP_DATE_TO := TO_DATE(CP_PICKUP_DATE_TO,'YYYY/MM/DD');
168     LP_DROPOFF_DATE_TO := TO_DATE(CP_DROPOFF_DATE_TO,'YYYY/MM/DD');
169     LP_PICKUP_DATE_FROM := TO_DATE(CP_PICKUP_DATE_FROM,'YYYY/MM/DD');
170     LP_DROPOFF_DATE_FROM := TO_DATE(CP_DROPOFF_DATE_FROM,'YYYY/MM/DD');
171 
172    /* LP_PICKUP_DATE_TO := TO_DATE(TO_CHAR (P_PICKUP_DATE_TO ,'DD-MON-YY'),'DD-MON-YY');
173     LP_DROPOFF_DATE_TO := TO_DATE(TO_CHAR (P_DROPOFF_DATE_TO,'DD-MON-YY'),'DD-MON-YY');
174     LP_PICKUP_DATE_FROM := TO_DATE(TO_CHAR (P_PICKUP_DATE_FROM ,'DD-MON-YY'),'DD-MON-YY');
175     LP_DROPOFF_DATE_FROM := TO_DATE(TO_CHAR (P_DROPOFF_DATE_FROM,'DD-MON-YY'),'DD-MON-YY');*/
176 
177     APF := AFTERPFORM;
178     RETURN (TRUE);
179   END BEFOREREPORT;
180 
181   FUNCTION AFTERPFORM RETURN BOOLEAN IS
182   BEGIN
183     IF (P_BOL_FROM IS NOT NULL) AND (P_BOL_TO IS NOT NULL) THEN
184       IF P_BOL_FROM = P_BOL_TO THEN
185         LP_BOL_NUMBER := ' wdi.sequence_number = :p_bol_from and ';  --bug 8790658 replaced wbr.bill_of_lading_number with wdi.sequence_number
186       ELSE
187         LP_BOL_NUMBER := ' wdi.sequence_number between :p_bol_from and :p_bol_to and '; --bug 8790658
188       END IF;
189     ELSIF P_BOL_FROM IS NOT NULL THEN
190       LP_BOL_NUMBER := ' wdi.sequence_number  >= :p_bol_from and '; --bug 8790658
191     ELSIF P_BOL_TO IS NOT NULL THEN
192       LP_BOL_NUMBER := ' wdi.sequence_number <= :p_bol_to and '; --bug 8790658
193     ELSE
194       LP_BOL_NUMBER := ' ';  --praveen
195     END IF;
196     P_PR_BATCH := ' ';
197     IF P_BATCH_TYPE = 'SC' THEN
198       P_PR_BATCH := ' we.batch_id(+) = wnd.batch_id and  ';
199     ELSIF P_BATCH_TYPE = 'AP' THEN
200       P_PR_BATCH := 'we.batch_id(+) = wnd.ap_batch_id and ';
201     END IF;
202     IF P_SHIP_FROM IS NOT NULL THEN
203       P_PR_BATCH := P_PR_BATCH || ' wnd.initial_pickup_location_id = :p_ship_from and ';
204     END IF;
205     IF P_SHIP_TO IS NOT NULL THEN
206       P_PR_BATCH := P_PR_BATCH || ' wnd.ultimate_dropoff_location_id = :p_ship_to and ';
207     END IF;
208     IF P_SC_BATCH_ID IS NOT NULL THEN
209       P_PR_BATCH := P_PR_BATCH || ' NVL(wnd.batch_id, -1) = to_number(:p_sc_batch_id) and ';
210     END IF;
211     IF P_AP_BATCH_ID IS NOT NULL THEN
212       P_PR_BATCH := P_PR_BATCH || ' NVL(wnd.ap_batch_id, -1) = to_number(:p_ap_batch_id) and ';
213     END IF;
214     IF P_PICKUP_DATE_FROM IS NOT NULL THEN
215       P_PR_BATCH := P_PR_BATCH || ' wnd.initial_pickup_date >= to_date(:lp_pickup_date_from,''DD-MON-YY'') and ';
216     END IF;
217     IF LP_PICKUP_DATE_TO IS NOT NULL THEN
218       --LP_PICKUP_DATE_TO := LP_PICKUP_DATE_TO + (86399 / 86400);
219       P_PR_BATCH := P_PR_BATCH || ' wnd.initial_pickup_date <= to_date(:lp_pickup_date_to,''DD-MON-YY'') + (86399 / 86400) and';
220     END IF;
221     IF P_DROPOFF_DATE_FROM IS NOT NULL THEN
222       P_PR_BATCH := P_PR_BATCH || ' wnd.ultimate_dropoff_date >= to_date(:lp_dropoff_date_from,''DD-MON-YY'') and ';
223     END IF;
224     IF LP_DROPOFF_DATE_TO IS NOT NULL THEN
225     --  LP_DROPOFF_DATE_TO := LP_DROPOFF_DATE_TO + (86399 / 86400);
226       P_PR_BATCH := P_PR_BATCH || ' wnd.ultimate_dropoff_date <= to_date(:lp_dropoff_date_to,''DD-MON-YY'')  + (86399 / 86400) and ';
227     END IF;
228     IF P_CUSTOMER_ID IS NOT NULL THEN
229       P_PR_BATCH := P_PR_BATCH || ' NVL(wnd.customer_id, -1) = SUBSTR(:p_customer_id,3) and ';
230       --RTV changes
231       P_PR_BATCH := P_PR_BATCH || ' NVL(wnd.consignee_flag, ''C'') = SUBSTR(:p_customer_id,1,1) and ';
232       --RTV changes
233     END IF;
234     IF P_ORG IS NOT NULL THEN
235       P_PR_BATCH := P_PR_BATCH || ' wnd.organization_id = :p_org and ';
236     END IF;
237     IF P_DELIVERY_FROM IS NOT NULL THEN
238       P_PR_BATCH := P_PR_BATCH || ' wnd.delivery_id >= :p_delivery_from and ';
239     END IF;
240     IF P_DELIVERY_TO IS NOT NULL THEN
241       P_PR_BATCH := P_PR_BATCH || ' wnd.delivery_id <= :p_delivery_to and ';
242     END IF;
243     IF P_PLANNED_FLAG IS NOT NULL THEN
244       P_PR_BATCH := P_PR_BATCH || ' NVL(wnd.planned_flag, ''N'') = :p_planned_flag and ';
245     END IF;
246     IF P_SC_RULE_ID IS NOT NULL THEN
247       P_PR_BATCH := P_PR_BATCH || ' NVL(wpb.ship_confirm_rule_id, -1) = :p_sc_rule_id and ';
248     END IF;
249     IF P_PR_BATCH_ID IS NOT NULL THEN
250       P_PR_BATCH := P_PR_BATCH || 'wnd.delivery_id in (select a.delivery_id ' || 'from wsh_delivery_assignments_v a, wsh_delivery_details d ' || 'where d.delivery_detail_id = a.delivery_detail_id ' || 'and d.batch_id = :p_pr_batch_id) and ';
251     END IF;
252     IF P_EXCEPTIONS_ONLY = 'Y' THEN
253       P_EXCEPTIONS := '  we.error_message is null and we.exception_id is not null and ';
254     ELSE
255       P_EXCEPTIONS := ' ';
256     END IF;
257     RETURN (TRUE);
258   END AFTERPFORM;
259 
260   FUNCTION BEFOREPFORM RETURN BOOLEAN IS
261   BEGIN
262     RETURN (TRUE);
263   END BEFOREPFORM;
264 
265   FUNCTION CF_1FORMULA(DELIVERY_ID IN NUMBER) RETURN VARCHAR2 IS
266     CURSOR C_GET_TRIP_NAME IS
267       SELECT
268         WT.TRIP_ID,
269         WT.NAME
270       FROM
271         WSH_TRIPS WT,
272         WSH_TRIP_STOPS WTS,
273         WSH_DELIVERY_LEGS WDL
274       WHERE WDL.DELIVERY_ID = CF_1FORMULA.DELIVERY_ID
275         AND WTS.STOP_ID = WDL.PICK_UP_STOP_ID
276         AND WTS.TRIP_ID = WT.TRIP_ID;
277     L_TRIP_NAME VARCHAR2(30);
278   BEGIN
279     IF DELIVERY_ID IS NULL THEN
280       CP_TRIP_NAME := NULL;
281       CP_TRIP_ID := NULL;
282       RETURN NULL;
283     ELSE
284       OPEN C_GET_TRIP_NAME;
285       FETCH C_GET_TRIP_NAME
286        INTO CP_TRIP_ID,L_TRIP_NAME;
287       IF C_GET_TRIP_NAME%NOTFOUND THEN
288         CLOSE C_GET_TRIP_NAME;
289         RAISE NO_DATA_FOUND;
290       END IF;
291       CLOSE C_GET_TRIP_NAME;
292       CP_TRIP_NAME := L_TRIP_NAME;
293       RETURN L_TRIP_NAME;
294     END IF;
295   EXCEPTION
296     WHEN NO_DATA_FOUND THEN
297       RETURN NULL;
298     WHEN OTHERS THEN
299       IF C_GET_TRIP_NAME%ISOPEN THEN
300         CLOSE C_GET_TRIP_NAME;
301       END IF;
302       RETURN NULL;
303   END CF_1FORMULA;
304 
305   FUNCTION CF_MESSAGE(EXCEPTION_ID IN NUMBER) RETURN VARCHAR2 IS
306     CURSOR SHIP_EXCEPTION IS
307       SELECT
308         MESSAGE
309       FROM
310         WSH_EXCEPTIONS E
311       WHERE E.EXCEPTION_ID = CF_MESSAGE.EXCEPTION_ID
312         AND E.ERROR_MESSAGE is null;
313     CURSOR PACK_EXCEPTION IS
314       SELECT
315         MESSAGE
316       FROM
317         WSH_EXCEPTIONS E
318       WHERE E.EXCEPTION_ID = CF_MESSAGE.EXCEPTION_ID
319         AND E.ERROR_MESSAGE is not null;
320     L_MESSAGE VARCHAR2(2000);
321   BEGIN
322     IF EXCEPTION_ID IS NULL THEN
323       L_MESSAGE := NULL;
324     ELSE
325       IF P_BATCH_TYPE = 'SC' THEN
326         OPEN SHIP_EXCEPTION;
327         FETCH SHIP_EXCEPTION
328          INTO L_MESSAGE;
329         CLOSE SHIP_EXCEPTION;
330       ELSE
331         OPEN PACK_EXCEPTION;
332         FETCH PACK_EXCEPTION
333          INTO L_MESSAGE;
334         CLOSE PACK_EXCEPTION;
335       END IF;
336     END IF;
337     RETURN L_MESSAGE;
338   EXCEPTION
339     WHEN NO_DATA_FOUND THEN
340       RETURN NULL;
341     WHEN OTHERS THEN
342       IF SHIP_EXCEPTION%ISOPEN THEN
343         CLOSE SHIP_EXCEPTION;
344       END IF;
345       IF PACK_EXCEPTION%ISOPEN THEN
346         CLOSE PACK_EXCEPTION;
347       END IF;
348       RETURN NULL;
349   END CF_MESSAGE;
350 
351   FUNCTION AFTERREPORT RETURN BOOLEAN IS
352   BEGIN
353     BEGIN
354       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
355     EXCEPTION
356       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
357         /*SRW.MESSAGE(1
358                    ,'Failed in SRWEXIT')*/NULL;
359         RAISE;
360     END;
361     RETURN (TRUE);
362   END AFTERREPORT;
363 
364   FUNCTION CP_BATCH_NAME_P RETURN VARCHAR2 IS
365   BEGIN
366     RETURN CP_BATCH_NAME;
367   END CP_BATCH_NAME_P;
368 
369   FUNCTION CP_CUSTOMER_P RETURN VARCHAR2 IS
370   BEGIN
371     RETURN CP_CUSTOMER;
372   END CP_CUSTOMER_P;
373 
374   FUNCTION CP_SHIP_FROM_P RETURN VARCHAR2 IS
375   BEGIN
376     RETURN CP_SHIP_FROM;
377   END CP_SHIP_FROM_P;
378 
379   FUNCTION CP_SHIP_TO_P RETURN VARCHAR2 IS
380   BEGIN
381     RETURN CP_SHIP_TO;
382   END CP_SHIP_TO_P;
383 
384   FUNCTION CP_ORG_P RETURN VARCHAR2 IS
385   BEGIN
386     RETURN CP_ORG;
387   END CP_ORG_P;
388 
389   FUNCTION CP_PR_BATCH_P RETURN VARCHAR2 IS
390   BEGIN
391     RETURN CP_PR_BATCH;
392   END CP_PR_BATCH_P;
393 
394   FUNCTION CP_SHIP_METHOD_P RETURN VARCHAR2 IS
395   BEGIN
396     RETURN CP_SHIP_METHOD;
397   END CP_SHIP_METHOD_P;
398 
399   FUNCTION CP_DELIVERY_FROM_P RETURN VARCHAR2 IS
400   BEGIN
401     RETURN CP_DELIVERY_FROM;
402   END CP_DELIVERY_FROM_P;
403 
404   FUNCTION CP_DELIVERY_TO_P RETURN VARCHAR2 IS
405   BEGIN
406     RETURN CP_DELIVERY_TO;
407   END CP_DELIVERY_TO_P;
408 
409   FUNCTION CP_TRIP_NAME_P RETURN VARCHAR2 IS
410   BEGIN
411     RETURN CP_TRIP_NAME;
412   END CP_TRIP_NAME_P;
413 
414   FUNCTION CP_TRIP_ID_P RETURN NUMBER IS
415   BEGIN
416     RETURN CP_TRIP_ID;
417   END CP_TRIP_ID_P;
418 
419   FUNCTION CP_MESSAGE_P RETURN VARCHAR2 IS
420   BEGIN
421     RETURN CP_MESSAGE;
422   END CP_MESSAGE_P;
423 
424   FUNCTION CP_BATCH_ID_P RETURN NUMBER IS
425   BEGIN
426     RETURN CP_BATCH_ID;
427   END CP_BATCH_ID_P;
428 
429   FUNCTION CP_EXCEPTIONS_ONLY_P RETURN VARCHAR2 IS
430   BEGIN
431     RETURN CP_EXCEPTIONS_ONLY;
432   END CP_EXCEPTIONS_ONLY_P;
433 
434   FUNCTION CP_AUTO_CONFIRM_RULE_P RETURN VARCHAR2 IS
435   BEGIN
436     RETURN CP_AUTO_CONFIRM_RULE;
437   END CP_AUTO_CONFIRM_RULE_P;
438 
439 END WSH_WSHRDASP_XMLP_PKG;
440 
441