DBA Data[Home] [Help]

PACKAGE BODY: APPS.CM_CLDR_HDR_PKG

Source


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;