[Home] [Help]
PACKAGE BODY: APPS.PRP_GROUPS_PKG
Source
1 package body PRP_GROUPS_PKG as
2 /* $Header: PRPTGRPB.pls 120.1 2005/10/21 17:38:59 hekkiral noship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out nocopy VARCHAR2,
5 X_GROUP_ID in NUMBER,
6 X_OBJECT_VERSION_NUMBER in NUMBER,
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_GROUP_NAME in VARCHAR2,
24 X_GROUP_DESC in VARCHAR2,
25 X_CREATION_DATE in DATE,
26 X_CREATED_BY in NUMBER,
27 X_LAST_UPDATE_DATE in DATE,
28 X_LAST_UPDATED_BY in NUMBER,
29 X_LAST_UPDATE_LOGIN in NUMBER
30 ) is
31 cursor C is select ROWID from PRP_GROUPS_B
32 where GROUP_ID = X_GROUP_ID
33 ;
34 begin
35 insert into PRP_GROUPS_B (
36 GROUP_ID,
37 OBJECT_VERSION_NUMBER,
38 ATTRIBUTE_CATEGORY,
39 ATTRIBUTE1,
40 ATTRIBUTE2,
41 ATTRIBUTE3,
42 ATTRIBUTE4,
43 ATTRIBUTE5,
44 ATTRIBUTE6,
45 ATTRIBUTE7,
46 ATTRIBUTE8,
47 ATTRIBUTE9,
48 ATTRIBUTE10,
49 ATTRIBUTE11,
50 ATTRIBUTE12,
51 ATTRIBUTE13,
52 ATTRIBUTE14,
53 ATTRIBUTE15,
54 CREATION_DATE,
55 CREATED_BY,
56 LAST_UPDATE_DATE,
57 LAST_UPDATED_BY,
58 LAST_UPDATE_LOGIN
59 ) values (
60 X_GROUP_ID,
61 X_OBJECT_VERSION_NUMBER,
62 X_ATTRIBUTE_CATEGORY,
63 X_ATTRIBUTE1,
64 X_ATTRIBUTE2,
65 X_ATTRIBUTE3,
66 X_ATTRIBUTE4,
67 X_ATTRIBUTE5,
68 X_ATTRIBUTE6,
69 X_ATTRIBUTE7,
70 X_ATTRIBUTE8,
71 X_ATTRIBUTE9,
72 X_ATTRIBUTE10,
73 X_ATTRIBUTE11,
74 X_ATTRIBUTE12,
75 X_ATTRIBUTE13,
76 X_ATTRIBUTE14,
77 X_ATTRIBUTE15,
78 X_CREATION_DATE,
79 X_CREATED_BY,
80 X_LAST_UPDATE_DATE,
81 X_LAST_UPDATED_BY,
82 X_LAST_UPDATE_LOGIN
83 );
84
85 insert into PRP_GROUPS_TL (
86 LAST_UPDATE_DATE,
87 LAST_UPDATE_LOGIN,
88 GROUP_ID,
89 GROUP_NAME,
90 GROUP_DESC,
91 CREATED_BY,
92 CREATION_DATE,
93 LAST_UPDATED_BY,
94 LANGUAGE,
95 SOURCE_LANG
96 ) select
97 X_LAST_UPDATE_DATE,
98 X_LAST_UPDATE_LOGIN,
99 X_GROUP_ID,
100 X_GROUP_NAME,
101 X_GROUP_DESC,
102 X_CREATED_BY,
103 X_CREATION_DATE,
104 X_LAST_UPDATED_BY,
105 L.LANGUAGE_CODE,
106 userenv('LANG')
107 from FND_LANGUAGES L
108 where L.INSTALLED_FLAG in ('I', 'B')
109 and not exists
110 (select NULL
111 from PRP_GROUPS_TL T
112 where T.GROUP_ID = X_GROUP_ID
113 and T.LANGUAGE = L.LANGUAGE_CODE);
114
115 open c;
116 fetch c into X_ROWID;
117 if (c%notfound) then
118 close c;
119 raise no_data_found;
120 end if;
121 close c;
122
123 end INSERT_ROW;
124
125 procedure LOCK_ROW (
126 X_GROUP_ID in NUMBER,
127 X_OBJECT_VERSION_NUMBER in NUMBER,
128 X_ATTRIBUTE_CATEGORY in VARCHAR2,
129 X_ATTRIBUTE1 in VARCHAR2,
130 X_ATTRIBUTE2 in VARCHAR2,
131 X_ATTRIBUTE3 in VARCHAR2,
132 X_ATTRIBUTE4 in VARCHAR2,
133 X_ATTRIBUTE5 in VARCHAR2,
134 X_ATTRIBUTE6 in VARCHAR2,
135 X_ATTRIBUTE7 in VARCHAR2,
136 X_ATTRIBUTE8 in VARCHAR2,
137 X_ATTRIBUTE9 in VARCHAR2,
138 X_ATTRIBUTE10 in VARCHAR2,
139 X_ATTRIBUTE11 in VARCHAR2,
140 X_ATTRIBUTE12 in VARCHAR2,
141 X_ATTRIBUTE13 in VARCHAR2,
142 X_ATTRIBUTE14 in VARCHAR2,
143 X_ATTRIBUTE15 in VARCHAR2,
144 X_GROUP_NAME in VARCHAR2,
145 X_GROUP_DESC in VARCHAR2
146 ) is
147 cursor c is select
148 OBJECT_VERSION_NUMBER,
149 ATTRIBUTE_CATEGORY,
150 ATTRIBUTE1,
151 ATTRIBUTE2,
152 ATTRIBUTE3,
153 ATTRIBUTE4,
154 ATTRIBUTE5,
155 ATTRIBUTE6,
156 ATTRIBUTE7,
157 ATTRIBUTE8,
158 ATTRIBUTE9,
159 ATTRIBUTE10,
160 ATTRIBUTE11,
161 ATTRIBUTE12,
162 ATTRIBUTE13,
163 ATTRIBUTE14,
164 ATTRIBUTE15
165 from PRP_GROUPS_B
166 where GROUP_ID = X_GROUP_ID
167 for update of GROUP_ID nowait;
168 recinfo c%rowtype;
169
170 cursor c1 is select
171 GROUP_NAME,
172 GROUP_DESC,
173 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
174 from PRP_GROUPS_TL
175 where GROUP_ID = X_GROUP_ID
176 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
177 for update of GROUP_ID nowait;
178 begin
179 open c;
180 fetch c into recinfo;
181 if (c%notfound) then
182 close c;
183 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
184 app_exception.raise_exception;
185 end if;
186 close c;
187 if ( (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
188 AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
189 OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
190 AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
191 OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
192 AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
193 OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
194 AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
195 OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
196 AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
197 OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
198 AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
199 OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
200 AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
201 OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
202 AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
203 OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
204 AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
205 OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
206 AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
207 OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
208 AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
209 OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
210 AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
211 OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
212 AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
213 OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
214 AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
215 OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
216 AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
217 OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
218 AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
219 OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
220 ) then
221 null;
222 else
223 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
224 app_exception.raise_exception;
225 end if;
226
227 for tlinfo in c1 loop
228 if (tlinfo.BASELANG = 'Y') then
229 if ( (tlinfo.GROUP_NAME = X_GROUP_NAME)
230 AND ((tlinfo.GROUP_DESC = X_GROUP_DESC)
231 OR ((tlinfo.GROUP_DESC is null) AND (X_GROUP_DESC is null)))
232 ) then
233 null;
234 else
235 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
236 app_exception.raise_exception;
237 end if;
238 end if;
239 end loop;
240 return;
241 end LOCK_ROW;
242
243 procedure UPDATE_ROW (
244 X_GROUP_ID in NUMBER,
245 X_OBJECT_VERSION_NUMBER in NUMBER,
246 X_ATTRIBUTE_CATEGORY in VARCHAR2,
247 X_ATTRIBUTE1 in VARCHAR2,
248 X_ATTRIBUTE2 in VARCHAR2,
249 X_ATTRIBUTE3 in VARCHAR2,
250 X_ATTRIBUTE4 in VARCHAR2,
251 X_ATTRIBUTE5 in VARCHAR2,
252 X_ATTRIBUTE6 in VARCHAR2,
253 X_ATTRIBUTE7 in VARCHAR2,
254 X_ATTRIBUTE8 in VARCHAR2,
255 X_ATTRIBUTE9 in VARCHAR2,
256 X_ATTRIBUTE10 in VARCHAR2,
257 X_ATTRIBUTE11 in VARCHAR2,
258 X_ATTRIBUTE12 in VARCHAR2,
259 X_ATTRIBUTE13 in VARCHAR2,
260 X_ATTRIBUTE14 in VARCHAR2,
261 X_ATTRIBUTE15 in VARCHAR2,
262 X_GROUP_NAME in VARCHAR2,
263 X_GROUP_DESC in VARCHAR2,
264 X_LAST_UPDATE_DATE in DATE,
265 X_LAST_UPDATED_BY in NUMBER,
266 X_LAST_UPDATE_LOGIN in NUMBER
267 ) is
268 begin
269 update PRP_GROUPS_B set
270 OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
271 ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
272 ATTRIBUTE1 = X_ATTRIBUTE1,
273 ATTRIBUTE2 = X_ATTRIBUTE2,
274 ATTRIBUTE3 = X_ATTRIBUTE3,
275 ATTRIBUTE4 = X_ATTRIBUTE4,
276 ATTRIBUTE5 = X_ATTRIBUTE5,
277 ATTRIBUTE6 = X_ATTRIBUTE6,
278 ATTRIBUTE7 = X_ATTRIBUTE7,
279 ATTRIBUTE8 = X_ATTRIBUTE8,
280 ATTRIBUTE9 = X_ATTRIBUTE9,
281 ATTRIBUTE10 = X_ATTRIBUTE10,
282 ATTRIBUTE11 = X_ATTRIBUTE11,
283 ATTRIBUTE12 = X_ATTRIBUTE12,
284 ATTRIBUTE13 = X_ATTRIBUTE13,
285 ATTRIBUTE14 = X_ATTRIBUTE14,
286 ATTRIBUTE15 = X_ATTRIBUTE15,
287 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
288 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
289 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
290 where GROUP_ID = X_GROUP_ID;
291
292 if (sql%notfound) then
293 raise no_data_found;
294 end if;
295
296 update PRP_GROUPS_TL set
297 GROUP_NAME = X_GROUP_NAME,
298 GROUP_DESC = X_GROUP_DESC,
299 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
300 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
301 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
302 SOURCE_LANG = userenv('LANG')
303 where GROUP_ID = X_GROUP_ID
304 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
305
306 if (sql%notfound) then
307 raise no_data_found;
308 end if;
309 end UPDATE_ROW;
310
311 procedure DELETE_ROW (
312 X_GROUP_ID in NUMBER
313 ) is
314 begin
315 delete from PRP_GROUPS_TL
316 where GROUP_ID = X_GROUP_ID;
317
318 if (sql%notfound) then
319 raise no_data_found;
320 end if;
321
322 delete from PRP_GROUPS_B
323 where GROUP_ID = X_GROUP_ID;
324
325 if (sql%notfound) then
326 raise no_data_found;
327 end if;
328 end DELETE_ROW;
329
330 procedure ADD_LANGUAGE
331 is
332 begin
333 delete from PRP_GROUPS_TL T
334 where not exists
335 (select NULL
336 from PRP_GROUPS_B B
337 where B.GROUP_ID = T.GROUP_ID
338 );
339
340 update PRP_GROUPS_TL T set (
341 GROUP_NAME,
342 GROUP_DESC
343 ) = (select
344 B.GROUP_NAME,
345 B.GROUP_DESC
346 from PRP_GROUPS_TL B
347 where B.GROUP_ID = T.GROUP_ID
348 and B.LANGUAGE = T.SOURCE_LANG)
349 where (
350 T.GROUP_ID,
351 T.LANGUAGE
352 ) in (select
353 SUBT.GROUP_ID,
354 SUBT.LANGUAGE
355 from PRP_GROUPS_TL SUBB, PRP_GROUPS_TL SUBT
356 where SUBB.GROUP_ID = SUBT.GROUP_ID
357 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
358 and (SUBB.GROUP_NAME <> SUBT.GROUP_NAME
359 or SUBB.GROUP_DESC <> SUBT.GROUP_DESC
360 or (SUBB.GROUP_DESC is null and SUBT.GROUP_DESC is not null)
361 or (SUBB.GROUP_DESC is not null and SUBT.GROUP_DESC is null)
362 ));
363
364 insert into PRP_GROUPS_TL (
365 LAST_UPDATE_DATE,
366 LAST_UPDATE_LOGIN,
367 GROUP_ID,
368 GROUP_NAME,
369 GROUP_DESC,
370 CREATED_BY,
371 CREATION_DATE,
372 LAST_UPDATED_BY,
373 LANGUAGE,
374 SOURCE_LANG
375 ) select
376 B.LAST_UPDATE_DATE,
377 B.LAST_UPDATE_LOGIN,
378 B.GROUP_ID,
379 B.GROUP_NAME,
380 B.GROUP_DESC,
381 B.CREATED_BY,
382 B.CREATION_DATE,
383 B.LAST_UPDATED_BY,
384 L.LANGUAGE_CODE,
385 B.SOURCE_LANG
386 from PRP_GROUPS_TL B, FND_LANGUAGES L
387 where L.INSTALLED_FLAG in ('I', 'B')
388 and B.LANGUAGE = userenv('LANG')
389 and not exists
390 (select NULL
391 from PRP_GROUPS_TL T
392 where T.GROUP_ID = B.GROUP_ID
393 and T.LANGUAGE = L.LANGUAGE_CODE);
394 end ADD_LANGUAGE;
395
396 --
397 -- Should be called only from lct file
398 --+
399 procedure LOAD_ROW
400 (
401 p_owner IN VARCHAR2,
402 p_group_id IN NUMBER,
403 p_object_version_number IN NUMBER,
404 p_attribute_category IN VARCHAR2,
405 p_attribute1 IN VARCHAR2,
406 p_attribute2 IN VARCHAR2,
407 p_attribute3 IN VARCHAR2,
408 p_attribute4 IN VARCHAR2,
409 p_attribute5 IN VARCHAR2,
410 p_attribute6 IN VARCHAR2,
411 p_attribute7 IN VARCHAR2,
412 p_attribute8 IN VARCHAR2,
413 p_attribute9 IN VARCHAR2,
414 p_attribute10 IN VARCHAR2,
415 p_attribute11 IN VARCHAR2,
416 p_attribute12 IN VARCHAR2,
417 p_attribute13 IN VARCHAR2,
418 p_attribute14 IN VARCHAR2,
419 p_attribute15 IN VARCHAR2,
420 p_group_name IN VARCHAR2,
421 p_group_desc IN VARCHAR2
422 )
423 is
424 l_user_id NUMBER := 0;
425 l_login_id NUMBER := 0;
426 l_rowid VARCHAR2(256);
427 begin
428
429 l_user_id := fnd_load_util.owner_id(p_owner);
430
431 BEGIN
432
433 update_row
434 (
435 X_GROUP_ID => p_group_id,
436 X_OBJECT_VERSION_NUMBER => p_object_version_number,
437 X_ATTRIBUTE_CATEGORY => p_attribute_category,
438 X_ATTRIBUTE1 => p_attribute1,
439 X_ATTRIBUTE2 => p_attribute2,
440 X_ATTRIBUTE3 => p_attribute3,
441 X_ATTRIBUTE4 => p_attribute4,
442 X_ATTRIBUTE5 => p_attribute5,
443 X_ATTRIBUTE6 => p_attribute6,
444 X_ATTRIBUTE7 => p_attribute7,
445 X_ATTRIBUTE8 => p_attribute8,
446 X_ATTRIBUTE9 => p_attribute9,
447 X_ATTRIBUTE10 => p_attribute10,
448 X_ATTRIBUTE11 => p_attribute11,
449 X_ATTRIBUTE12 => p_attribute12,
450 X_ATTRIBUTE13 => p_attribute13,
451 X_ATTRIBUTE14 => p_attribute14,
452 X_ATTRIBUTE15 => p_attribute15,
453 X_GROUP_NAME => p_group_name,
454 X_GROUP_DESC => p_group_desc,
455 X_LAST_UPDATE_DATE => sysdate,
456 X_LAST_UPDATED_BY => l_user_id,
457 X_LAST_UPDATE_LOGIN => l_login_id
458 );
459
460 EXCEPTION
461
462 WHEN NO_DATA_FOUND THEN
463
464 insert_row
465 (
466 X_ROWID => l_rowid,
467 X_GROUP_ID => p_group_id,
468 X_OBJECT_VERSION_NUMBER => p_object_version_number,
469 X_ATTRIBUTE_CATEGORY => p_attribute_category,
470 X_ATTRIBUTE1 => p_attribute1,
471 X_ATTRIBUTE2 => p_attribute2,
472 X_ATTRIBUTE3 => p_attribute3,
473 X_ATTRIBUTE4 => p_attribute4,
474 X_ATTRIBUTE5 => p_attribute5,
475 X_ATTRIBUTE6 => p_attribute6,
476 X_ATTRIBUTE7 => p_attribute7,
477 X_ATTRIBUTE8 => p_attribute8,
478 X_ATTRIBUTE9 => p_attribute9,
479 X_ATTRIBUTE10 => p_attribute10,
480 X_ATTRIBUTE11 => p_attribute11,
481 X_ATTRIBUTE12 => p_attribute12,
482 X_ATTRIBUTE13 => p_attribute13,
483 X_ATTRIBUTE14 => p_attribute14,
484 X_ATTRIBUTE15 => p_attribute15,
485 X_GROUP_NAME => p_group_name,
486 X_GROUP_DESC => p_group_desc,
487 X_CREATION_DATE => sysdate,
488 X_CREATED_BY => l_user_id,
489 X_LAST_UPDATE_DATE => sysdate,
490 X_LAST_UPDATED_BY => l_user_id,
491 X_LAST_UPDATE_LOGIN => l_login_id
492 );
493
494 END;
495
496 end LOAD_ROW;
497
498 procedure TRANSLATE_ROW
499 (
500 p_owner IN VARCHAR2,
501 p_group_id IN NUMBER,
502 p_group_name IN VARCHAR2,
503 p_group_desc IN VARCHAR2
504 )
505 IS
506 l_login_id NUMBER := 0;
507 BEGIN
508
509 UPDATE prp_groups_tl
510 SET group_name = p_group_name,
511 group_desc = p_group_desc,
512 last_update_date = sysdate,
513 last_updated_by = decode(p_owner, 'SEED', 1, 0),
514 last_update_login = l_login_id,
515 source_lang = userenv('LANG')
516 WHERE userenv('LANG') in (LANGUAGE, SOURCE_LANG) AND
517 group_id = p_group_id;
518
519 end TRANSLATE_ROW;
520
521 end PRP_GROUPS_PKG;