DBA Data[Home] [Help]

PACKAGE BODY: APPS.WMS_DEVICES_PKG

Source


1 package body WMS_DEVICES_PKG as
2 /* $Header: WMSDEVDB.pls 120.1 2005/07/21 13:35:49 simran noship $ */
3 procedure INSERT_ROW (
4   X_ROWID 			in out nocopy VARCHAR2,
5   X_DEVICE_ID 			in NUMBER,
6   X_DEVICE_TYPE_ID 		in NUMBER,
7   X_ENABLED_FLAG 		in VARCHAR2,
8   X_LOT_SERIAL_CAPABLE 		in VARCHAR2,
9   X_INPUT_METHOD_ID 		in NUMBER,
10   X_OUTPUT_METHOD_ID 		in NUMBER,
11   X_BATCH_LIMIT 		in NUMBER,
12   X_OUT_DIRECTORY 		in VARCHAR2,
13   X_OUT_FILE_PREFIX 		in VARCHAR2,
14   X_SUBINVENTORY_CODE		in VARCHAR2,
15   X_ORGANIZATION_ID		in NUMBER,
16   X_ATTRIBUTE_CATEGORY 		in VARCHAR2,
17   X_ATTRIBUTE1			in VARCHAR2,
18   X_ATTRIBUTE2			in VARCHAR2,
19   X_ATTRIBUTE3			in VARCHAR2,
20   X_ATTRIBUTE4			in VARCHAR2,
21   X_ATTRIBUTE5			in VARCHAR2,
22   X_ATTRIBUTE6			in VARCHAR2,
23   X_ATTRIBUTE7			in VARCHAR2,
24   X_ATTRIBUTE8			in VARCHAR2,
25   X_ATTRIBUTE9			in VARCHAR2,
26   X_ATTRIBUTE10			in VARCHAR2,
27   X_ATTRIBUTE11			in VARCHAR2,
28   X_ATTRIBUTE12			in VARCHAR2,
29   X_ATTRIBUTE13			in VARCHAR2,
30   X_ATTRIBUTE14			in VARCHAR2,
31   X_ATTRIBUTE15			in VARCHAR2,
32   X_NAME 			in VARCHAR2,
33   X_DESCRIPTION 		in VARCHAR2,
34   X_CREATION_DATE 		in DATE,
35   X_CREATED_BY 			in NUMBER,
36   X_LAST_UPDATE_DATE 		in DATE,
37   X_LAST_UPDATED_BY 		in NUMBER,
38   X_LAST_UPDATE_LOGIN 		in NUMBER,
39   X_DEVICE_MODEL		in VARCHAR2,
40   X_NOTIFICATION_FLAG		in VARCHAR2,
41   X_FORCE_SIGN_ON_FLAG		in VARCHAR2,
42   x_locator_id             IN number,
43   x_multi_sign_on          IN VARCHAR2,
44   x_message_template_id    IN NUMBER    --MHP
45   ) is
46   cursor C is select ROWID from WMS_DEVICES_B
47     where DEVICE_ID = X_DEVICE_ID  ;
48 begin
49   insert into WMS_DEVICES_B (
50     DEVICE_ID,
51     DEVICE_TYPE_ID,
52     ENABLED_FLAG,
53     LOT_SERIAL_CAPABLE,
54     INPUT_METHOD_ID,
55     OUTPUT_METHOD_ID,
56     BATCH_LIMIT,
57     OUT_DIRECTORY,
58     OUT_FILE_PREFIX,
59     SUBINVENTORY_CODE,
60     ORGANIZATION_ID,
61     ATTRIBUTE_CATEGORY,
62     ATTRIBUTE1,
63     ATTRIBUTE2,
64     ATTRIBUTE3,
65     ATTRIBUTE4,
66     ATTRIBUTE5,
67     ATTRIBUTE6,
68     ATTRIBUTE7,
69     ATTRIBUTE8,
70     ATTRIBUTE9,
71     ATTRIBUTE10,
72     ATTRIBUTE11,
73     ATTRIBUTE12,
74     ATTRIBUTE13,
75     ATTRIBUTE14,
76     ATTRIBUTE15,
77     CREATION_DATE,
78     CREATED_BY,
79     LAST_UPDATE_DATE,
80     LAST_UPDATED_BY,
81     LAST_UPDATE_LOGIN,
82     DEVICE_MODEL,
83     NOTIFICATION_FLAG,
84     force_sign_on_flag,
85     locator_id,
86     multi_sign_on,
87     message_template_id
88   ) values (
89     X_DEVICE_ID,
90     X_DEVICE_TYPE_ID,
91     X_ENABLED_FLAG,
92     X_LOT_SERIAL_CAPABLE,
93     X_INPUT_METHOD_ID,
94     X_OUTPUT_METHOD_ID,
95     X_BATCH_LIMIT,
96     X_OUT_DIRECTORY,
97     X_OUT_FILE_PREFIX,
98     X_SUBINVENTORY_CODE,
99     X_ORGANIZATION_ID,
100     X_ATTRIBUTE_CATEGORY,
101     X_ATTRIBUTE1,
102     X_ATTRIBUTE2,
103     X_ATTRIBUTE3,
104     X_ATTRIBUTE4,
105     X_ATTRIBUTE5,
106     X_ATTRIBUTE6,
107     X_ATTRIBUTE7,
108     X_ATTRIBUTE8,
109     X_ATTRIBUTE9,
110     X_ATTRIBUTE10,
111     X_ATTRIBUTE11,
112     X_ATTRIBUTE12,
113     X_ATTRIBUTE13,
114     X_ATTRIBUTE14,
115     X_ATTRIBUTE15,
116     X_CREATION_DATE,
117     X_CREATED_BY,
118     X_LAST_UPDATE_DATE,
119     X_LAST_UPDATED_BY,
120     X_LAST_UPDATE_LOGIN,
121     X_DEVICE_MODEL,
122     X_NOTIFICATION_FLAG,
123     x_force_sign_on_flag,
124     x_locator_id,
125     x_multi_sign_on,
126     x_message_template_id);
127 
128   insert into WMS_DEVICES_TL(
129     DEVICE_ID,
130     NAME,
131     DESCRIPTION,
132     CREATION_DATE,
133     CREATED_BY,
134     LAST_UPDATE_DATE,
135     LAST_UPDATED_BY,
136     LAST_UPDATE_LOGIN,
137     LANGUAGE,
138     SOURCE_LANG)
139   select
140     X_DEVICE_ID,
141     X_NAME,
142     X_DESCRIPTION,
143     X_CREATION_DATE,
144     X_CREATED_BY,
145     X_LAST_UPDATE_DATE,
146     X_LAST_UPDATED_BY,
147     X_LAST_UPDATE_LOGIN,
148     L.LANGUAGE_CODE,
149     userenv('LANG')
150   from FND_LANGUAGES L
151   where L.INSTALLED_FLAG in ('I', 'B')
152   and not exists
153     (select NULL
154     from WMS_DEVICES_TL T
155     where T.DEVICE_ID = X_DEVICE_ID
156     and T.LANGUAGE = L.LANGUAGE_CODE);
157 
158   open c;
159   fetch c into X_ROWID;
160   if (c%notfound) then
161     close c;
162     raise no_data_found;
163   end if;
164   close c;
165 
166 end INSERT_ROW;
167 
168 procedure LOCK_ROW(
169   X_DEVICE_ID 			in NUMBER,
170   X_DEVICE_TYPE_ID 		in NUMBER,
171   X_ENABLED_FLAG 		in VARCHAR2,
172   X_LOT_SERIAL_CAPABLE 		in VARCHAR2,
173   X_INPUT_METHOD_ID 		in NUMBER,
174   X_OUTPUT_METHOD_ID 		in NUMBER,
175   X_BATCH_LIMIT 		in NUMBER,
176   X_OUT_DIRECTORY 		in VARCHAR2,
177   X_OUT_FILE_PREFIX 		in VARCHAR2,
178   X_SUBINVENTORY_CODE		in VARCHAR2,
179   X_ORGANIZATION_ID		in NUMBER,
180   X_ATTRIBUTE_CATEGORY 		in VARCHAR2,
181   X_ATTRIBUTE1			in VARCHAR2,
182   X_ATTRIBUTE2			in VARCHAR2,
183   X_ATTRIBUTE3			in VARCHAR2,
184   X_ATTRIBUTE4			in VARCHAR2,
185   X_ATTRIBUTE5			in VARCHAR2,
186   X_ATTRIBUTE6			in VARCHAR2,
187   X_ATTRIBUTE7			in VARCHAR2,
188   X_ATTRIBUTE8			in VARCHAR2,
189   X_ATTRIBUTE9			in VARCHAR2,
190   X_ATTRIBUTE10			in VARCHAR2,
191   X_ATTRIBUTE11			in VARCHAR2,
192   X_ATTRIBUTE12			in VARCHAR2,
193   X_ATTRIBUTE13			in VARCHAR2,
194   X_ATTRIBUTE14			in VARCHAR2,
195   X_ATTRIBUTE15			in VARCHAR2,
196   X_NAME 			in VARCHAR2,
197   X_DESCRIPTION 		in VARCHAR2,
198   X_DEVICE_MODEL		in VARCHAR2,
199   X_NOTIFICATION_FLAG		in VARCHAR2,
200   X_FORCE_SIGN_ON_FLAG		in VARCHAR2,
201   x_locator_id             IN number,
202   x_multi_sign_on          IN VARCHAR2,
203   x_message_template_id    IN NUMBER    --MHP
204   ) is
205   cursor c is select
206       DEVICE_TYPE_ID,
207       ENABLED_FLAG,
208       LOT_SERIAL_CAPABLE,
209       INPUT_METHOD_ID,
210       OUTPUT_METHOD_ID,
211       BATCH_LIMIT,
212       OUT_DIRECTORY,
213       OUT_FILE_PREFIX,
214       SUBINVENTORY_CODE,
215       ORGANIZATION_ID,
216       ATTRIBUTE_CATEGORY,
217       ATTRIBUTE1,
218       ATTRIBUTE2,
219       ATTRIBUTE3,
220       ATTRIBUTE4,
221       ATTRIBUTE5,
222       ATTRIBUTE6,
223       ATTRIBUTE7,
224       ATTRIBUTE8,
225       ATTRIBUTE9,
226       ATTRIBUTE10,
227       ATTRIBUTE11,
228       ATTRIBUTE12,
229       ATTRIBUTE13,
230       ATTRIBUTE14,
231       ATTRIBUTE15,
232       DEVICE_MODEL,
233       NOTIFICATION_FLAG,
234       force_sign_on_flag,
235       locator_id,
236       multi_sign_on,
237       message_template_id    --MHP
238     from WMS_DEVICES_B
239     where DEVICE_ID = X_DEVICE_ID
240     for update of DEVICE_ID nowait;
241   recinfo c%rowtype;
242 
243   cursor c1 is select
244       NAME,
245       DESCRIPTION,
246       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
247     from WMS_DEVICES_TL
248     where DEVICE_ID = X_DEVICE_ID
249     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
250     for update of DEVICE_ID nowait;
251 begin
252   open c;
253   fetch c into recinfo;
254   if (c%notfound) then
255     close c;
256     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
257     app_exception.raise_exception;
258   end if;
259   close c;
260   if (     (recinfo.DEVICE_TYPE_ID = X_DEVICE_TYPE_ID)
261       AND  (recinfo.OUTPUT_METHOD_ID = X_OUTPUT_METHOD_ID)
262       AND ((recinfo.DEVICE_MODEL = X_DEVICE_MODEL)
263 				OR ((recinfo.DEVICE_MODEL is null) AND (X_DEVICE_MODEL is null)))
264       AND ((recinfo.NOTIFICATION_FLAG = X_NOTIFICATION_FLAG)
265             OR ((recinfo.NOTIFICATION_FLAG is null) AND (X_NOTIFICATION_FLAG is null)))
266        AND ((recinfo.FORCE_SIGN_ON_FLAG = X_FORCE_SIGN_ON_FLAG)
267             OR ((recinfo.FORCE_SIGN_ON_FLAG is null) AND (X_FORCE_SIGN_ON_FLAG is null)))
268       AND ((recinfo.locator_id = X_locator_id)
269 	   OR ((recinfo.locator_id is null) AND (x_locator_id is null)))
270       AND ((recinfo.multi_sign_on = x_multi_sign_on)
271 	         OR ((recinfo.multi_sign_on is null) AND (x_multi_sign_on is null)))
272       AND ((recinfo.message_template_id = x_message_template_id)
273 	         OR ((recinfo.message_template_id is null) AND (x_message_template_id is null)))
274       AND ((recinfo.ENABLED_FLAG = X_ENABLED_FLAG)
275       	   OR ((recinfo.ENABLED_FLAG is null) AND (X_ENABLED_FLAG is null)))
276       AND ((recinfo.LOT_SERIAL_CAPABLE = X_LOT_SERIAL_CAPABLE)
277       	   OR ((recinfo.LOT_SERIAL_CAPABLE is null) AND (X_LOT_SERIAL_CAPABLE is null)))
278       AND ((recinfo.INPUT_METHOD_ID = X_INPUT_METHOD_ID)
279            OR ((recinfo.INPUT_METHOD_ID is null) AND (X_INPUT_METHOD_ID is null)))
280       AND ((recinfo.BATCH_LIMIT = X_BATCH_LIMIT)
281            OR ((recinfo.BATCH_LIMIT is null) AND (X_BATCH_LIMIT is null)))
282       AND ((recinfo.OUT_DIRECTORY = X_OUT_DIRECTORY)
283       	   OR ((recinfo.OUT_DIRECTORY is null) AND (X_OUT_DIRECTORY is null)))
284       AND ((recinfo.OUT_FILE_PREFIX = X_OUT_FILE_PREFIX)
285       	   OR ((recinfo.OUT_FILE_PREFIX is null) AND (X_OUT_FILE_PREFIX is null)))
286       AND ((recinfo.SUBINVENTORY_CODE = X_SUBINVENTORY_CODE)
287             OR ((recinfo.SUBINVENTORY_CODE is null) AND (X_SUBINVENTORY_CODE is null)))
288       AND ((recinfo.ORGANIZATION_ID = X_ORGANIZATION_ID)
289            OR ((recinfo.ORGANIZATION_ID is null) AND (X_ORGANIZATION_ID is null)))
290       AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
291            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
292       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
293            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
294       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
295            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
296       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
297            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
298       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
299            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
300       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
301            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
302       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
303            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
304       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
305            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
306       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
307            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
308       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
309            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
310       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
311            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
312       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
313            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
314       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
315            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
316       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
317            OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
318       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
319            OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
320       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
321            OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
322     ) then
323     null;
324   else
325     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
326     app_exception.raise_exception;
327   end if;
328 
329   for tlinfo in c1 loop
330     if (tlinfo.BASELANG = 'Y') then
331       if (    (tlinfo.NAME = X_NAME)
332           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
333                OR((tlinfo.description is null) and (x_description is null)))
334       ) then
335         null;
336       else
337         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
338         app_exception.raise_exception;
339       end if;
340     end if;
341   end loop;
342   return;
343 end LOCK_ROW;
344 
345 procedure UPDATE_ROW (
346   X_DEVICE_ID 			in NUMBER,
347   X_DEVICE_TYPE_ID 		in NUMBER,
348   X_ENABLED_FLAG 		in VARCHAR2,
349   X_LOT_SERIAL_CAPABLE 		in VARCHAR2,
350   X_INPUT_METHOD_ID 		in NUMBER,
351   X_OUTPUT_METHOD_ID 		in NUMBER,
352   X_BATCH_LIMIT 		in NUMBER,
353   X_OUT_DIRECTORY 		in VARCHAR2,
354   X_OUT_FILE_PREFIX 		in VARCHAR2,
355   X_SUBINVENTORY_CODE		in VARCHAR2,
356   X_ORGANIZATION_ID		in NUMBER,
357   X_ATTRIBUTE_CATEGORY 		in VARCHAR2,
358   X_ATTRIBUTE1			in VARCHAR2,
359   X_ATTRIBUTE2			in VARCHAR2,
360   X_ATTRIBUTE3			in VARCHAR2,
361   X_ATTRIBUTE4			in VARCHAR2,
362   X_ATTRIBUTE5			in VARCHAR2,
363   X_ATTRIBUTE6			in VARCHAR2,
364   X_ATTRIBUTE7			in VARCHAR2,
365   X_ATTRIBUTE8			in VARCHAR2,
366   X_ATTRIBUTE9			in VARCHAR2,
367   X_ATTRIBUTE10			in VARCHAR2,
368   X_ATTRIBUTE11			in VARCHAR2,
369   X_ATTRIBUTE12			in VARCHAR2,
370   X_ATTRIBUTE13			in VARCHAR2,
371   X_ATTRIBUTE14			in VARCHAR2,
372   X_ATTRIBUTE15			in VARCHAR2,
373   X_NAME 			in VARCHAR2,
374   X_DESCRIPTION 		in VARCHAR2,
375   X_LAST_UPDATE_DATE 		in DATE,
376   X_LAST_UPDATED_BY 		in NUMBER,
377   X_LAST_UPDATE_LOGIN 		in NUMBER,
378   X_DEVICE_MODEL		in VARCHAR2,
379   X_NOTIFICATION_FLAG		in VARCHAR2,
380   X_FORCE_SIGN_ON_FLAG		in VARCHAR2,
381   x_locator_id             IN number,
382   x_multi_sign_on          IN VARCHAR2,
383   x_message_template_id    IN NUMBER    --MHP
384 ) is
385 begin
386   update WMS_DEVICES_B set
387     DEVICE_TYPE_ID 		= X_DEVICE_TYPE_ID,
388     ENABLED_FLAG 		= X_ENABLED_FLAG,
389     LOT_SERIAL_CAPABLE 		= X_LOT_SERIAL_CAPABLE,
390     INPUT_METHOD_ID 		= X_INPUT_METHOD_ID,
391     OUTPUT_METHOD_ID 		= X_OUTPUT_METHOD_ID,
392     BATCH_LIMIT 		= X_BATCH_LIMIT,
393     OUT_DIRECTORY 		= X_OUT_DIRECTORY,
394     OUT_FILE_PREFIX 		= X_OUT_FILE_PREFIX,
395     SUBINVENTORY_CODE		= X_SUBINVENTORY_CODE,
396     ORGANIZATION_ID		= X_ORGANIZATION_ID,
397     ATTRIBUTE_CATEGORY 		= X_ATTRIBUTE_CATEGORY,
398     ATTRIBUTE1			= X_ATTRIBUTE1,
399     ATTRIBUTE2			= X_ATTRIBUTE2,
400     ATTRIBUTE3			= X_ATTRIBUTE3,
401     ATTRIBUTE4			= X_ATTRIBUTE4,
402     ATTRIBUTE5			= X_ATTRIBUTE5,
403     ATTRIBUTE6			= X_ATTRIBUTE6,
404     ATTRIBUTE7			= X_ATTRIBUTE7,
405     ATTRIBUTE8			= X_ATTRIBUTE8,
406     ATTRIBUTE9			= X_ATTRIBUTE9,
407     ATTRIBUTE10			= X_ATTRIBUTE10,
408     ATTRIBUTE11			= X_ATTRIBUTE11,
409     ATTRIBUTE12			= X_ATTRIBUTE12,
410     ATTRIBUTE13			= X_ATTRIBUTE13,
411     ATTRIBUTE14			= X_ATTRIBUTE14,
412     ATTRIBUTE15			= X_ATTRIBUTE15,
413     LAST_UPDATE_DATE 		= X_LAST_UPDATE_DATE,
414     LAST_UPDATED_BY 		= X_LAST_UPDATED_BY,
415     LAST_UPDATE_LOGIN 		= X_LAST_UPDATE_LOGIN,
416     DEVICE_MODEL		= X_DEVICE_MODEL,
417     NOTIFICATION_FLAG		= X_NOTIFICATION_FLAG,
418     FORCE_SIGN_ON_FLAG		= x_force_sign_on_flag,
419     locator_id             = x_locator_id,
420     multi_sign_on          = x_multi_sign_on,
421     message_template_id    = x_message_template_id    --MHP
422   where DEVICE_ID = X_DEVICE_ID;
423 
424   if (sql%notfound) then
425     raise no_data_found;
426   end if;
427 
428   update WMS_DEVICES_TL set
429     NAME 			= X_NAME,
430     DESCRIPTION 		= X_DESCRIPTION,
431     LAST_UPDATE_DATE 		= X_LAST_UPDATE_DATE,
432     LAST_UPDATED_BY 		= X_LAST_UPDATED_BY,
433     LAST_UPDATE_LOGIN 		= X_LAST_UPDATE_LOGIN,
434     SOURCE_LANG = userenv('LANG')
435   where DEVICE_ID = X_DEVICE_ID
436   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
437 
438   if (sql%notfound) then
439     raise no_data_found;
440   end if;
441 end UPDATE_ROW;
442 
443 procedure DELETE_ROW (
444   X_DEVICE_ID in NUMBER
445 ) is
446 begin
447   delete from WMS_DEVICES_TL
448   where DEVICE_ID = X_DEVICE_ID;
449 
450   if (sql%notfound) then
451     raise no_data_found;
452   end if;
453 
454   delete from WMS_DEVICES_B
455   where DEVICE_ID = X_DEVICE_ID;
456 
457   if (sql%notfound) then
458     raise no_data_found;
459   end if;
460 end DELETE_ROW;
461 
462 procedure ADD_LANGUAGE
463 is
464 begin
465   delete from WMS_DEVICES_TL T
466   where not exists
467     (select NULL
468     from WMS_DEVICES_B B
469     where B.DEVICE_ID = T.DEVICE_ID
470     );
471 
472   update WMS_DEVICES_TL T set (
473       NAME,
474       DESCRIPTION
475     ) = (select
476       B.NAME,
477       B.DESCRIPTION
478     from WMS_DEVICES_TL B
479     where B.DEVICE_ID = T.DEVICE_ID
480     and B.LANGUAGE = T.SOURCE_LANG)
481   where (
482       T.DEVICE_ID,
483       T.LANGUAGE
484   ) in (select
485       SUBT.DEVICE_ID,
486       SUBT.LANGUAGE
487     from WMS_DEVICES_TL SUBB, WMS_DEVICES_TL SUBT
488     where SUBB.DEVICE_ID = SUBT.DEVICE_ID
489     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
490     and (SUBB.NAME <> SUBT.NAME
491       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
492   ));
493 
494   insert into WMS_DEVICES_TL (
495     DEVICE_ID,
496     NAME,
497     DESCRIPTION,
498     CREATION_DATE,
499     CREATED_BY,
500     LAST_UPDATE_DATE,
501     LAST_UPDATED_BY,
502     LAST_UPDATE_LOGIN,
503     LANGUAGE,
504     SOURCE_LANG
505   ) select
506     B.DEVICE_ID,
507     B.NAME,
508     B.DESCRIPTION,
509     B.CREATION_DATE,
510     B.CREATED_BY,
511     B.LAST_UPDATE_DATE,
512     B.LAST_UPDATED_BY,
513     B.LAST_UPDATE_LOGIN,
514     L.LANGUAGE_CODE,
515     B.SOURCE_LANG
516   from WMS_DEVICES_TL B, FND_LANGUAGES L
517   where L.INSTALLED_FLAG in ('I', 'B')
518   and B.LANGUAGE = userenv('LANG')
519   and not exists
520     (select NULL
521     from WMS_DEVICES_TL T
522     where T.DEVICE_ID = B.DEVICE_ID
523     and T.LANGUAGE = L.LANGUAGE_CODE);
524 end ADD_LANGUAGE;
528    IS
525 
526    FUNCTION is_wcs_enabled(p_org_id IN NUMBER)
527       RETURN VARCHAR2
529       l_is_wcs_enabled VARCHAR2(1);
530    BEGIN
531       SELECT nvl(wcs_enabled,'N')
532          INTO l_is_wcs_enabled
533          FROM mtl_parameters
534          WHERE organization_id = p_org_id;
535       RETURN l_is_wcs_enabled;
536    EXCEPTION
537       WHEN OTHERS THEN
538          RETURN 'N';
539    END is_wcs_enabled;
540 
541    FUNCTION is_device_multisignon(p_org_id IN NUMBER, p_device_name VARCHAR2)
542       RETURN VARCHAR2
543    IS
544       l_is_dev_multisignon VARCHAR2(1);
545    BEGIN
546       SELECT nvl(multi_sign_on,'N')
547          INTO l_is_dev_multisignon
548          FROM wms_devices_vl
549          WHERE organization_id = p_org_id
550            AND name = p_device_name;
551       RETURN l_is_dev_multisignon;
552    EXCEPTION
553       WHEN OTHERS THEN
554          RETURN 'N';
555    END is_device_multisignon;
556 
557 end WMS_DEVICES_PKG;