DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMO_INSTR_SET_DEFN_PKG

Source


1 package body GMO_INSTR_SET_DEFN_PKG as
2 /* $Header: GMOINSDB.pls 120.0 2005/06/29 04:21:30 shthakke noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out nocopy VARCHAR2,
5   X_INSTRUCTION_SET_ID in NUMBER,
6   X_INSTRUCTION_TYPE in VARCHAR2,
7   X_INSTR_SET_NAME in VARCHAR2,
8   X_ENTITY_NAME in VARCHAR2,
9   X_ENTITY_KEY in VARCHAR2,
10   X_ACKN_STATUS in VARCHAR2,
11   X_ORIG_SOURCE in VARCHAR2,
12   X_ORIG_SOURCE_ID in NUMBER,
13   X_INSTR_SET_DESC in VARCHAR2,
14   X_CREATION_DATE in DATE,
15   X_CREATED_BY in NUMBER,
16   X_LAST_UPDATE_DATE in DATE,
17   X_LAST_UPDATED_BY in NUMBER,
18   X_LAST_UPDATE_LOGIN in NUMBER
19 ) is
20   cursor C is select ROWID from GMO_INSTR_SET_DEFN_B
21     where INSTRUCTION_SET_ID = X_INSTRUCTION_SET_ID
22     ;
23 begin
24   insert into GMO_INSTR_SET_DEFN_B (
25     INSTRUCTION_SET_ID,
26     INSTRUCTION_TYPE,
27     INSTR_SET_NAME,
28     ENTITY_NAME,
29     ENTITY_KEY,
30     ACKN_STATUS,
31     ORIG_SOURCE,
32     ORIG_SOURCE_ID,
33     CREATION_DATE,
34     CREATED_BY,
35     LAST_UPDATE_DATE,
36     LAST_UPDATED_BY,
37     LAST_UPDATE_LOGIN
38   ) values (
39     X_INSTRUCTION_SET_ID,
40     X_INSTRUCTION_TYPE,
41     X_INSTR_SET_NAME,
42     X_ENTITY_NAME,
43     X_ENTITY_KEY,
44     X_ACKN_STATUS,
45     X_ORIG_SOURCE,
46     X_ORIG_SOURCE_ID,
47     X_CREATION_DATE,
48     X_CREATED_BY,
49     X_LAST_UPDATE_DATE,
50     X_LAST_UPDATED_BY,
51     X_LAST_UPDATE_LOGIN
52   );
53 
54   insert into GMO_INSTR_SET_DEFN_TL (
55     INSTRUCTION_SET_ID,
56     INSTR_SET_DESC,
57     CREATION_DATE,
58     CREATED_BY,
59     LAST_UPDATE_DATE,
60     LAST_UPDATED_BY,
61     LAST_UPDATE_LOGIN,
62     LANGUAGE,
63     SOURCE_LANG
64   ) select
65     X_INSTRUCTION_SET_ID,
66     X_INSTR_SET_DESC,
67     X_CREATION_DATE,
68     X_CREATED_BY,
69     X_LAST_UPDATE_DATE,
70     X_LAST_UPDATED_BY,
71     X_LAST_UPDATE_LOGIN,
72     L.LANGUAGE_CODE,
73     userenv('LANG')
74   from FND_LANGUAGES L
75   where L.INSTALLED_FLAG in ('I', 'B')
76   and not exists
77     (select NULL
78     from GMO_INSTR_SET_DEFN_TL T
79     where T.INSTRUCTION_SET_ID = X_INSTRUCTION_SET_ID
80     and T.LANGUAGE = L.LANGUAGE_CODE);
81 
82   open c;
83   fetch c into X_ROWID;
84   if (c%notfound) then
85     close c;
86     raise no_data_found;
87   end if;
88   close c;
89 
90 end INSERT_ROW;
91 
92 procedure LOCK_ROW (
93   X_INSTRUCTION_SET_ID in NUMBER,
94   X_INSTRUCTION_TYPE in VARCHAR2,
95   X_INSTR_SET_NAME in VARCHAR2,
96   X_ENTITY_NAME in VARCHAR2,
97   X_ENTITY_KEY in VARCHAR2,
98   X_ACKN_STATUS in VARCHAR2,
99   X_ORIG_SOURCE in VARCHAR2,
100   X_ORIG_SOURCE_ID in NUMBER,
101   X_INSTR_SET_DESC in VARCHAR2
102 ) is
103   cursor c is select
104       INSTRUCTION_TYPE,
105       INSTR_SET_NAME,
106       ENTITY_NAME,
107       ENTITY_KEY,
108       ACKN_STATUS,
109       ORIG_SOURCE,
110       ORIG_SOURCE_ID
111     from GMO_INSTR_SET_DEFN_B
112     where INSTRUCTION_SET_ID = X_INSTRUCTION_SET_ID
113     for update of INSTRUCTION_SET_ID nowait;
114   recinfo c%rowtype;
115 
116   cursor c1 is select
117       INSTR_SET_DESC,
118       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
119     from GMO_INSTR_SET_DEFN_TL
120     where INSTRUCTION_SET_ID = X_INSTRUCTION_SET_ID
121     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
122     for update of INSTRUCTION_SET_ID nowait;
123 begin
124   open c;
125   fetch c into recinfo;
126   if (c%notfound) then
127     close c;
128     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
129     app_exception.raise_exception;
130   end if;
131   close c;
132   if (    ((recinfo.INSTRUCTION_TYPE = X_INSTRUCTION_TYPE)
133            OR ((recinfo.INSTRUCTION_TYPE is null) AND (X_INSTRUCTION_TYPE is null)))
134       AND ((recinfo.INSTR_SET_NAME = X_INSTR_SET_NAME)
135            OR ((recinfo.INSTR_SET_NAME is null) AND (X_INSTR_SET_NAME is null)))
136       AND ((recinfo.ENTITY_NAME = X_ENTITY_NAME)
137            OR ((recinfo.ENTITY_NAME is null) AND (X_ENTITY_NAME is null)))
138       AND ((recinfo.ENTITY_KEY = X_ENTITY_KEY)
139            OR ((recinfo.ENTITY_KEY is null) AND (X_ENTITY_KEY is null)))
140       AND ((recinfo.ACKN_STATUS = X_ACKN_STATUS)
141            OR ((recinfo.ACKN_STATUS is null) AND (X_ACKN_STATUS is null)))
142       AND ((recinfo.ORIG_SOURCE = X_ORIG_SOURCE)
143            OR ((recinfo.ORIG_SOURCE is null) AND (X_ORIG_SOURCE is null)))
144       AND ((recinfo.ORIG_SOURCE_ID = X_ORIG_SOURCE_ID)
145            OR ((recinfo.ORIG_SOURCE_ID is null) AND (X_ORIG_SOURCE_ID is null)))
146   ) then
147     null;
148   else
149     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
150     app_exception.raise_exception;
151   end if;
152 
153   for tlinfo in c1 loop
154     if (tlinfo.BASELANG = 'Y') then
155       if (    ((tlinfo.INSTR_SET_DESC = X_INSTR_SET_DESC)
156                OR ((tlinfo.INSTR_SET_DESC is null) AND (X_INSTR_SET_DESC is null)))
157       ) then
158         null;
159       else
160         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
161         app_exception.raise_exception;
162       end if;
163     end if;
164   end loop;
165   return;
166 end LOCK_ROW;
167 
168 procedure UPDATE_ROW (
169   X_INSTRUCTION_SET_ID in NUMBER,
170   X_INSTRUCTION_TYPE in VARCHAR2,
171   X_INSTR_SET_NAME in VARCHAR2,
172   X_ENTITY_NAME in VARCHAR2,
173   X_ENTITY_KEY in VARCHAR2,
174   X_ACKN_STATUS in VARCHAR2,
175   X_ORIG_SOURCE in VARCHAR2,
176   X_ORIG_SOURCE_ID in NUMBER,
177   X_INSTR_SET_DESC in VARCHAR2,
178   X_LAST_UPDATE_DATE in DATE,
179   X_LAST_UPDATED_BY in NUMBER,
180   X_LAST_UPDATE_LOGIN in NUMBER
181 ) is
182 begin
183   update GMO_INSTR_SET_DEFN_B set
184     INSTRUCTION_TYPE = X_INSTRUCTION_TYPE,
185     INSTR_SET_NAME = X_INSTR_SET_NAME,
186     ENTITY_NAME = X_ENTITY_NAME,
187     ENTITY_KEY = X_ENTITY_KEY,
188     ACKN_STATUS = X_ACKN_STATUS,
189     ORIG_SOURCE = X_ORIG_SOURCE,
190     ORIG_SOURCE_ID = X_ORIG_SOURCE_ID,
191     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
192     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
193     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
194   where INSTRUCTION_SET_ID = X_INSTRUCTION_SET_ID;
195 
196   if (sql%notfound) then
197     raise no_data_found;
198   end if;
199 
200   update GMO_INSTR_SET_DEFN_TL set
201     INSTR_SET_DESC = X_INSTR_SET_DESC,
202     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
203     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
204     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
205     SOURCE_LANG = userenv('LANG')
206   where INSTRUCTION_SET_ID = X_INSTRUCTION_SET_ID
207   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
208 
209   if (sql%notfound) then
210     raise no_data_found;
211   end if;
212 end UPDATE_ROW;
213 
214 procedure DELETE_ROW (
215   X_INSTRUCTION_SET_ID in NUMBER
216 ) is
217 begin
218   delete from GMO_INSTR_SET_DEFN_TL
219   where INSTRUCTION_SET_ID = X_INSTRUCTION_SET_ID;
220 
221   if (sql%notfound) then
222     raise no_data_found;
223   end if;
224 
225   delete from GMO_INSTR_SET_DEFN_B
226   where INSTRUCTION_SET_ID = X_INSTRUCTION_SET_ID;
227 
228   if (sql%notfound) then
229     raise no_data_found;
230   end if;
231 end DELETE_ROW;
232 
233 procedure ADD_LANGUAGE
234 is
235 begin
236   delete from GMO_INSTR_SET_DEFN_TL T
237   where not exists
238     (select NULL
239     from GMO_INSTR_SET_DEFN_B B
240     where B.INSTRUCTION_SET_ID = T.INSTRUCTION_SET_ID
241     );
242 
243   update GMO_INSTR_SET_DEFN_TL T set (
244       INSTR_SET_DESC
245     ) = (select
246       B.INSTR_SET_DESC
247     from GMO_INSTR_SET_DEFN_TL B
248     where B.INSTRUCTION_SET_ID = T.INSTRUCTION_SET_ID
249     and B.LANGUAGE = T.SOURCE_LANG)
250   where (
251       T.INSTRUCTION_SET_ID,
252       T.LANGUAGE
253   ) in (select
254       SUBT.INSTRUCTION_SET_ID,
255       SUBT.LANGUAGE
256     from GMO_INSTR_SET_DEFN_TL SUBB, GMO_INSTR_SET_DEFN_TL SUBT
257     where SUBB.INSTRUCTION_SET_ID = SUBT.INSTRUCTION_SET_ID
258     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
259     and (SUBB.INSTR_SET_DESC <> SUBT.INSTR_SET_DESC
260       or (SUBB.INSTR_SET_DESC is null and SUBT.INSTR_SET_DESC is not null)
261       or (SUBB.INSTR_SET_DESC is not null and SUBT.INSTR_SET_DESC is null)
262   ));
263 
264   insert into GMO_INSTR_SET_DEFN_TL (
265     INSTRUCTION_SET_ID,
266     INSTR_SET_DESC,
267     CREATION_DATE,
268     CREATED_BY,
269     LAST_UPDATE_DATE,
270     LAST_UPDATED_BY,
271     LAST_UPDATE_LOGIN,
272     LANGUAGE,
273     SOURCE_LANG
274   ) select /*+ ORDERED */
275     B.INSTRUCTION_SET_ID,
276     B.INSTR_SET_DESC,
277     B.CREATION_DATE,
278     B.CREATED_BY,
279     B.LAST_UPDATE_DATE,
280     B.LAST_UPDATED_BY,
281     B.LAST_UPDATE_LOGIN,
282     L.LANGUAGE_CODE,
283     B.SOURCE_LANG
284   from GMO_INSTR_SET_DEFN_TL B, FND_LANGUAGES L
285   where L.INSTALLED_FLAG in ('I', 'B')
286   and B.LANGUAGE = userenv('LANG')
287   and not exists
288     (select NULL
289     from GMO_INSTR_SET_DEFN_TL T
290     where T.INSTRUCTION_SET_ID = B.INSTRUCTION_SET_ID
291     and T.LANGUAGE = L.LANGUAGE_CODE);
292 end ADD_LANGUAGE;
293 
294 end GMO_INSTR_SET_DEFN_PKG;