4 -- Package Name
1 PACKAGE BODY CN_INT_TYPE_PKG AS
2 /* $Header: cntintvb.pls 120.1 2005/09/20 14:15:46 ymao noship $ */
3 --
5 -- CN_INT_TYPE_PKG
6 -- Purpose
7 -- Table handler for CN_INTERVAL_TYPES
8 -- Form
9 -- CNINTTP
10 -- Block
11 -- INTERVAL_TYPES
12 --
13 -- History
14 -- 16-Aug-99 Yonghong Mao Created
15
16 --/*--------------------------------------------------------------------------*
20 -- Get the sequence number to create a new interval type
17 -- Prodedure Name
18 -- get_interval_type_id
19 -- Purpose
21 -- *--------------------------------------------------------------------------*/
22 PROCEDURE get_interval_type_id( x_interval_type_id IN OUT NOCOPY NUMBER) IS
23 BEGIN
24 SELECT cn_interval_types_s.NEXTVAL
25 INTO x_interval_type_id
26 FROM dual;
27 END get_interval_type_id;
28
29 procedure INSERT_ROW (
30 X_ROWID in out NOCOPY VARCHAR2,
31 X_INTERVAL_TYPE_ID in NUMBER,
32 X_DESCRIPTION in VARCHAR2,
33 X_ATTRIBUTE_CATEGORY in VARCHAR2,
34 X_ATTRIBUTE1 in VARCHAR2,
35 X_ATTRIBUTE2 in VARCHAR2,
36 X_ATTRIBUTE3 in VARCHAR2,
37 X_ATTRIBUTE4 in VARCHAR2,
38 X_ATTRIBUTE5 in VARCHAR2,
39 X_ATTRIBUTE6 in VARCHAR2,
40 X_ATTRIBUTE7 in VARCHAR2,
41 X_ATTRIBUTE8 in VARCHAR2,
42 X_ATTRIBUTE9 in VARCHAR2,
43 X_ATTRIBUTE10 in VARCHAR2,
44 X_ATTRIBUTE11 in VARCHAR2,
45 X_ATTRIBUTE12 in VARCHAR2,
46 X_ATTRIBUTE13 in VARCHAR2,
47 X_ATTRIBUTE14 in VARCHAR2,
48 X_ATTRIBUTE15 in VARCHAR2,
49 X_NAME in VARCHAR2,
50 X_CREATION_DATE in DATE,
51 X_CREATED_BY in NUMBER,
52 X_LAST_UPDATE_DATE in DATE,
53 X_LAST_UPDATED_BY in NUMBER,
54 X_LAST_UPDATE_LOGIN in NUMBER,
55 X_ORG_ID in NUMBER
56 ) is
57 cursor C is select ROWID from CN_INTERVAL_TYPES_ALL_B
58 where INTERVAL_TYPE_ID = X_INTERVAL_TYPE_ID
59 and ORG_ID = X_ORG_ID
60 ;
61 begin
62 insert into CN_INTERVAL_TYPES_ALL_B (
63 INTERVAL_TYPE_ID,
64 DESCRIPTION,
65 ATTRIBUTE_CATEGORY,
66 ATTRIBUTE1,
67 ATTRIBUTE2,
68 ATTRIBUTE3,
69 ATTRIBUTE4,
70 ATTRIBUTE5,
71 ATTRIBUTE6,
72 ATTRIBUTE7,
73 ATTRIBUTE8,
74 ATTRIBUTE9,
75 ATTRIBUTE10,
76 ATTRIBUTE11,
77 ATTRIBUTE12,
78 ATTRIBUTE13,
79 ATTRIBUTE14,
80 ATTRIBUTE15,
81 CREATION_DATE,
82 CREATED_BY,
83 LAST_UPDATE_DATE,
84 LAST_UPDATED_BY,
85 LAST_UPDATE_LOGIN,
86 ORG_ID
87 ) values (
88 X_INTERVAL_TYPE_ID,
89 X_DESCRIPTION,
90 X_ATTRIBUTE_CATEGORY,
91 X_ATTRIBUTE1,
92 X_ATTRIBUTE2,
93 X_ATTRIBUTE3,
94 X_ATTRIBUTE4,
95 X_ATTRIBUTE5,
96 X_ATTRIBUTE6,
97 X_ATTRIBUTE7,
98 X_ATTRIBUTE8,
99 X_ATTRIBUTE9,
100 X_ATTRIBUTE10,
101 X_ATTRIBUTE11,
102 X_ATTRIBUTE12,
103 X_ATTRIBUTE13,
104 X_ATTRIBUTE14,
105 X_ATTRIBUTE15,
106 X_CREATION_DATE,
107 X_CREATED_BY,
108 X_LAST_UPDATE_DATE,
109 X_LAST_UPDATED_BY,
110 X_LAST_UPDATE_LOGIN,
111 X_ORG_ID
112 );
113
114 insert into CN_INTERVAL_TYPES_ALL_TL (
115 INTERVAL_TYPE_ID,
116 NAME,
117 CREATED_BY,
118 CREATION_DATE,
119 LAST_UPDATED_BY,
120 LAST_UPDATE_DATE,
121 LAST_UPDATE_LOGIN,
122 LANGUAGE,
123 SOURCE_LANG,
124 ORG_ID
125 ) select
126 X_INTERVAL_TYPE_ID,
127 X_NAME,
128 X_CREATED_BY,
129 X_CREATION_DATE,
130 X_LAST_UPDATED_BY,
131 X_LAST_UPDATE_DATE,
132 X_LAST_UPDATE_LOGIN,
133 L.LANGUAGE_CODE,
134 userenv('LANG'),
135 X_ORG_ID
136 from FND_LANGUAGES L
137 where L.INSTALLED_FLAG in ('I', 'B')
138 and not exists
139 (select NULL
140 from CN_INTERVAL_TYPES_ALL_TL T
141 where T.INTERVAL_TYPE_ID = X_INTERVAL_TYPE_ID
142 and T.LANGUAGE = L.LANGUAGE_CODE
143 and T.ORG_ID = X_ORG_ID);
144
145 open c;
146 fetch c into X_ROWID;
147 if (c%notfound) then
148 close c;
149 raise no_data_found;
150 end if;
151 close c;
152
153 end INSERT_ROW;
154
155 procedure LOCK_ROW (
156 X_INTERVAL_TYPE_ID in NUMBER,
157 X_DESCRIPTION in VARCHAR2,
158 X_ATTRIBUTE_CATEGORY in VARCHAR2,
159 X_ATTRIBUTE1 in VARCHAR2,
160 X_ATTRIBUTE2 in VARCHAR2,
161 X_ATTRIBUTE3 in VARCHAR2,
162 X_ATTRIBUTE4 in VARCHAR2,
163 X_ATTRIBUTE5 in VARCHAR2,
164 X_ATTRIBUTE6 in VARCHAR2,
165 X_ATTRIBUTE7 in VARCHAR2,
166 X_ATTRIBUTE8 in VARCHAR2,
167 X_ATTRIBUTE9 in VARCHAR2,
168 X_ATTRIBUTE10 in VARCHAR2,
169 X_ATTRIBUTE11 in VARCHAR2,
170 X_ATTRIBUTE12 in VARCHAR2,
171 X_ATTRIBUTE13 in VARCHAR2,
172 X_ATTRIBUTE14 in VARCHAR2,
173 X_ATTRIBUTE15 in VARCHAR2,
174 X_NAME in VARCHAR2,
175 X_ORG_ID in NUMBER
176 ) is
177 cursor c is select
178 DESCRIPTION,
179 ATTRIBUTE_CATEGORY,
180 ATTRIBUTE1,
181 ATTRIBUTE2,
182 ATTRIBUTE3,
183 ATTRIBUTE4,
184 ATTRIBUTE5,
185 ATTRIBUTE6,
186 ATTRIBUTE7,
187 ATTRIBUTE8,
188 ATTRIBUTE9,
189 ATTRIBUTE10,
190 ATTRIBUTE11,
191 ATTRIBUTE12,
192 ATTRIBUTE13,
193 ATTRIBUTE14,
194 ATTRIBUTE15
195 from CN_INTERVAL_TYPES_ALL_B
196 where INTERVAL_TYPE_ID = X_INTERVAL_TYPE_ID
197 and ORG_ID = nvl(X_ORG_ID, ORG_ID)
198 for update of INTERVAL_TYPE_ID nowait;
199 recinfo c%rowtype;
200
201 cursor c1 is select
202 NAME,
203 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
204 from CN_INTERVAL_TYPES_ALL_TL
208 begin
205 where INTERVAL_TYPE_ID = X_INTERVAL_TYPE_ID
206 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
207 for update of INTERVAL_TYPE_ID nowait;
209 open c;
210 fetch c into recinfo;
211 if (c%notfound) then
212 close c;
213 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
214 app_exception.raise_exception;
215 end if;
216 close c;
217 if ( ((recinfo.DESCRIPTION = X_DESCRIPTION)
218 OR ((recinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
219 AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
220 OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
221 AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
222 OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
223 AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
224 OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
225 AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
226 OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
227 AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
228 OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
229 AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
230 OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
231 AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
232 OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
233 AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
234 OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
235 AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
236 OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
237 AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
238 OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
239 AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
240 OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
241 AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
242 OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
243 AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
244 OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
245 AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
246 OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
247 AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
248 OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
249 AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
250 OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
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 for tlinfo in c1 loop
259 if (tlinfo.BASELANG = 'Y') then
260 if ( (tlinfo.NAME = X_NAME)
261 ) then
262 null;
263 else
264 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
265 app_exception.raise_exception;
266 end if;
267 end if;
268 end loop;
269 return;
270 end LOCK_ROW;
271
272 procedure UPDATE_ROW (
273 X_INTERVAL_TYPE_ID in NUMBER,
274 X_DESCRIPTION in VARCHAR2,
275 X_ATTRIBUTE_CATEGORY in VARCHAR2,
276 X_ATTRIBUTE1 in VARCHAR2,
277 X_ATTRIBUTE2 in VARCHAR2,
278 X_ATTRIBUTE3 in VARCHAR2,
279 X_ATTRIBUTE4 in VARCHAR2,
280 X_ATTRIBUTE5 in VARCHAR2,
281 X_ATTRIBUTE6 in VARCHAR2,
282 X_ATTRIBUTE7 in VARCHAR2,
283 X_ATTRIBUTE8 in VARCHAR2,
284 X_ATTRIBUTE9 in VARCHAR2,
285 X_ATTRIBUTE10 in VARCHAR2,
286 X_ATTRIBUTE11 in VARCHAR2,
287 X_ATTRIBUTE12 in VARCHAR2,
288 X_ATTRIBUTE13 in VARCHAR2,
289 X_ATTRIBUTE14 in VARCHAR2,
290 X_ATTRIBUTE15 in VARCHAR2,
291 X_NAME in VARCHAR2,
292 X_LAST_UPDATE_DATE in DATE,
293 X_LAST_UPDATED_BY in NUMBER,
294 X_LAST_UPDATE_LOGIN in NUMBER,
295 X_ORG_ID in NUMBER
296 ) is
297 begin
298 update CN_INTERVAL_TYPES_ALL_B set
299 DESCRIPTION = X_DESCRIPTION,
300 ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
301 ATTRIBUTE1 = X_ATTRIBUTE1,
302 ATTRIBUTE2 = X_ATTRIBUTE2,
303 ATTRIBUTE3 = X_ATTRIBUTE3,
304 ATTRIBUTE4 = X_ATTRIBUTE4,
305 ATTRIBUTE5 = X_ATTRIBUTE5,
306 ATTRIBUTE6 = X_ATTRIBUTE6,
307 ATTRIBUTE7 = X_ATTRIBUTE7,
308 ATTRIBUTE8 = X_ATTRIBUTE8,
309 ATTRIBUTE9 = X_ATTRIBUTE9,
310 ATTRIBUTE10 = X_ATTRIBUTE10,
311 ATTRIBUTE11 = X_ATTRIBUTE11,
312 ATTRIBUTE12 = X_ATTRIBUTE12,
313 ATTRIBUTE13 = X_ATTRIBUTE13,
314 ATTRIBUTE14 = X_ATTRIBUTE14,
315 ATTRIBUTE15 = X_ATTRIBUTE15,
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 where INTERVAL_TYPE_ID = X_INTERVAL_TYPE_ID
320 and ORG_ID = nvl(X_ORG_ID, ORG_ID);
321
322 if (sql%notfound) then
323 raise no_data_found;
324 end if;
325
326 update CN_INTERVAL_TYPES_ALL_TL set
327 NAME = X_NAME,
328 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
329 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
330 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
331 SOURCE_LANG = userenv('LANG')
332 where INTERVAL_TYPE_ID = X_INTERVAL_TYPE_ID
333 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
334
335 if (sql%notfound) then
336 raise no_data_found;
337 end if;
338 end UPDATE_ROW;
339
340 procedure DELETE_ROW (
341 X_INTERVAL_TYPE_ID in NUMBER
342 ) is
343 begin
344 delete from CN_INTERVAL_TYPES_ALL_TL
345 where INTERVAL_TYPE_ID = X_INTERVAL_TYPE_ID;
346
347 if (sql%notfound) then
348 raise no_data_found;
349 end if;
350
351 delete from CN_INTERVAL_TYPES_ALL_B
355 raise no_data_found;
352 where INTERVAL_TYPE_ID = X_INTERVAL_TYPE_ID;
353
354 if (sql%notfound) then
356 end if;
357 end DELETE_ROW;
358
359 procedure ADD_LANGUAGE
360 is
361 begin
362 delete from CN_INTERVAL_TYPES_ALL_TL T
363 where not exists
364 (select NULL
365 from CN_INTERVAL_TYPES_ALL_B B
366 where B.INTERVAL_TYPE_ID = T.interval_type_id
367 and B.ORG_ID = T.ORG_ID
368 );
369
370 update CN_INTERVAL_TYPES_ALL_TL T set (
371 NAME
372 ) = (select
373 B.NAME
374 from CN_INTERVAL_TYPES_ALL_TL B
375 where B.INTERVAL_TYPE_ID = T.INTERVAL_TYPE_ID
376 and B.LANGUAGE = T.source_lang
377 and B.ORG_ID = T.ORG_ID)
378 where (
379 T.INTERVAL_TYPE_ID,
380 T.LANGUAGE
381 ) in (select
382 SUBT.INTERVAL_TYPE_ID,
383 SUBT.LANGUAGE
384 from CN_INTERVAL_TYPES_ALL_TL SUBB, CN_INTERVAL_TYPES_ALL_TL SUBT
385 where SUBB.INTERVAL_TYPE_ID = SUBT.INTERVAL_TYPE_ID
386 and SUBB.LANGUAGE = SUBT.source_lang
387 and SUBB.ORG_ID =SUBT.ORG_ID
388 and (SUBB.NAME <> SUBT.NAME
389 or (SUBB.NAME is null and SUBT.NAME is not null)
390 or (SUBB.NAME is not null and SUBT.NAME is null)
391 ));
392
393 insert into CN_INTERVAL_TYPES_ALL_TL (
394 ORG_ID,
395 INTERVAL_TYPE_ID,
396 NAME,
397 CREATED_BY,
398 CREATION_DATE,
399 LAST_UPDATED_BY,
400 LAST_UPDATE_DATE,
401 LAST_UPDATE_LOGIN,
402 LANGUAGE,
403 SOURCE_LANG
404 ) select
405 B.ORG_ID,
406 B.INTERVAL_TYPE_ID,
407 B.NAME,
408 B.CREATED_BY,
409 B.CREATION_DATE,
410 B.LAST_UPDATED_BY,
411 B.LAST_UPDATE_DATE,
412 B.LAST_UPDATE_LOGIN,
413 L.LANGUAGE_CODE,
414 B.SOURCE_LANG
415 from CN_INTERVAL_TYPES_ALL_TL B, FND_LANGUAGES L
416 where L.INSTALLED_FLAG in ('I', 'B')
417 and B.LANGUAGE = userenv('LANG')
418 and not exists
419 (select NULL
420 from CN_INTERVAL_TYPES_ALL_TL T
421 where T.INTERVAL_TYPE_ID = B.INTERVAL_TYPE_ID
422 and T.LANGUAGE = L.language_code
423 and T.ORG_ID = B.ORG_ID );
424 end ADD_LANGUAGE;
425
426 --/*--------------------------------------------------------------------------*
427 -- Prodedure Name
428 -- post_insert
429 -- Purpose
430 -- Populate the table cn_cal_per_int_types after creating an interval type
431 -- *--------------------------------------------------------------------------*/
432 PROCEDURE post_insert
433 ( x_interval_type_id cn_interval_types.interval_type_id%TYPE,
434 x_last_update_date cn_interval_types.last_update_date%TYPE,
435 x_last_updated_by cn_interval_types.last_updated_by%TYPE,
436 x_creation_date cn_interval_types.creation_date%TYPE,
437 x_created_by cn_interval_types.created_by%TYPE,
438 x_last_update_login cn_interval_types.last_update_login%TYPE,
439 x_org_id cn_interval_types.org_id%TYPE
440 ) IS
441 l_period_set_id NUMBER;
442 l_period_type_id NUMBER;
443 l_period_id NUMBER;
444 l_cal_per_int_type_id NUMBER;
445
446 CURSOR c IS
447 SELECT period_id
448 FROM cn_period_statuses_all
449 WHERE period_type_id = l_period_type_id
450 AND period_set_id = l_period_set_id
451 AND org_id = x_org_id;
452 BEGIN
453 SELECT period_set_id, period_type_id
454 INTO l_period_set_id, l_period_type_id
455 FROM cn_repositories_all
456 WHERE org_id = x_org_id;
457
458 OPEN c;
459 LOOP
460 FETCH c INTO l_period_id;
461 EXIT WHEN c%notfound;
462
463 l_cal_per_int_type_id := null;
464 cn_int_assign_pkg.insert_row
465 (x_cal_per_int_type_id => l_cal_per_int_type_id,
466 x_interval_type_id => x_interval_type_id,
467 x_cal_period_id => l_period_id,
468 x_interval_number => 1,
469 x_last_update_date => x_last_update_date,
470 x_last_updated_by => x_last_updated_by,
471 x_creation_date => x_creation_date,
472 x_created_by => x_created_by,
473 x_last_update_login => x_last_update_login,
474 x_org_id => x_org_id
475 );
476
477 END LOOP;
478 CLOSE c;
479
480 END post_insert;
481
482
483 --/*--------------------------------------------------------------------------*
484 -- Prodedure Name
485 -- post_delete
486 -- Purpose
487 -- Delete the corresponding records in cn_cal_per_int_types after deleting an interval type
488 -- *--------------------------------------------------------------------------*/
489 PROCEDURE post_delete( x_interval_type_id cn_interval_types.interval_type_id%TYPE) IS
490 BEGIN
491 DELETE FROM cn_cal_per_int_types_all
492 WHERE interval_type_id = x_interval_type_id;
493 EXCEPTION
494 WHEN no_data_found THEN
495 RETURN;
496 WHEN OTHERS THEN
497 app_exception.raise_exception;
498 END post_delete;
499 -- --------------------------------------------------------------------+
500 -- Procedure : LOAD_ROW
501 -- Description : Called by FNDLOAD to upload seed datas, this procedure
502 -- only handle seed datas. ORG_ID = -3113
503 -- --------------------------------------------------------------------+
504 PROCEDURE LOAD_ROW
505 ( x_interval_type_id IN NUMBER,
506 x_description IN VARCHAR2,
507 x_name IN VARCHAR2,
508 x_owner IN VARCHAR2,
509 x_org_id IN NUMBER)
510 IS
511 user_id NUMBER;
512 BEGIN
513 -- Validate input data
514 IF (x_interval_type_id IS NULL) OR (x_name IS NULL) THEN
515 GOTO end_load_row;
516 END IF;
517
518 IF (x_owner IS NOT NULL) AND (x_owner = 'SEED') THEN
519 user_id := 1;
520 ELSE
521 user_id := 0;
522 END IF;
523 -- Load The record to _B table
524 UPDATE cn_interval_types_all_b SET
525 description = x_description,
526 last_update_date = sysdate,
527 last_updated_by = user_id,
528 last_update_login = 0
529 WHERE interval_type_id = x_interval_type_id;
530
531 IF (SQL%NOTFOUND) THEN
532 -- Insert new record to _B table
533 INSERT INTO cn_interval_types_all_b
534 (interval_type_id,
535 description,
536 creation_date,
537 created_by,
538 last_update_date,
539 last_updated_by,
540 last_update_login,
541 org_id
542 ) VALUES
543 (x_interval_type_id,
544 x_description,
545 sysdate,
546 user_id,
547 sysdate,
548 user_id,
549 0,
550 x_org_id
551 );
552 END IF;
553 -- Load The record to _TL table
554 UPDATE cn_interval_types_all_tl SET
555 name = x_name,
556 last_update_date = sysdate,
557 last_updated_by = user_id,
558 last_update_login = 0,
559 source_lang = userenv('LANG')
560 WHERE interval_type_id = x_interval_type_id
561 AND userenv('LANG') IN (LANGUAGE, SOURCE_LANG);
562
563 IF (SQL%NOTFOUND) THEN
564 -- Insert new record to _TL table
565 INSERT INTO cn_interval_types_all_tl
566 (interval_type_id,
567 name,
568 creation_date,
569 created_by,
570 last_update_date,
571 last_updated_by,
572 last_update_login,
573 language,
574 source_lang,
575 org_id)
576 SELECT
577 x_interval_type_id,
578 x_name,
579 sysdate,
580 user_id,
581 sysdate,
582 user_id,
583 0,
584 l.language_code,
585 userenv('LANG'),
586 x_org_id
587 FROM fnd_languages l
588 WHERE l.installed_flag IN ('I', 'B')
589 AND NOT EXISTS
590 (SELECT NULL
591 FROM cn_interval_types_all_tl t
592 WHERE t.interval_type_id = x_interval_type_id
593 AND t.language = l.language_code
594 and t.org_id = x_org_id);
595 END IF;
596 << end_load_row >>
597 NULL;
598 END LOAD_ROW ;
599
600 -- --------------------------------------------------------------------+
601 -- Procedure : TRANSLATE_ROW
602 -- Description : Called by FNDLOAD to translate seed datas, this procedure
603 -- only handle seed datas. ORG_ID = -3113
604 -- --------------------------------------------------------------------+
605 PROCEDURE TRANSLATE_ROW
606 ( x_interval_type_id IN NUMBER,
607 x_name IN VARCHAR2,
608 x_owner IN VARCHAR2)
609 IS
610 user_id NUMBER;
611 BEGIN
612 -- Validate input data
613 IF (x_interval_type_id IS NULL) OR (x_name IS NULL) THEN
614 GOTO end_translate_row;
615 END IF;
616
617 IF (x_owner IS NOT NULL) AND (x_owner = 'SEED') THEN
618 user_id := 1;
619 ELSE
620 user_id := 0;
621 END IF;
622 -- Update the translation
623 UPDATE cn_interval_types_all_tl SET
624 name = x_name,
625 last_update_date = sysdate,
626 last_updated_by = user_id,
627 last_update_login = 0,
628 source_lang = userenv('LANG')
629 WHERE interval_type_id = x_interval_type_id
630 AND userenv('LANG') IN (LANGUAGE, SOURCE_LANG);
631
632 << end_translate_row >>
633 NULL;
634 END TRANSLATE_ROW ;
635
636 END CN_INT_TYPE_PKG;