[Home] [Help]
PACKAGE BODY: APPS.CS_TP_CHOICES_PKG
Source
1 package body CS_TP_CHOICES_PKG as
2 /* $Header: cstpchb.pls 115.7 2002/12/04 01:26:00 wzli noship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out NOCOPY VARCHAR2,
5 X_CHOICE_ID in NUMBER,
6 X_LOOKUP_ID in NUMBER,
7 X_SEQUENCE_NUMBER in NUMBER,
8 X_START_DATE_ACTIVE in DATE,
9 X_END_DATE_ACTIVE in DATE,
10 X_ATTRIBUTE_CATEGORY in VARCHAR2 DEFAULT NULL,
11 X_ATTRIBUTE1 in VARCHAR2 DEFAULT NULL,
12 X_ATTRIBUTE2 in VARCHAR2 DEFAULT NULL,
13 X_ATTRIBUTE3 in VARCHAR2 DEFAULT NULL,
14 X_ATTRIBUTE4 in VARCHAR2 DEFAULT NULL,
15 X_ATTRIBUTE5 in VARCHAR2 DEFAULT NULL,
16 X_ATTRIBUTE6 in VARCHAR2 DEFAULT NULL,
17 X_ATTRIBUTE7 in VARCHAR2 DEFAULT NULL,
18 X_ATTRIBUTE8 in VARCHAR2 DEFAULT NULL,
19 X_ATTRIBUTE9 in VARCHAR2 DEFAULT NULL,
20 X_ATTRIBUTE10 in VARCHAR2 DEFAULT NULL,
21 X_ATTRIBUTE11 in VARCHAR2 DEFAULT NULL,
22 X_ATTRIBUTE12 in VARCHAR2 DEFAULT NULL,
23 X_ATTRIBUTE13 in VARCHAR2 DEFAULT NULL,
24 X_ATTRIBUTE14 in VARCHAR2 DEFAULT NULL,
25 X_ATTRIBUTE15 in VARCHAR2 DEFAULT NULL,
26 X_SCORE in NUMBER,
27 X_VALUE in VARCHAR2,
28 X_CREATION_DATE in DATE,
29 X_CREATED_BY in NUMBER,
30 X_LAST_UPDATE_DATE in DATE,
31 X_LAST_UPDATED_BY in NUMBER,
32 X_LAST_UPDATE_LOGIN in NUMBER
33 ,X_DEFAULT_FLAG in VARCHAR2 DEFAULT NULL
34 ) is
35 cursor C is select ROWID from CS_TP_CHOICES_B
36 where CHOICE_ID = X_CHOICE_ID
37 ;
38 begin
39 insert into CS_TP_CHOICES_B (
40 CHOICE_ID,
41 LOOKUP_ID,
42 SEQUENCE_NUMBER,
43 START_DATE_ACTIVE,
44 END_DATE_ACTIVE,
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 SCORE,
62 CREATION_DATE,
63 CREATED_BY,
64 LAST_UPDATE_DATE,
65 LAST_UPDATED_BY,
66 LAST_UPDATE_LOGIN
67 ,DEFAULT_CHOICE_FLAG
68 ) values (
69 X_CHOICE_ID,
70 X_LOOKUP_ID,
71 X_SEQUENCE_NUMBER,
72 X_START_DATE_ACTIVE,
73 X_END_DATE_ACTIVE,
74 X_ATTRIBUTE_CATEGORY,
75 X_ATTRIBUTE1,
76 X_ATTRIBUTE2,
77 X_ATTRIBUTE3,
78 X_ATTRIBUTE4,
79 X_ATTRIBUTE5,
80 X_ATTRIBUTE6,
81 X_ATTRIBUTE7,
82 X_ATTRIBUTE8,
83 X_ATTRIBUTE9,
84 X_ATTRIBUTE10,
85 X_ATTRIBUTE11,
86 X_ATTRIBUTE12,
87 X_ATTRIBUTE13,
88 X_ATTRIBUTE14,
89 X_ATTRIBUTE15,
90 X_SCORE,
91 X_CREATION_DATE,
92 X_CREATED_BY,
93 X_LAST_UPDATE_DATE,
94 X_LAST_UPDATED_BY,
95 X_LAST_UPDATE_LOGIN
96 ,X_DEFAULT_FLAG
97 );
98
99 insert into CS_TP_CHOICES_TL (
100 CHOICE_ID,
101 VALUE,
102 CREATION_DATE,
103 CREATED_BY,
104 LAST_UPDATE_DATE,
105 LAST_UPDATED_BY,
106 LAST_UPDATE_LOGIN,
107 LANGUAGE,
108 SOURCE_LANG
109 ) select
110 X_CHOICE_ID,
111 X_VALUE,
112 X_CREATION_DATE,
113 X_CREATED_BY,
114 X_LAST_UPDATE_DATE,
115 X_LAST_UPDATED_BY,
116 X_LAST_UPDATE_LOGIN,
117 L.LANGUAGE_CODE,
118 userenv('LANG')
119 from FND_LANGUAGES L
120 where L.INSTALLED_FLAG in ('I', 'B')
121 and not exists
122 (select NULL
123 from CS_TP_CHOICES_TL T
124 where T.CHOICE_ID = X_CHOICE_ID
125 and T.LANGUAGE = L.LANGUAGE_CODE);
126
127 open c;
128 fetch c into X_ROWID;
129 if (c%notfound) then
130 close c;
131 raise no_data_found;
132 end if;
133 close c;
134
135 end INSERT_ROW;
136
137 procedure LOCK_ROW (
138 X_CHOICE_ID in NUMBER,
139 X_LOOKUP_ID in NUMBER,
140 X_SEQUENCE_NUMBER in NUMBER,
141 X_START_DATE_ACTIVE in DATE,
142 X_END_DATE_ACTIVE in DATE,
143 X_ATTRIBUTE_CATEGORY in VARCHAR2 DEFAULT NULL,
144 X_ATTRIBUTE1 in VARCHAR2 DEFAULT NULL,
145 X_ATTRIBUTE2 in VARCHAR2 DEFAULT NULL,
146 X_ATTRIBUTE3 in VARCHAR2 DEFAULT NULL,
147 X_ATTRIBUTE4 in VARCHAR2 DEFAULT NULL,
148 X_ATTRIBUTE5 in VARCHAR2 DEFAULT NULL,
149 X_ATTRIBUTE6 in VARCHAR2 DEFAULT NULL,
150 X_ATTRIBUTE7 in VARCHAR2 DEFAULT NULL,
151 X_ATTRIBUTE8 in VARCHAR2 DEFAULT NULL,
152 X_ATTRIBUTE9 in VARCHAR2 DEFAULT NULL,
153 X_ATTRIBUTE10 in VARCHAR2 DEFAULT NULL,
154 X_ATTRIBUTE11 in VARCHAR2 DEFAULT NULL,
155 X_ATTRIBUTE12 in VARCHAR2 DEFAULT NULL,
156 X_ATTRIBUTE13 in VARCHAR2 DEFAULT NULL,
157 X_ATTRIBUTE14 in VARCHAR2 DEFAULT NULL,
158 X_ATTRIBUTE15 in VARCHAR2 DEFAULT NULL,
159 X_SCORE in NUMBER,
160 X_VALUE in VARCHAR2
161
162 ,X_DEFAULT_FLAG in VARCHAR2 DEFAULT NULL
163 ) is
164 cursor c is select
165 LOOKUP_ID,
166 SEQUENCE_NUMBER,
167 START_DATE_ACTIVE,
168 END_DATE_ACTIVE,
169 ATTRIBUTE_CATEGORY,
170 ATTRIBUTE1,
171 ATTRIBUTE2,
172 ATTRIBUTE3,
173 ATTRIBUTE4,
174 ATTRIBUTE5,
175 ATTRIBUTE6,
176 ATTRIBUTE7,
177 ATTRIBUTE8,
178 ATTRIBUTE9,
179 ATTRIBUTE10,
180 ATTRIBUTE11,
181 ATTRIBUTE12,
182 ATTRIBUTE13,
183 ATTRIBUTE14,
184 ATTRIBUTE15,
185 SCORE
186
187 ,default_choice_flag
188 from CS_TP_CHOICES_B
189 where CHOICE_ID = X_CHOICE_ID
190 for update of CHOICE_ID nowait;
191 recinfo c%rowtype;
192
193 cursor c1 is select
194 VALUE,
195 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
196 from CS_TP_CHOICES_TL
197 where CHOICE_ID = X_CHOICE_ID
198 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
199 for update of CHOICE_ID nowait;
200 begin
201 open c;
202 fetch c into recinfo;
203 if (c%notfound) then
204 close c;
205 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
206 app_exception.raise_exception;
207 end if;
208 close c;
209 if ( (recinfo.LOOKUP_ID = X_LOOKUP_ID)
210 AND ((recinfo.SEQUENCE_NUMBER = X_SEQUENCE_NUMBER)
211 OR ((recinfo.SEQUENCE_NUMBER is null) AND (X_SEQUENCE_NUMBER is null)))
212 AND ((recinfo.START_DATE_ACTIVE = X_START_DATE_ACTIVE)
213 OR ((recinfo.START_DATE_ACTIVE is null) AND (X_START_DATE_ACTIVE is null)))
214 AND ((recinfo.END_DATE_ACTIVE = X_END_DATE_ACTIVE)
215 OR ((recinfo.END_DATE_ACTIVE is null) AND (X_END_DATE_ACTIVE is null)))
216 AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
217 OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
218 AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
219 OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
220 AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
221 OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
222 AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
223 OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
224 AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
225 OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
226 AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
227 OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
228 AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
229 OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
230 AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
231 OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
232 AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
233 OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
234 AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
235 OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
236 AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
237 OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
238 AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
239 OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
240 AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
241 OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
242 AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
243 OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
244 AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
245 OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
246 AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
247 OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
248 AND ((recinfo.SCORE = X_SCORE)
249 OR ((recinfo.SCORE is null) AND (X_SCORE is null)))
250
251 AND ((recinfo.DEFAULT_CHOICE_FLAG = X_DEFAULT_FLAG)
252 OR ((recinfo.DEFAULT_CHOICE_FLAG is null) AND (X_DEFAULT_FLAG is null)))
253 ) then
254 null;
255 else
256 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
257 app_exception.raise_exception;
258 end if;
259
260 for tlinfo in c1 loop
261 if (tlinfo.BASELANG = 'Y') then
262 if ( (tlinfo.VALUE = X_VALUE)
263 ) then
264 null;
265 else
266 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
267 app_exception.raise_exception;
268 end if;
269 end if;
270 end loop;
271 return;
272 end LOCK_ROW;
273
274 procedure UPDATE_ROW (
275 X_CHOICE_ID in NUMBER,
276 X_LOOKUP_ID in NUMBER,
277 X_SEQUENCE_NUMBER in NUMBER,
278 X_START_DATE_ACTIVE in DATE,
279 X_END_DATE_ACTIVE in DATE,
280 X_ATTRIBUTE_CATEGORY in VARCHAR2 DEFAULT NULL,
281 X_ATTRIBUTE1 in VARCHAR2 DEFAULT NULL,
282 X_ATTRIBUTE2 in VARCHAR2 DEFAULT NULL,
283 X_ATTRIBUTE3 in VARCHAR2 DEFAULT NULL,
284 X_ATTRIBUTE4 in VARCHAR2 DEFAULT NULL,
285 X_ATTRIBUTE5 in VARCHAR2 DEFAULT NULL,
286 X_ATTRIBUTE6 in VARCHAR2 DEFAULT NULL,
287 X_ATTRIBUTE7 in VARCHAR2 DEFAULT NULL,
288 X_ATTRIBUTE8 in VARCHAR2 DEFAULT NULL,
289 X_ATTRIBUTE9 in VARCHAR2 DEFAULT NULL,
290 X_ATTRIBUTE10 in VARCHAR2 DEFAULT NULL,
291 X_ATTRIBUTE11 in VARCHAR2 DEFAULT NULL,
292 X_ATTRIBUTE12 in VARCHAR2 DEFAULT NULL,
293 X_ATTRIBUTE13 in VARCHAR2 DEFAULT NULL,
294 X_ATTRIBUTE14 in VARCHAR2 DEFAULT NULL,
295 X_ATTRIBUTE15 in VARCHAR2 DEFAULT NULL,
296 X_SCORE in NUMBER,
297 X_VALUE in VARCHAR2,
298 X_LAST_UPDATE_DATE in DATE,
299 X_LAST_UPDATED_BY in NUMBER,
300 X_LAST_UPDATE_LOGIN in NUMBER
301
302 ,X_DEFAULT_FLAG in VARCHAR2 DEFAULT NULL
303 ) is
304 begin
305 update CS_TP_CHOICES_B set
306 LOOKUP_ID = X_LOOKUP_ID,
307 SEQUENCE_NUMBER = X_SEQUENCE_NUMBER,
308 START_DATE_ACTIVE = X_START_DATE_ACTIVE,
309 END_DATE_ACTIVE = X_END_DATE_ACTIVE,
310 ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
311 ATTRIBUTE1 = X_ATTRIBUTE1,
312 ATTRIBUTE2 = X_ATTRIBUTE2,
313 ATTRIBUTE3 = X_ATTRIBUTE3,
314 ATTRIBUTE4 = X_ATTRIBUTE4,
315 ATTRIBUTE5 = X_ATTRIBUTE5,
316 ATTRIBUTE6 = X_ATTRIBUTE6,
317 ATTRIBUTE7 = X_ATTRIBUTE7,
318 ATTRIBUTE8 = X_ATTRIBUTE8,
319 ATTRIBUTE9 = X_ATTRIBUTE9,
320 ATTRIBUTE10 = X_ATTRIBUTE10,
321 ATTRIBUTE11 = X_ATTRIBUTE11,
322 ATTRIBUTE12 = X_ATTRIBUTE12,
323 ATTRIBUTE13 = X_ATTRIBUTE13,
324 ATTRIBUTE14 = X_ATTRIBUTE14,
325 ATTRIBUTE15 = X_ATTRIBUTE15,
326 SCORE = X_SCORE,
327 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
328 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
329 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
330
331 ,DEFAULT_CHOICE_FLAG = X_DEFAULT_FLAG
332 where CHOICE_ID = X_CHOICE_ID;
333
334 if (sql%notfound) then
335 raise no_data_found;
336 end if;
337
338 update CS_TP_CHOICES_TL set
339 VALUE = X_VALUE,
340 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
341 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
342 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
343 SOURCE_LANG = userenv('LANG')
344 where CHOICE_ID = X_CHOICE_ID
345 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
346
347 if (sql%notfound) then
348 raise no_data_found;
349 end if;
350 end UPDATE_ROW;
351
352 procedure DELETE_ROW (
353 X_CHOICE_ID in NUMBER
354 ) is
355 begin
356 delete from CS_TP_CHOICES_TL
357 where CHOICE_ID = X_CHOICE_ID;
358
359 if (sql%notfound) then
360 raise no_data_found;
361 end if;
362
363 delete from CS_TP_CHOICES_B
364 where CHOICE_ID = X_CHOICE_ID;
365
366 if (sql%notfound) then
367 raise no_data_found;
368 end if;
369 end DELETE_ROW;
370
371 procedure ADD_LANGUAGE
372 is
373 begin
374 delete from CS_TP_CHOICES_TL T
375 where not exists
376 (select NULL
377 from CS_TP_CHOICES_B B
378 where B.CHOICE_ID = T.CHOICE_ID
379 );
380
381 update CS_TP_CHOICES_TL T set (
382 VALUE
383 ) = (select
384 B.VALUE
385 from CS_TP_CHOICES_TL B
386 where B.CHOICE_ID = T.CHOICE_ID
387 and B.LANGUAGE = T.SOURCE_LANG)
388 where (
389 T.CHOICE_ID,
390 T.LANGUAGE
391 ) in (select
392 SUBT.CHOICE_ID,
393 SUBT.LANGUAGE
394 from CS_TP_CHOICES_TL SUBB, CS_TP_CHOICES_TL SUBT
395 where SUBB.CHOICE_ID = SUBT.CHOICE_ID
396 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
397 and (SUBB.VALUE <> SUBT.VALUE
398 ));
399
400 insert into CS_TP_CHOICES_TL (
401 CHOICE_ID,
402 VALUE,
403 CREATION_DATE,
407 LAST_UPDATE_LOGIN,
404 CREATED_BY,
405 LAST_UPDATE_DATE,
406 LAST_UPDATED_BY,
408 LANGUAGE,
409 SOURCE_LANG
410 ) select
411 B.CHOICE_ID,
412 B.VALUE,
413 B.CREATION_DATE,
414 B.CREATED_BY,
415 B.LAST_UPDATE_DATE,
416 B.LAST_UPDATED_BY,
417 B.LAST_UPDATE_LOGIN,
418 L.LANGUAGE_CODE,
419 B.SOURCE_LANG
420 from CS_TP_CHOICES_TL B, FND_LANGUAGES L
421 where L.INSTALLED_FLAG in ('I', 'B')
422 and B.LANGUAGE = userenv('LANG')
423 and not exists
424 (select NULL
425 from CS_TP_CHOICES_TL T
426 where T.CHOICE_ID = B.CHOICE_ID
427 and T.LANGUAGE = L.LANGUAGE_CODE);
428 end ADD_LANGUAGE;
429
430
431 PROCEDURE LOAD_ROW(
432 x_choice_id in number,
433 x_owner in varchar2,
434 x_value in varchar2,
435 x_lookup_id in number,
436 x_sequence_number in number,
437 x_start_date_active in date,
438 x_end_date_active in date,
439 x_score in number ) is
440
441 l_user_id number;
442 l_rowid varchar(30);
443 l_value varchar(240);
444 begin
445
446 if (x_owner = 'SEED') then
447 l_user_id := 1;
448 else
449 l_user_id := 0;
450 end if;
451
452 l_value := x_value;
453
454 CS_TP_CHOICES_PKG.Update_Row(
455 X_CHOICE_ID => x_choice_id,
456 X_LOOKUP_ID => x_lookup_id,
457 X_SEQUENCE_NUMBER => x_sequence_number,
458 X_START_DATE_ACTIVE => x_start_date_active,
459 X_END_DATE_ACTIVE => x_end_date_active,
460 x_score => x_score,
461 x_value => l_value,
462 X_Last_Update_Date => sysdate,
463 X_Last_Updated_By => l_user_id,
464 X_Last_Update_Login => 0);
465
466 exception
467 when no_data_found then
468 CS_TP_CHOICES_PKG.Insert_Row(
469 X_ROWID => l_rowid,
470 X_CHOICE_ID => x_choice_id,
471 X_LOOKUP_ID => x_lookup_id,
472 X_SEQUENCE_NUMBER => x_sequence_number,
473 X_START_DATE_ACTIVE => x_start_date_active,
474 X_END_DATE_ACTIVE => x_end_date_active,
475 X_SCORE => x_score,
476 X_VALUE => l_value,
477 X_CREATION_DATE => sysdate,
478 X_CREATED_BY => 0,
479 X_Last_Update_Date => sysdate,
480 X_Last_Updated_By => l_user_id,
481 X_Last_Update_Login => 0);
482
483
484 end;
485
486
487 PROCEDURE TRANSLATE_ROW(
488 x_choice_id in number,
489 x_owner in varchar2,
490 x_value in varchar2) is
491
492 begin
493
494 update CS_TP_CHOICES_TL set
495 last_update_date = sysdate,
496 last_updated_by = decode(X_OWNER, 'SEED', 1, 0),
497 last_update_login = 0,
498 source_lang = userenv('LANG')
499 where CHOICE_ID = to_number(X_CHOICE_ID)
500 and userenv('LANG') in (language, source_lang);
501
502 exception
503 when no_data_found then null;
504
505 end;
506
507 end CS_TP_CHOICES_PKG;