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