DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMD_OPERATIONS_PKG

Source


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