[Home] [Help]
PACKAGE BODY: APPS.HR_FORM_WINDOWS_PKG
Source
1 package body HR_FORM_WINDOWS_PKG as
2 /* $Header: hrfwnlct.pkb 115.1 2002/12/10 11:59:40 hjonnala noship $ */
3 procedure OWNER_TO_WHO (
4 X_OWNER in VARCHAR2,
5 X_CREATION_DATE out nocopy DATE,
6 X_CREATED_BY out nocopy NUMBER,
7 X_LAST_UPDATE_DATE out nocopy DATE,
8 X_LAST_UPDATED_BY out nocopy NUMBER,
9 X_LAST_UPDATE_LOGIN out nocopy NUMBER
10 ) is
11 begin
12 if X_OWNER = 'SEED' then
13 X_CREATED_BY := 1;
14 X_LAST_UPDATED_BY := 1;
15 else
16 X_CREATED_BY := 0;
17 X_LAST_UPDATED_BY := 0;
18 end if;
19 X_CREATION_DATE := sysdate;
20 X_LAST_UPDATE_DATE := sysdate;
21 X_LAST_UPDATE_LOGIN := 0;
22 end OWNER_TO_WHO;
23 procedure INSERT_ROW (
24 X_ROWID in out nocopy VARCHAR2,
25 X_FORM_WINDOW_ID in NUMBER,
26 X_WINDOW_NAME in VARCHAR2,
27 X_FORM_ID in NUMBER,
28 X_OBJECT_VERSION_NUMBER in NUMBER,
29 X_APPLICATION_ID in NUMBER,
30 X_USER_WINDOW_NAME in VARCHAR2,
31 X_DESCRIPTION in VARCHAR2,
32 X_CREATION_DATE in DATE,
33 X_CREATED_BY in NUMBER,
34 X_LAST_UPDATE_DATE in DATE,
35 X_LAST_UPDATED_BY in NUMBER,
36 X_LAST_UPDATE_LOGIN in NUMBER
37 ) is
38 cursor C is select ROWID from HR_FORM_WINDOWS_B
39 where FORM_WINDOW_ID = X_FORM_WINDOW_ID
40 ;
41 begin
42 insert into HR_FORM_WINDOWS_B (
43 WINDOW_NAME,
44 FORM_ID,
45 FORM_WINDOW_ID,
46 OBJECT_VERSION_NUMBER,
47 APPLICATION_ID,
48 CREATION_DATE,
49 CREATED_BY,
50 LAST_UPDATE_DATE,
51 LAST_UPDATED_BY,
52 LAST_UPDATE_LOGIN
53 ) values (
54 X_WINDOW_NAME,
55 X_FORM_ID,
56 X_FORM_WINDOW_ID,
57 X_OBJECT_VERSION_NUMBER,
58 X_APPLICATION_ID,
59 X_CREATION_DATE,
60 X_CREATED_BY,
61 X_LAST_UPDATE_DATE,
62 X_LAST_UPDATED_BY,
63 X_LAST_UPDATE_LOGIN
64 );
65
66 insert into HR_FORM_WINDOWS_TL (
67 FORM_WINDOW_ID,
68 USER_WINDOW_NAME,
69 DESCRIPTION,
70 LAST_UPDATE_DATE,
71 LAST_UPDATED_BY,
72 LAST_UPDATE_LOGIN,
73 CREATED_BY,
74 CREATION_DATE,
75 LANGUAGE,
76 SOURCE_LANG
77 ) select
78 X_FORM_WINDOW_ID,
79 X_USER_WINDOW_NAME,
80 X_DESCRIPTION,
81 X_LAST_UPDATE_DATE,
82 X_LAST_UPDATED_BY,
83 X_LAST_UPDATE_LOGIN,
84 X_CREATED_BY,
85 X_CREATION_DATE,
86 L.LANGUAGE_CODE,
87 userenv('LANG')
88 from FND_LANGUAGES L
89 where L.INSTALLED_FLAG in ('I', 'B')
90 and not exists
91 (select NULL
92 from HR_FORM_WINDOWS_TL T
93 where T.FORM_WINDOW_ID = X_FORM_WINDOW_ID
94 and T.LANGUAGE = L.LANGUAGE_CODE);
95
96 open c;
97 fetch c into X_ROWID;
98 if (c%notfound) then
99 close c;
100 raise no_data_found;
101 end if;
102 close c;
103
104 end INSERT_ROW;
105
106 procedure LOCK_ROW (
107 X_FORM_WINDOW_ID in NUMBER,
108 X_WINDOW_NAME in VARCHAR2,
109 X_FORM_ID in NUMBER,
110 X_OBJECT_VERSION_NUMBER in NUMBER,
111 X_APPLICATION_ID in NUMBER,
112 X_USER_WINDOW_NAME in VARCHAR2,
113 X_DESCRIPTION in VARCHAR2
114 ) is
115 cursor c is select
116 WINDOW_NAME,
117 FORM_ID,
118 OBJECT_VERSION_NUMBER,
119 APPLICATION_ID
120 from HR_FORM_WINDOWS_B
121 where FORM_WINDOW_ID = X_FORM_WINDOW_ID
122 for update of FORM_WINDOW_ID nowait;
123 recinfo c%rowtype;
124
125 cursor c1 is select
126 USER_WINDOW_NAME,
127 DESCRIPTION,
128 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
129 from HR_FORM_WINDOWS_TL
130 where FORM_WINDOW_ID = X_FORM_WINDOW_ID
131 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
132 for update of FORM_WINDOW_ID nowait;
133 begin
134 open c;
135 fetch c into recinfo;
136 if (c%notfound) then
137 close c;
138 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
139 app_exception.raise_exception;
140 end if;
141 close c;
142 if ( (recinfo.WINDOW_NAME = X_WINDOW_NAME)
143 AND (recinfo.FORM_ID = X_FORM_ID)
144 AND (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
145 AND (recinfo.APPLICATION_ID = X_APPLICATION_ID)
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.USER_WINDOW_NAME = X_USER_WINDOW_NAME)
156 AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
157 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
158 ) then
159 null;
160 else
161 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
162 app_exception.raise_exception;
163 end if;
164 end if;
165 end loop;
166 return;
167 end LOCK_ROW;
168
169 procedure UPDATE_ROW (
170 X_FORM_WINDOW_ID in NUMBER,
171 X_WINDOW_NAME in VARCHAR2,
172 X_FORM_ID in NUMBER,
173 X_OBJECT_VERSION_NUMBER in NUMBER,
174 X_APPLICATION_ID in NUMBER,
175 X_USER_WINDOW_NAME in VARCHAR2,
176 X_DESCRIPTION in VARCHAR2,
177 X_LAST_UPDATE_DATE in DATE,
178 X_LAST_UPDATED_BY in NUMBER,
179 X_LAST_UPDATE_LOGIN in NUMBER
180 ) is
181 begin
182 update HR_FORM_WINDOWS_B set
183 WINDOW_NAME = X_WINDOW_NAME,
184 FORM_ID = X_FORM_ID,
185 OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
186 APPLICATION_ID = X_APPLICATION_ID,
187 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
188 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
189 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
190 where FORM_WINDOW_ID = X_FORM_WINDOW_ID;
191
192 if (sql%notfound) then
193 raise no_data_found;
194 end if;
195
196 update HR_FORM_WINDOWS_TL set
197 USER_WINDOW_NAME = X_USER_WINDOW_NAME,
198 DESCRIPTION = X_DESCRIPTION,
199 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
200 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
201 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
202 SOURCE_LANG = userenv('LANG')
203 where FORM_WINDOW_ID = X_FORM_WINDOW_ID
204 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
205
206 if (sql%notfound) then
207 raise no_data_found;
208 end if;
209 end UPDATE_ROW;
210
211 procedure DELETE_ROW (
212 X_FORM_WINDOW_ID in NUMBER
213 ) is
214 begin
215 delete from HR_FORM_WINDOWS_TL
216 where FORM_WINDOW_ID = X_FORM_WINDOW_ID;
217
218 if (sql%notfound) then
219 raise no_data_found;
220 end if;
221
222 delete from HR_FORM_WINDOWS_B
223 where FORM_WINDOW_ID = X_FORM_WINDOW_ID;
224
225 if (sql%notfound) then
226 raise no_data_found;
227 end if;
228 end DELETE_ROW;
229
230 procedure ADD_LANGUAGE
231 is
232 begin
233 delete from HR_FORM_WINDOWS_TL T
234 where not exists
235 (select NULL
236 from HR_FORM_WINDOWS_B B
237 where B.FORM_WINDOW_ID = T.FORM_WINDOW_ID
238 );
239
240 update HR_FORM_WINDOWS_TL T set (
241 USER_WINDOW_NAME,
242 DESCRIPTION
243 ) = (select
244 B.USER_WINDOW_NAME,
245 B.DESCRIPTION
246 from HR_FORM_WINDOWS_TL B
247 where B.FORM_WINDOW_ID = T.FORM_WINDOW_ID
248 and B.LANGUAGE = T.SOURCE_LANG)
249 where (
250 T.FORM_WINDOW_ID,
251 T.LANGUAGE
252 ) in (select
253 SUBT.FORM_WINDOW_ID,
254 SUBT.LANGUAGE
255 from HR_FORM_WINDOWS_TL SUBB, HR_FORM_WINDOWS_TL SUBT
256 where SUBB.FORM_WINDOW_ID = SUBT.FORM_WINDOW_ID
257 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
258 and (SUBB.USER_WINDOW_NAME <> SUBT.USER_WINDOW_NAME
259 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
260 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
261 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
262 ));
263
264 insert into HR_FORM_WINDOWS_TL (
265 FORM_WINDOW_ID,
266 USER_WINDOW_NAME,
267 DESCRIPTION,
268 LAST_UPDATE_DATE,
269 LAST_UPDATED_BY,
270 LAST_UPDATE_LOGIN,
271 CREATED_BY,
272 CREATION_DATE,
273 LANGUAGE,
274 SOURCE_LANG
275 ) select
276 B.FORM_WINDOW_ID,
277 B.USER_WINDOW_NAME,
278 B.DESCRIPTION,
279 B.LAST_UPDATE_DATE,
280 B.LAST_UPDATED_BY,
281 B.LAST_UPDATE_LOGIN,
282 B.CREATED_BY,
283 B.CREATION_DATE,
284 L.LANGUAGE_CODE,
285 B.SOURCE_LANG
286 from HR_FORM_WINDOWS_TL B, FND_LANGUAGES L
287 where L.INSTALLED_FLAG in ('I', 'B')
288 and B.LANGUAGE = userenv('LANG')
289 and not exists
290 (select NULL
291 from HR_FORM_WINDOWS_TL T
292 where T.FORM_WINDOW_ID = B.FORM_WINDOW_ID
293 and T.LANGUAGE = L.LANGUAGE_CODE);
294 end ADD_LANGUAGE;
295 procedure TRANSLATE_ROW (
296 X_APPLICATION_SHORT_NAME in VARCHAR2,
297 X_FORM_NAME in VARCHAR2,
298 X_WINDOW_NAME in VARCHAR2,
299 X_OWNER in VARCHAR2,
300 X_USER_WINDOW_NAME in VARCHAR2,
301 X_DESCRIPTION in VARCHAR2) is
302 X_ROWID ROWID;
303 X_CREATION_DATE DATE;
304 X_CREATED_BY NUMBER;
305 X_LAST_UPDATE_DATE DATE;
306 X_LAST_UPDATED_BY NUMBER;
307 X_LAST_UPDATE_LOGIN NUMBER;
308 X_FORM_ID NUMBER;
309 X_APPLICATION_ID NUMBER;
310 X_FORM_WINDOW_ID NUMBER;
311 begin
312
313 OWNER_TO_WHO (
314 X_OWNER,
315 X_CREATION_DATE,
316 X_CREATED_BY,
317 X_LAST_UPDATE_DATE,
318 X_LAST_UPDATED_BY,
319 X_LAST_UPDATE_LOGIN
320 );
321
322 select application_id
323 into x_application_id
324 from fnd_application
325 where application_short_name = x_application_short_name;
326
327 select form_id
328 into x_form_id
329 from fnd_form
330 where form_name = x_form_name
331 and application_id = x_application_id;
332
333 select form_window_id
334 into x_form_window_id
335 from hr_form_windows_b
336 where window_name = x_window_name
337 and application_id = x_application_id
338 and form_id = x_form_id;
339
340 update HR_FORM_WINDOWS_TL set
341 DESCRIPTION = X_DESCRIPTION,
342 USER_WINDOW_NAME = X_USER_WINDOW_NAME,
343 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
344 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
345 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
346 SOURCE_LANG = userenv('LANG')
347 where userenv('LANG') in (LANGUAGE,SOURCE_LANG)
348 and form_window_id = x_form_window_id;
349
350 end TRANSLATE_ROW;
351
352 procedure LOAD_ROW (
353 X_APPLICATION_SHORT_NAME in VARCHAR2,
354 X_FORM_NAME in VARCHAR2,
355 X_WINDOW_NAME in VARCHAR2,
356 X_OWNER in VARCHAR2,
357 X_OBJECT_VERSION_NUMBER in VARCHAR2,
358 X_USER_WINDOW_NAME in VARCHAR2,
359 X_DESCRIPTION in VARCHAR2) is
360 X_ROWID ROWID;
361 X_CREATION_DATE DATE;
362 X_CREATED_BY NUMBER;
363 X_LAST_UPDATE_DATE DATE;
364 X_LAST_UPDATED_BY NUMBER;
365 X_LAST_UPDATE_LOGIN NUMBER;
366 X_FORM_ID NUMBER;
367 X_APPLICATION_ID NUMBER;
368 X_FORM_WINDOW_ID NUMBER;
369 begin
370
371 OWNER_TO_WHO (
372 X_OWNER,
373 X_CREATION_DATE,
374 X_CREATED_BY,
375 X_LAST_UPDATE_DATE,
376 X_LAST_UPDATED_BY,
377 X_LAST_UPDATE_LOGIN
378 );
379
380 select application_id
381 into x_application_id
382 from fnd_application
383 where application_short_name = x_application_short_name;
384
385 select form_id
386 into x_form_id
387 from fnd_form
388 where form_name = x_form_name
389 and application_id = x_application_id;
390
391 begin
392 select form_window_id
393 into x_form_window_id
394 from hr_form_windows_b
395 where window_name = x_window_name
396 and application_id = x_application_id
397 and form_id = x_form_id;
398 exception
399 when no_data_found then
400 select hr_form_windows_b_s.nextval
401 into x_form_window_id
402 from dual;
403 end;
404
405 begin
406
407 UPDATE_ROW (
408 X_FORM_WINDOW_ID,
409 X_WINDOW_NAME,
410 X_FORM_ID,
411 to_number(X_OBJECT_VERSION_NUMBER),
412 X_APPLICATION_ID,
413 X_USER_WINDOW_NAME,
414 X_DESCRIPTION,
415 X_LAST_UPDATE_DATE,
416 X_LAST_UPDATED_BY,
417 X_LAST_UPDATE_LOGIN
418 );
419
420 exception
421 when no_data_found then
422 INSERT_ROW (
423 X_ROWID,
424 X_FORM_WINDOW_ID,
425 X_WINDOW_NAME,
426 X_FORM_ID,
427 to_number(X_OBJECT_VERSION_NUMBER),
428 X_APPLICATION_ID,
429 X_USER_WINDOW_NAME,
430 X_DESCRIPTION,
431 X_CREATION_DATE,
432 X_CREATED_BY,
433 X_LAST_UPDATE_DATE,
434 X_LAST_UPDATED_BY,
435 X_LAST_UPDATE_LOGIN);
436 end;
437 end LOAD_ROW;
438 end HR_FORM_WINDOWS_PKG;