[Home] [Help]
PACKAGE BODY: APPS.IEU_UWQ_RES_CATS_PKG
Source
1 package body IEU_UWQ_RES_CATS_PKG as
2 /* $Header: IEURCATB.pls 120.2 2005/06/20 08:12:00 appldev ship $ */
3
4 procedure INSERT_ROW (
5 X_ROWID in out nocopy VARCHAR2,
6 X_RES_CAT_ID in NUMBER,
7 X_OBJECT_VERSION_NUMBER in NUMBER,
8 X_APPLICATION_ID in NUMBER,
9 X_WHERE_CLAUSE in VARCHAR2,
10 X_NAME in VARCHAR2,
11 X_DESCRIPTION in VARCHAR2,
12 X_CREATION_DATE in DATE,
13 X_CREATED_BY in NUMBER,
14 X_LAST_UPDATE_DATE in DATE,
15 X_LAST_UPDATED_BY in NUMBER,
16 X_LAST_UPDATE_LOGIN in NUMBER
17 ) is
18 cursor C is select ROWID from IEU_UWQ_RES_CATS_B
19 where RES_CAT_ID = X_RES_CAT_ID
20 ;
21 begin
22
23 insert into IEU_UWQ_RES_CATS_B (
24 RES_CAT_ID,
25 OBJECT_VERSION_NUMBER,
26 APPLICATION_ID,
27 WHERE_CLAUSE,
28 CREATION_DATE,
29 CREATED_BY,
30 LAST_UPDATE_DATE,
31 LAST_UPDATED_BY,
32 LAST_UPDATE_LOGIN
33 ) values (
34 X_RES_CAT_ID,
35 X_OBJECT_VERSION_NUMBER,
36 X_APPLICATION_ID,
37 X_WHERE_CLAUSE,
38 X_CREATION_DATE,
39 X_CREATED_BY,
40 X_LAST_UPDATE_DATE,
41 X_LAST_UPDATED_BY,
42 X_LAST_UPDATE_LOGIN
43 );
44
45 insert into IEU_UWQ_RES_CATS_TL (
46 RES_CAT_ID,
47 OBJECT_VERSION_NUMBER,
48 CREATED_BY,
49 CREATION_DATE,
50 LAST_UPDATED_BY,
51 LAST_UPDATE_DATE,
52 LAST_UPDATE_LOGIN,
53 NAME,
54 DESCRIPTION,
55 LANGUAGE,
56 SOURCE_LANG
57 ) select
58 X_RES_CAT_ID,
59 X_OBJECT_VERSION_NUMBER,
60 X_CREATED_BY,
61 X_CREATION_DATE,
62 X_LAST_UPDATED_BY,
63 X_LAST_UPDATE_DATE,
64 X_LAST_UPDATE_LOGIN,
65 X_NAME,
66 X_DESCRIPTION,
67 L.LANGUAGE_CODE,
68 userenv('LANG')
69 from FND_LANGUAGES L
70 where L.INSTALLED_FLAG in ('I', 'B')
71 and not exists
72 (select NULL
73 from IEU_UWQ_RES_CATS_TL T
74 where T.RES_CAT_ID = X_RES_CAT_ID
75 and T.LANGUAGE = L.LANGUAGE_CODE);
76
77 open c;
78 fetch c into X_ROWID;
79 if (c%notfound) then
80 close c;
81 raise no_data_found;
82 end if;
83 close c;
84
85 end INSERT_ROW;
86
87 procedure LOCK_ROW (
88 X_RES_CAT_ID in NUMBER,
89 X_OBJECT_VERSION_NUMBER in NUMBER,
90 X_APPLICATION_ID in NUMBER,
91 X_WHERE_CLAUSE in VARCHAR2,
92 X_NAME in VARCHAR2,
93 X_DESCRIPTION in VARCHAR2
94 ) is
95 cursor c is select
96 OBJECT_VERSION_NUMBER,
97 APPLICATION_ID,
98 WHERE_CLAUSE
99 from IEU_UWQ_RES_CATS_B
100 where RES_CAT_ID = X_RES_CAT_ID
101 for update of RES_CAT_ID nowait;
102 recinfo c%rowtype;
103
104 cursor c1 is select
105 NAME,
106 DESCRIPTION,
107 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
108 from IEU_UWQ_RES_CATS_TL
109 where RES_CAT_ID = X_RES_CAT_ID
110 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
111 for update of RES_CAT_ID nowait;
112 begin
113 open c;
114 fetch c into recinfo;
115 if (c%notfound) then
116 close c;
117 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
118 app_exception.raise_exception;
119 end if;
120 close c;
121 if ( (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
122 AND (recinfo.APPLICATION_ID = X_APPLICATION_ID)
123 AND (recinfo.WHERE_CLAUSE = X_WHERE_CLAUSE)
124 ) then
125 null;
126 else
127 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
128 app_exception.raise_exception;
129 end if;
130
131 for tlinfo in c1 loop
132 if (tlinfo.BASELANG = 'Y') then
133 if ( (tlinfo.NAME = X_NAME)
134 AND (tlinfo.DESCRIPTION = X_DESCRIPTION)
135 ) then
136 null;
137 else
138 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
139 app_exception.raise_exception;
140 end if;
141 end if;
142 end loop;
143 return;
144 end LOCK_ROW;
145
146 procedure UPDATE_ROW (
147 X_RES_CAT_ID in NUMBER,
148 X_OBJECT_VERSION_NUMBER in NUMBER,
149 X_APPLICATION_ID in NUMBER,
150 X_WHERE_CLAUSE in VARCHAR2,
151 X_NAME in VARCHAR2,
152 X_DESCRIPTION in VARCHAR2,
153 X_LAST_UPDATE_DATE in DATE,
154 X_LAST_UPDATED_BY in NUMBER,
155 X_LAST_UPDATE_LOGIN in NUMBER
156 ) is
157 begin
158 update IEU_UWQ_RES_CATS_B set
159 OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
160 APPLICATION_ID = X_APPLICATION_ID,
161 WHERE_CLAUSE = X_WHERE_CLAUSE,
162 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
163 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
164 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
165 where RES_CAT_ID = X_RES_CAT_ID;
166
167 if (sql%notfound) then
168 raise no_data_found;
169 end if;
170
171 update IEU_UWQ_RES_CATS_TL set
172 NAME = X_NAME,
173 DESCRIPTION = X_DESCRIPTION,
174 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
175 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
176 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
177 SOURCE_LANG = userenv('LANG')
178 where RES_CAT_ID = X_RES_CAT_ID
179 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
180
181 if (sql%notfound) then
182 raise no_data_found;
183 end if;
184 end UPDATE_ROW;
185
186 procedure DELETE_ROW (
187 X_RES_CAT_ID in NUMBER
188 ) is
189 begin
190 delete from IEU_UWQ_RES_CATS_TL
191 where RES_CAT_ID = X_RES_CAT_ID;
192
193 if (sql%notfound) then
194 raise no_data_found;
195 end if;
196
197 delete from IEU_UWQ_RES_CATS_B
198 where RES_CAT_ID = X_RES_CAT_ID;
199
200 if (sql%notfound) then
201 raise no_data_found;
202 end if;
203 end DELETE_ROW;
204
205 procedure ADD_LANGUAGE
206 is
207 begin
208 delete from IEU_UWQ_RES_CATS_TL T
209 where not exists
210 (select NULL
211 from IEU_UWQ_RES_CATS_B B
212 where B.RES_CAT_ID = T.RES_CAT_ID
213 );
214
215 update IEU_UWQ_RES_CATS_TL T set (
216 NAME,
217 DESCRIPTION
218 ) = (select
219 B.NAME,
220 B.DESCRIPTION
221 from IEU_UWQ_RES_CATS_TL B
222 where B.RES_CAT_ID = T.RES_CAT_ID
223 and B.LANGUAGE = T.SOURCE_LANG)
224 where (
225 T.RES_CAT_ID,
226 T.LANGUAGE
227 ) in (select
228 SUBT.RES_CAT_ID,
229 SUBT.LANGUAGE
230 from IEU_UWQ_RES_CATS_TL SUBB, IEU_UWQ_RES_CATS_TL SUBT
231 where SUBB.RES_CAT_ID = SUBT.RES_CAT_ID
232 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
233 and (SUBB.NAME <> SUBT.NAME
234 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
235 ));
236
237 insert into IEU_UWQ_RES_CATS_TL (
238 RES_CAT_ID,
239 OBJECT_VERSION_NUMBER,
240 CREATED_BY,
241 CREATION_DATE,
242 LAST_UPDATED_BY,
243 LAST_UPDATE_DATE,
244 LAST_UPDATE_LOGIN,
245 NAME,
246 DESCRIPTION,
247 LANGUAGE,
248 SOURCE_LANG
249 ) select /*+ ORDERED */
250 B.RES_CAT_ID,
251 B.OBJECT_VERSION_NUMBER,
252 B.CREATED_BY,
253 B.CREATION_DATE,
254 B.LAST_UPDATED_BY,
255 B.LAST_UPDATE_DATE,
256 B.LAST_UPDATE_LOGIN,
257 B.NAME,
258 B.DESCRIPTION,
259 L.LANGUAGE_CODE,
260 B.SOURCE_LANG
261 from IEU_UWQ_RES_CATS_TL B, FND_LANGUAGES L
262 where L.INSTALLED_FLAG in ('I', 'B')
263 and B.LANGUAGE = userenv('LANG')
264 and not exists
265 (select NULL
266 from IEU_UWQ_RES_CATS_TL T
267 where T.RES_CAT_ID = B.RES_CAT_ID
268 and T.LANGUAGE = L.LANGUAGE_CODE);
269 end ADD_LANGUAGE;
270
271 procedure LOAD_ROW (
272 X_RES_CAT_ID in NUMBER,
273 X_APPLICATION_SHORT_NAME in VARCHAR2,
274 X_WHERE_CLAUSE in VARCHAR2,
275 X_NAME in VARCHAR2,
276 X_DESCRIPTION in VARCHAR2,
277 X_OWNER in VARCHAR2
278 ) is
279 l_user_id number := 0;
280 l_rowid varchar2(50);
281 l_app_id number;
282
283 begin
284
285 IF (x_owner = 'SEED') then
286 l_user_id := 1;
287 end if;
288
289 select
290 application_id
291 into
292 l_app_id
293 from
294 fnd_application
295 where
296 application_short_name = x_application_short_name;
297
298 begin
299
300 UPDATE_ROW(
301 X_RES_CAT_ID => x_res_cat_id,
302 X_OBJECT_VERSION_NUMBER => 0,
303 X_APPLICATION_ID => l_app_id,
304 X_WHERE_CLAUSE => x_where_clause,
305 X_NAME => x_name,
306 X_DESCRIPTION => x_description,
307 X_LAST_UPDATE_DATE => SYSDATE,
308 --X_LAST_UPDATED_BY => l_user_id,
309 X_LAST_UPDATED_BY => fnd_load_util.owner_id(X_OWNER),
310 X_LAST_UPDATE_LOGIN => 0
311 );
312
313 if (sql%notfound) then
314 raise no_data_found;
315 end if;
316
317 exception
318 when no_data_found then
319
320 INSERT_ROW(
321 X_ROWID => l_rowid,
322 X_RES_CAT_ID => x_res_cat_id,
323 X_OBJECT_VERSION_NUMBER => 0,
324 X_APPLICATION_ID => l_app_id,
325 X_WHERE_CLAUSE => x_where_clause,
326 X_NAME => x_name,
327 X_DESCRIPTION => x_description,
328 X_CREATION_DATE => SYSDATE,
329 --X_CREATED_BY => l_user_id,
330 X_CREATED_BY => fnd_load_util.owner_id(X_OWNER),
331 X_LAST_UPDATE_DATE => SYSDATE,
332 --X_LAST_UPDATED_BY => l_user_id,
333 X_LAST_UPDATED_BY => fnd_load_util.owner_id(X_OWNER),
334 X_LAST_UPDATE_LOGIN => 0
335 );
336
337 end;
338
339 end LOAD_ROW;
340
341
342 procedure TRANSLATE_ROW (
343 X_RES_CAT_ID in NUMBER,
344 X_NAME in VARCHAR2,
345 X_DESCRIPTION in VARCHAR2,
346 X_OWNER in VARCHAR2
347 ) is
348 begin
349
350 -- only UPDATE rows that have not been altered by user
351
352 UPDATE
353 IEU_UWQ_RES_CATS_TL
354 SET
355 source_lang = userenv('LANG'),
356 name = x_name,
357 description = x_description,
358 last_update_date = sysdate,
359 --last_updated_by = decode(x_owner, 'SEED', 1, 0),
360 last_updated_by = fnd_load_util.owner_id(X_OWNER),
361 last_update_login = 0
362 WHERE
363 (res_cat_id = x_res_cat_id) and
364 (userenv('LANG') IN (language, source_lang));
365
366 if (sql%notfound) then
367 raise no_data_found;
368 end if;
369
370 end TRANSLATE_ROW;
371
372 procedure LOAD_SEED_ROW(
373 X_UPLOAD_MODE in VARCHAR2,
374 X_RES_CAT_ID in NUMBER,
375 X_NAME in VARCHAR2,
376 X_DESCRIPTION in VARCHAR2,
377 X_OWNER in VARCHAR2,
378 X_APPLICATION_SHORT_NAME in VARCHAR2,
379 X_WHERE_CLAUSE in VARCHAR2
380 ) is
381 begin
382
383 if (X_UPLOAD_MODE = 'NLS') then
384 TRANSLATE_ROW (
385 X_RES_CAT_ID,
386 X_NAME,
387 X_DESCRIPTION,
388 X_OWNER);
389 else
390 LOAD_ROW (
391 X_RES_CAT_ID,
392 X_APPLICATION_SHORT_NAME,
393 X_WHERE_CLAUSE,
394 X_NAME,
395 X_DESCRIPTION,
396 X_OWNER);
397 end if;
398
399 end LOAD_SEED_ROW;
400
401
402 end IEU_UWQ_RES_CATS_PKG;