DBA Data[Home] [Help]

PACKAGE BODY: APPS.WMS_WP_WAVE_EXCEPTIONS_PKG

Source


1 package body WMS_WP_WAVE_EXCEPTIONS_PKG as
2 /* $Header: WMSWPTEB.pls 120.1.12010000.1 2009/03/25 09:55:23 shrmitra noship $ */
3 procedure INSERT_ROW (
4   X_EXCEPTION_ID in NUMBER,
5   X_EXCEPTION_ENTITY in VARCHAR2,
6   X_EXCEPTION_STAGE in VARCHAR2,
7   X_EXCEPTION_LEVEL in VARCHAR2,
8   X_EXCEPTION_MSG in VARCHAR2,
9   X_WAVE_HEADER_ID in NUMBER,
10   X_TRIP_ID in NUMBER,
11   X_DELIVERY_ID in NUMBER,
12   X_ORDER_NUMBER in NUMBER,
13   X_ORDER_LINE_ID in NUMBER,
14   X_STATUS in VARCHAR2,
15   X_READY_TO_RELEASE in VARCHAR2,
16   X_BACKORDERED in VARCHAR2,
17   X_CROSSDOCK_PLANNED in VARCHAR2,
18   X_REPLENISHMENT_PLANNED in VARCHAR2,
19   X_TASKED in VARCHAR2,
20   X_PICKED in VARCHAR2,
21   X_PACKED in VARCHAR2,
22   X_STAGED in VARCHAR2,
23   X_LOADED_TO_DOCK in VARCHAR2,
24   X_SHIPPED in VARCHAR2,
25   X_CONCURRENT_REQUEST_ID in NUMBER,
26   X_PROGRAM_ID in NUMBER,
27   X_EXCEPTION_NAME in VARCHAR2,
28   X_CREATION_DATE in DATE,
29   X_CREATED_BY in NUMBER,
30   X_LAST_UPDATE_DATE in DATE,
31   X_LAST_UPDATED_BY in NUMBER,
32   X_LAST_UPDATE_LOGIN in NUMBER
33 ) is
34   cursor C is select ROWID from WMS_WP_WAVE_EXCEPTIONS_B
35     where EXCEPTION_ID = X_EXCEPTION_ID
36     ;
37 
38     -- create a cursor variable here SUDHEER
39   c_var c%rowtype;
40 begin
41   insert into WMS_WP_WAVE_EXCEPTIONS_B (
42     EXCEPTION_ID,
43     EXCEPTION_ENTITY,
44     EXCEPTION_STAGE,
45     EXCEPTION_LEVEL,
46     EXCEPTION_MSG,
47     WAVE_HEADER_ID,
48     TRIP_ID,
49     DELIVERY_ID,
50     ORDER_NUMBER,
51     ORDER_LINE_ID,
52     STATUS,
53     READY_TO_RELEASE,
54     BACKORDERED,
55     CROSSDOCK_PLANNED,
56     REPLENISHMENT_PLANNED,
57     TASKED,
58     PICKED,
59     PACKED,
60     STAGED,
61     LOADED_TO_DOCK,
62     SHIPPED,
63     CONCURRENT_REQUEST_ID,
64     PROGRAM_ID,
65     CREATION_DATE,
66     CREATED_BY,
67     LAST_UPDATE_DATE,
68     LAST_UPDATED_BY,
69     LAST_UPDATE_LOGIN
70   ) values (
71     X_EXCEPTION_ID,
72     X_EXCEPTION_ENTITY,
73     X_EXCEPTION_STAGE,
74     X_EXCEPTION_LEVEL,
75     X_EXCEPTION_MSG,
76     X_WAVE_HEADER_ID,
77     X_TRIP_ID,
78     X_DELIVERY_ID,
79     X_ORDER_NUMBER,
80     X_ORDER_LINE_ID,
81     X_STATUS,
82     X_READY_TO_RELEASE,
83     X_BACKORDERED,
84     X_CROSSDOCK_PLANNED,
85     X_REPLENISHMENT_PLANNED,
86     X_TASKED,
87     X_PICKED,
88     X_PACKED,
89     X_STAGED,
90     X_LOADED_TO_DOCK,
91     X_SHIPPED,
92     X_CONCURRENT_REQUEST_ID,
93     X_PROGRAM_ID,
94     X_CREATION_DATE,
95     X_CREATED_BY,
96     X_LAST_UPDATE_DATE,
97     X_LAST_UPDATED_BY,
98     X_LAST_UPDATE_LOGIN
99   );
100 
101   insert into WMS_WP_WAVE_EXCEPTIONS_TL (
102     EXCEPTION_ID,
103     EXCEPTION_NAME,
104     CREATED_BY,
105     CREATION_DATE,
106     LAST_UPDATED_BY,
107     LAST_UPDATE_DATE,
108     LAST_UPDATE_LOGIN,
109     LANGUAGE,
110     SOURCE_LANG
111   ) select
112     X_EXCEPTION_ID,
113     X_EXCEPTION_NAME,
114     X_CREATED_BY,
115     X_CREATION_DATE,
116     X_LAST_UPDATED_BY,
117     X_LAST_UPDATE_DATE,
118     X_LAST_UPDATE_LOGIN,
119     L.LANGUAGE_CODE,
120     userenv('LANG')
121   from FND_LANGUAGES L
122   where L.INSTALLED_FLAG in ('I', 'B')
123   and not exists
124     (select NULL
125     from WMS_WP_WAVE_EXCEPTIONS_TL T
126     where T.EXCEPTION_ID = X_EXCEPTION_ID
127     and T.LANGUAGE = L.LANGUAGE_CODE);
128 
129   open c;
130   --fetch c into X_ROWID;  -- sudheer
131   fetch c into c_var;
132   if (c%notfound) then
133     close c;
134     raise no_data_found;
135   end if;
136   close c;
137 
138 end INSERT_ROW;
139 
140 procedure LOCK_ROW (
141   X_EXCEPTION_ID in NUMBER,
142   X_EXCEPTION_ENTITY in VARCHAR2,
143   X_EXCEPTION_STAGE in VARCHAR2,
144   X_EXCEPTION_LEVEL in VARCHAR2,
145   X_EXCEPTION_MSG in VARCHAR2,
146   X_WAVE_HEADER_ID in NUMBER,
147   X_TRIP_ID in NUMBER,
148   X_DELIVERY_ID in NUMBER,
149   X_ORDER_NUMBER in NUMBER,
150   X_ORDER_LINE_ID in NUMBER,
151   X_STATUS in VARCHAR2,
152   X_READY_TO_RELEASE in VARCHAR2,
153   X_BACKORDERED in VARCHAR2,
154   X_CROSSDOCK_PLANNED in VARCHAR2,
155   X_REPLENISHMENT_PLANNED in VARCHAR2,
156   X_TASKED in VARCHAR2,
157   X_PICKED in VARCHAR2,
158   X_PACKED in VARCHAR2,
159   X_STAGED in VARCHAR2,
160   X_LOADED_TO_DOCK in VARCHAR2,
161   X_SHIPPED in VARCHAR2,
162   X_CONCURRENT_REQUEST_ID in NUMBER,
163   X_PROGRAM_ID in NUMBER, -- sudheer
164   X_EXCEPTION_NAME in VARCHAR2
165 ) is
166   cursor c is select
167       EXCEPTION_ENTITY,
168       EXCEPTION_STAGE,
169       EXCEPTION_LEVEL,
170       EXCEPTION_MSG,
171       WAVE_HEADER_ID,
172       TRIP_ID,
173       DELIVERY_ID,
174       ORDER_NUMBER,
175       ORDER_LINE_ID,
176       STATUS,
177       READY_TO_RELEASE,
178       BACKORDERED,
179       CROSSDOCK_PLANNED,
180       REPLENISHMENT_PLANNED,
181       TASKED,
182       PICKED,
183       PACKED,
184       STAGED,
185       LOADED_TO_DOCK,
186       SHIPPED,
187       CONCURRENT_REQUEST_ID,
188       PROGRAM_ID -- sudheer
189     from WMS_WP_WAVE_EXCEPTIONS_B
190     where EXCEPTION_ID = X_EXCEPTION_ID
191     for update of EXCEPTION_ID nowait;
192   recinfo c%rowtype;
193 
194   cursor c1 is select
195       EXCEPTION_NAME,
196       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
197     from WMS_WP_WAVE_EXCEPTIONS_TL
198     where EXCEPTION_ID = X_EXCEPTION_ID
199     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
200     for update of EXCEPTION_ID nowait;
201 begin
202   open c;
203   fetch c into recinfo;
204   if (c%notfound) then
205     close c;
206     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
207     app_exception.raise_exception;
208   end if;
209   close c;
210   if (    ((recinfo.EXCEPTION_ENTITY = X_EXCEPTION_ENTITY)
211            OR ((recinfo.EXCEPTION_ENTITY is null) AND (X_EXCEPTION_ENTITY is null)))
212       AND ((recinfo.EXCEPTION_STAGE = X_EXCEPTION_STAGE)
213            OR ((recinfo.EXCEPTION_STAGE is null) AND (X_EXCEPTION_STAGE is null)))
214       AND ((recinfo.EXCEPTION_LEVEL = X_EXCEPTION_LEVEL)
215            OR ((recinfo.EXCEPTION_LEVEL is null) AND (X_EXCEPTION_LEVEL is null)))
216       AND ((recinfo.EXCEPTION_MSG = X_EXCEPTION_MSG)
217            OR ((recinfo.EXCEPTION_MSG is null) AND (X_EXCEPTION_MSG is null)))
218       AND (recinfo.WAVE_HEADER_ID = X_WAVE_HEADER_ID)
219       AND ((recinfo.TRIP_ID = X_TRIP_ID)
220            OR ((recinfo.TRIP_ID is null) AND (X_TRIP_ID is null)))
221       AND ((recinfo.DELIVERY_ID = X_DELIVERY_ID)
222            OR ((recinfo.DELIVERY_ID is null) AND (X_DELIVERY_ID is null)))
223       AND ((recinfo.ORDER_NUMBER = X_ORDER_NUMBER)
224            OR ((recinfo.ORDER_NUMBER is null) AND (X_ORDER_NUMBER is null)))
225       AND ((recinfo.ORDER_LINE_ID = X_ORDER_LINE_ID)
226            OR ((recinfo.ORDER_LINE_ID is null) AND (X_ORDER_LINE_ID is null)))
227       AND ((recinfo.STATUS = X_STATUS)
228            OR ((recinfo.STATUS is null) AND (X_STATUS is null)))
229       AND ((recinfo.READY_TO_RELEASE = X_READY_TO_RELEASE)
230            OR ((recinfo.READY_TO_RELEASE is null) AND (X_READY_TO_RELEASE is null)))
231       AND ((recinfo.BACKORDERED = X_BACKORDERED)
232            OR ((recinfo.BACKORDERED is null) AND (X_BACKORDERED is null)))
233       AND ((recinfo.CROSSDOCK_PLANNED = X_CROSSDOCK_PLANNED)
234            OR ((recinfo.CROSSDOCK_PLANNED is null) AND (X_CROSSDOCK_PLANNED is null)))
235       AND ((recinfo.REPLENISHMENT_PLANNED = X_REPLENISHMENT_PLANNED)
236            OR ((recinfo.REPLENISHMENT_PLANNED is null) AND (X_REPLENISHMENT_PLANNED is null)))
237       AND ((recinfo.TASKED = X_TASKED)
238            OR ((recinfo.TASKED is null) AND (X_TASKED is null)))
239       AND ((recinfo.PICKED = X_PICKED)
240            OR ((recinfo.PICKED is null) AND (X_PICKED is null)))
241       AND ((recinfo.PACKED = X_PACKED)
242            OR ((recinfo.PACKED is null) AND (X_PACKED is null)))
243       AND ((recinfo.STAGED = X_STAGED)
244            OR ((recinfo.STAGED is null) AND (X_STAGED is null)))
245       AND ((recinfo.LOADED_TO_DOCK = X_LOADED_TO_DOCK)
246            OR ((recinfo.LOADED_TO_DOCK is null) AND (X_LOADED_TO_DOCK is null)))
247       AND ((recinfo.SHIPPED = X_SHIPPED)
248            OR ((recinfo.SHIPPED is null) AND (X_SHIPPED is null)))
249       AND ((recinfo.CONCURRENT_REQUEST_ID = X_CONCURRENT_REQUEST_ID)
250            OR ((recinfo.CONCURRENT_REQUEST_ID is null) AND (X_CONCURRENT_REQUEST_ID is null)))
251       AND ((recinfo.PROGRAM_ID = X_PROGRAM_ID)                  -- sudheer
252            OR ((recinfo.PROGRAM_ID is null) AND (X_PROGRAM_ID is null))) -- sudheer
253 
254   ) then
255     null;
256   else
257     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
258     app_exception.raise_exception;
259   end if;
260 
261   for tlinfo in c1 loop
262     if (tlinfo.BASELANG = 'Y') then
263       if (    ((tlinfo.EXCEPTION_NAME = X_EXCEPTION_NAME)
264                OR ((tlinfo.EXCEPTION_NAME is null) AND (X_EXCEPTION_NAME is null)))
265       ) then
266         null;
267       else
268         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
269         app_exception.raise_exception;
270       end if;
271     end if;
272   end loop;
273   return;
274 end LOCK_ROW;
275 
276 procedure UPDATE_ROW (
277   X_EXCEPTION_ID in NUMBER,
278   X_EXCEPTION_ENTITY in VARCHAR2,
279   X_EXCEPTION_STAGE in VARCHAR2,
280   X_EXCEPTION_LEVEL in VARCHAR2,
281   X_EXCEPTION_MSG in VARCHAR2,
282   X_WAVE_HEADER_ID in NUMBER,
283   X_TRIP_ID in NUMBER,
284   X_DELIVERY_ID in NUMBER,
285   X_ORDER_NUMBER in NUMBER,
286   X_ORDER_LINE_ID in NUMBER,
287   X_STATUS in VARCHAR2,
288   X_READY_TO_RELEASE in VARCHAR2,
289   X_BACKORDERED in VARCHAR2,
290   X_CROSSDOCK_PLANNED in VARCHAR2,
291   X_REPLENISHMENT_PLANNED in VARCHAR2,
292   X_TASKED in VARCHAR2,
293   X_PICKED in VARCHAR2,
294   X_PACKED in VARCHAR2,
295   X_STAGED in VARCHAR2,
296   X_LOADED_TO_DOCK in VARCHAR2,
297   X_SHIPPED in VARCHAR2,
298   X_CONCURRENT_REQUEST_ID in NUMBER,
299   X_PROGRAM_ID in NUMBER, -- added by sudheer.
300   X_EXCEPTION_NAME in VARCHAR2,
301   X_LAST_UPDATE_DATE in DATE,
302   X_LAST_UPDATED_BY in NUMBER,
303   X_LAST_UPDATE_LOGIN in NUMBER
304 ) is
305 begin
306   update WMS_WP_WAVE_EXCEPTIONS_B set
307     EXCEPTION_ENTITY = X_EXCEPTION_ENTITY,
308     EXCEPTION_STAGE = X_EXCEPTION_STAGE,
309     EXCEPTION_LEVEL = X_EXCEPTION_LEVEL,
310     EXCEPTION_MSG = X_EXCEPTION_MSG,
311     WAVE_HEADER_ID = X_WAVE_HEADER_ID,
312     TRIP_ID = X_TRIP_ID,
313     DELIVERY_ID = X_DELIVERY_ID,
314     ORDER_NUMBER = X_ORDER_NUMBER,
315     ORDER_LINE_ID = X_ORDER_LINE_ID,
316     STATUS = X_STATUS,
317     READY_TO_RELEASE = X_READY_TO_RELEASE,
318     BACKORDERED = X_BACKORDERED,
319     CROSSDOCK_PLANNED = X_CROSSDOCK_PLANNED,
320     REPLENISHMENT_PLANNED = X_REPLENISHMENT_PLANNED,
321     TASKED = X_TASKED,
322     PICKED = X_PICKED,
323     PACKED = X_PACKED,
324     STAGED = X_STAGED,
325     LOADED_TO_DOCK = X_LOADED_TO_DOCK,
326     SHIPPED = X_SHIPPED,
327     CONCURRENT_REQUEST_ID = X_CONCURRENT_REQUEST_ID,
328     PROGRAM_ID = X_PROGRAM_ID, -- by SUDHEER
329     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
330     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
331     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
332   where EXCEPTION_ID = X_EXCEPTION_ID;
333 
334   if (sql%notfound) then
335     raise no_data_found;
336   end if;
337 
338   update WMS_WP_WAVE_EXCEPTIONS_TL set
339     EXCEPTION_NAME = X_EXCEPTION_NAME,
340     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
341     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
342     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
343     SOURCE_LANG = userenv('LANG')
344   where EXCEPTION_ID = X_EXCEPTION_ID
345   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
346 
347   if (sql%notfound) then
348     raise no_data_found;
349   end if;
350 end UPDATE_ROW;
351 
352 procedure DELETE_ROW (
353   X_EXCEPTION_ID in NUMBER
354 ) is
355 begin
356   delete from WMS_WP_WAVE_EXCEPTIONS_TL
357   where EXCEPTION_ID = X_EXCEPTION_ID;
358 
359   if (sql%notfound) then
360     raise no_data_found;
361   end if;
362 
363   delete from WMS_WP_WAVE_EXCEPTIONS_B
364   where EXCEPTION_ID = X_EXCEPTION_ID;
365 
366   if (sql%notfound) then
367     raise no_data_found;
368   end if;
369 end DELETE_ROW;
370 
371 procedure ADD_LANGUAGE
372 is
373 begin
374   delete from WMS_WP_WAVE_EXCEPTIONS_TL T
375   where not exists
376     (select NULL
377     from WMS_WP_WAVE_EXCEPTIONS_B B
378     where B.EXCEPTION_ID = T.EXCEPTION_ID
379     );
380 
381   update WMS_WP_WAVE_EXCEPTIONS_TL T set (
382       EXCEPTION_NAME
383     ) = (select
384       B.EXCEPTION_NAME
385     from WMS_WP_WAVE_EXCEPTIONS_TL B
386     where B.EXCEPTION_ID = T.EXCEPTION_ID
387     and B.LANGUAGE = T.SOURCE_LANG)
388   where (
389       T.EXCEPTION_ID,
390       T.LANGUAGE
391   ) in (select
392       SUBT.EXCEPTION_ID,
393       SUBT.LANGUAGE
394     from WMS_WP_WAVE_EXCEPTIONS_TL SUBB, WMS_WP_WAVE_EXCEPTIONS_TL SUBT
395     where SUBB.EXCEPTION_ID = SUBT.EXCEPTION_ID
396     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
397     and (SUBB.EXCEPTION_NAME <> SUBT.EXCEPTION_NAME
398       or (SUBB.EXCEPTION_NAME is null and SUBT.EXCEPTION_NAME is not null)
399       or (SUBB.EXCEPTION_NAME is not null and SUBT.EXCEPTION_NAME is null)
400   ));
401 
402   insert into WMS_WP_WAVE_EXCEPTIONS_TL (
403     EXCEPTION_ID,
404     EXCEPTION_NAME,
405     CREATED_BY,
406     CREATION_DATE,
407     LAST_UPDATED_BY,
408     LAST_UPDATE_DATE,
409     LAST_UPDATE_LOGIN,
410     LANGUAGE,
411     SOURCE_LANG
412   ) select /*+ ORDERED */
413     B.EXCEPTION_ID,
414     B.EXCEPTION_NAME,
415     B.CREATED_BY,
416     B.CREATION_DATE,
417     B.LAST_UPDATED_BY,
418     B.LAST_UPDATE_DATE,
419     B.LAST_UPDATE_LOGIN,
420     L.LANGUAGE_CODE,
421     B.SOURCE_LANG
422   from WMS_WP_WAVE_EXCEPTIONS_TL B, FND_LANGUAGES L
423   where L.INSTALLED_FLAG in ('I', 'B')
424   and B.LANGUAGE = userenv('LANG')
425   and not exists
426     (select NULL
427     from WMS_WP_WAVE_EXCEPTIONS_TL T
428     where T.EXCEPTION_ID = B.EXCEPTION_ID
429     and T.LANGUAGE = L.LANGUAGE_CODE);
430 end ADD_LANGUAGE;
431 
432 end WMS_WP_WAVE_EXCEPTIONS_PKG;