DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMO_INSTR_INSTANCE_PKG

Source


1 package body GMO_INSTR_INSTANCE_PKG as
2 /* $Header: GMOINIPB.pls 120.0 2005/06/29 04:24 shthakke noship $ */
3 
4 procedure INSERT_ROW (
5   X_ROWID in out nocopy VARCHAR2,
6   X_INSTRUCTION_ID in NUMBER,
7   X_OPERATOR_ACKN in VARCHAR2,
8   X_TASK_ATTRIBUTE in VARCHAR2,
9   X_TASK_ATTRIBUTE_ID in VARCHAR2,
10   X_INSTRUCTION_SET_ID in NUMBER,
11   X_INSTR_NUMBER in VARCHAR2,
12   X_INSTR_STATUS in VARCHAR2,
13   X_TASK_ID in NUMBER,
14   X_TASK_ACKN_DATE in DATE,
15   X_TASK_ACKN_STATUS in VARCHAR2,
16   X_INSTR_SEQ in NUMBER,
17   X_INSTR_ACKN_TYPE in VARCHAR2,
18   X_INSTRUCTION_TEXT in VARCHAR2,
19   X_COMMENTS in VARCHAR2,
20   X_TASK_LABEL in VARCHAR2,
21   X_CREATION_DATE in DATE,
22   X_CREATED_BY in NUMBER,
23   X_LAST_UPDATE_DATE in DATE,
24   X_LAST_UPDATED_BY in NUMBER,
25   X_LAST_UPDATE_LOGIN in NUMBER
26 ) is
27   cursor C is select ROWID from GMO_INSTR_INSTANCE_B
28     where INSTRUCTION_ID = X_INSTRUCTION_ID
29     ;
30 begin
31   insert into GMO_INSTR_INSTANCE_B (
32     OPERATOR_ACKN,
33     TASK_ATTRIBUTE,
34     TASK_ATTRIBUTE_ID,
35     INSTRUCTION_ID,
36     INSTRUCTION_SET_ID,
37     INSTR_NUMBER,
38     INSTR_STATUS,
39     TASK_ID,
40     TASK_ACKN_DATE,
41     TASK_ACKN_STATUS,
42     INSTR_SEQ,
43     INSTR_ACKN_TYPE,
44     CREATION_DATE,
45     CREATED_BY,
46     LAST_UPDATE_DATE,
47     LAST_UPDATED_BY,
48     LAST_UPDATE_LOGIN
49   ) values (
50     X_OPERATOR_ACKN,
51     X_TASK_ATTRIBUTE,
52     X_TASK_ATTRIBUTE_ID,
53     X_INSTRUCTION_ID,
54     X_INSTRUCTION_SET_ID,
55     X_INSTR_NUMBER,
56     X_INSTR_STATUS,
57     X_TASK_ID,
58     X_TASK_ACKN_DATE,
59     X_TASK_ACKN_STATUS,
60     X_INSTR_SEQ,
61     X_INSTR_ACKN_TYPE,
62     X_CREATION_DATE,
63     X_CREATED_BY,
64     X_LAST_UPDATE_DATE,
65     X_LAST_UPDATED_BY,
66     X_LAST_UPDATE_LOGIN
67   );
68 
69   insert into GMO_INSTR_INSTANCE_TL (
70     TASK_LABEL,
71     INSTRUCTION_ID,
72     INSTRUCTION_TEXT,
73     COMMENTS,
74     CREATION_DATE,
75     CREATED_BY,
76     LAST_UPDATE_DATE,
77     LAST_UPDATED_BY,
78     LAST_UPDATE_LOGIN,
79     LANGUAGE,
80     SOURCE_LANG
81   ) select
82     X_TASK_LABEL,
83     X_INSTRUCTION_ID,
84     X_INSTRUCTION_TEXT,
85     X_COMMENTS,
86     X_CREATION_DATE,
87     X_CREATED_BY,
88     X_LAST_UPDATE_DATE,
89     X_LAST_UPDATED_BY,
90     X_LAST_UPDATE_LOGIN,
91     L.LANGUAGE_CODE,
92     userenv('LANG')
93   from FND_LANGUAGES L
94   where L.INSTALLED_FLAG in ('I', 'B')
95   and not exists
96     (select NULL
97     from GMO_INSTR_INSTANCE_TL T
98     where T.INSTRUCTION_ID = X_INSTRUCTION_ID
99     and T.LANGUAGE = L.LANGUAGE_CODE);
100 
101   open c;
102   fetch c into X_ROWID;
103   if (c%notfound) then
104     close c;
105     raise no_data_found;
106   end if;
107   close c;
108 
109 end INSERT_ROW;
110 
111 procedure LOCK_ROW (
112   X_INSTRUCTION_ID in NUMBER,
113   X_OPERATOR_ACKN in VARCHAR2,
114   X_TASK_ATTRIBUTE in VARCHAR2,
115   X_TASK_ATTRIBUTE_ID in VARCHAR2,
116   X_INSTRUCTION_SET_ID in NUMBER,
117   X_INSTR_NUMBER in VARCHAR2,
118   X_INSTR_STATUS in VARCHAR2,
119   X_TASK_ID in NUMBER,
120   X_TASK_ACKN_DATE in DATE,
121   X_TASK_ACKN_STATUS in VARCHAR2,
122   X_INSTR_SEQ in NUMBER,
123   X_INSTR_ACKN_TYPE in VARCHAR2,
124   X_INSTRUCTION_TEXT in VARCHAR2,
125   X_COMMENTS in VARCHAR2,
126   X_TASK_LABEL in VARCHAR2
127 ) is
128   cursor c is select
129       OPERATOR_ACKN,
130       TASK_ATTRIBUTE,
131       TASK_ATTRIBUTE_ID,
132       INSTRUCTION_SET_ID,
133       INSTR_NUMBER,
134       INSTR_STATUS,
135       TASK_ID,
136       TASK_ACKN_DATE,
137       TASK_ACKN_STATUS,
138       INSTR_SEQ,
139       INSTR_ACKN_TYPE
140     from GMO_INSTR_INSTANCE_B
141     where INSTRUCTION_ID = X_INSTRUCTION_ID
142     for update of INSTRUCTION_ID nowait;
143   recinfo c%rowtype;
144 
145   cursor c1 is select
146       INSTRUCTION_TEXT,
147       COMMENTS,
148       TASK_LABEL,
149       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
150     from GMO_INSTR_INSTANCE_TL
151     where INSTRUCTION_ID = X_INSTRUCTION_ID
152     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
153     for update of INSTRUCTION_ID nowait;
154 begin
155   open c;
156   fetch c into recinfo;
157   if (c%notfound) then
158     close c;
159     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
160     app_exception.raise_exception;
161   end if;
162   close c;
163   if (    ((recinfo.OPERATOR_ACKN = X_OPERATOR_ACKN)
164            OR ((recinfo.OPERATOR_ACKN is null) AND (X_OPERATOR_ACKN is null)))
165       AND ((recinfo.TASK_ATTRIBUTE = X_TASK_ATTRIBUTE)
166            OR ((recinfo.TASK_ATTRIBUTE is null) AND (X_TASK_ATTRIBUTE is null)))
167       AND ((recinfo.TASK_ATTRIBUTE_ID = X_TASK_ATTRIBUTE_ID)
168            OR ((recinfo.TASK_ATTRIBUTE_ID is null) AND (X_TASK_ATTRIBUTE_ID is null)))
169       AND (recinfo.INSTRUCTION_SET_ID = X_INSTRUCTION_SET_ID)
170       AND ((recinfo.INSTR_NUMBER = X_INSTR_NUMBER)
171            OR ((recinfo.INSTR_NUMBER is null) AND (X_INSTR_NUMBER is null)))
172       AND (recinfo.INSTR_STATUS = X_INSTR_STATUS)
173       AND ((recinfo.TASK_ID = X_TASK_ID)
174            OR ((recinfo.TASK_ID is null) AND (X_TASK_ID is null)))
175       AND ((recinfo.TASK_ACKN_DATE = X_TASK_ACKN_DATE)
176            OR ((recinfo.TASK_ACKN_DATE is null) AND (X_TASK_ACKN_DATE is null)))
177       AND ((recinfo.TASK_ACKN_STATUS = X_TASK_ACKN_STATUS)
178            OR ((recinfo.TASK_ACKN_STATUS is null) AND (X_TASK_ACKN_STATUS is null)))
179       AND (recinfo.INSTR_SEQ = X_INSTR_SEQ)
180       AND ((recinfo.INSTR_ACKN_TYPE = X_INSTR_ACKN_TYPE)
181            OR ((recinfo.INSTR_ACKN_TYPE is null) AND (X_INSTR_ACKN_TYPE is null)))
182   ) then
183     null;
184   else
185     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
186     app_exception.raise_exception;
187   end if;
188 
189   for tlinfo in c1 loop
190     if (tlinfo.BASELANG = 'Y') then
191       if (    ((tlinfo.INSTRUCTION_TEXT = X_INSTRUCTION_TEXT)
192                OR ((tlinfo.INSTRUCTION_TEXT is null) AND (X_INSTRUCTION_TEXT is null)))
193           AND ((tlinfo.COMMENTS = X_COMMENTS)
194                OR ((tlinfo.COMMENTS is null) AND (X_COMMENTS is null)))
195           AND ((tlinfo.TASK_LABEL = X_TASK_LABEL)
196                OR ((tlinfo.TASK_LABEL is null) AND (X_TASK_LABEL is null)))
197       ) then
198         null;
199       else
200         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
201         app_exception.raise_exception;
202       end if;
203     end if;
204   end loop;
205   return;
206 end LOCK_ROW;
207 
208 procedure UPDATE_ROW (
209   X_INSTRUCTION_ID in NUMBER,
210   X_OPERATOR_ACKN in VARCHAR2,
211   X_TASK_ATTRIBUTE in VARCHAR2,
212   X_TASK_ATTRIBUTE_ID in VARCHAR2,
213   X_INSTRUCTION_SET_ID in NUMBER,
214   X_INSTR_NUMBER in VARCHAR2,
215   X_INSTR_STATUS in VARCHAR2,
216   X_TASK_ID in NUMBER,
217   X_TASK_ACKN_DATE in DATE,
218   X_TASK_ACKN_STATUS in VARCHAR2,
219   X_INSTR_SEQ in NUMBER,
220   X_INSTR_ACKN_TYPE in VARCHAR2,
221   X_INSTRUCTION_TEXT in VARCHAR2,
222   X_COMMENTS in VARCHAR2,
223   X_TASK_LABEL in VARCHAR2,
224   X_LAST_UPDATE_DATE in DATE,
225   X_LAST_UPDATED_BY in NUMBER,
226   X_LAST_UPDATE_LOGIN in NUMBER
227 ) is
228 begin
229   update GMO_INSTR_INSTANCE_B set
230     OPERATOR_ACKN = X_OPERATOR_ACKN,
231     TASK_ATTRIBUTE = X_TASK_ATTRIBUTE,
232     TASK_ATTRIBUTE_ID = X_TASK_ATTRIBUTE_ID,
233     INSTRUCTION_SET_ID = X_INSTRUCTION_SET_ID,
234     INSTR_NUMBER = X_INSTR_NUMBER,
235     INSTR_STATUS = X_INSTR_STATUS,
236     TASK_ID = X_TASK_ID,
237     TASK_ACKN_DATE = X_TASK_ACKN_DATE,
238     TASK_ACKN_STATUS = X_TASK_ACKN_STATUS,
239     INSTR_SEQ = X_INSTR_SEQ,
240     INSTR_ACKN_TYPE = X_INSTR_ACKN_TYPE,
241     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
242     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
243     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
244   where INSTRUCTION_ID = X_INSTRUCTION_ID;
245 
246   if (sql%notfound) then
247     raise no_data_found;
248   end if;
249 
250   update GMO_INSTR_INSTANCE_TL set
251     INSTRUCTION_TEXT = X_INSTRUCTION_TEXT,
252     COMMENTS = X_COMMENTS,
253     TASK_LABEL = X_TASK_LABEL,
254     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
255     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
256     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
257     SOURCE_LANG = userenv('LANG')
258   where INSTRUCTION_ID = X_INSTRUCTION_ID
259   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
260 
261   if (sql%notfound) then
262     raise no_data_found;
263   end if;
264 end UPDATE_ROW;
265 
266 procedure DELETE_ROW (
267   X_INSTRUCTION_ID in NUMBER
268 ) is
269 begin
270   delete from GMO_INSTR_INSTANCE_TL
271   where INSTRUCTION_ID = X_INSTRUCTION_ID;
272 
273   if (sql%notfound) then
274     raise no_data_found;
275   end if;
276 
277   delete from GMO_INSTR_INSTANCE_B
278   where INSTRUCTION_ID = X_INSTRUCTION_ID;
279 
280   if (sql%notfound) then
281     raise no_data_found;
282   end if;
283 end DELETE_ROW;
284 
285 procedure ADD_LANGUAGE
286 is
287 begin
288   delete from GMO_INSTR_INSTANCE_TL T
289   where not exists
290     (select NULL
291     from GMO_INSTR_INSTANCE_B B
292     where B.INSTRUCTION_ID = T.INSTRUCTION_ID
293     );
294 
295   update GMO_INSTR_INSTANCE_TL T set (
296       INSTRUCTION_TEXT,
297       COMMENTS,
298       TASK_LABEL
299     ) = (select
300       B.INSTRUCTION_TEXT,
301       B.COMMENTS,
302       B.TASK_LABEL
303     from GMO_INSTR_INSTANCE_TL B
304     where B.INSTRUCTION_ID = T.INSTRUCTION_ID
305     and B.LANGUAGE = T.SOURCE_LANG)
306   where (
307       T.INSTRUCTION_ID,
308       T.LANGUAGE
309   ) in (select
310       SUBT.INSTRUCTION_ID,
311       SUBT.LANGUAGE
312     from GMO_INSTR_INSTANCE_TL SUBB, GMO_INSTR_INSTANCE_TL SUBT
313     where SUBB.INSTRUCTION_ID = SUBT.INSTRUCTION_ID
314     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
315     and (SUBB.INSTRUCTION_TEXT <> SUBT.INSTRUCTION_TEXT
316       or (SUBB.INSTRUCTION_TEXT is null and SUBT.INSTRUCTION_TEXT is not null)
317       or (SUBB.INSTRUCTION_TEXT is not null and SUBT.INSTRUCTION_TEXT is null)
318       or SUBB.COMMENTS <> SUBT.COMMENTS
319       or (SUBB.COMMENTS is null and SUBT.COMMENTS is not null)
320       or (SUBB.COMMENTS is not null and SUBT.COMMENTS is null)
321       or SUBB.TASK_LABEL <> SUBT.TASK_LABEL
322       or (SUBB.TASK_LABEL is null and SUBT.TASK_LABEL is not null)
323       or (SUBB.TASK_LABEL is not null and SUBT.TASK_LABEL is null)
324   ));
325 
326   insert into GMO_INSTR_INSTANCE_TL (
327     TASK_LABEL,
328     INSTRUCTION_ID,
329     INSTRUCTION_TEXT,
330     COMMENTS,
331     CREATION_DATE,
332     CREATED_BY,
333     LAST_UPDATE_DATE,
334     LAST_UPDATED_BY,
335     LAST_UPDATE_LOGIN,
336     LANGUAGE,
337     SOURCE_LANG
338   ) select /*+ ORDERED */
339     B.TASK_LABEL,
340     B.INSTRUCTION_ID,
341     B.INSTRUCTION_TEXT,
342     B.COMMENTS,
343     B.CREATION_DATE,
344     B.CREATED_BY,
345     B.LAST_UPDATE_DATE,
346     B.LAST_UPDATED_BY,
347     B.LAST_UPDATE_LOGIN,
348     L.LANGUAGE_CODE,
349     B.SOURCE_LANG
350   from GMO_INSTR_INSTANCE_TL B, FND_LANGUAGES L
351   where L.INSTALLED_FLAG in ('I', 'B')
352   and B.LANGUAGE = userenv('LANG')
353   and not exists
354     (select NULL
355     from GMO_INSTR_INSTANCE_TL T
356     where T.INSTRUCTION_ID = B.INSTRUCTION_ID
357     and T.LANGUAGE = L.LANGUAGE_CODE);
358 end ADD_LANGUAGE;
359 
360 end GMO_INSTR_INSTANCE_PKG;