DBA Data[Home] [Help]

PACKAGE BODY: APPS.MTL_GRADES_PVT

Source


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