DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMD_TEST_CLASSES_PVT

Source


1 package body GMD_TEST_CLASSES_PVT as
2 /* $Header: GMDVTCPB.pls 115.2 2004/05/07 12:20:25 svankada noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out nocopy VARCHAR2,
5   X_TEST_CLASS in VARCHAR2,
6   X_DELETE_MARK in NUMBER,
7   X_TEXT_CODE in NUMBER,
8   X_TEST_GROUP_ENABLED in VARCHAR2,
9   X_ATTRIBUTE1 in VARCHAR2,
10   X_ATTRIBUTE2 in VARCHAR2,
11   X_ATTRIBUTE3 in VARCHAR2,
12   X_ATTRIBUTE4 in VARCHAR2,
13   X_ATTRIBUTE5 in VARCHAR2,
14   X_ATTRIBUTE6 in VARCHAR2,
15   X_ATTRIBUTE7 in VARCHAR2,
16   X_ATTRIBUTE8 in VARCHAR2,
17   X_ATTRIBUTE9 in VARCHAR2,
18   X_ATTRIBUTE10 in VARCHAR2,
19   X_ATTRIBUTE11 in VARCHAR2,
20   X_ATTRIBUTE12 in VARCHAR2,
21   X_ATTRIBUTE13 in VARCHAR2,
22   X_ATTRIBUTE14 in VARCHAR2,
23   X_ATTRIBUTE15 in VARCHAR2,
24   X_ATTRIBUTE16 in VARCHAR2,
25   X_ATTRIBUTE17 in VARCHAR2,
26   X_ATTRIBUTE18 in VARCHAR2,
27   X_ATTRIBUTE19 in VARCHAR2,
28   X_ATTRIBUTE20 in VARCHAR2,
29   X_ATTRIBUTE21 in VARCHAR2,
30   X_ATTRIBUTE22 in VARCHAR2,
31   X_ATTRIBUTE23 in VARCHAR2,
32   X_ATTRIBUTE24 in VARCHAR2,
33   X_ATTRIBUTE25 in VARCHAR2,
34   X_ATTRIBUTE26 in VARCHAR2,
35   X_ATTRIBUTE27 in VARCHAR2,
36   X_ATTRIBUTE28 in VARCHAR2,
37   X_ATTRIBUTE29 in VARCHAR2,
38   X_ATTRIBUTE30 in VARCHAR2,
39   X_ATTRIBUTE_CATEGORY in VARCHAR2,
40   X_TEST_CLASS_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 GMD_TEST_CLASSES_B
48     where TEST_CLASS = X_TEST_CLASS
49     ;
50 begin
51   insert into GMD_TEST_CLASSES_B (
52     TEST_CLASS,
53     DELETE_MARK,
54     TEXT_CODE,
55     ATTRIBUTE1,
56     ATTRIBUTE2,
57     ATTRIBUTE3,
58     ATTRIBUTE4,
59     ATTRIBUTE5,
60     ATTRIBUTE6,
61     ATTRIBUTE7,
62     ATTRIBUTE8,
63     ATTRIBUTE9,
64     ATTRIBUTE10,
65     ATTRIBUTE11,
66     ATTRIBUTE12,
67     ATTRIBUTE13,
68     ATTRIBUTE14,
69     ATTRIBUTE15,
70     ATTRIBUTE16,
71     ATTRIBUTE17,
72     ATTRIBUTE18,
73     ATTRIBUTE19,
74     ATTRIBUTE20,
75     ATTRIBUTE21,
76     ATTRIBUTE22,
77     ATTRIBUTE23,
78     ATTRIBUTE24,
79     ATTRIBUTE25,
80     ATTRIBUTE26,
81     ATTRIBUTE27,
82     ATTRIBUTE28,
83     ATTRIBUTE29,
84     ATTRIBUTE30,
85     ATTRIBUTE_CATEGORY,
86     CREATION_DATE,
87     CREATED_BY,
88     LAST_UPDATE_DATE,
89     LAST_UPDATED_BY,
90     LAST_UPDATE_LOGIN,
91     TEST_GROUP_ENABLED
92   ) values (
93     X_TEST_CLASS,
94     X_DELETE_MARK,
95     X_TEXT_CODE,
96     X_ATTRIBUTE1,
97     X_ATTRIBUTE2,
98     X_ATTRIBUTE3,
99     X_ATTRIBUTE4,
100     X_ATTRIBUTE5,
101     X_ATTRIBUTE6,
102     X_ATTRIBUTE7,
103     X_ATTRIBUTE8,
104     X_ATTRIBUTE9,
105     X_ATTRIBUTE10,
106     X_ATTRIBUTE11,
107     X_ATTRIBUTE12,
108     X_ATTRIBUTE13,
109     X_ATTRIBUTE14,
110     X_ATTRIBUTE15,
111     X_ATTRIBUTE16,
112     X_ATTRIBUTE17,
113     X_ATTRIBUTE18,
114     X_ATTRIBUTE19,
115     X_ATTRIBUTE20,
116     X_ATTRIBUTE21,
117     X_ATTRIBUTE22,
118     X_ATTRIBUTE23,
119     X_ATTRIBUTE24,
120     X_ATTRIBUTE25,
121     X_ATTRIBUTE26,
122     X_ATTRIBUTE27,
123     X_ATTRIBUTE28,
124     X_ATTRIBUTE29,
125     X_ATTRIBUTE30,
126     X_ATTRIBUTE_CATEGORY,
127     X_CREATION_DATE,
128     X_CREATED_BY,
129     X_LAST_UPDATE_DATE,
130     X_LAST_UPDATED_BY,
131     X_LAST_UPDATE_LOGIN,
132     X_TEST_GROUP_ENABLED
133   );
134 
135   insert into GMD_TEST_CLASSES_TL (
136     TEST_CLASS,
137     TEST_CLASS_DESC,
138     CREATION_DATE,
139     CREATED_BY,
140     LAST_UPDATE_DATE,
141     LAST_UPDATED_BY,
142     LAST_UPDATE_LOGIN,
143     LANGUAGE,
144     SOURCE_LANG
145   ) select
146     X_TEST_CLASS,
147     X_TEST_CLASS_DESC,
148     X_CREATION_DATE,
149     X_CREATED_BY,
150     X_LAST_UPDATE_DATE,
151     X_LAST_UPDATED_BY,
152     X_LAST_UPDATE_LOGIN,
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 GMD_TEST_CLASSES_TL T
160     where T.TEST_CLASS = X_TEST_CLASS
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_TEST_CLASS in VARCHAR2,
175   X_DELETE_MARK in NUMBER,
176   X_TEXT_CODE in NUMBER,
177   X_TEST_GROUP_ENABLED in VARCHAR2,
178   X_ATTRIBUTE1 in VARCHAR2,
179   X_ATTRIBUTE2 in VARCHAR2,
180   X_ATTRIBUTE3 in VARCHAR2,
181   X_ATTRIBUTE4 in VARCHAR2,
182   X_ATTRIBUTE5 in VARCHAR2,
183   X_ATTRIBUTE6 in VARCHAR2,
184   X_ATTRIBUTE7 in VARCHAR2,
185   X_ATTRIBUTE8 in VARCHAR2,
186   X_ATTRIBUTE9 in VARCHAR2,
187   X_ATTRIBUTE10 in VARCHAR2,
188   X_ATTRIBUTE11 in VARCHAR2,
189   X_ATTRIBUTE12 in VARCHAR2,
190   X_ATTRIBUTE13 in VARCHAR2,
191   X_ATTRIBUTE14 in VARCHAR2,
192   X_ATTRIBUTE15 in VARCHAR2,
193   X_ATTRIBUTE16 in VARCHAR2,
194   X_ATTRIBUTE17 in VARCHAR2,
195   X_ATTRIBUTE18 in VARCHAR2,
196   X_ATTRIBUTE19 in VARCHAR2,
197   X_ATTRIBUTE20 in VARCHAR2,
198   X_ATTRIBUTE21 in VARCHAR2,
199   X_ATTRIBUTE22 in VARCHAR2,
200   X_ATTRIBUTE23 in VARCHAR2,
201   X_ATTRIBUTE24 in VARCHAR2,
202   X_ATTRIBUTE25 in VARCHAR2,
203   X_ATTRIBUTE26 in VARCHAR2,
204   X_ATTRIBUTE27 in VARCHAR2,
205   X_ATTRIBUTE28 in VARCHAR2,
206   X_ATTRIBUTE29 in VARCHAR2,
207   X_ATTRIBUTE30 in VARCHAR2,
208   X_ATTRIBUTE_CATEGORY in VARCHAR2,
209   X_TEST_CLASS_DESC in VARCHAR2
210 ) is
211   cursor c is select
212       DELETE_MARK,
213       TEXT_CODE,
214       TEST_GROUP_ENABLED,
215       ATTRIBUTE1,
216       ATTRIBUTE2,
217       ATTRIBUTE3,
218       ATTRIBUTE4,
219       ATTRIBUTE5,
220       ATTRIBUTE6,
221       ATTRIBUTE7,
222       ATTRIBUTE8,
223       ATTRIBUTE9,
224       ATTRIBUTE10,
225       ATTRIBUTE11,
226       ATTRIBUTE12,
227       ATTRIBUTE13,
228       ATTRIBUTE14,
229       ATTRIBUTE15,
230       ATTRIBUTE16,
231       ATTRIBUTE17,
232       ATTRIBUTE18,
233       ATTRIBUTE19,
234       ATTRIBUTE20,
235       ATTRIBUTE21,
236       ATTRIBUTE22,
237       ATTRIBUTE23,
238       ATTRIBUTE24,
239       ATTRIBUTE25,
240       ATTRIBUTE26,
241       ATTRIBUTE27,
242       ATTRIBUTE28,
243       ATTRIBUTE29,
244       ATTRIBUTE30,
245       ATTRIBUTE_CATEGORY
246     from GMD_TEST_CLASSES_B
247     where TEST_CLASS = X_TEST_CLASS
248     for update of TEST_CLASS nowait;
249   recinfo c%rowtype;
250 
251   cursor c1 is select
252       TEST_CLASS_DESC,
253       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
254     from GMD_TEST_CLASSES_TL
255     where TEST_CLASS = X_TEST_CLASS
256     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
257     for update of TEST_CLASS 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.DELETE_MARK = X_DELETE_MARK)
268       AND ((recinfo.TEXT_CODE = X_TEXT_CODE)
269            OR ((recinfo.TEXT_CODE is null) AND (X_TEXT_CODE is null)))
270       AND ((recinfo.TEST_GROUP_ENABLED = X_TEST_GROUP_ENABLED)
271            OR ((recinfo.TEST_GROUP_ENABLED is null) AND (X_TEST_GROUP_ENABLED is null)))
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.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
333            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY 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.TEST_CLASS_DESC = X_TEST_CLASS_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_TEST_CLASS in VARCHAR2,
357   X_DELETE_MARK in NUMBER,
358   X_TEXT_CODE in NUMBER,
359   X_TEST_GROUP_ENABLED in VARCHAR2,
360   X_ATTRIBUTE1 in VARCHAR2,
361   X_ATTRIBUTE2 in VARCHAR2,
362   X_ATTRIBUTE3 in VARCHAR2,
363   X_ATTRIBUTE4 in VARCHAR2,
364   X_ATTRIBUTE5 in VARCHAR2,
365   X_ATTRIBUTE6 in VARCHAR2,
366   X_ATTRIBUTE7 in VARCHAR2,
367   X_ATTRIBUTE8 in VARCHAR2,
368   X_ATTRIBUTE9 in VARCHAR2,
369   X_ATTRIBUTE10 in VARCHAR2,
370   X_ATTRIBUTE11 in VARCHAR2,
371   X_ATTRIBUTE12 in VARCHAR2,
372   X_ATTRIBUTE13 in VARCHAR2,
373   X_ATTRIBUTE14 in VARCHAR2,
374   X_ATTRIBUTE15 in VARCHAR2,
375   X_ATTRIBUTE16 in VARCHAR2,
376   X_ATTRIBUTE17 in VARCHAR2,
377   X_ATTRIBUTE18 in VARCHAR2,
378   X_ATTRIBUTE19 in VARCHAR2,
379   X_ATTRIBUTE20 in VARCHAR2,
380   X_ATTRIBUTE21 in VARCHAR2,
381   X_ATTRIBUTE22 in VARCHAR2,
382   X_ATTRIBUTE23 in VARCHAR2,
383   X_ATTRIBUTE24 in VARCHAR2,
384   X_ATTRIBUTE25 in VARCHAR2,
385   X_ATTRIBUTE26 in VARCHAR2,
386   X_ATTRIBUTE27 in VARCHAR2,
387   X_ATTRIBUTE28 in VARCHAR2,
388   X_ATTRIBUTE29 in VARCHAR2,
389   X_ATTRIBUTE30 in VARCHAR2,
390   X_ATTRIBUTE_CATEGORY in VARCHAR2,
391   X_TEST_CLASS_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 GMD_TEST_CLASSES_B set
398     DELETE_MARK = X_DELETE_MARK,
399     TEXT_CODE = X_TEXT_CODE,
400     TEST_GROUP_ENABLED = X_TEST_GROUP_ENABLED,
401     ATTRIBUTE1 = X_ATTRIBUTE1,
402     ATTRIBUTE2 = X_ATTRIBUTE2,
403     ATTRIBUTE3 = X_ATTRIBUTE3,
404     ATTRIBUTE4 = X_ATTRIBUTE4,
405     ATTRIBUTE5 = X_ATTRIBUTE5,
406     ATTRIBUTE6 = X_ATTRIBUTE6,
407     ATTRIBUTE7 = X_ATTRIBUTE7,
408     ATTRIBUTE8 = X_ATTRIBUTE8,
409     ATTRIBUTE9 = X_ATTRIBUTE9,
410     ATTRIBUTE10 = X_ATTRIBUTE10,
411     ATTRIBUTE11 = X_ATTRIBUTE11,
412     ATTRIBUTE12 = X_ATTRIBUTE12,
413     ATTRIBUTE13 = X_ATTRIBUTE13,
414     ATTRIBUTE14 = X_ATTRIBUTE14,
415     ATTRIBUTE15 = X_ATTRIBUTE15,
416     ATTRIBUTE16 = X_ATTRIBUTE16,
417     ATTRIBUTE17 = X_ATTRIBUTE17,
418     ATTRIBUTE18 = X_ATTRIBUTE18,
419     ATTRIBUTE19 = X_ATTRIBUTE19,
420     ATTRIBUTE20 = X_ATTRIBUTE20,
421     ATTRIBUTE21 = X_ATTRIBUTE21,
422     ATTRIBUTE22 = X_ATTRIBUTE22,
423     ATTRIBUTE23 = X_ATTRIBUTE23,
424     ATTRIBUTE24 = X_ATTRIBUTE24,
425     ATTRIBUTE25 = X_ATTRIBUTE25,
426     ATTRIBUTE26 = X_ATTRIBUTE26,
427     ATTRIBUTE27 = X_ATTRIBUTE27,
428     ATTRIBUTE28 = X_ATTRIBUTE28,
429     ATTRIBUTE29 = X_ATTRIBUTE29,
430     ATTRIBUTE30 = X_ATTRIBUTE30,
431     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
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 TEST_CLASS = X_TEST_CLASS;
436 
437   if (sql%notfound) then
438     raise no_data_found;
439   end if;
440 
441   update GMD_TEST_CLASSES_TL set
442     TEST_CLASS_DESC = X_TEST_CLASS_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 TEST_CLASS = X_TEST_CLASS
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_TEST_CLASS in VARCHAR2
457 ) is
458 begin
459   delete from GMD_TEST_CLASSES_TL
460   where TEST_CLASS = X_TEST_CLASS;
461 
462   if (sql%notfound) then
463     raise no_data_found;
464   end if;
465 
466   delete from GMD_TEST_CLASSES_B
467   where TEST_CLASS = X_TEST_CLASS;
468 
469   if (sql%notfound) then
470     raise no_data_found;
471   end if;
472 end DELETE_ROW;
473 
474 procedure ADD_LANGUAGE
475 is
476 begin
477   delete from GMD_TEST_CLASSES_TL T
478   where not exists
479     (select NULL
480     from GMD_TEST_CLASSES_B B
481     where B.TEST_CLASS = T.TEST_CLASS
482     );
483 
484   update GMD_TEST_CLASSES_TL T set (
485       TEST_CLASS_DESC
486     ) = (select
487       B.TEST_CLASS_DESC
488     from GMD_TEST_CLASSES_TL B
489     where B.TEST_CLASS = T.TEST_CLASS
490     and B.LANGUAGE = T.SOURCE_LANG)
491   where (
492       T.TEST_CLASS,
493       T.LANGUAGE
494   ) in (select
495       SUBT.TEST_CLASS,
496       SUBT.LANGUAGE
497     from GMD_TEST_CLASSES_TL SUBB, GMD_TEST_CLASSES_TL SUBT
498     where SUBB.TEST_CLASS = SUBT.TEST_CLASS
499     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
500     and (SUBB.TEST_CLASS_DESC <> SUBT.TEST_CLASS_DESC
501   ));
502 
503   insert into GMD_TEST_CLASSES_TL (
504     TEST_CLASS,
505     TEST_CLASS_DESC,
506     CREATION_DATE,
507     CREATED_BY,
508     LAST_UPDATE_DATE,
509     LAST_UPDATED_BY,
510     LAST_UPDATE_LOGIN,
511     LANGUAGE,
512     SOURCE_LANG
513   ) select
514     B.TEST_CLASS,
515     B.TEST_CLASS_DESC,
516     B.CREATION_DATE,
517     B.CREATED_BY,
518     B.LAST_UPDATE_DATE,
519     B.LAST_UPDATED_BY,
520     B.LAST_UPDATE_LOGIN,
521     L.LANGUAGE_CODE,
522     B.SOURCE_LANG
523   from GMD_TEST_CLASSES_TL B, FND_LANGUAGES L
524   where L.INSTALLED_FLAG in ('I', 'B')
525   and B.LANGUAGE = userenv('LANG')
526   and not exists
527     (select NULL
528     from GMD_TEST_CLASSES_TL T
529     where T.TEST_CLASS = B.TEST_CLASS
530     and T.LANGUAGE = L.LANGUAGE_CODE);
531 end ADD_LANGUAGE;
532 end GMD_TEST_CLASSES_PVT;