DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMD_QC_TESTS_PVT

Source


1 PACKAGE BODY gmd_qc_tests_pvt AS
2 /* $Header: GMDVTSTB.pls 115.8 2004/05/05 09:47:18 rboddu noship $ */
3 PROCEDURE insert_row (
4   X_ROWID in out NOCOPY ROWID,
5   X_TEST_ID in out NOCOPY NUMBER,
6   X_TEST_OPRN_LINE_ID in NUMBER,
7   X_TEST_PROVIDER_CODE in VARCHAR2,
8   X_DELETE_MARK in NUMBER,
9   X_TEXT_CODE in NUMBER,
10   X_ATTRIBUTE_CATEGORY in VARCHAR2,
11   X_ATTRIBUTE1 in VARCHAR2,
12   X_ATTRIBUTE2 in VARCHAR2,
13   X_ATTRIBUTE3 in VARCHAR2,
14   X_ATTRIBUTE4 in VARCHAR2,
15   X_ATTRIBUTE5 in VARCHAR2,
16   X_ATTRIBUTE6 in VARCHAR2,
17   X_ATTRIBUTE7 in VARCHAR2,
18   X_ATTRIBUTE8 in VARCHAR2,
19   X_ATTRIBUTE9 in VARCHAR2,
20   X_ATTRIBUTE10 in VARCHAR2,
21   X_ATTRIBUTE11 in VARCHAR2,
22   X_ATTRIBUTE12 in VARCHAR2,
23   X_ATTRIBUTE13 in VARCHAR2,
24   X_ATTRIBUTE14 in VARCHAR2,
25   X_ATTRIBUTE15 in VARCHAR2,
26   X_ATTRIBUTE16 in VARCHAR2,
27   X_ATTRIBUTE17 in VARCHAR2,
28   X_ATTRIBUTE18 in VARCHAR2,
29   X_ATTRIBUTE19 in VARCHAR2,
30   X_ATTRIBUTE20 in VARCHAR2,
31   X_ATTRIBUTE21 in VARCHAR2,
32   X_ATTRIBUTE22 in VARCHAR2,
33   X_ATTRIBUTE23 in VARCHAR2,
34   X_ATTRIBUTE24 in VARCHAR2,
35   X_ATTRIBUTE25 in VARCHAR2,
36   X_ATTRIBUTE26 in VARCHAR2,
37   X_ATTRIBUTE27 in VARCHAR2,
38   X_ATTRIBUTE28 in VARCHAR2,
39   X_ATTRIBUTE29 in VARCHAR2,
40   X_ATTRIBUTE30 in VARCHAR2,
41   X_TEST_CODE in VARCHAR2,
42   X_TEST_METHOD_ID in NUMBER,
43   X_TEST_CLASS in VARCHAR2,
44   X_TEST_TYPE in VARCHAR2,
45   X_TEST_UNIT in VARCHAR2,
46   X_MIN_VALUE_NUM in NUMBER,
47   X_MAX_VALUE_NUM in NUMBER,
48   X_EXP_ERROR_TYPE in VARCHAR2,
49   X_BELOW_SPEC_MIN in NUMBER,
50   X_ABOVE_SPEC_MIN in NUMBER,
51   X_BELOW_SPEC_MAX in NUMBER,
52   X_ABOVE_SPEC_MAX in NUMBER,
53   X_BELOW_MIN_ACTION_CODE in VARCHAR2,
54   X_ABOVE_MIN_ACTION_CODE in VARCHAR2,
55   X_BELOW_MAX_ACTION_CODE in VARCHAR2,
56   X_ABOVE_MAX_ACTION_CODE in VARCHAR2,
57   X_EXPRESSION in VARCHAR2,
58   X_DISPLAY_PRECISION in NUMBER,
59   X_REPORT_PRECISION in NUMBER,
60   X_PRIORITY in VARCHAR2,
61   X_TEST_OPRN_ID in NUMBER,
62   X_TEST_DESC in VARCHAR2,
63   X_CREATION_DATE in DATE,
64   X_CREATED_BY in NUMBER,
65   X_LAST_UPDATE_DATE in DATE,
66   X_LAST_UPDATED_BY in NUMBER,
67   X_LAST_UPDATE_LOGIN in NUMBER,
68   X_TEST_GROUP_ORDER IN NUMBER
69 ) is
70   CURSOR C IS SELECT ROWID FROM gmd_qc_tests_b
71     WHERE TEST_ID = X_TEST_ID
72     ;
73 
74 BEGIN
75 
76   IF X_TEST_ID IS NULL THEN
77      SELECT GMD_QC_TEST_ID_S.NEXTVAL INTO X_TEST_ID FROM DUAL;
78   END IF;
79 
80   insert into GMD_QC_TESTS_B (
81     TEST_OPRN_LINE_ID,
82     TEST_PROVIDER_CODE,
83     DELETE_MARK,
84     TEXT_CODE,
85     ATTRIBUTE_CATEGORY,
86     ATTRIBUTE1,
87     ATTRIBUTE2,
88     ATTRIBUTE3,
89     ATTRIBUTE4,
90     ATTRIBUTE5,
91     ATTRIBUTE6,
92     ATTRIBUTE7,
93     ATTRIBUTE8,
94     ATTRIBUTE9,
95     ATTRIBUTE10,
96     ATTRIBUTE11,
97     ATTRIBUTE12,
98     ATTRIBUTE13,
99     ATTRIBUTE14,
100     ATTRIBUTE15,
101     ATTRIBUTE16,
102     ATTRIBUTE17,
103     ATTRIBUTE18,
104     ATTRIBUTE19,
105     ATTRIBUTE20,
106     ATTRIBUTE21,
107     ATTRIBUTE22,
108     ATTRIBUTE23,
109     ATTRIBUTE24,
110     ATTRIBUTE25,
111     ATTRIBUTE26,
112     ATTRIBUTE27,
113     ATTRIBUTE28,
114     ATTRIBUTE29,
115     ATTRIBUTE30,
116     TEST_ID,
117     TEST_CODE,
118     TEST_METHOD_ID,
119     TEST_CLASS,
120     TEST_TYPE,
121     TEST_UNIT,
122     MIN_VALUE_NUM,
123     MAX_VALUE_NUM,
124     EXP_ERROR_TYPE,
125     BELOW_SPEC_MIN,
126     ABOVE_SPEC_MIN,
127     BELOW_SPEC_MAX,
128     ABOVE_SPEC_MAX,
129     BELOW_MIN_ACTION_CODE,
130     ABOVE_MIN_ACTION_CODE,
131     BELOW_MAX_ACTION_CODE,
132     ABOVE_MAX_ACTION_CODE,
133     EXPRESSION,
134     DISPLAY_PRECISION,
135     REPORT_PRECISION,
136     PRIORITY,
137     TEST_OPRN_ID,
138     CREATION_DATE,
139     CREATED_BY,
140     LAST_UPDATE_DATE,
141     LAST_UPDATED_BY,
142     LAST_UPDATE_LOGIN,
143     TEST_GROUP_ORDER
144   ) values (
145     X_TEST_OPRN_LINE_ID,
146     X_TEST_PROVIDER_CODE,
147     X_DELETE_MARK,
148     X_TEXT_CODE,
149     X_ATTRIBUTE_CATEGORY,
150     X_ATTRIBUTE1,
151     X_ATTRIBUTE2,
152     X_ATTRIBUTE3,
153     X_ATTRIBUTE4,
154     X_ATTRIBUTE5,
155     X_ATTRIBUTE6,
156     X_ATTRIBUTE7,
157     X_ATTRIBUTE8,
158     X_ATTRIBUTE9,
159     X_ATTRIBUTE10,
160     X_ATTRIBUTE11,
161     X_ATTRIBUTE12,
162     X_ATTRIBUTE13,
163     X_ATTRIBUTE14,
164     X_ATTRIBUTE15,
165     X_ATTRIBUTE16,
166     X_ATTRIBUTE17,
167     X_ATTRIBUTE18,
168     X_ATTRIBUTE19,
169     X_ATTRIBUTE20,
170     X_ATTRIBUTE21,
171     X_ATTRIBUTE22,
172     X_ATTRIBUTE23,
173     X_ATTRIBUTE24,
174     X_ATTRIBUTE25,
175     X_ATTRIBUTE26,
176     X_ATTRIBUTE27,
177     X_ATTRIBUTE28,
178     X_ATTRIBUTE29,
179     X_ATTRIBUTE30,
180     X_TEST_ID,
181     X_TEST_CODE,
182     X_TEST_METHOD_ID,
183     X_TEST_CLASS,
184     X_TEST_TYPE,
185     X_TEST_UNIT,
186     X_MIN_VALUE_NUM,
187     X_MAX_VALUE_NUM,
188     X_EXP_ERROR_TYPE,
189     X_BELOW_SPEC_MIN,
190     X_ABOVE_SPEC_MIN,
191     X_BELOW_SPEC_MAX,
192     X_ABOVE_SPEC_MAX,
193     X_BELOW_MIN_ACTION_CODE,
194     X_ABOVE_MIN_ACTION_CODE,
195     X_BELOW_MAX_ACTION_CODE,
196     X_ABOVE_MAX_ACTION_CODE,
197     X_EXPRESSION,
198     X_DISPLAY_PRECISION,
199     X_REPORT_PRECISION,
200     X_PRIORITY,
201     X_TEST_OPRN_ID,
202     NVL(X_CREATION_DATE,SYSDATE),
203     NVL(X_CREATED_BY,FND_GLOBAL.USER_ID),
204     NVL(X_LAST_UPDATE_DATE,SYSDATE),
205     NVL(X_LAST_UPDATED_BY,FND_GLOBAL.USER_ID),
206     NVL(X_LAST_UPDATE_LOGIN,FND_GLOBAL.LOGIN_ID),
207     X_TEST_GROUP_ORDER
208   );
209 
210   insert into GMD_QC_TESTS_TL (
211     TEST_ID,
212     TEST_DESC,
213     CREATION_DATE,
214     CREATED_BY,
215     LAST_UPDATED_BY,
216     LAST_UPDATE_DATE,
217     LAST_UPDATE_LOGIN,
218     LANGUAGE,
219     SOURCE_LANG
220   ) select
221     X_TEST_ID,
222     X_TEST_DESC,
223     NVL(X_CREATION_DATE,SYSDATE),
224     NVL(X_CREATED_BY,FND_GLOBAL.USER_ID),
225     NVL(X_LAST_UPDATED_BY,FND_GLOBAL.USER_ID),
226     NVL(X_LAST_UPDATE_DATE,SYSDATE),
227     NVL(X_LAST_UPDATE_LOGIN,FND_GLOBAL.LOGIN_ID),
228     L.LANGUAGE_CODE,
229     userenv('LANG')
230   from FND_LANGUAGES L
231   where L.INSTALLED_FLAG in ('I', 'B')
232   and not exists
233     (select NULL
234     from GMD_QC_TESTS_TL T
235     where T.TEST_ID = X_TEST_ID
236     and T.LANGUAGE = L.LANGUAGE_CODE);
237 
238   open c;
239   fetch c into X_ROWID;
240   if (c%notfound) then
241     close c;
242     raise no_data_found;
243   end if;
244   close c;
245 
246 end INSERT_ROW;
247 
248 FUNCTION INSERT_ROW(p_qc_tests_rec IN OUT NOCOPY GMD_QC_TESTS%ROWTYPE)
249 RETURN BOOLEAN IS
250 l_rowid ROWID ;
251 BEGIN
252 
253 	  GMD_QC_TESTS_PVT.INSERT_ROW(
254     X_ROWID => l_rowid,
255     X_TEST_ID => p_qc_tests_rec.TEST_ID,
256     X_TEST_OPRN_LINE_ID => p_qc_tests_rec.TEST_OPRN_LINE_ID,
257     X_TEST_PROVIDER_CODE => p_qc_tests_rec.TEST_PROVIDER_CODE,
258     X_DELETE_MARK => p_qc_tests_rec.DELETE_MARK,
259     X_TEXT_CODE => p_qc_tests_rec.TEXT_CODE,
260     X_ATTRIBUTE_CATEGORY => p_qc_tests_rec.ATTRIBUTE_CATEGORY,
261     X_ATTRIBUTE1 => p_qc_tests_rec.ATTRIBUTE1,
262     X_ATTRIBUTE2 => p_qc_tests_rec.ATTRIBUTE2,
263     X_ATTRIBUTE3 => p_qc_tests_rec.ATTRIBUTE3,
264     X_ATTRIBUTE4 => p_qc_tests_rec.ATTRIBUTE4,
265     X_ATTRIBUTE5 => p_qc_tests_rec.ATTRIBUTE5,
266     X_ATTRIBUTE6 => p_qc_tests_rec.ATTRIBUTE6,
267     X_ATTRIBUTE7 => p_qc_tests_rec.ATTRIBUTE7,
268     X_ATTRIBUTE8 => p_qc_tests_rec.ATTRIBUTE8,
269     X_ATTRIBUTE9 => p_qc_tests_rec.ATTRIBUTE9,
270     X_ATTRIBUTE10 => p_qc_tests_rec.ATTRIBUTE10,
271     X_ATTRIBUTE11 => p_qc_tests_rec.ATTRIBUTE11,
272     X_ATTRIBUTE12 => p_qc_tests_rec.ATTRIBUTE12,
273     X_ATTRIBUTE13 => p_qc_tests_rec.ATTRIBUTE13,
274     X_ATTRIBUTE14 => p_qc_tests_rec.ATTRIBUTE14,
275     X_ATTRIBUTE15 => p_qc_tests_rec.ATTRIBUTE15,
276     X_ATTRIBUTE16 => p_qc_tests_rec.ATTRIBUTE16,
277     X_ATTRIBUTE17 => p_qc_tests_rec.ATTRIBUTE17,
278     X_ATTRIBUTE18 => p_qc_tests_rec.ATTRIBUTE18,
279     X_ATTRIBUTE19 => p_qc_tests_rec.ATTRIBUTE19,
280     X_ATTRIBUTE20 => p_qc_tests_rec.ATTRIBUTE20,
281     X_ATTRIBUTE21 => p_qc_tests_rec.ATTRIBUTE21,
282     X_ATTRIBUTE22 => p_qc_tests_rec.ATTRIBUTE22,
283     X_ATTRIBUTE23 => p_qc_tests_rec.ATTRIBUTE23,
284     X_ATTRIBUTE24 => p_qc_tests_rec.ATTRIBUTE24,
285     X_ATTRIBUTE25 => p_qc_tests_rec.ATTRIBUTE25,
286     X_ATTRIBUTE26 => p_qc_tests_rec.ATTRIBUTE26,
287     X_ATTRIBUTE27 => p_qc_tests_rec.ATTRIBUTE27,
288     X_ATTRIBUTE28 => p_qc_tests_rec.ATTRIBUTE28,
289     X_ATTRIBUTE29 => p_qc_tests_rec.ATTRIBUTE29,
290     X_ATTRIBUTE30 => p_qc_tests_rec.ATTRIBUTE30,
291     X_TEST_CODE => p_qc_tests_rec.TEST_CODE,
292     X_TEST_METHOD_ID => p_qc_tests_rec.TEST_METHOD_ID,
293     X_TEST_CLASS => p_qc_tests_rec.TEST_CLASS,
294     X_TEST_TYPE => p_qc_tests_rec.TEST_TYPE,
295     X_TEST_UNIT => p_qc_tests_rec.TEST_UNIT,
296     X_MIN_VALUE_NUM => p_qc_tests_rec.MIN_VALUE_NUM,
297     X_MAX_VALUE_NUM => p_qc_tests_rec.MAX_VALUE_NUM,
298     X_EXP_ERROR_TYPE => p_qc_tests_rec.EXP_ERROR_TYPE,
299     X_BELOW_SPEC_MIN => p_qc_tests_rec.BELOW_SPEC_MIN,
300     X_ABOVE_SPEC_MIN => p_qc_tests_rec.ABOVE_SPEC_MIN,
301     X_BELOW_SPEC_MAX => p_qc_tests_rec.BELOW_SPEC_MAX,
302     X_ABOVE_SPEC_MAX => p_qc_tests_rec.ABOVE_SPEC_MAX,
303     X_BELOW_MIN_ACTION_CODE => p_qc_tests_rec.BELOW_MIN_ACTION_CODE,
304     X_ABOVE_MIN_ACTION_CODE => p_qc_tests_rec.ABOVE_MIN_ACTION_CODE,
305     X_BELOW_MAX_ACTION_CODE => p_qc_tests_rec.BELOW_MAX_ACTION_CODE,
306     X_ABOVE_MAX_ACTION_CODE => p_qc_tests_rec.ABOVE_MAX_ACTION_CODE,
307     X_EXPRESSION => p_qc_tests_rec.EXPRESSION,
308     X_DISPLAY_PRECISION => p_qc_tests_rec.DISPLAY_PRECISION,
309     X_REPORT_PRECISION => p_qc_tests_rec.REPORT_PRECISION,
310     X_PRIORITY => p_qc_tests_rec.PRIORITY,
311     X_TEST_OPRN_ID => p_qc_tests_rec.TEST_OPRN_ID,
312     X_TEST_DESC => p_qc_tests_rec.TEST_DESC,
313     X_CREATION_DATE => p_qc_tests_rec.CREATION_DATE,
314     X_CREATED_BY => p_qc_tests_rec.CREATED_BY,
315     X_LAST_UPDATE_DATE => p_qc_tests_rec.LAST_UPDATE_DATE,
316     X_LAST_UPDATED_BY => p_qc_tests_rec.LAST_UPDATED_BY,
317     X_LAST_UPDATE_LOGIN => p_qc_tests_rec.LAST_UPDATE_LOGIN,
318     X_TEST_GROUP_ORDER => p_qc_tests_rec.TEST_GROUP_ORDER);
319 
320     return TRUE;
321 
322 EXCEPTION WHEN OTHERS THEN
323     gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_QC_TESTS_PVT.INSERT_ROW','ERROR',
324     SUBSTR(SQLERRM,1,100),'POSITION','010');
325 RETURN FALSE;
326 
327 END INSERT_ROW;
328 
329 procedure LOCK_ROW (
330   X_TEST_ID in NUMBER,
331   X_TEST_OPRN_LINE_ID in NUMBER,
332   X_TEST_PROVIDER_CODE in VARCHAR2,
333   X_DELETE_MARK in NUMBER,
334   X_TEXT_CODE in NUMBER,
335   X_ATTRIBUTE_CATEGORY in VARCHAR2,
336   X_ATTRIBUTE1 in VARCHAR2,
337   X_ATTRIBUTE2 in VARCHAR2,
338   X_ATTRIBUTE3 in VARCHAR2,
339   X_ATTRIBUTE4 in VARCHAR2,
340   X_ATTRIBUTE5 in VARCHAR2,
341   X_ATTRIBUTE6 in VARCHAR2,
342   X_ATTRIBUTE7 in VARCHAR2,
343   X_ATTRIBUTE8 in VARCHAR2,
344   X_ATTRIBUTE9 in VARCHAR2,
345   X_ATTRIBUTE10 in VARCHAR2,
346   X_ATTRIBUTE11 in VARCHAR2,
347   X_ATTRIBUTE12 in VARCHAR2,
348   X_ATTRIBUTE13 in VARCHAR2,
349   X_ATTRIBUTE14 in VARCHAR2,
350   X_ATTRIBUTE15 in VARCHAR2,
351   X_ATTRIBUTE16 in VARCHAR2,
352   X_ATTRIBUTE17 in VARCHAR2,
353   X_ATTRIBUTE18 in VARCHAR2,
354   X_ATTRIBUTE19 in VARCHAR2,
355   X_ATTRIBUTE20 in VARCHAR2,
356   X_ATTRIBUTE21 in VARCHAR2,
357   X_ATTRIBUTE22 in VARCHAR2,
358   X_ATTRIBUTE23 in VARCHAR2,
359   X_ATTRIBUTE24 in VARCHAR2,
360   X_ATTRIBUTE25 in VARCHAR2,
361   X_ATTRIBUTE26 in VARCHAR2,
362   X_ATTRIBUTE27 in VARCHAR2,
363   X_ATTRIBUTE28 in VARCHAR2,
364   X_ATTRIBUTE29 in VARCHAR2,
365   X_ATTRIBUTE30 in VARCHAR2,
366   X_TEST_CODE in VARCHAR2,
367   X_TEST_METHOD_ID in NUMBER,
368   X_TEST_CLASS in VARCHAR2,
369   X_TEST_TYPE in VARCHAR2,
370   X_TEST_UNIT in VARCHAR2,
371   X_MIN_VALUE_NUM in NUMBER,
372   X_MAX_VALUE_NUM in NUMBER,
373   X_EXP_ERROR_TYPE in VARCHAR2,
374   X_BELOW_SPEC_MIN in NUMBER,
375   X_ABOVE_SPEC_MIN in NUMBER,
376   X_BELOW_SPEC_MAX in NUMBER,
377   X_ABOVE_SPEC_MAX in NUMBER,
378   X_BELOW_MIN_ACTION_CODE in VARCHAR2,
379   X_ABOVE_MIN_ACTION_CODE in VARCHAR2,
380   X_BELOW_MAX_ACTION_CODE in VARCHAR2,
381   X_ABOVE_MAX_ACTION_CODE in VARCHAR2,
382   X_EXPRESSION in VARCHAR2,
383   X_DISPLAY_PRECISION in NUMBER,
384   X_REPORT_PRECISION in NUMBER,
385   X_PRIORITY in VARCHAR2,
386   X_TEST_OPRN_ID in NUMBER,
387   X_TEST_DESC in VARCHAR2,
388   X_TEST_GROUP_ORDER IN NUMBER
389 ) is
390   cursor c is select
391       TEST_OPRN_LINE_ID,
392       TEST_PROVIDER_CODE,
393       DELETE_MARK,
394       TEXT_CODE,
395       ATTRIBUTE_CATEGORY,
396       ATTRIBUTE1,
397       ATTRIBUTE2,
398       ATTRIBUTE3,
399       ATTRIBUTE4,
400       ATTRIBUTE5,
401       ATTRIBUTE6,
402       ATTRIBUTE7,
403       ATTRIBUTE8,
404       ATTRIBUTE9,
405       ATTRIBUTE10,
406       ATTRIBUTE11,
407       ATTRIBUTE12,
408       ATTRIBUTE13,
409       ATTRIBUTE14,
410       ATTRIBUTE15,
411       ATTRIBUTE16,
412       ATTRIBUTE17,
413       ATTRIBUTE18,
414       ATTRIBUTE19,
415       ATTRIBUTE20,
416       ATTRIBUTE21,
417       ATTRIBUTE22,
418       ATTRIBUTE23,
419       ATTRIBUTE24,
420       ATTRIBUTE25,
421       ATTRIBUTE26,
422       ATTRIBUTE27,
423       ATTRIBUTE28,
424       ATTRIBUTE29,
425       ATTRIBUTE30,
426       TEST_CODE,
427       TEST_METHOD_ID,
428       TEST_CLASS,
429       TEST_TYPE,
430       TEST_UNIT,
431       MIN_VALUE_NUM,
432       MAX_VALUE_NUM,
433       EXP_ERROR_TYPE,
434       BELOW_SPEC_MIN,
435       ABOVE_SPEC_MIN,
436       BELOW_SPEC_MAX,
437       ABOVE_SPEC_MAX,
438       BELOW_MIN_ACTION_CODE,
439       ABOVE_MIN_ACTION_CODE,
440       BELOW_MAX_ACTION_CODE,
441       ABOVE_MAX_ACTION_CODE,
442       EXPRESSION,
443       DISPLAY_PRECISION,
444       REPORT_PRECISION,
445       PRIORITY,
446       TEST_OPRN_ID,
447       TEST_GROUP_ORDER
448     from GMD_QC_TESTS_B
449     where TEST_ID = X_TEST_ID
450     for update of TEST_ID nowait;
451   recinfo c%rowtype;
452 
453   cursor c1 is select
454       TEST_DESC,
455       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
456     from GMD_QC_TESTS_TL
457     where TEST_ID = X_TEST_ID
458     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
459     for update of TEST_ID nowait;
460 BEGIN
461   open c;
462   fetch c into recinfo;
463   if (c%notfound) then
464     close c;
465     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
466     app_exception.raise_exception;
467   end if;
468   close c;
469   if (    ((recinfo.TEST_OPRN_LINE_ID = X_TEST_OPRN_LINE_ID)
470            OR ((recinfo.TEST_OPRN_LINE_ID is null) AND (X_TEST_OPRN_LINE_ID is null)))
471       AND ((recinfo.TEST_PROVIDER_CODE = X_TEST_PROVIDER_CODE)
472            OR ((recinfo.TEST_PROVIDER_CODE is null) AND (X_TEST_PROVIDER_CODE is null)))
473       AND (recinfo.DELETE_MARK = X_DELETE_MARK)
474       AND ((recinfo.TEXT_CODE = X_TEXT_CODE)
475            OR ((recinfo.TEXT_CODE is null) AND (X_TEXT_CODE is null)))
476       AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
477            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
478       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
479            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
480       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
481            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
482       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
483            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
484       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
485            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
486       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
487            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
488       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
489            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
490       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
491            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
492       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
493            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
494       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
495            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
496       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
497            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
498       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
499            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
500       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
501            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
502       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
503            OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
504       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
505            OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
506       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
507            OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
508       AND ((recinfo.ATTRIBUTE16 = X_ATTRIBUTE16)
509            OR ((recinfo.ATTRIBUTE16 is null) AND (X_ATTRIBUTE16 is null)))
510       AND ((recinfo.ATTRIBUTE17 = X_ATTRIBUTE17)
511            OR ((recinfo.ATTRIBUTE17 is null) AND (X_ATTRIBUTE17 is null)))
512       AND ((recinfo.ATTRIBUTE18 = X_ATTRIBUTE18)
513            OR ((recinfo.ATTRIBUTE18 is null) AND (X_ATTRIBUTE18 is null)))
514       AND ((recinfo.ATTRIBUTE19 = X_ATTRIBUTE19)
515            OR ((recinfo.ATTRIBUTE19 is null) AND (X_ATTRIBUTE19 is null)))
516       AND ((recinfo.ATTRIBUTE20 = X_ATTRIBUTE20)
517            OR ((recinfo.ATTRIBUTE20 is null) AND (X_ATTRIBUTE20 is null)))
518       AND ((recinfo.ATTRIBUTE21 = X_ATTRIBUTE21)
519            OR ((recinfo.ATTRIBUTE21 is null) AND (X_ATTRIBUTE21 is null)))
520       AND ((recinfo.ATTRIBUTE22 = X_ATTRIBUTE22)
521            OR ((recinfo.ATTRIBUTE22 is null) AND (X_ATTRIBUTE22 is null)))
522       AND ((recinfo.ATTRIBUTE23 = X_ATTRIBUTE23)
523            OR ((recinfo.ATTRIBUTE23 is null) AND (X_ATTRIBUTE23 is null)))
524       AND ((recinfo.ATTRIBUTE24 = X_ATTRIBUTE24)
525            OR ((recinfo.ATTRIBUTE24 is null) AND (X_ATTRIBUTE24 is null)))
526       AND ((recinfo.ATTRIBUTE25 = X_ATTRIBUTE25)
527            OR ((recinfo.ATTRIBUTE25 is null) AND (X_ATTRIBUTE25 is null)))
528       AND ((recinfo.ATTRIBUTE26 = X_ATTRIBUTE26)
529            OR ((recinfo.ATTRIBUTE26 is null) AND (X_ATTRIBUTE26 is null)))
530       AND ((recinfo.ATTRIBUTE27 = X_ATTRIBUTE27)
531            OR ((recinfo.ATTRIBUTE27 is null) AND (X_ATTRIBUTE27 is null)))
532       AND ((recinfo.ATTRIBUTE28 = X_ATTRIBUTE28)
533            OR ((recinfo.ATTRIBUTE28 is null) AND (X_ATTRIBUTE28 is null)))
534       AND ((recinfo.ATTRIBUTE29 = X_ATTRIBUTE29)
535            OR ((recinfo.ATTRIBUTE29 is null) AND (X_ATTRIBUTE29 is null)))
536       AND ((recinfo.ATTRIBUTE30 = X_ATTRIBUTE30)
537            OR ((recinfo.ATTRIBUTE30 is null) AND (X_ATTRIBUTE30 is null)))
538       AND (recinfo.TEST_CODE = X_TEST_CODE)
539       AND (recinfo.TEST_METHOD_ID = X_TEST_METHOD_ID)
540       AND ((recinfo.TEST_CLASS = X_TEST_CLASS)
541            OR ((recinfo.TEST_CLASS is null) AND (X_TEST_CLASS is null)))
542       AND (recinfo.TEST_TYPE = X_TEST_TYPE)
543       AND ((recinfo.TEST_UNIT = X_TEST_UNIT)
544            OR ((recinfo.TEST_UNIT is null) AND (X_TEST_UNIT is null)))
545       AND ((recinfo.MIN_VALUE_NUM = X_MIN_VALUE_NUM)
546            OR ((recinfo.MIN_VALUE_NUM is null) AND (X_MIN_VALUE_NUM is null)))
547       AND ((recinfo.MAX_VALUE_NUM = X_MAX_VALUE_NUM)
548            OR ((recinfo.MAX_VALUE_NUM is null) AND (X_MAX_VALUE_NUM is null)))
549       AND ((recinfo.EXP_ERROR_TYPE = X_EXP_ERROR_TYPE)
550            OR ((recinfo.EXP_ERROR_TYPE is null) AND (X_EXP_ERROR_TYPE is null)))
551       AND ((recinfo.BELOW_SPEC_MIN = X_BELOW_SPEC_MIN)
552            OR ((recinfo.BELOW_SPEC_MIN is null) AND (X_BELOW_SPEC_MIN is null)))
553       AND ((recinfo.ABOVE_SPEC_MIN = X_ABOVE_SPEC_MIN)
554            OR ((recinfo.ABOVE_SPEC_MIN is null) AND (X_ABOVE_SPEC_MIN is null)))
555       AND ((recinfo.BELOW_SPEC_MAX = X_BELOW_SPEC_MAX)
556            OR ((recinfo.BELOW_SPEC_MAX is null) AND (X_BELOW_SPEC_MAX is null)))
557       AND ((recinfo.ABOVE_SPEC_MAX = X_ABOVE_SPEC_MAX)
558            OR ((recinfo.ABOVE_SPEC_MAX is null) AND (X_ABOVE_SPEC_MAX is null)))
559       AND ((recinfo.BELOW_MIN_ACTION_CODE = X_BELOW_MIN_ACTION_CODE)
560            OR ((recinfo.BELOW_MIN_ACTION_CODE is null) AND (X_BELOW_MIN_ACTION_CODE is null)))
561       AND ((recinfo.ABOVE_MIN_ACTION_CODE = X_ABOVE_MIN_ACTION_CODE)
562            OR ((recinfo.ABOVE_MIN_ACTION_CODE is null) AND (X_ABOVE_MIN_ACTION_CODE is null)))
563       AND ((recinfo.BELOW_MAX_ACTION_CODE = X_BELOW_MAX_ACTION_CODE)
564            OR ((recinfo.BELOW_MAX_ACTION_CODE is null) AND (X_BELOW_MAX_ACTION_CODE is null)))
565       AND ((recinfo.ABOVE_MAX_ACTION_CODE = X_ABOVE_MAX_ACTION_CODE)
566            OR ((recinfo.ABOVE_MAX_ACTION_CODE is null) AND (X_ABOVE_MAX_ACTION_CODE is null)))
567       AND ((recinfo.EXPRESSION = X_EXPRESSION)
568            OR ((recinfo.EXPRESSION is null) AND (X_EXPRESSION is null)))
569       AND ((recinfo.DISPLAY_PRECISION = X_DISPLAY_PRECISION)
570            OR ((recinfo.DISPLAY_PRECISION is null) AND (X_DISPLAY_PRECISION is null)))
571       AND ((recinfo.REPORT_PRECISION = X_REPORT_PRECISION)
572            OR ((recinfo.REPORT_PRECISION is null) AND (X_REPORT_PRECISION is null)))
573       AND ((recinfo.PRIORITY = X_PRIORITY)
574            OR ((recinfo.PRIORITY is null) AND (X_PRIORITY is null)))
575       AND ((recinfo.TEST_OPRN_ID = X_TEST_OPRN_ID)
576            OR ((recinfo.TEST_OPRN_ID is null) AND (X_TEST_OPRN_ID is null)))
577       AND ((recinfo.TEST_GROUP_ORDER = X_TEST_GROUP_ORDER)
578            OR ((recinfo.TEST_GROUP_ORDER is null) AND (X_TEST_GROUP_ORDER is null)))
579   ) then
580     null;
581   else
582     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
583     app_exception.raise_exception;
584   end if;
585 
586   for tlinfo in c1 loop
587     if (tlinfo.BASELANG = 'Y') then
588       if (    (tlinfo.TEST_DESC = X_TEST_DESC)
589       ) then
590         null;
591       else
592         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
593         app_exception.raise_exception;
594       end if;
595     end if;
596   end loop;
597   return;
598 end LOCK_ROW;
599 
600 procedure UPDATE_ROW (
601   X_TEST_ID in NUMBER,
602   X_TEST_OPRN_LINE_ID in NUMBER,
603   X_TEST_PROVIDER_CODE in VARCHAR2,
604   X_DELETE_MARK in NUMBER,
605   X_TEXT_CODE in NUMBER,
606   X_ATTRIBUTE_CATEGORY in VARCHAR2,
607   X_ATTRIBUTE1 in VARCHAR2,
608   X_ATTRIBUTE2 in VARCHAR2,
609   X_ATTRIBUTE3 in VARCHAR2,
610   X_ATTRIBUTE4 in VARCHAR2,
611   X_ATTRIBUTE5 in VARCHAR2,
612   X_ATTRIBUTE6 in VARCHAR2,
613   X_ATTRIBUTE7 in VARCHAR2,
614   X_ATTRIBUTE8 in VARCHAR2,
615   X_ATTRIBUTE9 in VARCHAR2,
616   X_ATTRIBUTE10 in VARCHAR2,
617   X_ATTRIBUTE11 in VARCHAR2,
618   X_ATTRIBUTE12 in VARCHAR2,
619   X_ATTRIBUTE13 in VARCHAR2,
620   X_ATTRIBUTE14 in VARCHAR2,
621   X_ATTRIBUTE15 in VARCHAR2,
622   X_ATTRIBUTE16 in VARCHAR2,
623   X_ATTRIBUTE17 in VARCHAR2,
624   X_ATTRIBUTE18 in VARCHAR2,
625   X_ATTRIBUTE19 in VARCHAR2,
626   X_ATTRIBUTE20 in VARCHAR2,
627   X_ATTRIBUTE21 in VARCHAR2,
628   X_ATTRIBUTE22 in VARCHAR2,
629   X_ATTRIBUTE23 in VARCHAR2,
630   X_ATTRIBUTE24 in VARCHAR2,
631   X_ATTRIBUTE25 in VARCHAR2,
632   X_ATTRIBUTE26 in VARCHAR2,
633   X_ATTRIBUTE27 in VARCHAR2,
634   X_ATTRIBUTE28 in VARCHAR2,
635   X_ATTRIBUTE29 in VARCHAR2,
636   X_ATTRIBUTE30 in VARCHAR2,
637   X_TEST_CODE in VARCHAR2,
638   X_TEST_METHOD_ID in NUMBER,
639   X_TEST_CLASS in VARCHAR2,
640   X_TEST_TYPE in VARCHAR2,
641   X_TEST_UNIT in VARCHAR2,
642   X_MIN_VALUE_NUM in NUMBER,
643   X_MAX_VALUE_NUM in NUMBER,
644   X_EXP_ERROR_TYPE in VARCHAR2,
645   X_BELOW_SPEC_MIN in NUMBER,
646   X_ABOVE_SPEC_MIN in NUMBER,
647   X_BELOW_SPEC_MAX in NUMBER,
648   X_ABOVE_SPEC_MAX in NUMBER,
649   X_BELOW_MIN_ACTION_CODE in VARCHAR2,
650   X_ABOVE_MIN_ACTION_CODE in VARCHAR2,
651   X_BELOW_MAX_ACTION_CODE in VARCHAR2,
652   X_ABOVE_MAX_ACTION_CODE in VARCHAR2,
653   X_EXPRESSION in VARCHAR2,
654   X_DISPLAY_PRECISION in NUMBER,
655   X_REPORT_PRECISION in NUMBER,
656   X_PRIORITY in VARCHAR2,
657   X_TEST_OPRN_ID in NUMBER,
658   X_TEST_DESC in VARCHAR2,
659   X_LAST_UPDATE_DATE in DATE,
660   X_LAST_UPDATED_BY in NUMBER,
661   X_LAST_UPDATE_LOGIN in NUMBER,
662   X_TEST_GROUP_ORDER IN NUMBER
663 ) is
664 begin
665   update GMD_QC_TESTS_B set
666     TEST_OPRN_LINE_ID = X_TEST_OPRN_LINE_ID,
667     TEST_PROVIDER_CODE = X_TEST_PROVIDER_CODE,
668     DELETE_MARK = X_DELETE_MARK,
669     TEXT_CODE = X_TEXT_CODE,
670     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
671     ATTRIBUTE1 = X_ATTRIBUTE1,
672     ATTRIBUTE2 = X_ATTRIBUTE2,
673     ATTRIBUTE3 = X_ATTRIBUTE3,
674     ATTRIBUTE4 = X_ATTRIBUTE4,
675     ATTRIBUTE5 = X_ATTRIBUTE5,
676     ATTRIBUTE6 = X_ATTRIBUTE6,
677     ATTRIBUTE7 = X_ATTRIBUTE7,
678     ATTRIBUTE8 = X_ATTRIBUTE8,
679     ATTRIBUTE9 = X_ATTRIBUTE9,
680     ATTRIBUTE10 = X_ATTRIBUTE10,
681     ATTRIBUTE11 = X_ATTRIBUTE11,
682     ATTRIBUTE12 = X_ATTRIBUTE12,
683     ATTRIBUTE13 = X_ATTRIBUTE13,
684     ATTRIBUTE14 = X_ATTRIBUTE14,
685     ATTRIBUTE15 = X_ATTRIBUTE15,
686     ATTRIBUTE16 = X_ATTRIBUTE16,
687     ATTRIBUTE17 = X_ATTRIBUTE17,
688     ATTRIBUTE18 = X_ATTRIBUTE18,
689     ATTRIBUTE19 = X_ATTRIBUTE19,
690     ATTRIBUTE20 = X_ATTRIBUTE20,
691     ATTRIBUTE21 = X_ATTRIBUTE21,
692     ATTRIBUTE22 = X_ATTRIBUTE22,
693     ATTRIBUTE23 = X_ATTRIBUTE23,
694     ATTRIBUTE24 = X_ATTRIBUTE24,
695     ATTRIBUTE25 = X_ATTRIBUTE25,
696     ATTRIBUTE26 = X_ATTRIBUTE26,
697     ATTRIBUTE27 = X_ATTRIBUTE27,
698     ATTRIBUTE28 = X_ATTRIBUTE28,
699     ATTRIBUTE29 = X_ATTRIBUTE29,
700     ATTRIBUTE30 = X_ATTRIBUTE30,
701     TEST_CODE = X_TEST_CODE,
702     TEST_METHOD_ID = X_TEST_METHOD_ID,
703     TEST_CLASS = X_TEST_CLASS,
704     TEST_TYPE = X_TEST_TYPE,
705     TEST_UNIT = X_TEST_UNIT,
706     MIN_VALUE_NUM = X_MIN_VALUE_NUM,
707     MAX_VALUE_NUM = X_MAX_VALUE_NUM,
708     EXP_ERROR_TYPE = X_EXP_ERROR_TYPE,
709     BELOW_SPEC_MIN = X_BELOW_SPEC_MIN,
710     ABOVE_SPEC_MIN = X_ABOVE_SPEC_MIN,
711     BELOW_SPEC_MAX = X_BELOW_SPEC_MAX,
712     ABOVE_SPEC_MAX = X_ABOVE_SPEC_MAX,
713     BELOW_MIN_ACTION_CODE = X_BELOW_MIN_ACTION_CODE,
714     ABOVE_MIN_ACTION_CODE = X_ABOVE_MIN_ACTION_CODE,
715     BELOW_MAX_ACTION_CODE = X_BELOW_MAX_ACTION_CODE,
716     ABOVE_MAX_ACTION_CODE = X_ABOVE_MAX_ACTION_CODE,
717     EXPRESSION = X_EXPRESSION,
718     DISPLAY_PRECISION = X_DISPLAY_PRECISION,
719     REPORT_PRECISION = X_REPORT_PRECISION,
720     PRIORITY = X_PRIORITY,
721     TEST_OPRN_ID = X_TEST_OPRN_ID,
722     LAST_UPDATE_DATE =  NVL(X_LAST_UPDATE_DATE,SYSDATE),
723     LAST_UPDATED_BY =   NVL(X_LAST_UPDATED_BY,FND_GLOBAL.USER_ID),
724     LAST_UPDATE_LOGIN = NVL(X_LAST_UPDATE_LOGIN,FND_GLOBAL.LOGIN_ID),
725     TEST_GROUP_ORDER = X_TEST_GROUP_ORDER
726   where TEST_ID = X_TEST_ID;
727 
728   if (sql%notfound) then
729     raise no_data_found;
730   end if;
731 
732   update GMD_QC_TESTS_TL set
733     TEST_DESC = X_TEST_DESC,
734     LAST_UPDATE_DATE =  NVL(X_LAST_UPDATE_DATE,SYSDATE),
735     LAST_UPDATED_BY =   NVL(X_LAST_UPDATED_BY,FND_GLOBAL.USER_ID),
736     LAST_UPDATE_LOGIN = NVL(X_LAST_UPDATE_LOGIN,FND_GLOBAL.LOGIN_ID),
737     SOURCE_LANG = userenv('LANG')
738   where TEST_ID = X_TEST_ID
739   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
740 
741   if (sql%notfound) then
742     raise no_data_found;
743   end if;
744 end UPDATE_ROW;
745 
746 procedure ADD_LANGUAGE
747 is
748 begin
749   delete from GMD_QC_TESTS_TL T
750   where not exists
751     (select NULL
752     from GMD_QC_TESTS_B B
753     where B.TEST_ID = T.TEST_ID
754     );
755 
756   update GMD_QC_TESTS_TL T set (
757       TEST_DESC
758     ) = (select
759       B.TEST_DESC
760     from GMD_QC_TESTS_TL B
761     where B.TEST_ID = T.TEST_ID
762     and B.LANGUAGE = T.SOURCE_LANG)
763   where (
764       T.TEST_ID,
765       T.LANGUAGE
766   ) in (select
767       SUBT.TEST_ID,
768       SUBT.LANGUAGE
769     from GMD_QC_TESTS_TL SUBB, GMD_QC_TESTS_TL SUBT
770     where SUBB.TEST_ID = SUBT.TEST_ID
771     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
772     and (SUBB.TEST_DESC <> SUBT.TEST_DESC
773   ));
774 
775   insert into GMD_QC_TESTS_TL (
776     TEST_ID,
777     TEST_DESC,
778     CREATION_DATE,
779     CREATED_BY,
780     LAST_UPDATED_BY,
781     LAST_UPDATE_DATE,
782     LAST_UPDATE_LOGIN,
783     LANGUAGE,
784     SOURCE_LANG
785   ) select
786     B.TEST_ID,
787     B.TEST_DESC,
788     B.CREATION_DATE,
789     B.CREATED_BY,
790     B.LAST_UPDATED_BY,
791     B.LAST_UPDATE_DATE,
792     B.LAST_UPDATE_LOGIN,
793     L.LANGUAGE_CODE,
794     B.SOURCE_LANG
795   from GMD_QC_TESTS_TL B, FND_LANGUAGES L
796   where L.INSTALLED_FLAG in ('I', 'B')
797   and B.LANGUAGE = userenv('LANG')
798   and not exists
799     (select NULL
800     from GMD_QC_TESTS_TL T
801     where T.TEST_ID = B.TEST_ID
802     and T.LANGUAGE = L.LANGUAGE_CODE);
803 end ADD_LANGUAGE;
804 
805 
806 FUNCTION fetch_row (
807   p_gmd_qc_tests IN  gmd_qc_tests%ROWTYPE ,
808   x_gmd_qc_tests OUT NOCOPY gmd_qc_tests%ROWTYPE
809 )
810 RETURN BOOLEAN
811 IS
812 BEGIN
813 
814 
815   IF (p_gmd_qc_tests.test_id IS NOT NULL) THEN
816     SELECT *
817     INTO   x_gmd_qc_tests
818     FROM   gmd_qc_tests
819     WHERE  test_id = p_gmd_qc_tests.test_id ;
820     RETURN TRUE;
821   ELSIF (p_gmd_qc_tests.test_code IS NOT NULL) THEN
822     SELECT *
823     INTO   x_gmd_qc_tests
824     FROM   gmd_qc_tests
825     WHERE  test_code = p_gmd_qc_tests.test_code ;
826     RETURN TRUE;
827   ELSE
828     gmd_api_pub.log_message('GMD_NO_KEYS','TABLE_NAME', 'GMD_QC_TESTS');
829     RETURN FALSE;
830   END IF;
831 
832 
833     RETURN FALSE;
834 
835 EXCEPTION
836  WHEN NO_DATA_FOUND
837    THEN
838      gmd_api_pub.log_message('GMD_NO_DATA_FOUND','TABLE_NAME', 'GMD_QC_TESTS');
839      RETURN FALSE;
840  WHEN OTHERS
841    THEN
842      gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_QC_TESTS_PVT.FETCH_ROW','ERROR',SUBSTR(SQLERRM,1,100),'POSITION','010');
843      RETURN FALSE;
844 END fetch_row;
845 
846 FUNCTION lock_row (
847   p_test_id   IN  NUMBER  ,
848   p_test_code IN  VARCHAR2
849 )
850 RETURN BOOLEAN
851 IS
852 
853   dummy       NUMBER;
854 BEGIN
855 
856   IF (p_test_id IS NOT NULL) THEN
857     SELECT test_id
858     INTO   dummy
859     FROM   gmd_qc_tests_b
860     WHERE  test_id = p_test_id
861     FOR UPDATE OF test_id NOWAIT  ;
862   ELSIF (p_test_code IS NOT NULL) THEN
863     SELECT test_id
864     INTO   dummy
865     FROM   gmd_qc_tests_b
866     WHERE  test_code = p_test_code
867     FOR UPDATE OF test_id NOWAIT ;
868   ELSE
869     gmd_api_pub.log_message('GMD_NO_KEYS','TABLE_NAME', 'GMD_QC_TESTS');
870     RETURN FALSE;
871   END IF;
872 
873   RETURN TRUE;
874 
875 EXCEPTION
876  WHEN NO_DATA_FOUND
877    THEN
878      gmd_api_pub.log_message('GMD_NO_DATA_FOUND','TABLE_NAME', 'GMD_QC_TESTS');
879      RETURN FALSE;
880  WHEN OTHERS
881    THEN
882      gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_QC_TESTS_PVT.LOCK_ROW','ERROR',SUBSTR(SQLERRM,1,100),'POSITION','010');
883      RETURN FALSE;
884 END lock_row;
885 
886 FUNCTION mark_for_delete (
887   p_test_id   		IN  NUMBER   ,
888   p_test_code 		IN  VARCHAR2 ,
889   p_last_update_date 	IN  DATE     ,
890   p_last_updated_by 	IN  NUMBER  ,
891   p_last_update_login 	IN  NUMBER
892 )
893 RETURN BOOLEAN
894 IS
895 
896 BEGIN
897 
898   IF (p_test_id IS NOT NULL) THEN
899     UPDATE gmd_qc_tests_b
900     SET  delete_mark       = 1,
901          last_update_date  = NVL(p_last_update_date,SYSDATE),
902          last_updated_by   = NVL(p_last_updated_by,FND_GLOBAL.USER_ID),
903          last_update_login = NVL(p_last_update_login,FND_GLOBAL.LOGIN_ID)
904     WHERE  test_id = p_test_id ;
905     IF SQL%NOTFOUND THEN
906     	RAISE NO_DATA_FOUND ;
907     END IF;
908   ELSIF (p_test_code IS NOT NULL) THEN
909     UPDATE gmd_qc_tests_b
910     SET  delete_mark       = 1,
911          last_update_date  = NVL(p_last_update_date,SYSDATE),
912          last_updated_by   = NVL(p_last_updated_by,FND_GLOBAL.USER_ID),
913          last_update_login = NVL(p_last_update_login,FND_GLOBAL.LOGIN_ID)
914     WHERE  test_code = p_test_code ;
915     IF SQL%NOTFOUND THEN
916     	RAISE NO_DATA_FOUND ;
917     END IF;
918   ELSE
919     gmd_api_pub.log_message('GMD_NO_KEYS','TABLE_NAME', 'GMD_QC_TESTS');
920     RETURN FALSE;
921   END IF;
922 
923   RETURN TRUE;
924 
925 EXCEPTION
926  WHEN NO_DATA_FOUND
927    THEN
928      gmd_api_pub.log_message('GMD_NO_DATA_FOUND','TABLE_NAME', 'GMD_QC_TESTS');
929      RETURN FALSE;
930  WHEN OTHERS
931    THEN
932      gmd_api_pub.log_message('GMD_API_ERROR','PACKAGE','GMD_QC_TESTS_PVT.MARK_FOR_DELETE','ERROR',SUBSTR(SQLERRM,1,100),'POSITION','010');
933      RETURN FALSE;
934 END mark_for_delete;
935 
936 END gmd_qc_tests_pvt;