DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMD_HOLD_REASONS_PVT

Source


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