DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_UTIL_CATEGORIES_PKG

Source


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