DBA Data[Home] [Help]

PACKAGE BODY: APPS.WMS_ZONES_PKG

Source


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