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