DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMD_SAMPLING_PLANS_PVT

Source


1 package body GMD_SAMPLING_PLANS_PVT as
2 /* $Header: GMDVSPNB.pls 120.0 2005/05/25 19:56:00 appldev noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_SAMPLING_PLAN_ID in NUMBER,
6   X_ATTRIBUTE28 in VARCHAR2,
7   X_ATTRIBUTE29 in VARCHAR2,
8   X_ATTRIBUTE30 in VARCHAR2,
9   X_ATTRIBUTE7 in VARCHAR2,
10   X_ATTRIBUTE8 in VARCHAR2,
11   X_ATTRIBUTE9 in VARCHAR2,
12   X_ATTRIBUTE10 in VARCHAR2,
13   X_ATTRIBUTE11 in VARCHAR2,
14   X_ATTRIBUTE12 in VARCHAR2,
15   X_ATTRIBUTE13 in VARCHAR2,
16   X_ATTRIBUTE14 in VARCHAR2,
17   X_ATTRIBUTE15 in VARCHAR2,
18   X_ATTRIBUTE16 in VARCHAR2,
19   X_ATTRIBUTE17 in VARCHAR2,
20   X_ATTRIBUTE18 in VARCHAR2,
21   X_ATTRIBUTE19 in VARCHAR2,
22   X_ATTRIBUTE20 in VARCHAR2,
23   X_ATTRIBUTE21 in VARCHAR2,
24   X_ATTRIBUTE22 in VARCHAR2,
25   X_ATTRIBUTE23 in VARCHAR2,
26   X_ATTRIBUTE24 in VARCHAR2,
27   X_ATTRIBUTE25 in VARCHAR2,
28   X_ATTRIBUTE26 in VARCHAR2,
29   X_ATTRIBUTE27 in VARCHAR2,
30   X_SAMPLING_PLAN_NAME in VARCHAR2,
31   X_SAMPLE_CNT_REQ in NUMBER,
32   X_SAMPLE_QTY in NUMBER,
33   X_SAMPLE_QTY_UOM in VARCHAR2,
34   X_FREQUENCY_TYPE in VARCHAR2,
35   X_FREQUENCY_CNT in NUMBER,
36   X_FREQUENCY_PER in VARCHAR2,
37   X_RESERVE_CNT_REQ in NUMBER,
38   X_RESERVE_QTY in NUMBER,
39   X_ARCHIVE_CNT_REQ in NUMBER,
40   X_ARCHIVE_QTY in NUMBER,
41   X_DELETE_MARK in NUMBER,
42   X_TEXT_CODE in NUMBER,
43   X_ATTRIBUTE_CATEGORY in VARCHAR2,
44   X_ATTRIBUTE1 in VARCHAR2,
45   X_ATTRIBUTE2 in VARCHAR2,
46   X_ATTRIBUTE3 in VARCHAR2,
47   X_ATTRIBUTE4 in VARCHAR2,
48   X_ATTRIBUTE5 in VARCHAR2,
49   X_ATTRIBUTE6 in VARCHAR2,
50   X_SAMPLING_PLAN_DESC in VARCHAR2,
51   X_CREATION_DATE in DATE,
52   X_CREATED_BY in NUMBER,
53   X_LAST_UPDATE_DATE in DATE,
54   X_LAST_UPDATED_BY in NUMBER,
55   X_LAST_UPDATE_LOGIN in NUMBER
56 ) is
57   cursor C is select ROWID from GMD_SAMPLING_PLANS_B
58     where SAMPLING_PLAN_ID = X_SAMPLING_PLAN_ID
59     ;
60 begin
61   insert into GMD_SAMPLING_PLANS_B (
62     ATTRIBUTE28,
63     ATTRIBUTE29,
64     ATTRIBUTE30,
65     ATTRIBUTE7,
66     ATTRIBUTE8,
67     ATTRIBUTE9,
68     ATTRIBUTE10,
69     ATTRIBUTE11,
70     ATTRIBUTE12,
71     ATTRIBUTE13,
72     ATTRIBUTE14,
73     ATTRIBUTE15,
74     ATTRIBUTE16,
75     ATTRIBUTE17,
76     ATTRIBUTE18,
77     ATTRIBUTE19,
78     ATTRIBUTE20,
79     ATTRIBUTE21,
80     ATTRIBUTE22,
81     ATTRIBUTE23,
82     ATTRIBUTE24,
83     ATTRIBUTE25,
84     ATTRIBUTE26,
85     ATTRIBUTE27,
86     SAMPLING_PLAN_ID,
87     SAMPLING_PLAN_NAME,
88     SAMPLE_CNT_REQ,
89     SAMPLE_QTY,
90     SAMPLE_QTY_UOM,
91     FREQUENCY_TYPE,
92     FREQUENCY_CNT,
93     FREQUENCY_PER,
94     RESERVE_CNT_REQ,
95     RESERVE_QTY,
96     ARCHIVE_CNT_REQ,
97     ARCHIVE_QTY,
98     DELETE_MARK,
99     TEXT_CODE,
100     ATTRIBUTE_CATEGORY,
101     ATTRIBUTE1,
102     ATTRIBUTE2,
103     ATTRIBUTE3,
104     ATTRIBUTE4,
105     ATTRIBUTE5,
106     ATTRIBUTE6,
107     CREATION_DATE,
108     CREATED_BY,
109     LAST_UPDATE_DATE,
110     LAST_UPDATED_BY,
111     LAST_UPDATE_LOGIN
112   ) values (
113     X_ATTRIBUTE28,
114     X_ATTRIBUTE29,
115     X_ATTRIBUTE30,
116     X_ATTRIBUTE7,
117     X_ATTRIBUTE8,
118     X_ATTRIBUTE9,
119     X_ATTRIBUTE10,
120     X_ATTRIBUTE11,
121     X_ATTRIBUTE12,
122     X_ATTRIBUTE13,
123     X_ATTRIBUTE14,
124     X_ATTRIBUTE15,
125     X_ATTRIBUTE16,
126     X_ATTRIBUTE17,
127     X_ATTRIBUTE18,
128     X_ATTRIBUTE19,
129     X_ATTRIBUTE20,
130     X_ATTRIBUTE21,
131     X_ATTRIBUTE22,
132     X_ATTRIBUTE23,
133     X_ATTRIBUTE24,
134     X_ATTRIBUTE25,
135     X_ATTRIBUTE26,
136     X_ATTRIBUTE27,
137     X_SAMPLING_PLAN_ID,
138     X_SAMPLING_PLAN_NAME,
139     X_SAMPLE_CNT_REQ,
140     X_SAMPLE_QTY,
141     X_SAMPLE_QTY_UOM,
142     X_FREQUENCY_TYPE,
143     X_FREQUENCY_CNT,
144     X_FREQUENCY_PER,
145     X_RESERVE_CNT_REQ,
146     X_RESERVE_QTY,
147     X_ARCHIVE_CNT_REQ,
148     X_ARCHIVE_QTY,
149     X_DELETE_MARK,
150     X_TEXT_CODE,
151     X_ATTRIBUTE_CATEGORY,
152     X_ATTRIBUTE1,
153     X_ATTRIBUTE2,
154     X_ATTRIBUTE3,
155     X_ATTRIBUTE4,
156     X_ATTRIBUTE5,
157     X_ATTRIBUTE6,
158     X_CREATION_DATE,
159     X_CREATED_BY,
160     X_LAST_UPDATE_DATE,
161     X_LAST_UPDATED_BY,
162     X_LAST_UPDATE_LOGIN
163   );
164 
165   insert into GMD_SAMPLING_PLANS_TL (
166     SAMPLING_PLAN_ID,
167     LAST_UPDATE_DATE,
168     LAST_UPDATE_LOGIN,
169     SAMPLING_PLAN_DESC,
170     CREATION_DATE,
171     CREATED_BY,
172     LAST_UPDATED_BY,
173     LANGUAGE,
174     SOURCE_LANG
175   ) select
176     X_SAMPLING_PLAN_ID,
177     X_LAST_UPDATE_DATE,
178     X_LAST_UPDATE_LOGIN,
179     X_SAMPLING_PLAN_DESC,
180     X_CREATION_DATE,
181     X_CREATED_BY,
182     X_LAST_UPDATED_BY,
183     L.LANGUAGE_CODE,
184     userenv('LANG')
185   from FND_LANGUAGES L
186   where L.INSTALLED_FLAG in ('I', 'B')
187   and not exists
188     (select NULL
189     from GMD_SAMPLING_PLANS_TL T
190     where T.SAMPLING_PLAN_ID = X_SAMPLING_PLAN_ID
191     and T.LANGUAGE = L.LANGUAGE_CODE);
192 
193   open c;
194   fetch c into X_ROWID;
195   if (c%notfound) then
196     close c;
197     raise no_data_found;
198   end if;
199   close c;
200 
201 end INSERT_ROW;
202 
203 procedure LOCK_ROW (
204   X_SAMPLING_PLAN_ID in NUMBER,
205   X_ATTRIBUTE28 in VARCHAR2,
206   X_ATTRIBUTE29 in VARCHAR2,
207   X_ATTRIBUTE30 in VARCHAR2,
208   X_ATTRIBUTE7 in VARCHAR2,
209   X_ATTRIBUTE8 in VARCHAR2,
210   X_ATTRIBUTE9 in VARCHAR2,
211   X_ATTRIBUTE10 in VARCHAR2,
212   X_ATTRIBUTE11 in VARCHAR2,
213   X_ATTRIBUTE12 in VARCHAR2,
214   X_ATTRIBUTE13 in VARCHAR2,
215   X_ATTRIBUTE14 in VARCHAR2,
216   X_ATTRIBUTE15 in VARCHAR2,
217   X_ATTRIBUTE16 in VARCHAR2,
218   X_ATTRIBUTE17 in VARCHAR2,
219   X_ATTRIBUTE18 in VARCHAR2,
220   X_ATTRIBUTE19 in VARCHAR2,
221   X_ATTRIBUTE20 in VARCHAR2,
222   X_ATTRIBUTE21 in VARCHAR2,
223   X_ATTRIBUTE22 in VARCHAR2,
224   X_ATTRIBUTE23 in VARCHAR2,
225   X_ATTRIBUTE24 in VARCHAR2,
226   X_ATTRIBUTE25 in VARCHAR2,
227   X_ATTRIBUTE26 in VARCHAR2,
228   X_ATTRIBUTE27 in VARCHAR2,
229   X_SAMPLING_PLAN_NAME in VARCHAR2,
230   X_SAMPLE_CNT_REQ in NUMBER,
231   X_SAMPLE_QTY in NUMBER,
232   X_SAMPLE_QTY_UOM in VARCHAR2,
233   X_FREQUENCY_TYPE in VARCHAR2,
234   X_FREQUENCY_CNT in NUMBER,
235   X_FREQUENCY_PER in VARCHAR2,
236   X_RESERVE_CNT_REQ in NUMBER,
237   X_RESERVE_QTY in NUMBER,
238   X_ARCHIVE_CNT_REQ in NUMBER,
239   X_ARCHIVE_QTY in NUMBER,
240   X_DELETE_MARK in NUMBER,
241   X_TEXT_CODE in NUMBER,
242   X_ATTRIBUTE_CATEGORY in VARCHAR2,
243   X_ATTRIBUTE1 in VARCHAR2,
244   X_ATTRIBUTE2 in VARCHAR2,
245   X_ATTRIBUTE3 in VARCHAR2,
246   X_ATTRIBUTE4 in VARCHAR2,
247   X_ATTRIBUTE5 in VARCHAR2,
248   X_ATTRIBUTE6 in VARCHAR2,
249   X_SAMPLING_PLAN_DESC in VARCHAR2
250 ) is
251   cursor c is select
252       ATTRIBUTE28,
253       ATTRIBUTE29,
254       ATTRIBUTE30,
255       ATTRIBUTE7,
256       ATTRIBUTE8,
257       ATTRIBUTE9,
258       ATTRIBUTE10,
259       ATTRIBUTE11,
260       ATTRIBUTE12,
261       ATTRIBUTE13,
262       ATTRIBUTE14,
263       ATTRIBUTE15,
264       ATTRIBUTE16,
265       ATTRIBUTE17,
266       ATTRIBUTE18,
267       ATTRIBUTE19,
268       ATTRIBUTE20,
269       ATTRIBUTE21,
270       ATTRIBUTE22,
271       ATTRIBUTE23,
272       ATTRIBUTE24,
273       ATTRIBUTE25,
274       ATTRIBUTE26,
275       ATTRIBUTE27,
276       SAMPLING_PLAN_NAME,
277       SAMPLE_CNT_REQ,
278       SAMPLE_QTY,
279       SAMPLE_QTY_UOM,
280       FREQUENCY_TYPE,
281       FREQUENCY_CNT,
282       FREQUENCY_PER,
283       RESERVE_CNT_REQ,
284       RESERVE_QTY,
285       ARCHIVE_CNT_REQ,
286       ARCHIVE_QTY,
287       DELETE_MARK,
288       TEXT_CODE,
289       ATTRIBUTE_CATEGORY,
290       ATTRIBUTE1,
291       ATTRIBUTE2,
292       ATTRIBUTE3,
293       ATTRIBUTE4,
294       ATTRIBUTE5,
295       ATTRIBUTE6
296     from GMD_SAMPLING_PLANS_B
297     where SAMPLING_PLAN_ID = X_SAMPLING_PLAN_ID
298     for update of SAMPLING_PLAN_ID nowait;
299   recinfo c%rowtype;
300 
301   cursor c1 is select
302       SAMPLING_PLAN_DESC,
303       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
304     from GMD_SAMPLING_PLANS_TL
305     where SAMPLING_PLAN_ID = X_SAMPLING_PLAN_ID
306     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
307     for update of SAMPLING_PLAN_ID nowait;
308 begin
309   open c;
310   fetch c into recinfo;
311   if (c%notfound) then
312     close c;
313     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
314     app_exception.raise_exception;
315   end if;
316   close c;
317 
318   if (    ((recinfo.ATTRIBUTE28 = X_ATTRIBUTE28)
319            OR ((recinfo.ATTRIBUTE28 is null) AND (X_ATTRIBUTE28 is null)))
320       AND ((recinfo.ATTRIBUTE29 = X_ATTRIBUTE29)
321            OR ((recinfo.ATTRIBUTE29 is null) AND (X_ATTRIBUTE29 is null)))
322       AND ((recinfo.ATTRIBUTE30 = X_ATTRIBUTE30)
323            OR ((recinfo.ATTRIBUTE30 is null) AND (X_ATTRIBUTE30 is null)))
324       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
325            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
326       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
327            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
328       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
329            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
330       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
331            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
332       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
333            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
334       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
335            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
336       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
337            OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
338       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
339            OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
340       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
341            OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
342       AND ((recinfo.ATTRIBUTE16 = X_ATTRIBUTE16)
343            OR ((recinfo.ATTRIBUTE16 is null) AND (X_ATTRIBUTE16 is null)))
344       AND ((recinfo.ATTRIBUTE17 = X_ATTRIBUTE17)
345            OR ((recinfo.ATTRIBUTE17 is null) AND (X_ATTRIBUTE17 is null)))
346       AND ((recinfo.ATTRIBUTE18 = X_ATTRIBUTE18)
347            OR ((recinfo.ATTRIBUTE18 is null) AND (X_ATTRIBUTE18 is null)))
348       AND ((recinfo.ATTRIBUTE19 = X_ATTRIBUTE19)
349            OR ((recinfo.ATTRIBUTE19 is null) AND (X_ATTRIBUTE19 is null)))
350       AND ((recinfo.ATTRIBUTE20 = X_ATTRIBUTE20)
351            OR ((recinfo.ATTRIBUTE20 is null) AND (X_ATTRIBUTE20 is null)))
352       AND ((recinfo.ATTRIBUTE21 = X_ATTRIBUTE21)
353            OR ((recinfo.ATTRIBUTE21 is null) AND (X_ATTRIBUTE21 is null)))
354       AND ((recinfo.ATTRIBUTE22 = X_ATTRIBUTE22)
355            OR ((recinfo.ATTRIBUTE22 is null) AND (X_ATTRIBUTE22 is null)))
356       AND ((recinfo.ATTRIBUTE23 = X_ATTRIBUTE23)
357            OR ((recinfo.ATTRIBUTE23 is null) AND (X_ATTRIBUTE23 is null)))
358       AND ((recinfo.ATTRIBUTE24 = X_ATTRIBUTE24)
359            OR ((recinfo.ATTRIBUTE24 is null) AND (X_ATTRIBUTE24 is null)))
360       AND ((recinfo.ATTRIBUTE25 = X_ATTRIBUTE25)
361            OR ((recinfo.ATTRIBUTE25 is null) AND (X_ATTRIBUTE25 is null)))
362       AND ((recinfo.ATTRIBUTE26 = X_ATTRIBUTE26)
363            OR ((recinfo.ATTRIBUTE26 is null) AND (X_ATTRIBUTE26 is null)))
364       AND ((recinfo.ATTRIBUTE27 = X_ATTRIBUTE27)
365            OR ((recinfo.ATTRIBUTE27 is null) AND (X_ATTRIBUTE27 is null)))
366       AND (recinfo.SAMPLING_PLAN_NAME = X_SAMPLING_PLAN_NAME)
367       AND ((recinfo.SAMPLE_CNT_REQ = X_SAMPLE_CNT_REQ)
368       OR ((recinfo.SAMPLE_CNT_REQ is null) AND (X_SAMPLE_CNT_REQ is null)))
369       AND ((recinfo.SAMPLE_QTY = X_SAMPLE_QTY)
370         OR ((recinfo.SAMPLE_QTY is null) AND (X_SAMPLE_QTY is null)))
371       AND (recinfo.SAMPLE_QTY_UOM = X_SAMPLE_QTY_UOM)
372       AND ((recinfo.FREQUENCY_TYPE = X_FREQUENCY_TYPE)
373       OR  ((recinfo.FREQUENCY_TYPE is null) AND (X_FREQUENCY_TYPE is null)))
374       AND ((recinfo.FREQUENCY_CNT = X_FREQUENCY_CNT)
375       OR ((recinfo.FREQUENCY_CNT is null) AND (X_FREQUENCY_CNT is null)))
376       AND ((recinfo.FREQUENCY_PER = X_FREQUENCY_PER)
377        OR ((recinfo.FREQUENCY_PER is null) AND (X_FREQUENCY_PER is null)))
378       AND ((recinfo.RESERVE_CNT_REQ = X_RESERVE_CNT_REQ)
379        OR ((recinfo.RESERVE_CNT_REQ is null) AND (X_RESERVE_CNT_REQ is null)))
380       AND ((recinfo.RESERVE_QTY = X_RESERVE_QTY)
381        OR ((recinfo.RESERVE_QTY is null) AND (X_RESERVE_QTY is null)))
382       AND ((recinfo.ARCHIVE_CNT_REQ = X_ARCHIVE_CNT_REQ)
383       OR ((recinfo.ARCHIVE_CNT_REQ is null) AND (X_ARCHIVE_CNT_REQ is null)))
384       AND ((recinfo.ARCHIVE_QTY = X_ARCHIVE_QTY)
385       OR ((recinfo.ARCHIVE_QTY is null) AND (X_ARCHIVE_QTY is null)))
386       AND (recinfo.DELETE_MARK = X_DELETE_MARK)
387       AND ((recinfo.TEXT_CODE = X_TEXT_CODE)
388            OR ((recinfo.TEXT_CODE is null) AND (X_TEXT_CODE is null)))
389       AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
390            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
391       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
392            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
393       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
394            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
395       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
396            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
397       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
398            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
399       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
400            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
401       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
402            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
403   ) then
404     null;
405   else
406     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
407     app_exception.raise_exception;
408   end if;
409 
410   for tlinfo in c1 loop
411     if (tlinfo.BASELANG = 'Y') then
412       if (    (tlinfo.SAMPLING_PLAN_DESC = X_SAMPLING_PLAN_DESC)
413       ) then
414         null;
415       else
416         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
417         app_exception.raise_exception;
418       end if;
419     end if;
420   end loop;
421   return;
422 end LOCK_ROW;
423 
424 procedure UPDATE_ROW (
425   X_SAMPLING_PLAN_ID in NUMBER,
426   X_ATTRIBUTE28 in VARCHAR2,
427   X_ATTRIBUTE29 in VARCHAR2,
428   X_ATTRIBUTE30 in VARCHAR2,
429   X_ATTRIBUTE7 in VARCHAR2,
430   X_ATTRIBUTE8 in VARCHAR2,
431   X_ATTRIBUTE9 in VARCHAR2,
432   X_ATTRIBUTE10 in VARCHAR2,
433   X_ATTRIBUTE11 in VARCHAR2,
434   X_ATTRIBUTE12 in VARCHAR2,
435   X_ATTRIBUTE13 in VARCHAR2,
436   X_ATTRIBUTE14 in VARCHAR2,
437   X_ATTRIBUTE15 in VARCHAR2,
438   X_ATTRIBUTE16 in VARCHAR2,
439   X_ATTRIBUTE17 in VARCHAR2,
440   X_ATTRIBUTE18 in VARCHAR2,
441   X_ATTRIBUTE19 in VARCHAR2,
442   X_ATTRIBUTE20 in VARCHAR2,
443   X_ATTRIBUTE21 in VARCHAR2,
444   X_ATTRIBUTE22 in VARCHAR2,
445   X_ATTRIBUTE23 in VARCHAR2,
446   X_ATTRIBUTE24 in VARCHAR2,
447   X_ATTRIBUTE25 in VARCHAR2,
448   X_ATTRIBUTE26 in VARCHAR2,
449   X_ATTRIBUTE27 in VARCHAR2,
450   X_SAMPLING_PLAN_NAME in VARCHAR2,
451   X_SAMPLE_CNT_REQ in NUMBER,
452   X_SAMPLE_QTY in NUMBER,
453   X_SAMPLE_QTY_UOM in VARCHAR2,
454   X_FREQUENCY_TYPE in VARCHAR2,
455   X_FREQUENCY_CNT in NUMBER,
456   X_FREQUENCY_PER in VARCHAR2,
457   X_RESERVE_CNT_REQ in NUMBER,
458   X_RESERVE_QTY in NUMBER,
459   X_ARCHIVE_CNT_REQ in NUMBER,
460   X_ARCHIVE_QTY in NUMBER,
461   X_DELETE_MARK in NUMBER,
462   X_TEXT_CODE in NUMBER,
463   X_ATTRIBUTE_CATEGORY in VARCHAR2,
464   X_ATTRIBUTE1 in VARCHAR2,
465   X_ATTRIBUTE2 in VARCHAR2,
466   X_ATTRIBUTE3 in VARCHAR2,
467   X_ATTRIBUTE4 in VARCHAR2,
468   X_ATTRIBUTE5 in VARCHAR2,
469   X_ATTRIBUTE6 in VARCHAR2,
470   X_SAMPLING_PLAN_DESC in VARCHAR2,
471   X_LAST_UPDATE_DATE in DATE,
472   X_LAST_UPDATED_BY in NUMBER,
473   X_LAST_UPDATE_LOGIN in NUMBER
474 ) is
475 begin
476   update GMD_SAMPLING_PLANS_B set
477     ATTRIBUTE28 = X_ATTRIBUTE28,
478     ATTRIBUTE29 = X_ATTRIBUTE29,
479     ATTRIBUTE30 = X_ATTRIBUTE30,
480     ATTRIBUTE7 = X_ATTRIBUTE7,
481     ATTRIBUTE8 = X_ATTRIBUTE8,
482     ATTRIBUTE9 = X_ATTRIBUTE9,
483     ATTRIBUTE10 = X_ATTRIBUTE10,
484     ATTRIBUTE11 = X_ATTRIBUTE11,
485     ATTRIBUTE12 = X_ATTRIBUTE12,
486     ATTRIBUTE13 = X_ATTRIBUTE13,
487     ATTRIBUTE14 = X_ATTRIBUTE14,
488     ATTRIBUTE15 = X_ATTRIBUTE15,
489     ATTRIBUTE16 = X_ATTRIBUTE16,
490     ATTRIBUTE17 = X_ATTRIBUTE17,
491     ATTRIBUTE18 = X_ATTRIBUTE18,
492     ATTRIBUTE19 = X_ATTRIBUTE19,
493     ATTRIBUTE20 = X_ATTRIBUTE20,
494     ATTRIBUTE21 = X_ATTRIBUTE21,
495     ATTRIBUTE22 = X_ATTRIBUTE22,
496     ATTRIBUTE23 = X_ATTRIBUTE23,
497     ATTRIBUTE24 = X_ATTRIBUTE24,
498     ATTRIBUTE25 = X_ATTRIBUTE25,
499     ATTRIBUTE26 = X_ATTRIBUTE26,
500     ATTRIBUTE27 = X_ATTRIBUTE27,
501     SAMPLING_PLAN_NAME = X_SAMPLING_PLAN_NAME,
502     SAMPLE_CNT_REQ = X_SAMPLE_CNT_REQ,
503     SAMPLE_QTY = X_SAMPLE_QTY,
504     SAMPLE_QTY_UOM = X_SAMPLE_QTY_UOM,
505     FREQUENCY_TYPE = X_FREQUENCY_TYPE,
506     FREQUENCY_CNT = X_FREQUENCY_CNT,
507     FREQUENCY_PER = X_FREQUENCY_PER,
508     RESERVE_CNT_REQ = X_RESERVE_CNT_REQ,
509     RESERVE_QTY = X_RESERVE_QTY,
510     ARCHIVE_CNT_REQ = X_ARCHIVE_CNT_REQ,
511     ARCHIVE_QTY = X_ARCHIVE_QTY,
512     DELETE_MARK = X_DELETE_MARK,
513     TEXT_CODE = X_TEXT_CODE,
514     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
515     ATTRIBUTE1 = X_ATTRIBUTE1,
516     ATTRIBUTE2 = X_ATTRIBUTE2,
517     ATTRIBUTE3 = X_ATTRIBUTE3,
518     ATTRIBUTE4 = X_ATTRIBUTE4,
519     ATTRIBUTE5 = X_ATTRIBUTE5,
520     ATTRIBUTE6 = X_ATTRIBUTE6,
521     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
522     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
523     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
524   where SAMPLING_PLAN_ID = X_SAMPLING_PLAN_ID;
525 
526   if (sql%notfound) then
527     raise no_data_found;
528   end if;
529 
530   update GMD_SAMPLING_PLANS_TL set
531     SAMPLING_PLAN_DESC = X_SAMPLING_PLAN_DESC,
532     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
533     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
534     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
535     SOURCE_LANG = userenv('LANG')
536   where SAMPLING_PLAN_ID = X_SAMPLING_PLAN_ID
537   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
538 
539   if (sql%notfound) then
540     raise no_data_found;
541   end if;
542 end UPDATE_ROW;
543 
544 procedure DELETE_ROW (
545   X_SAMPLING_PLAN_ID in NUMBER
546 ) is
547 begin
548   delete from GMD_SAMPLING_PLANS_TL
549   where SAMPLING_PLAN_ID = X_SAMPLING_PLAN_ID;
550 
551   if (sql%notfound) then
552     raise no_data_found;
553   end if;
554 
555   delete from GMD_SAMPLING_PLANS_B
556   where SAMPLING_PLAN_ID = X_SAMPLING_PLAN_ID;
557 
558   if (sql%notfound) then
559     raise no_data_found;
560   end if;
561 end DELETE_ROW;
562 
563 procedure ADD_LANGUAGE
564 is
565 begin
566   delete from GMD_SAMPLING_PLANS_TL T
567   where not exists
568     (select NULL
569     from GMD_SAMPLING_PLANS_B B
570     where B.SAMPLING_PLAN_ID = T.SAMPLING_PLAN_ID
571     );
572 
573   update GMD_SAMPLING_PLANS_TL T set (
574       SAMPLING_PLAN_DESC
575     ) = (select
576       B.SAMPLING_PLAN_DESC
577     from GMD_SAMPLING_PLANS_TL B
578     where B.SAMPLING_PLAN_ID = T.SAMPLING_PLAN_ID
579     and B.LANGUAGE = T.SOURCE_LANG)
580   where (
581       T.SAMPLING_PLAN_ID,
582       T.LANGUAGE
583   ) in (select
584       SUBT.SAMPLING_PLAN_ID,
585       SUBT.LANGUAGE
586     from GMD_SAMPLING_PLANS_TL SUBB, GMD_SAMPLING_PLANS_TL SUBT
587     where SUBB.SAMPLING_PLAN_ID = SUBT.SAMPLING_PLAN_ID
588     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
589     and (SUBB.SAMPLING_PLAN_DESC <> SUBT.SAMPLING_PLAN_DESC
590   ));
591 
592   insert into GMD_SAMPLING_PLANS_TL (
593     SAMPLING_PLAN_ID,
594     LAST_UPDATE_DATE,
595     LAST_UPDATE_LOGIN,
596     SAMPLING_PLAN_DESC,
597     CREATION_DATE,
598     CREATED_BY,
599     LAST_UPDATED_BY,
600     LANGUAGE,
601     SOURCE_LANG
602   ) select
603     B.SAMPLING_PLAN_ID,
604     B.LAST_UPDATE_DATE,
605     B.LAST_UPDATE_LOGIN,
606     B.SAMPLING_PLAN_DESC,
607     B.CREATION_DATE,
608     B.CREATED_BY,
609     B.LAST_UPDATED_BY,
610     L.LANGUAGE_CODE,
611     B.SOURCE_LANG
612   from GMD_SAMPLING_PLANS_TL B, FND_LANGUAGES L
613   where L.INSTALLED_FLAG in ('I', 'B')
614   and B.LANGUAGE = userenv('LANG')
615   and not exists
616     (select NULL
617     from GMD_SAMPLING_PLANS_TL T
618     where T.SAMPLING_PLAN_ID = B.SAMPLING_PLAN_ID
619     and T.LANGUAGE = L.LANGUAGE_CODE);
620 end ADD_LANGUAGE;
621 
622 FUNCTION fetch_row (p_sampling_plan IN  gmd_sampling_plans%ROWTYPE,
623 		    x_sampling_plan OUT NOCOPY gmd_sampling_plans%ROWTYPE )
624 RETURN BOOLEAN
625 IS
626 BEGIN
627   IF (p_sampling_plan.sampling_plan_id IS NOT NULL) THEN
628     SELECT *
629     INTO   x_sampling_plan
630     FROM   gmd_sampling_plans
631     WHERE  sampling_plan_id = p_sampling_plan.sampling_plan_id;
632   ELSIF (p_sampling_plan.sampling_plan_name IS NOT NULL) THEN
633 
634     SELECT *
635     INTO   x_sampling_plan
636     FROM   gmd_sampling_plans
637     WHERE  sampling_plan_name = p_sampling_plan.sampling_plan_name;
638   ELSE
639     gmd_api_pub.log_message('GMD_NO_KEYS','TABLE_NAME', 'GMD_SAMPLING_PLANS');
640     RETURN FALSE;
641   END IF;
642 
643   RETURN TRUE;
644 
645 EXCEPTION
646  WHEN NO_DATA_FOUND
647    THEN
648      gmd_api_pub.log_message('GMD_NO_DATA_FOUND','TABLE_NAME', 'GMD_SAMPLING_PLANS');
649      RETURN FALSE;
650  WHEN OTHERS
651    THEN
652      fnd_msg_pub.add_exc_msg ('GMD_SAMPLING_PLAN_PVT', 'FETCH_ROW');
653      RETURN FALSE;
654 
655 END fetch_row;
656 
657 end GMD_SAMPLING_PLANS_PVT;