DBA Data[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;