[Home] [Help]
PACKAGE BODY: APPS.AS_INTEREST_TYPES_PKG
Source
1 package body AS_INTEREST_TYPES_PKG as
2 /* $Header: asxvitpb.pls 120.1 2005/08/23 05:01:56 appldev ship $ */
3
4
5 -- This will be called by the Interest Types Forms UI
6
7 PROCEDURE INSERT_ROW (
8 X_ROWID out nocopy VARCHAR2,
9 X_INTEREST_TYPE_ID in NUMBER,
10 X_MASTER_ENABLED_FLAG in VARCHAR2,
11 X_ENABLED_FLAG in VARCHAR2,
12 X_COMPANY_CLASSIFICATION_FLAG in VARCHAR2,
13 X_CONTACT_INTEREST_FLAG in VARCHAR2,
14 X_LEAD_CLASSIFICATION_FLAG in VARCHAR2,
15 X_EXPECTED_PURCHASE_FLAG in VARCHAR2,
16 X_CURRENT_ENVIRONMENT_FLAG in VARCHAR2,
17 X_ORG_ID in NUMBER,
18 X_INTEREST_TYPE in VARCHAR2,
19 X_DESCRIPTION in VARCHAR2,
20 X_CREATION_DATE in DATE,
21 X_CREATED_BY in NUMBER,
22 X_LAST_UPDATE_DATE in DATE,
23 X_LAST_UPDATED_BY in NUMBER,
24 X_LAST_UPDATE_LOGIN in NUMBER,
25 X_PROD_CAT_SET_ID in NUMBER,
26 X_PROD_CAT_ID in NUMBER
27 ) IS
28
29 CURSOR C is
30 SELECT ROWID
31 FROM AS_INTEREST_TYPES_B
32 WHERE INTEREST_TYPE_ID = X_INTEREST_TYPE_ID ;
33
34 BEGIN
35
36 -- There are three table _B, _TL and _ALL to be inserted
37
38 -- Inserting into _B table
39
40 BEGIN
41
42 INSERT INTO AS_INTEREST_TYPES_B
43 (
44 INTEREST_TYPE_ID,
45 ENABLED_FLAG,
46 COMPANY_CLASSIFICATION_FLAG,
47 CONTACT_INTEREST_FLAG,
48 LEAD_CLASSIFICATION_FLAG,
49 EXPECTED_PURCHASE_FLAG,
50 CURRENT_ENVIRONMENT_FLAG,
51 CREATION_DATE,
52 CREATED_BY,
53 LAST_UPDATE_DATE,
54 LAST_UPDATED_BY,
55 LAST_UPDATE_LOGIN,
56 PRODUCT_CAT_SET_ID,
57 PRODUCT_CATEGORY_ID
58 )
59 VALUES
60 (
61 X_INTEREST_TYPE_ID,
62 X_MASTER_ENABLED_FLAG,
63 X_COMPANY_CLASSIFICATION_FLAG,
64 X_CONTACT_INTEREST_FLAG,
65 X_LEAD_CLASSIFICATION_FLAG,
66 X_EXPECTED_PURCHASE_FLAG,
67 X_CURRENT_ENVIRONMENT_FLAG,
68 X_CREATION_DATE,
69 X_CREATED_BY,
70 X_LAST_UPDATE_DATE,
71 X_LAST_UPDATED_BY,
72 X_LAST_UPDATE_LOGIN,
73 X_PROD_CAT_SET_ID,
74 X_PROD_CAT_ID
75 );
76
77
78 EXCEPTION
79 WHEN OTHERS THEN
80 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
81 END;
82
83 -- Inserting into _ALL table
84
85
86 /* AS_INTEREST_TYPES_ALL Obsoleted
87 BEGIN
88
89 INSERT INTO AS_INTEREST_TYPES_ALL
90 (
91 INTEREST_TYPE_ID,
92 ENABLED_FLAG,
93 ORG_ID,
94 CREATION_DATE,
95 CREATED_BY,
96 LAST_UPDATE_DATE,
97 LAST_UPDATED_BY,
98 LAST_UPDATE_LOGIN
99 )
100 VALUES
101 (
102 X_INTEREST_TYPE_ID,
103 X_ENABLED_FLAG,
104 X_ORG_ID,
105 X_CREATION_DATE,
106 X_CREATED_BY,
107 X_LAST_UPDATE_DATE,
108 X_LAST_UPDATED_BY,
109 X_LAST_UPDATE_LOGIN
110 );
111
112 EXCEPTION
113 WHEN OTHERS THEN
114 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
115 END;
116 */
117
118
119 -- Inserting the _TL table
120
121 BEGIN
122
123 INSERT INTO AS_INTEREST_TYPES_TL
124 (
125 INTEREST_TYPE_ID,
126 LAST_UPDATE_DATE,
127 LAST_UPDATED_BY,
128 CREATION_DATE,
129 CREATED_BY,
130 LAST_UPDATE_LOGIN,
131 INTEREST_TYPE,
132 DESCRIPTION,
133 LANGUAGE,
134 SOURCE_LANG
135 )
136 SELECT
137 X_INTEREST_TYPE_ID,
138 X_LAST_UPDATE_DATE,
139 X_LAST_UPDATED_BY,
140 X_CREATION_DATE,
141 X_CREATED_BY,
142 X_LAST_UPDATE_LOGIN,
143 rtrim(ltrim(X_INTEREST_TYPE)),
144 X_DESCRIPTION,
145 L.LANGUAGE_CODE,
146 userenv('LANG')
147 FROM FND_LANGUAGES L
148 WHERE L.INSTALLED_FLAG in ('I', 'B')
149 and not exists
150 (select NULL
151 from AS_INTEREST_TYPES_TL T
152 where T.INTEREST_TYPE_ID = X_INTEREST_TYPE_ID
153 and T.LANGUAGE = L.LANGUAGE_CODE);
154
155 open c;
156 fetch c into X_ROWID;
157 if (c%notfound) then
158 close c;
159 raise no_data_found;
160 end if;
161 close c;
162
163 EXCEPTION
164 WHEN OTHERS THEN
165 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
166 END;
167
168
169
170 EXCEPTION
171 WHEN OTHERS THEN
172 RAISE NO_DATA_FOUND;
173 END INSERT_ROW;
174
175 procedure LOCK_ROW (
176 X_INTEREST_TYPE_ID in NUMBER,
177 X_MASTER_ENABLED_FLAG in VARCHAR2,
178 X_ENABLED_FLAG in VARCHAR2,
179 X_COMPANY_CLASSIFICATION_FLAG in VARCHAR2,
180 X_CONTACT_INTEREST_FLAG in VARCHAR2,
181 X_LEAD_CLASSIFICATION_FLAG in VARCHAR2,
182 X_EXPECTED_PURCHASE_FLAG in VARCHAR2,
183 X_CURRENT_ENVIRONMENT_FLAG in VARCHAR2,
184 X_ORG_ID in NUMBER,
185 X_INTEREST_TYPE in VARCHAR2,
186 X_DESCRIPTION in VARCHAR2,
187 X_PROD_CAT_SET_ID in NUMBER,
188 X_PROD_CAT_ID in NUMBER
189 ) is
190 cursor cb is select
191 LAST_UPDATE_DATE,
192 LAST_UPDATED_BY,
193 CREATION_DATE,
194 CREATED_BY,
195 LAST_UPDATE_LOGIN,
196 ENABLED_FLAG,
197 COMPANY_CLASSIFICATION_FLAG,
198 CONTACT_INTEREST_FLAG,
199 LEAD_CLASSIFICATION_FLAG,
200 EXPECTED_PURCHASE_FLAG,
201 CURRENT_ENVIRONMENT_FLAG,
202 PRODUCT_CAT_SET_ID, PRODUCT_CATEGORY_ID
203 from AS_INTEREST_TYPES_B
204 where INTEREST_TYPE_ID = X_INTEREST_TYPE_ID
205 for update of INTEREST_TYPE_ID nowait;
206 binfo cb%rowtype;
207
208 /* AS_INTEREST_TYPES_ALL Obsoleted
209 cursor c is select
210 ENABLED_FLAG,
211 ORG_ID
212 from AS_INTEREST_TYPES_ALL
213 where INTEREST_TYPE_ID = X_INTEREST_TYPE_ID
214 and ORG_ID = X_ORG_ID
215 for update of INTEREST_TYPE_ID nowait;
216
217 recinfo c%rowtype;
218 */
219
220 cursor c1 is select
221 INTEREST_TYPE,
222 DESCRIPTION,
223 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
224 from AS_INTEREST_TYPES_TL
225 where INTEREST_TYPE_ID = X_INTEREST_TYPE_ID
226 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
227 for update of INTEREST_TYPE_ID nowait;
228
229 BEGIN
230 OPEN cb;
231 FETCH cb INTO binfo;
232 IF (cb%notfound) THEN
233 CLOSE cb;
234 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
235 app_exception.raise_exception;
236 END IF;
237 CLOSE cb;
238
239 /* AS_INTEREST_TYPES_ALL Obsoleted
240 OPEN c;
241 FETCH c INTO recinfo;
242 IF (c%notfound) THEN
243 CLOSE c;
244 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
245 app_exception.raise_exception;
246 END IF;
247 CLOSE c;
248
249 IF ( (recinfo.ENABLED_FLAG = X_ENABLED_FLAG)
250 AND (recinfo.ORG_ID = X_ORG_ID)
251 ) THEN
252 NULL;
253 ELSE
254 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
255 app_exception.raise_exception;
256 END IF;
257 */
258
259 IF ( (binfo.ENABLED_FLAG = X_MASTER_ENABLED_FLAG)
260 AND (binfo.COMPANY_CLASSIFICATION_FLAG = X_COMPANY_CLASSIFICATION_FLAG)
261 AND (binfo.CONTACT_INTEREST_FLAG = X_CONTACT_INTEREST_FLAG)
262 AND (binfo.LEAD_CLASSIFICATION_FLAG = X_LEAD_CLASSIFICATION_FLAG)
263 AND (binfo.EXPECTED_PURCHASE_FLAG = X_EXPECTED_PURCHASE_FLAG)
264 AND (binfo.CURRENT_ENVIRONMENT_FLAG = X_CURRENT_ENVIRONMENT_FLAG)
265 AND ((binfo.PRODUCT_CATEGORY_ID = X_PROD_CAT_ID)
266 OR ((binfo.PRODUCT_CATEGORY_ID is null) AND
267 (X_PROD_CAT_ID is null)))
268 AND ((binfo.PRODUCT_CAT_SET_ID = X_PROD_CAT_SET_ID)
269 OR ((binfo.PRODUCT_CAT_SET_ID is null) AND
270 (X_PROD_CAT_SET_ID is null)))
271 ) THEN
272 NULL;
273 ELSE
274 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
275 app_exception.raise_exception;
276 END IF;
277
278 FOR tlinfo IN c1 LOOP
279 IF (tlinfo.BASELANG = 'Y') THEN
280 IF ( (tlinfo.INTEREST_TYPE = X_INTEREST_TYPE)
281 AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
282 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
283 ) THEN
284 NULL;
285 ELSE
286 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
287 app_exception.raise_exception;
288 END IF;
289 END IF;
290 END LOOP;
291 RETURN;
292 END LOCK_ROW;
293
294 PROCEDURE UPDATE_ROW (
295 X_INTEREST_TYPE_ID in NUMBER,
296 X_MASTER_ENABLED_FLAG in VARCHAR2,
297 X_ENABLED_FLAG in VARCHAR2,
298 X_COMPANY_CLASSIFICATION_FLAG in VARCHAR2,
299 X_CONTACT_INTEREST_FLAG in VARCHAR2,
300 X_LEAD_CLASSIFICATION_FLAG in VARCHAR2,
301 X_EXPECTED_PURCHASE_FLAG in VARCHAR2,
302 X_CURRENT_ENVIRONMENT_FLAG in VARCHAR2,
303 X_ORG_ID in NUMBER,
304 X_INTEREST_TYPE in VARCHAR2,
305 X_DESCRIPTION in VARCHAR2,
306 X_LAST_UPDATE_DATE in DATE,
307 X_LAST_UPDATED_BY in NUMBER,
308 X_LAST_UPDATE_LOGIN in NUMBER,
309 X_PROD_CAT_SET_ID in NUMBER,
310 X_PROD_CAT_ID in NUMBER
311 ) is
312
313 BEGIN
314 BEGIN
315 UPDATE AS_INTEREST_TYPES_B set
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 ENABLED_FLAG = X_MASTER_ENABLED_FLAG,
320 COMPANY_CLASSIFICATION_FLAG = X_COMPANY_CLASSIFICATION_FLAG,
321 CONTACT_INTEREST_FLAG = X_CONTACT_INTEREST_FLAG,
322 LEAD_CLASSIFICATION_FLAG = X_LEAD_CLASSIFICATION_FLAG,
323 EXPECTED_PURCHASE_FLAG = X_EXPECTED_PURCHASE_FLAG,
324 CURRENT_ENVIRONMENT_FLAG = X_CURRENT_ENVIRONMENT_FLAG,
325 PRODUCT_CAT_SET_ID = X_PROD_CAT_SET_ID ,
326 PRODUCT_CATEGORY_ID = X_PROD_CAT_ID
327 WHERE INTEREST_TYPE_ID = X_INTEREST_TYPE_ID;
328
329 IF (sql%notfound) THEN
330 RAISE NO_DATA_FOUND;
331 END IF;
332
333
334 EXCEPTION
335 WHEN OTHERS THEN
336 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
337 END;
338
339 /* AS_INTEREST_TYPES_ALL Obsoleted
340 BEGIN
341 UPDATE AS_INTEREST_TYPES_ALL
342 SET
343 ENABLED_FLAG = X_ENABLED_FLAG,
344 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
345 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
346 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
347 WHERE INTEREST_TYPE_ID = X_INTEREST_TYPE_ID
348 AND ORG_ID = X_ORG_ID;
349
350 IF (sql%notfound) THEN
351 -- RAISE NO_DATA_FOUND;
352 -- If _ALL table cannot find the row, then create a record in _ALL
353 INSERT INTO AS_INTEREST_TYPES_ALL
354 ( INTEREST_TYPE_ID,
355 ENABLED_FLAG,
356 ORG_ID,
357 CREATION_DATE,
358 CREATED_BY,
359 LAST_UPDATE_DATE,
360 LAST_UPDATED_BY,
361 LAST_UPDATE_LOGIN )
362 VALUES
363 ( X_INTEREST_TYPE_ID,
364 X_ENABLED_FLAG,
365 X_ORG_ID,
366 SYSDATE,
367 X_LAST_UPDATED_BY,
368 SYSDATE,
369 X_LAST_UPDATED_BY,
370 X_LAST_UPDATE_LOGIN
371 );
372
373 END IF;
374
375 EXCEPTION
376 WHEN OTHERS THEN
377 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
378 END;
379 */
380
381 BEGIN
382 UPDATE AS_INTEREST_TYPES_TL SET
383 INTEREST_TYPE = X_INTEREST_TYPE,
384 DESCRIPTION = X_DESCRIPTION,
385 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
386 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
387 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
388 SOURCE_LANG = userenv('LANG')
389 WHERE INTEREST_TYPE_ID = X_INTEREST_TYPE_ID
390 AND USERENV('LANG') IN (LANGUAGE, SOURCE_LANG);
391
392 IF (sql%notfound) THEN
393 RAISE NO_DATA_FOUND;
394 END IF;
395
396
397 EXCEPTION
398 WHEN OTHERS THEN
399 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
400 END;
401
402 END UPDATE_ROW;
403
404 procedure DELETE_ROW (
405 X_INTEREST_TYPE_ID in NUMBER
406 ) is
407 begin
408 delete from AS_INTEREST_TYPES_TL
409 where INTEREST_TYPE_ID = X_INTEREST_TYPE_ID;
410
411 if (sql%notfound) then
412 raise no_data_found;
413 end if;
414
415 /* AS_INTEREST_TYPES_ALL Obsoleted
416 delete from AS_INTEREST_TYPES_ALL
417 where INTEREST_TYPE_ID = X_INTEREST_TYPE_ID;
418
419 if (sql%notfound) then
420 raise no_data_found;
421 end if;
422 */
423
424 delete from AS_INTEREST_TYPES_B
425 where INTEREST_TYPE_ID = X_INTEREST_TYPE_ID;
426
427 if (sql%notfound) then
428 raise no_data_found;
429 end if;
430 end DELETE_ROW;
431
432 procedure TRANSLATE_ROW (
433 X_INTEREST_TYPE_ID in NUMBER,
434 X_INTEREST_TYPE in VARCHAR2,
435 X_DESCRIPTION in VARCHAR2,
436 X_OWNER in VARCHAR2)
437 IS
438 begin
439 -- only update rows that have not been altered by user
443 source_lang = userenv('LANG'),
440 update AS_INTEREST_TYPES_TL
441 set INTEREST_TYPE=X_INTEREST_TYPE,
442 DESCRIPTION=X_DESCRIPTION,
444 last_update_date = sysdate,
445 last_updated_by = decode(X_OWNER, 'SEED', 1, 0),
446 last_update_login = 0
447 where INTEREST_TYPE_ID = X_INTEREST_TYPE_ID
448 and userenv('LANG') in (language, source_lang);
449 end TRANSLATE_ROW;
450
451 procedure ADD_LANGUAGE is
452
453 begin
454 delete from AS_INTEREST_TYPES_TL T
455 where not exists
456 (select NULL
457 from AS_INTEREST_TYPES_B B
458 where B.INTEREST_TYPE_ID = T.INTEREST_TYPE_ID
459 );
460
461 update AS_INTEREST_TYPES_TL T
462 set ( INTEREST_TYPE,
463 DESCRIPTION) = ( select
464 B.INTEREST_TYPE,
465 B.DESCRIPTION
466 from
467 AS_INTEREST_TYPES_TL B
468 where
469 B.INTEREST_TYPE_ID = T.INTEREST_TYPE_ID and
470 B.LANGUAGE = T.SOURCE_LANG )
471 where
472 ( T.INTEREST_TYPE_ID,
473 T.LANGUAGE ) in ( select
474 SUBT.INTEREST_TYPE_ID,
475 SUBT.LANGUAGE
476 from
477 AS_INTEREST_TYPES_TL SUBB,
478 AS_INTEREST_TYPES_TL SUBT
479 where
480 SUBB.INTEREST_TYPE_ID = SUBT.INTEREST_TYPE_ID and
481 SUBB.LANGUAGE = SUBT.SOURCE_LANG and
482 (SUBB.INTEREST_TYPE <> SUBT.INTEREST_TYPE or
483 SUBB.DESCRIPTION <> SUBT.DESCRIPTION or
484 (SUBB.DESCRIPTION is null and
485 SUBT.DESCRIPTION is not null) or
486 (SUBB.DESCRIPTION is not null and
487 SUBT.DESCRIPTION is null)));
488
489 insert into AS_INTEREST_TYPES_TL (
490 INTEREST_TYPE_ID,
491 LAST_UPDATE_DATE,
492 LAST_UPDATED_BY,
493 CREATION_DATE,
494 CREATED_BY,
495 LAST_UPDATE_LOGIN,
496 INTEREST_TYPE,
497 DESCRIPTION,
498 LANGUAGE,
499 SOURCE_LANG
500 )
501 select
502 B.INTEREST_TYPE_ID,
503 B.LAST_UPDATE_DATE,
504 B.LAST_UPDATED_BY,
505 B.CREATION_DATE,
506 B.CREATED_BY,
507 B.LAST_UPDATE_LOGIN,
508 B.INTEREST_TYPE,
509 B.DESCRIPTION,
510 L.LANGUAGE_CODE,
511 B.SOURCE_LANG
512 from
513 AS_INTEREST_TYPES_TL B,
514 FND_LANGUAGES L
515 where
516 L.INSTALLED_FLAG in ('I', 'B') and
517 B.LANGUAGE = userenv('LANG')
518 and not exists
519 (select NULL
520 from AS_INTEREST_TYPES_TL T
521 where T.INTEREST_TYPE_ID = B.INTEREST_TYPE_ID
522 and T.LANGUAGE = L.LANGUAGE_CODE);
523 END ADD_LANGUAGE;
524
525 PROCEDURE insert_as_int_types_all (
526 X_INTEREST_TYPE_ID in NUMBER,
527 X_ENABLED_FLAG in VARCHAR2,
528 X_ORG_ID in NUMBER,
529 X_CREATION_DATE in DATE,
530 X_CREATED_BY in NUMBER,
531 X_LAST_UPDATE_DATE in DATE,
532 X_LAST_UPDATED_BY in NUMBER,
533 X_LAST_UPDATE_LOGIN in NUMBER) IS
534
535 BEGIN
536
537 /* AS_INTEREST_TYPES_ALL Obsoleted
538 INSERT INTO AS_INTEREST_TYPES_ALL
539 (
540 INTEREST_TYPE_ID,
541 ENABLED_FLAG,
542 ORG_ID,
543 CREATION_DATE,
544 CREATED_BY,
545 LAST_UPDATE_DATE,
546 LAST_UPDATED_BY,
547 LAST_UPDATE_LOGIN
548 )
549 VALUES
550 (
551 X_INTEREST_TYPE_ID,
552 X_ENABLED_FLAG,
553 X_ORG_ID,
554 X_CREATION_DATE,
555 X_CREATED_BY,
556 X_LAST_UPDATE_DATE,
557 X_LAST_UPDATED_BY,
558 X_LAST_UPDATE_LOGIN
559 );
560 */
561 NULL;
562
563
564 EXCEPTION
565 WHEN OTHERS THEN
566 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
567 END insert_as_int_types_all ;
568
569 END AS_INTEREST_TYPES_PKG;