DBA Data[Home] [Help]

PACKAGE BODY: APPS.WMS_ZONES_PKG

Source


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