DBA Data[Home] [Help]

PACKAGE BODY: APPS.CS_FORUM_ATTRS_PKG

Source


1 PACKAGE BODY CS_FORUM_ATTRS_PKG AS
2 /* $Header: csfatb.pls 120.1 2005/06/22 12:15:44 appldev ship $ */
3 
4 procedure INSERT_ROW (
5   X_ATTRIBUTE_ID in NUMBER,
6   X_ATTRIBUTE_TYPE in VARCHAR2,
7   X_ATTRIBUTE_NAME in VARCHAR2,
8   X_NAME in VARCHAR2,
9   X_DESCRIPTION in VARCHAR2,
10   X_CREATION_DATE in DATE,
11   X_CREATED_BY in NUMBER,
12   X_LAST_UPDATE_DATE in DATE,
13   X_LAST_UPDATED_BY in NUMBER,
14   X_LAST_UPDATE_LOGIN in NUMBER,
15   X_ATTRIBUTE_CATEGORY in VARCHAR2 DEFAULT NULL,
16   X_ATTRIBUTE1 in VARCHAR2 DEFAULT NULL,
17   X_ATTRIBUTE2 in VARCHAR2 DEFAULT NULL,
18   X_ATTRIBUTE3 in VARCHAR2 DEFAULT NULL,
19   X_ATTRIBUTE4 in VARCHAR2 DEFAULT NULL,
20   X_ATTRIBUTE5 in VARCHAR2 DEFAULT NULL,
21   X_ATTRIBUTE6 in VARCHAR2 DEFAULT NULL,
22   X_ATTRIBUTE7 in VARCHAR2 DEFAULT NULL,
23   X_ATTRIBUTE8 in VARCHAR2 DEFAULT NULL,
24   X_ATTRIBUTE9 in VARCHAR2 DEFAULT NULL,
25   X_ATTRIBUTE10 in VARCHAR2 DEFAULT NULL,
26   X_ATTRIBUTE11 in VARCHAR2 DEFAULT NULL,
27   X_ATTRIBUTE12 in VARCHAR2 DEFAULT NULL,
28   X_ATTRIBUTE13 in VARCHAR2 DEFAULT NULL,
29   X_ATTRIBUTE14 in VARCHAR2 DEFAULT NULL,
30   X_ATTRIBUTE15 in VARCHAR2 DEFAULT NULL
31 ) is
32   cursor C is select ATTRIBUTE_ID from CS_FORUM_ATTRS_B
33     where ATTRIBUTE_ID = X_ATTRIBUTE_ID
34     ;
35 begin
36   insert into CS_FORUM_ATTRS_B (
37     ATTRIBUTE_ID,
38     ATTRIBUTE_TYPE,
39     ATTRIBUTE_NAME,
40     CREATION_DATE,
41     CREATED_BY,
42     LAST_UPDATE_DATE,
43     LAST_UPDATED_BY,
44     LAST_UPDATE_LOGIN,
45     ATTRIBUTE_CATEGORY,
46     ATTRIBUTE1,
47     ATTRIBUTE2,
48     ATTRIBUTE3,
49     ATTRIBUTE4,
50     ATTRIBUTE5,
51     ATTRIBUTE6,
52     ATTRIBUTE7,
53     ATTRIBUTE8,
54     ATTRIBUTE9,
55     ATTRIBUTE10,
56     ATTRIBUTE11,
57     ATTRIBUTE12,
58     ATTRIBUTE13,
59     ATTRIBUTE14,
60     ATTRIBUTE15
61   ) values (
62     X_ATTRIBUTE_ID,
63     X_ATTRIBUTE_TYPE,
64     X_ATTRIBUTE_NAME,
65     X_CREATION_DATE,
66     X_CREATED_BY,
67     X_LAST_UPDATE_DATE,
68     X_LAST_UPDATED_BY,
69     X_LAST_UPDATE_LOGIN,
70     X_ATTRIBUTE_CATEGORY,
71     X_ATTRIBUTE1,
72     X_ATTRIBUTE2,
73     X_ATTRIBUTE3,
74     X_ATTRIBUTE4,
75     X_ATTRIBUTE5,
76     X_ATTRIBUTE6,
77     X_ATTRIBUTE7,
78     X_ATTRIBUTE8,
79     X_ATTRIBUTE9,
80     X_ATTRIBUTE10,
81     X_ATTRIBUTE11,
82     X_ATTRIBUTE12,
83     X_ATTRIBUTE13,
84     X_ATTRIBUTE14,
85     X_ATTRIBUTE15
86   );
87 
88   insert into CS_FORUM_ATTRS_TL (
89     ATTRIBUTE_ID,
90     NAME,
91     DESCRIPTION,
92     CREATION_DATE,
93     CREATED_BY,
94     LAST_UPDATE_DATE,
95     LAST_UPDATED_BY,
96     LAST_UPDATE_LOGIN,
97     LANGUAGE,
98     SOURCE_LANG
99   ) select
100     X_ATTRIBUTE_ID,
101     X_NAME,
102     X_DESCRIPTION,
103     X_CREATION_DATE,
104     X_CREATED_BY,
105     X_LAST_UPDATE_DATE,
106     X_LAST_UPDATED_BY,
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 CS_FORUM_ATTRS_TL T
115     where T.ATTRIBUTE_ID = X_ATTRIBUTE_ID
116     and T.LANGUAGE = L.LANGUAGE_CODE);
117 
118   open c;
119 /*
120   fetch c into X_ROWID;
121   if (c%notfound) then
122     close c;
123     raise no_data_found;
124   end if;
125 */
126   close c;
127 
128 end INSERT_ROW;
129 
130 procedure LOCK_ROW (
131   X_ATTRIBUTE_ID in NUMBER,
132   X_ATTRIBUTE_TYPE in VARCHAR2,
133   X_ATTRIBUTE_NAME in VARCHAR2,
134   X_NAME in VARCHAR2,
135   X_DESCRIPTION in VARCHAR2,
136   X_ATTRIBUTE_CATEGORY in VARCHAR2 DEFAULT NULL,
137   X_ATTRIBUTE1 in VARCHAR2 DEFAULT NULL,
138   X_ATTRIBUTE2 in VARCHAR2 DEFAULT NULL,
139   X_ATTRIBUTE3 in VARCHAR2 DEFAULT NULL,
140   X_ATTRIBUTE4 in VARCHAR2 DEFAULT NULL,
141   X_ATTRIBUTE5 in VARCHAR2 DEFAULT NULL,
142   X_ATTRIBUTE6 in VARCHAR2 DEFAULT NULL,
143   X_ATTRIBUTE7 in VARCHAR2 DEFAULT NULL,
144   X_ATTRIBUTE8 in VARCHAR2 DEFAULT NULL,
145   X_ATTRIBUTE9 in VARCHAR2 DEFAULT NULL,
146   X_ATTRIBUTE10 in VARCHAR2 DEFAULT NULL,
147   X_ATTRIBUTE11 in VARCHAR2 DEFAULT NULL,
148   X_ATTRIBUTE12 in VARCHAR2 DEFAULT NULL,
149   X_ATTRIBUTE13 in VARCHAR2 DEFAULT NULL,
150   X_ATTRIBUTE14 in VARCHAR2 DEFAULT NULL,
151   X_ATTRIBUTE15 in VARCHAR2 DEFAULT NULL
152 ) is
153   cursor c is select
154       ATTRIBUTE_ID,
155       ATTRIBUTE_TYPE,
156       ATTRIBUTE_NAME,
157       ATTRIBUTE_CATEGORY,
158       ATTRIBUTE1,
159       ATTRIBUTE2,
160       ATTRIBUTE3,
161       ATTRIBUTE4,
162       ATTRIBUTE5,
163       ATTRIBUTE6,
164       ATTRIBUTE7,
165       ATTRIBUTE8,
166       ATTRIBUTE9,
167       ATTRIBUTE10,
168       ATTRIBUTE11,
169       ATTRIBUTE12,
170       ATTRIBUTE13,
171       ATTRIBUTE14,
172       ATTRIBUTE15
173     from CS_FORUM_ATTRS_B
174     where ATTRIBUTE_ID = X_ATTRIBUTE_ID
175     for update of ATTRIBUTE_ID nowait;
176   recinfo c%rowtype;
177 
178   cursor c1 is select
179       NAME,
180       DESCRIPTION,
181       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
182     from CS_FORUM_ATTRS_TL
183     where ATTRIBUTE_ID = X_ATTRIBUTE_ID
184     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
185     for update of ATTRIBUTE_ID nowait;
186 begin
187   open c;
188   fetch c into recinfo;
189   if (c%notfound) then
190     close c;
191 /*    fnd_ATTRIBUTE.set_name('FND', 'FORM_RECORD_DELETED');   */
192     app_exception.raise_exception;
193   end if;
194   close c;
195   if (
196           ((recinfo.ATTRIBUTE_ID = X_ATTRIBUTE_ID)
197            OR ((recinfo.ATTRIBUTE_ID is null) AND (X_ATTRIBUTE_ID is null)))
198       AND ((recinfo.ATTRIBUTE_NAME = X_ATTRIBUTE_NAME)
199            OR ((recinfo.ATTRIBUTE_NAME is null) AND (X_ATTRIBUTE_NAME is null)))
200       AND ((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   ) then
233     null;
234   else
235 /*    fnd_ATTRIBUTE.set_name('FND', 'FORM_RECORD_CHANGED');   */
236     app_exception.raise_exception;
237   end if;
238 
239   for tlinfo in c1 loop
240     if (tlinfo.BASELANG = 'Y') then
241       if (    ((tlinfo.NAME = X_NAME)
242                OR ((tlinfo.NAME is null) AND (X_NAME is null)))
243           AND ((X_DESCRIPTION = tlinfo.DESCRIPTION)
244                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
245       ) then
246         null;
247       else
248 /*        fnd_ATTRIBUTE.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_ATTRIBUTE_ID in NUMBER,
258   X_ATTRIBUTE_TYPE in VARCHAR2,
259   X_ATTRIBUTE_NAME in VARCHAR2,
260   X_NAME in VARCHAR2,
261   X_DESCRIPTION in VARCHAR2,
262   X_LAST_UPDATE_DATE in DATE,
263   X_LAST_UPDATED_BY in NUMBER,
264   X_LAST_UPDATE_LOGIN in NUMBER,
265   X_ATTRIBUTE_CATEGORY in VARCHAR2 DEFAULT NULL,
266   X_ATTRIBUTE1 in VARCHAR2 DEFAULT NULL,
267   X_ATTRIBUTE2 in VARCHAR2 DEFAULT NULL,
268   X_ATTRIBUTE3 in VARCHAR2 DEFAULT NULL,
269   X_ATTRIBUTE4 in VARCHAR2 DEFAULT NULL,
270   X_ATTRIBUTE5 in VARCHAR2 DEFAULT NULL,
271   X_ATTRIBUTE6 in VARCHAR2 DEFAULT NULL,
272   X_ATTRIBUTE7 in VARCHAR2 DEFAULT NULL,
273   X_ATTRIBUTE8 in VARCHAR2 DEFAULT NULL,
274   X_ATTRIBUTE9 in VARCHAR2 DEFAULT NULL,
275   X_ATTRIBUTE10 in VARCHAR2 DEFAULT NULL,
276   X_ATTRIBUTE11 in VARCHAR2 DEFAULT NULL,
277   X_ATTRIBUTE12 in VARCHAR2 DEFAULT NULL,
278   X_ATTRIBUTE13 in VARCHAR2 DEFAULT NULL,
279   X_ATTRIBUTE14 in VARCHAR2 DEFAULT NULL,
280   X_ATTRIBUTE15 in VARCHAR2 DEFAULT NULL
281 ) is
282 begin
283   update CS_FORUM_ATTRS_B set
284     ATTRIBUTE_TYPE = X_ATTRIBUTE_TYPE,
285     ATTRIBUTE_NAME = X_ATTRIBUTE_NAME,
286     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
287     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
288     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
289     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
290     ATTRIBUTE1 = X_ATTRIBUTE1,
291     ATTRIBUTE2 = X_ATTRIBUTE2,
292     ATTRIBUTE3 = X_ATTRIBUTE3,
293     ATTRIBUTE4 = X_ATTRIBUTE4,
294     ATTRIBUTE5 = X_ATTRIBUTE5,
295     ATTRIBUTE6 = X_ATTRIBUTE6,
296     ATTRIBUTE7 = X_ATTRIBUTE7,
297     ATTRIBUTE8 = X_ATTRIBUTE8,
298     ATTRIBUTE9 = X_ATTRIBUTE9,
299     ATTRIBUTE10 = X_ATTRIBUTE10,
300     ATTRIBUTE11 = X_ATTRIBUTE11,
301     ATTRIBUTE12 = X_ATTRIBUTE12,
302     ATTRIBUTE13 = X_ATTRIBUTE13,
303     ATTRIBUTE14 = X_ATTRIBUTE14,
304     ATTRIBUTE15 = X_ATTRIBUTE15
305   where ATTRIBUTE_ID = X_ATTRIBUTE_ID;
306 
307   if (sql%notfound) then
308     raise no_data_found;
309   end if;
310 
311   update CS_FORUM_ATTRS_TL set
312     NAME = X_NAME,
313     DESCRIPTION = X_DESCRIPTION,
314     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
315     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
316     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
317     SOURCE_LANG = userenv('LANG')
318   where ATTRIBUTE_ID = X_ATTRIBUTE_ID
319   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
320 
321   if (sql%notfound) then
322     raise no_data_found;
323   end if;
324 end UPDATE_ROW;
325 
326 procedure DELETE_ROW (
327   X_ATTRIBUTE_ID in NUMBER
328 ) is
329 begin
330   delete from CS_FORUM_ATTRS_TL
331   where ATTRIBUTE_ID = X_ATTRIBUTE_ID;
332 
333 /*
334   if (sql%notfound) then
335     raise no_data_found;
336   end if;
337 */
338 
339   delete from CS_FORUM_ATTRS_B
340   where ATTRIBUTE_ID = X_ATTRIBUTE_ID;
341 /*
342   if (sql%notfound) then
343     raise no_data_found;
344   end if;
345 */
346 end DELETE_ROW;
347 
348 procedure ADD_LANGUAGE
349 is
350 begin
351   delete from CS_FORUM_ATTRS_TL T
352   where not exists
353     (select NULL
354     from CS_FORUM_ATTRS_B B
355     where B.ATTRIBUTE_ID = T.ATTRIBUTE_ID
356     );
357 
358   update CS_FORUM_ATTRS_TL T set (
359       NAME,
360       DESCRIPTION
361     ) = (select
362       B.NAME,
363       B.DESCRIPTION
364     from CS_FORUM_ATTRS_TL B
365     where B.ATTRIBUTE_ID = T.ATTRIBUTE_ID
366     and B.LANGUAGE = T.SOURCE_LANG)
367   where (
368       T.ATTRIBUTE_ID,
369       T.LANGUAGE
370   ) in (select
371       SUBT.ATTRIBUTE_ID,
372       SUBT.LANGUAGE
373     from CS_FORUM_ATTRS_TL SUBB, CS_FORUM_ATTRS_TL SUBT
374     where SUBB.ATTRIBUTE_ID = SUBT.ATTRIBUTE_ID
375     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
376     and (SUBB.NAME <> SUBT.NAME
377       or (SUBB.NAME is null and SUBT.NAME is not null)
378       or (SUBB.NAME is not null and SUBT.NAME is null)
379       or (SUBB.DESCRIPTION <> SUBT.DESCRIPTION)
380       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
381       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
382   ));
383 
384   insert into CS_FORUM_ATTRS_TL (
385     ATTRIBUTE_ID,
386     NAME,
387     DESCRIPTION,
388     CREATION_DATE,
389     CREATED_BY,
390     LAST_UPDATE_DATE,
391     LAST_UPDATED_BY,
392     LAST_UPDATE_LOGIN,
393     LANGUAGE,
394     SOURCE_LANG
395   ) select
396     B.ATTRIBUTE_ID,
397     B.NAME,
398     B.DESCRIPTION,
399     B.CREATION_DATE,
400     B.CREATED_BY,
401     B.LAST_UPDATE_DATE,
402     B.LAST_UPDATED_BY,
403     B.LAST_UPDATE_LOGIN,
404     L.LANGUAGE_CODE,
405     B.SOURCE_LANG
406   from CS_FORUM_ATTRS_TL B, FND_LANGUAGES L
407   where L.INSTALLED_FLAG in ('I', 'B')
408   and B.LANGUAGE = userenv('LANG')
409   and not exists
410     (select NULL
411     from CS_FORUM_ATTRS_TL T
412     where T.ATTRIBUTE_ID = B.ATTRIBUTE_ID
413     and T.LANGUAGE = L.LANGUAGE_CODE);
414 end ADD_LANGUAGE;
415 
416 
417 PROCEDURE TRANSLATE_ROW(
418         X_ATTRIBUTE_ID in number,
419         x_name in varchar2,
420         x_description in varchar2,
421         x_owner in varchar2
422         )
423 is
424 begin
425     update cs_forum_attrs_tl set
426         description = x_description,
427         name = x_name,
428         LAST_UPDATE_DATE = sysdate,
429         LAST_UPDATED_BY = decode(x_owner, 'SEED', 1, 0),
430         LAST_UPDATE_LOGIN = 0,
431         SOURCE_LANG = userenv('LANG')
432         where userenv('LANG') in (LANGUAGE, SOURCE_LANG)
433            and ATTRIBUTE_ID = X_ATTRIBUTE_ID;
434 end TRANSLATE_ROW;
435 
436 
437 procedure LOAD_ROW (
438   X_ATTRIBUTE_ID in NUMBER,
439   X_ATTRIBUTE_TYPE in VARCHAR2,
440   X_ATTRIBUTE_NAME in VARCHAR2,
441   X_NAME in VARCHAR2,
442   X_DESCRIPTION in VARCHAR2,
443   x_owner in varchar2
444 
445 ) is
446     l_user_id number;
447 
448 begin
449     if (x_owner = 'SEED') then
450            l_user_id := 1;
451     else
452            l_user_id := 0;
453     end if;
454 
455     CS_FORUM_ATTRS_PKG.Update_Row(
456         	X_ATTRIBUTE_ID => X_ATTRIBUTE_ID,
457        		X_ATTRIBUTE_TYPE => X_ATTRIBUTE_TYPE,
458             X_ATTRIBUTE_NAME => X_ATTRIBUTE_NAME,
459             X_NAME => X_NAME,
460             X_DESCRIPTION => X_DESCRIPTION,
461     		X_Last_Update_Date => sysdate,
462     		X_Last_Updated_By => l_user_id,
463     		X_Last_Update_Login => 0);
464 
465      exception
469        		X_ATTRIBUTE_TYPE => X_ATTRIBUTE_TYPE,
466       when no_data_found then
467         	CS_FORUM_ATTRS_PKG.Insert_Row(
468         	X_ATTRIBUTE_ID => X_ATTRIBUTE_ID,
470             X_ATTRIBUTE_NAME => X_ATTRIBUTE_NAME,
471             X_NAME => X_NAME,
472             X_DESCRIPTION => X_DESCRIPTION,
473     		X_Creation_Date => sysdate,
474     		X_Created_By => l_user_id,
475     		X_Last_Update_Date => sysdate,
476     		X_Last_Updated_By => l_user_id,
477     		X_Last_Update_Login => 0);
478 
479 end LOAD_ROW;
480 
481 
482 
483 end CS_FORUM_ATTRS_PKG;