1 PACKAGE BODY cm_cldr_hdr_pkg AS
2 /* $Header: gmfcldrb.pls 120.2 2005/08/16 13:38:05 sschinch noship $ */
3 PROCEDURE INSERT_ROW (
4 X_ROWID in out NOCOPY VARCHAR2,
5 X_CALENDAR_CODE in VARCHAR2,
6 X_START_DATE in DATE,
7 X_IN_USE in NUMBER,
8 X_TEXT_CODE in NUMBER,
9 X_DELETE_MARK in NUMBER,
10 X_ATTRIBUTE1 in VARCHAR2,
11 X_ATTRIBUTE2 in VARCHAR2,
12 X_ATTRIBUTE3 in VARCHAR2,
13 X_ATTRIBUTE4 in VARCHAR2,
14 X_ATTRIBUTE5 in VARCHAR2,
15 X_ATTRIBUTE6 in VARCHAR2,
16 X_ATTRIBUTE7 in VARCHAR2,
17 X_ATTRIBUTE8 in VARCHAR2,
18 X_ATTRIBUTE9 in VARCHAR2,
19 X_ATTRIBUTE10 in VARCHAR2,
20 X_ATTRIBUTE11 in VARCHAR2,
21 X_ATTRIBUTE12 in VARCHAR2,
22 X_ATTRIBUTE13 in VARCHAR2,
23 X_ATTRIBUTE14 in VARCHAR2,
24 X_ATTRIBUTE15 in VARCHAR2,
25 X_ATTRIBUTE16 in VARCHAR2,
26 X_ATTRIBUTE17 in VARCHAR2,
27 X_ATTRIBUTE18 in VARCHAR2,
28 X_ATTRIBUTE19 in VARCHAR2,
29 X_ATTRIBUTE20 in VARCHAR2,
30 X_ATTRIBUTE21 in VARCHAR2,
31 X_ATTRIBUTE22 in VARCHAR2,
32 X_ATTRIBUTE23 in VARCHAR2,
33 X_ATTRIBUTE24 in VARCHAR2,
34 X_ATTRIBUTE25 in VARCHAR2,
35 X_ATTRIBUTE26 in VARCHAR2,
36 X_ATTRIBUTE27 in VARCHAR2,
37 X_ATTRIBUTE28 in VARCHAR2,
38 X_ATTRIBUTE29 in VARCHAR2,
39 X_ATTRIBUTE30 in VARCHAR2,
40 X_CALENDAR_DESC in VARCHAR2,
41 X_CREATION_DATE in DATE,
42 X_CREATED_BY in NUMBER,
43 X_LAST_UPDATE_DATE in DATE,
44 X_LAST_UPDATED_BY in NUMBER,
45 X_LAST_UPDATE_LOGIN in NUMBER
46 ) is
47 cursor C is select ROWID from CM_CLDR_HDR_B
48 where CALENDAR_CODE = X_CALENDAR_CODE
49 ;
50 begin
51 insert into CM_CLDR_HDR_B (
52 CALENDAR_CODE,
53 START_DATE,
54 IN_USE,
55 TEXT_CODE,
56 DELETE_MARK,
57 ATTRIBUTE1,
58 ATTRIBUTE2,
59 ATTRIBUTE3,
60 ATTRIBUTE4,
61 ATTRIBUTE5,
62 ATTRIBUTE6,
63 ATTRIBUTE7,
64 ATTRIBUTE8,
65 ATTRIBUTE9,
66 ATTRIBUTE10,
67 ATTRIBUTE11,
68 ATTRIBUTE12,
69 ATTRIBUTE13,
70 ATTRIBUTE14,
71 ATTRIBUTE15,
72 ATTRIBUTE16,
73 ATTRIBUTE17,
74 ATTRIBUTE18,
75 ATTRIBUTE19,
76 ATTRIBUTE20,
77 ATTRIBUTE21,
78 ATTRIBUTE22,
79 ATTRIBUTE23,
80 ATTRIBUTE24,
81 ATTRIBUTE25,
82 ATTRIBUTE26,
83 ATTRIBUTE27,
84 ATTRIBUTE28,
85 ATTRIBUTE29,
86 ATTRIBUTE30,
87 CREATION_DATE,
88 CREATED_BY,
89 LAST_UPDATE_DATE,
90 LAST_UPDATED_BY,
91 LAST_UPDATE_LOGIN
92 ) values (
93 X_CALENDAR_CODE,
94 X_START_DATE,
95 X_IN_USE,
96 X_TEXT_CODE,
97 X_DELETE_MARK,
98 X_ATTRIBUTE1,
99 X_ATTRIBUTE2,
100 X_ATTRIBUTE3,
101 X_ATTRIBUTE4,
102 X_ATTRIBUTE5,
103 X_ATTRIBUTE6,
104 X_ATTRIBUTE7,
105 X_ATTRIBUTE8,
106 X_ATTRIBUTE9,
107 X_ATTRIBUTE10,
108 X_ATTRIBUTE11,
109 X_ATTRIBUTE12,
110 X_ATTRIBUTE13,
111 X_ATTRIBUTE14,
112 X_ATTRIBUTE15,
113 X_ATTRIBUTE16,
114 X_ATTRIBUTE17,
115 X_ATTRIBUTE18,
116 X_ATTRIBUTE19,
117 X_ATTRIBUTE20,
118 X_ATTRIBUTE21,
119 X_ATTRIBUTE22,
120 X_ATTRIBUTE23,
121 X_ATTRIBUTE24,
122 X_ATTRIBUTE25,
123 X_ATTRIBUTE26,
124 X_ATTRIBUTE27,
125 X_ATTRIBUTE28,
126 X_ATTRIBUTE29,
127 X_ATTRIBUTE30,
128 X_CREATION_DATE,
129 X_CREATED_BY,
130 X_LAST_UPDATE_DATE,
131 X_LAST_UPDATED_BY,
132 X_LAST_UPDATE_LOGIN
133 );
134
135 insert into CM_CLDR_HDR_TL (
136 LAST_UPDATE_LOGIN,
137 LAST_UPDATED_BY,
138 CREATION_DATE,
139 CREATED_BY,
140 LAST_UPDATE_DATE,
141 CALENDAR_DESC,
142 CALENDAR_CODE,
143 LANGUAGE,
144 SOURCE_LANG
145 ) select
146 X_LAST_UPDATE_LOGIN,
147 X_LAST_UPDATED_BY,
148 X_CREATION_DATE,
149 X_CREATED_BY,
150 X_LAST_UPDATE_DATE,
151 X_CALENDAR_DESC,
152 X_CALENDAR_CODE,
153 L.LANGUAGE_CODE,
154 userenv('LANG')
155 from FND_LANGUAGES L
156 where L.INSTALLED_FLAG in ('I', 'B')
157 and not exists
158 (select NULL
159 from CM_CLDR_HDR_TL T
160 where T.CALENDAR_CODE = X_CALENDAR_CODE
161 and T.LANGUAGE = L.LANGUAGE_CODE);
162
163 open c;
164 fetch c into X_ROWID;
165 if (c%notfound) then
166 close c;
167 raise no_data_found;
168 end if;
169 close c;
170
171 end INSERT_ROW;
172
173 procedure LOCK_ROW (
174 X_CALENDAR_CODE in VARCHAR2,
175 X_START_DATE in DATE,
176 X_IN_USE in NUMBER,
177 X_TEXT_CODE in NUMBER,
178 X_DELETE_MARK in NUMBER,
179 X_ATTRIBUTE1 in VARCHAR2,
180 X_ATTRIBUTE2 in VARCHAR2,
181 X_ATTRIBUTE3 in VARCHAR2,
182 X_ATTRIBUTE4 in VARCHAR2,
183 X_ATTRIBUTE5 in VARCHAR2,
184 X_ATTRIBUTE6 in VARCHAR2,
185 X_ATTRIBUTE7 in VARCHAR2,
186 X_ATTRIBUTE8 in VARCHAR2,
187 X_ATTRIBUTE9 in VARCHAR2,
188 X_ATTRIBUTE10 in VARCHAR2,
189 X_ATTRIBUTE11 in VARCHAR2,
190 X_ATTRIBUTE12 in VARCHAR2,
191 X_ATTRIBUTE13 in VARCHAR2,
192 X_ATTRIBUTE14 in VARCHAR2,
193 X_ATTRIBUTE15 in VARCHAR2,
194 X_ATTRIBUTE16 in VARCHAR2,
195 X_ATTRIBUTE17 in VARCHAR2,
196 X_ATTRIBUTE18 in VARCHAR2,
197 X_ATTRIBUTE19 in VARCHAR2,
198 X_ATTRIBUTE20 in VARCHAR2,
199 X_ATTRIBUTE21 in VARCHAR2,
200 X_ATTRIBUTE22 in VARCHAR2,
201 X_ATTRIBUTE23 in VARCHAR2,
202 X_ATTRIBUTE24 in VARCHAR2,
203 X_ATTRIBUTE25 in VARCHAR2,
204 X_ATTRIBUTE26 in VARCHAR2,
205 X_ATTRIBUTE27 in VARCHAR2,
206 X_ATTRIBUTE28 in VARCHAR2,
207 X_ATTRIBUTE29 in VARCHAR2,
208 X_ATTRIBUTE30 in VARCHAR2,
209 X_CALENDAR_DESC in VARCHAR2
210 ) is
211 cursor c is select
212 START_DATE,
213 IN_USE,
214 TEXT_CODE,
215 DELETE_MARK,
216 ATTRIBUTE1,
217 ATTRIBUTE2,
218 ATTRIBUTE3,
219 ATTRIBUTE4,
220 ATTRIBUTE5,
221 ATTRIBUTE6,
222 ATTRIBUTE7,
223 ATTRIBUTE8,
224 ATTRIBUTE9,
225 ATTRIBUTE10,
226 ATTRIBUTE11,
227 ATTRIBUTE12,
228 ATTRIBUTE13,
229 ATTRIBUTE14,
230 ATTRIBUTE15,
231 ATTRIBUTE16,
232 ATTRIBUTE17,
233 ATTRIBUTE18,
234 ATTRIBUTE19,
235 ATTRIBUTE20,
236 ATTRIBUTE21,
237 ATTRIBUTE22,
238 ATTRIBUTE23,
239 ATTRIBUTE24,
240 ATTRIBUTE25,
241 ATTRIBUTE26,
242 ATTRIBUTE27,
243 ATTRIBUTE28,
244 ATTRIBUTE29,
245 ATTRIBUTE30
246 from CM_CLDR_HDR_B
247 where CALENDAR_CODE = X_CALENDAR_CODE
248 for update of CALENDAR_CODE nowait;
249 recinfo c%rowtype;
250
251 cursor c1 is select
252 CALENDAR_DESC,
253 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
254 from CM_CLDR_HDR_TL
255 where CALENDAR_CODE = X_CALENDAR_CODE
256 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
257 for update of CALENDAR_CODE nowait;
258 begin
259 open c;
260 fetch c into recinfo;
261 if (c%notfound) then
262 close c;
263 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
264 app_exception.raise_exception;
265 end if;
266 close c;
267 if (((recinfo.IN_USE = X_IN_USE)
268 OR ((recinfo.IN_USE is null) AND (X_IN_USE is null)))
269 AND ((recinfo.TEXT_CODE = X_TEXT_CODE)
270 OR ((recinfo.TEXT_CODE is null) AND (X_TEXT_CODE is null)))
271 AND (recinfo.DELETE_MARK = X_DELETE_MARK)
272 AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
273 OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
274 AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
275 OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
276 AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
277 OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
278 AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
279 OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
280 AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
281 OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
282 AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
283 OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
284 AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
285 OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
286 AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
287 OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
288 AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
289 OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
290 AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
291 OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
292 AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
293 OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
294 AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
295 OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
296 AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
297 OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
298 AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
299 OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
300 AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
301 OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
302 AND ((recinfo.ATTRIBUTE16 = X_ATTRIBUTE16)
303 OR ((recinfo.ATTRIBUTE16 is null) AND (X_ATTRIBUTE16 is null)))
304 AND ((recinfo.ATTRIBUTE17 = X_ATTRIBUTE17)
305 OR ((recinfo.ATTRIBUTE17 is null) AND (X_ATTRIBUTE17 is null)))
306 AND ((recinfo.ATTRIBUTE18 = X_ATTRIBUTE18)
307 OR ((recinfo.ATTRIBUTE18 is null) AND (X_ATTRIBUTE18 is null)))
308 AND ((recinfo.ATTRIBUTE19 = X_ATTRIBUTE19)
309 OR ((recinfo.ATTRIBUTE19 is null) AND (X_ATTRIBUTE19 is null)))
310 AND ((recinfo.ATTRIBUTE20 = X_ATTRIBUTE20)
311 OR ((recinfo.ATTRIBUTE20 is null) AND (X_ATTRIBUTE20 is null)))
312 AND ((recinfo.ATTRIBUTE21 = X_ATTRIBUTE21)
313 OR ((recinfo.ATTRIBUTE21 is null) AND (X_ATTRIBUTE21 is null)))
314 AND ((recinfo.ATTRIBUTE22 = X_ATTRIBUTE22)
315 OR ((recinfo.ATTRIBUTE22 is null) AND (X_ATTRIBUTE22 is null)))
316 AND ((recinfo.ATTRIBUTE23 = X_ATTRIBUTE23)
317 OR ((recinfo.ATTRIBUTE23 is null) AND (X_ATTRIBUTE23 is null)))
318 AND ((recinfo.ATTRIBUTE24 = X_ATTRIBUTE24)
319 OR ((recinfo.ATTRIBUTE24 is null) AND (X_ATTRIBUTE24 is null)))
320 AND ((recinfo.ATTRIBUTE25 = X_ATTRIBUTE25)
321 OR ((recinfo.ATTRIBUTE25 is null) AND (X_ATTRIBUTE25 is null)))
322 AND ((recinfo.ATTRIBUTE26 = X_ATTRIBUTE26)
323 OR ((recinfo.ATTRIBUTE26 is null) AND (X_ATTRIBUTE26 is null)))
324 AND ((recinfo.ATTRIBUTE27 = X_ATTRIBUTE27)
325 OR ((recinfo.ATTRIBUTE27 is null) AND (X_ATTRIBUTE27 is null)))
326 AND ((recinfo.ATTRIBUTE28 = X_ATTRIBUTE28)
327 OR ((recinfo.ATTRIBUTE28 is null) AND (X_ATTRIBUTE28 is null)))
328 AND ((recinfo.ATTRIBUTE29 = X_ATTRIBUTE29)
329 OR ((recinfo.ATTRIBUTE29 is null) AND (X_ATTRIBUTE29 is null)))
330 AND ((recinfo.ATTRIBUTE30 = X_ATTRIBUTE30)
331 OR ((recinfo.ATTRIBUTE30 is null) AND (X_ATTRIBUTE30 is null)))
332 AND ((recinfo.START_DATE = X_START_DATE)
333 OR ((recinfo.START_DATE is null) AND (X_START_DATE is null)))
334 ) then
335 null;
336 else
337 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
338 app_exception.raise_exception;
339 end if;
340
341 for tlinfo in c1 loop
342 if (tlinfo.BASELANG = 'Y') then
343 if ( (tlinfo.CALENDAR_DESC = X_CALENDAR_DESC)
344 ) then
345 null;
346 else
347 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
348 app_exception.raise_exception;
349 end if;
350 end if;
351 end loop;
352 return;
353 end LOCK_ROW;
354
355 procedure UPDATE_ROW (
356 X_CALENDAR_CODE in VARCHAR2,
357 X_START_DATE in DATE,
358 X_IN_USE in NUMBER,
359 X_TEXT_CODE in NUMBER,
360 X_DELETE_MARK in NUMBER,
361 X_ATTRIBUTE1 in VARCHAR2,
362 X_ATTRIBUTE2 in VARCHAR2,
363 X_ATTRIBUTE3 in VARCHAR2,
364 X_ATTRIBUTE4 in VARCHAR2,
365 X_ATTRIBUTE5 in VARCHAR2,
366 X_ATTRIBUTE6 in VARCHAR2,
367 X_ATTRIBUTE7 in VARCHAR2,
368 X_ATTRIBUTE8 in VARCHAR2,
369 X_ATTRIBUTE9 in VARCHAR2,
370 X_ATTRIBUTE10 in VARCHAR2,
371 X_ATTRIBUTE11 in VARCHAR2,
372 X_ATTRIBUTE12 in VARCHAR2,
373 X_ATTRIBUTE13 in VARCHAR2,
374 X_ATTRIBUTE14 in VARCHAR2,
375 X_ATTRIBUTE15 in VARCHAR2,
376 X_ATTRIBUTE16 in VARCHAR2,
377 X_ATTRIBUTE17 in VARCHAR2,
378 X_ATTRIBUTE18 in VARCHAR2,
379 X_ATTRIBUTE19 in VARCHAR2,
380 X_ATTRIBUTE20 in VARCHAR2,
381 X_ATTRIBUTE21 in VARCHAR2,
382 X_ATTRIBUTE22 in VARCHAR2,
383 X_ATTRIBUTE23 in VARCHAR2,
384 X_ATTRIBUTE24 in VARCHAR2,
385 X_ATTRIBUTE25 in VARCHAR2,
386 X_ATTRIBUTE26 in VARCHAR2,
387 X_ATTRIBUTE27 in VARCHAR2,
388 X_ATTRIBUTE28 in VARCHAR2,
389 X_ATTRIBUTE29 in VARCHAR2,
390 X_ATTRIBUTE30 in VARCHAR2,
391 X_CALENDAR_DESC in VARCHAR2,
392 X_LAST_UPDATE_DATE in DATE,
393 X_LAST_UPDATED_BY in NUMBER,
394 X_LAST_UPDATE_LOGIN in NUMBER
395 ) is
396 begin
397 update CM_CLDR_HDR_B set
398 IN_USE = X_IN_USE,
399 START_DATE = X_START_DATE,
400 TEXT_CODE = X_TEXT_CODE,
401 DELETE_MARK = X_DELETE_MARK,
402 ATTRIBUTE1 = X_ATTRIBUTE1,
403 ATTRIBUTE2 = X_ATTRIBUTE2,
404 ATTRIBUTE3 = X_ATTRIBUTE3,
405 ATTRIBUTE4 = X_ATTRIBUTE4,
406 ATTRIBUTE5 = X_ATTRIBUTE5,
407 ATTRIBUTE6 = X_ATTRIBUTE6,
408 ATTRIBUTE7 = X_ATTRIBUTE7,
409 ATTRIBUTE8 = X_ATTRIBUTE8,
410 ATTRIBUTE9 = X_ATTRIBUTE9,
411 ATTRIBUTE10 = X_ATTRIBUTE10,
412 ATTRIBUTE11 = X_ATTRIBUTE11,
413 ATTRIBUTE12 = X_ATTRIBUTE12,
414 ATTRIBUTE13 = X_ATTRIBUTE13,
415 ATTRIBUTE14 = X_ATTRIBUTE14,
416 ATTRIBUTE15 = X_ATTRIBUTE15,
417 ATTRIBUTE16 = X_ATTRIBUTE16,
418 ATTRIBUTE17 = X_ATTRIBUTE17,
419 ATTRIBUTE18 = X_ATTRIBUTE18,
420 ATTRIBUTE19 = X_ATTRIBUTE19,
421 ATTRIBUTE20 = X_ATTRIBUTE20,
422 ATTRIBUTE21 = X_ATTRIBUTE21,
423 ATTRIBUTE22 = X_ATTRIBUTE22,
424 ATTRIBUTE23 = X_ATTRIBUTE23,
425 ATTRIBUTE24 = X_ATTRIBUTE24,
426 ATTRIBUTE25 = X_ATTRIBUTE25,
427 ATTRIBUTE26 = X_ATTRIBUTE26,
428 ATTRIBUTE27 = X_ATTRIBUTE27,
429 ATTRIBUTE28 = X_ATTRIBUTE28,
430 ATTRIBUTE29 = X_ATTRIBUTE29,
431 ATTRIBUTE30 = X_ATTRIBUTE30,
432 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
433 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
434 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
435 where CALENDAR_CODE = X_CALENDAR_CODE;
436
437 if (sql%notfound) then
438 raise no_data_found;
439 end if;
440
441 update CM_CLDR_HDR_TL set
442 CALENDAR_DESC = X_CALENDAR_DESC,
443 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
444 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
445 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
446 SOURCE_LANG = userenv('LANG')
447 where CALENDAR_CODE = X_CALENDAR_CODE
448 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
449
450 if (sql%notfound) then
451 raise no_data_found;
452 end if;
453 end UPDATE_ROW;
454
455 procedure DELETE_ROW (
456 X_CALENDAR_CODE in VARCHAR2
457 ) is
458 begin
459
460 /*
461 * delete from CM_CLDR_HDR_TL
462 * where CALENDAR_CODE = X_CALENDAR_CODE;
463 *
464 * if (sql%notfound) then
465 * raise no_data_found;
466 * end if;
467 *
468 *
469 * delete from CM_CLDR_HDR_B
470 * where CALENDAR_CODE = X_CALENDAR_CODE;
471 */
472
473 update CM_CLDR_HDR_B
474 set DELETE_MARK = 1
475 where CALENDAR_CODE = X_CALENDAR_CODE;
476
477 if (sql%notfound) then
478 raise no_data_found;
479 end if;
480 end DELETE_ROW;
481
482 procedure ADD_LANGUAGE
483 is
484 begin
485 delete from CM_CLDR_HDR_TL T
486 where not exists
487 (select NULL
488 from CM_CLDR_HDR_B B
489 where B.CALENDAR_CODE = T.CALENDAR_CODE
490 );
491
492 update CM_CLDR_HDR_TL T set (
493 CALENDAR_DESC
494 ) = (select
495 B.CALENDAR_DESC
496 from CM_CLDR_HDR_TL B
497 where B.CALENDAR_CODE = T.CALENDAR_CODE
498 and B.LANGUAGE = T.SOURCE_LANG)
499 where (
500 T.CALENDAR_CODE,
501 T.LANGUAGE
502 ) in (select
503 SUBT.CALENDAR_CODE,
504 SUBT.LANGUAGE
505 from CM_CLDR_HDR_TL SUBB, CM_CLDR_HDR_TL SUBT
506 where SUBB.CALENDAR_CODE = SUBT.CALENDAR_CODE
507 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
508 and (SUBB.CALENDAR_DESC <> SUBT.CALENDAR_DESC
509 ));
510
511 insert into CM_CLDR_HDR_TL (
512 LAST_UPDATE_LOGIN,
513 LAST_UPDATED_BY,
514 CREATION_DATE,
515 CREATED_BY,
516 LAST_UPDATE_DATE,
517 CALENDAR_DESC,
518 CALENDAR_CODE,
519 LANGUAGE,
520 SOURCE_LANG
521 ) select
522 B.LAST_UPDATE_LOGIN,
523 B.LAST_UPDATED_BY,
524 B.CREATION_DATE,
525 B.CREATED_BY,
526 B.LAST_UPDATE_DATE,
527 B.CALENDAR_DESC,
528 B.CALENDAR_CODE,
529 L.LANGUAGE_CODE,
530 B.SOURCE_LANG
531 from CM_CLDR_HDR_TL B, FND_LANGUAGES L
532 where L.INSTALLED_FLAG in ('I', 'B')
533 and B.LANGUAGE = userenv('LANG')
534 and not exists
535 (select NULL
536 from CM_CLDR_HDR_TL T
537 where T.CALENDAR_CODE = B.CALENDAR_CODE
538 and T.LANGUAGE = L.LANGUAGE_CODE);
539 end ADD_LANGUAGE;
540
541 end CM_CLDR_HDR_PKG;