DBA Data[Home] [Help]

PACKAGE BODY: APPS.PO_HAZARD_CLASSES_PKG

Source


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