DBA Data[Home] [Help]

PACKAGE BODY: APPS.BIS_LEVELS_CUSTOMIZATIONS_PKG

Source


1 package body BIS_LEVELS_CUSTOMIZATIONS_PKG as
2 /* $Header: BISPCDLB.pls 115.1 2003/12/09 14:52:00 ankgoel noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_ID in NUMBER,
6   X_LEVEL_ID in NUMBER,
7   X_ENABLED in VARCHAR2,
8   X_USER_ID in NUMBER,
9   X_RESPONSIBILITY_ID in NUMBER,
10   X_APPLICATION_ID in NUMBER,
11   X_ORG_ID in NUMBER,
12   X_SITE_ID in NUMBER,
13   X_PAGE_ID in NUMBER,
14   X_FUNCTION_ID in NUMBER,
15   X_NAME in VARCHAR2,
16   X_DESCRIPTION in VARCHAR2,
17   X_CREATION_DATE in DATE,
18   X_CREATED_BY in NUMBER,
19   X_LAST_UPDATE_DATE in DATE,
20   X_LAST_UPDATED_BY in NUMBER,
21   X_LAST_UPDATE_LOGIN in NUMBER
22 ) is
23   cursor C is select ROWID from BIS_LEVELS_CUSTOMIZATIONS
24     where ID = X_ID
25     ;
26 begin
27   IF ( X_ENABLED = FND_API.G_FALSE ) THEN
28     BIS_DIMENSION_LEVEL_PUB.validate_disabling(p_dim_level_id => X_LEVEL_ID );
29   END IF;
30 
31   insert into BIS_LEVELS_CUSTOMIZATIONS (
32     ID,
33     LEVEL_ID,
34     ENABLED,
35     USER_ID,
36     RESPONSIBILITY_ID,
37     APPLICATION_ID,
38     ORG_ID,
39     SITE_ID,
40     PAGE_ID,
41     FUNCTION_ID,
42     CREATION_DATE,
43     CREATED_BY,
44     LAST_UPDATE_DATE,
45     LAST_UPDATED_BY,
46     LAST_UPDATE_LOGIN
47   ) values (
48     X_ID,
49     X_LEVEL_ID,
50     X_ENABLED,
51     X_USER_ID,
52     X_RESPONSIBILITY_ID,
53     X_APPLICATION_ID,
54     X_ORG_ID,
55     X_SITE_ID,
56     X_PAGE_ID,
57     X_FUNCTION_ID,
58     X_CREATION_DATE,
59     X_CREATED_BY,
60     X_LAST_UPDATE_DATE,
61     X_LAST_UPDATED_BY,
62     X_LAST_UPDATE_LOGIN
63   );
64 
65   insert into BIS_LEVELS_CUSTOMIZATIONS_TL (
66     CREATED_BY,
67     CREATION_DATE,
68     LAST_UPDATED_BY,
69     LAST_UPDATE_DATE,
70     LAST_UPDATE_LOGIN,
71     ID,
72     NAME,
73     DESCRIPTION,
74     LANGUAGE,
75     SOURCE_LANG
76   ) select
77     X_CREATED_BY,
78     X_CREATION_DATE,
79     X_LAST_UPDATED_BY,
80     X_LAST_UPDATE_DATE,
81     X_LAST_UPDATE_LOGIN,
82     X_ID,
83     X_NAME,
84     X_DESCRIPTION,
85     L.LANGUAGE_CODE,
86     userenv('LANG')
87   from FND_LANGUAGES L
88   where L.INSTALLED_FLAG in ('I', 'B')
89   and not exists
90     (select NULL
91     from BIS_LEVELS_CUSTOMIZATIONS_TL T
92     where T.ID = X_ID
93     and T.LANGUAGE = L.LANGUAGE_CODE);
94 
95   open c;
96   fetch c into X_ROWID;
97   if (c%notfound) then
98     close c;
99     raise no_data_found;
100   end if;
101   close c;
102 
103 end INSERT_ROW;
104 
105 procedure LOCK_ROW (
106   X_ID in NUMBER,
107   X_LEVEL_ID in NUMBER,
108   X_ENABLED in VARCHAR2,
109   X_USER_ID in NUMBER,
110   X_RESPONSIBILITY_ID in NUMBER,
111   X_APPLICATION_ID in NUMBER,
112   X_ORG_ID in NUMBER,
113   X_SITE_ID in NUMBER,
114   X_PAGE_ID in NUMBER,
115   X_FUNCTION_ID in NUMBER,
116   X_NAME in VARCHAR2,
117   X_DESCRIPTION in VARCHAR2
118 ) is
119   cursor c is select
120       LEVEL_ID,
121       ENABLED,
122       USER_ID,
123       RESPONSIBILITY_ID,
124       APPLICATION_ID,
125       ORG_ID,
126       SITE_ID,
127       PAGE_ID,
128       FUNCTION_ID
129     from BIS_LEVELS_CUSTOMIZATIONS
130     where ID = X_ID
131     for update of ID nowait;
132   recinfo c%rowtype;
133 
134   cursor c1 is select
135       NAME,
136       DESCRIPTION,
137       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
138     from BIS_LEVELS_CUSTOMIZATIONS_TL
139     where ID = X_ID
140     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
141     for update of ID nowait;
142 begin
143   open c;
144   fetch c into recinfo;
145   if (c%notfound) then
146     close c;
147     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
148     app_exception.raise_exception;
149   end if;
150   close c;
151   if (    (recinfo.LEVEL_ID = X_LEVEL_ID)
152       AND ((recinfo.ENABLED = X_ENABLED)
153            OR ((recinfo.ENABLED is null) AND (X_ENABLED is null)))
154       AND ((recinfo.USER_ID = X_USER_ID)
155            OR ((recinfo.USER_ID is null) AND (X_USER_ID is null)))
156       AND ((recinfo.RESPONSIBILITY_ID = X_RESPONSIBILITY_ID)
157            OR ((recinfo.RESPONSIBILITY_ID is null) AND (X_RESPONSIBILITY_ID is null)))
158       AND ((recinfo.APPLICATION_ID = X_APPLICATION_ID)
159            OR ((recinfo.APPLICATION_ID is null) AND (X_APPLICATION_ID is null)))
160       AND ((recinfo.ORG_ID = X_ORG_ID)
161            OR ((recinfo.ORG_ID is null) AND (X_ORG_ID is null)))
162       AND ((recinfo.SITE_ID = X_SITE_ID)
163            OR ((recinfo.SITE_ID is null) AND (X_SITE_ID is null)))
164       AND ((recinfo.PAGE_ID = X_PAGE_ID)
165            OR ((recinfo.PAGE_ID is null) AND (X_PAGE_ID is null)))
166       AND ((recinfo.FUNCTION_ID = X_FUNCTION_ID)
167            OR ((recinfo.FUNCTION_ID is null) AND (X_FUNCTION_ID is null)))
168   ) then
169     null;
170   else
171     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
172     app_exception.raise_exception;
173   end if;
174 
175   for tlinfo in c1 loop
176     if (tlinfo.BASELANG = 'Y') then
177       if (    ((tlinfo.NAME = X_NAME)
178                OR ((tlinfo.NAME is null) AND (X_NAME is null)))
179           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
180                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
181       ) then
182         null;
183       else
184         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
185         app_exception.raise_exception;
186       end if;
187     end if;
188   end loop;
189   return;
190 end LOCK_ROW;
191 
192 procedure UPDATE_ROW (
193   X_ID in NUMBER,
194   X_LEVEL_ID in NUMBER,
195   X_ENABLED in VARCHAR2,
196   X_USER_ID in NUMBER,
197   X_RESPONSIBILITY_ID in NUMBER,
198   X_APPLICATION_ID in NUMBER,
199   X_ORG_ID in NUMBER,
200   X_SITE_ID in NUMBER,
201   X_PAGE_ID in NUMBER,
202   X_FUNCTION_ID in NUMBER,
203   X_NAME in VARCHAR2,
204   X_DESCRIPTION in VARCHAR2,
205   X_LAST_UPDATE_DATE in DATE,
206   X_LAST_UPDATED_BY in NUMBER,
207   X_LAST_UPDATE_LOGIN in NUMBER
208 ) is
209 begin
210   IF ( X_ENABLED = FND_API.G_FALSE ) THEN
211     BIS_DIMENSION_LEVEL_PUB.validate_disabling(p_dim_level_id => X_LEVEL_ID );
212   END IF;
213 
214   update BIS_LEVELS_CUSTOMIZATIONS set
215     LEVEL_ID = X_LEVEL_ID,
216     ENABLED = X_ENABLED,
217     USER_ID = X_USER_ID,
218     RESPONSIBILITY_ID = X_RESPONSIBILITY_ID,
219     APPLICATION_ID = X_APPLICATION_ID,
220     ORG_ID = X_ORG_ID,
221     SITE_ID = X_SITE_ID,
222     PAGE_ID = X_PAGE_ID,
223     FUNCTION_ID = X_FUNCTION_ID,
224     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
225     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
226     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
227   where ID = X_ID;
228 
229   if (sql%notfound) then
230     raise no_data_found;
231   end if;
232 
233   update BIS_LEVELS_CUSTOMIZATIONS_TL set
234     NAME = X_NAME,
235     DESCRIPTION = X_DESCRIPTION,
236     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
237     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
238     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
239     SOURCE_LANG = userenv('LANG')
240   where ID = X_ID
241   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
242 
243   if (sql%notfound) then
244     raise no_data_found;
245   end if;
246 end UPDATE_ROW;
247 
248 procedure DELETE_ROW (
249   X_ID in NUMBER
250 ) is
251 begin
252   delete from BIS_LEVELS_CUSTOMIZATIONS_TL
253   where ID = X_ID;
254 
255   if (sql%notfound) then
256     raise no_data_found;
257   end if;
258 
259   delete from BIS_LEVELS_CUSTOMIZATIONS
260   where ID = X_ID;
261 
262   if (sql%notfound) then
263     raise no_data_found;
264   end if;
265 end DELETE_ROW;
266 
267 procedure ADD_LANGUAGE
268 is
269 begin
270   delete from BIS_LEVELS_CUSTOMIZATIONS_TL T
271   where not exists
272     (select NULL
273     from BIS_LEVELS_CUSTOMIZATIONS B
274     where B.ID = T.ID
275     );
276 
277   update BIS_LEVELS_CUSTOMIZATIONS_TL T set (
278       NAME,
279       DESCRIPTION
280     ) = (select
281       B.NAME,
282       B.DESCRIPTION
283     from BIS_LEVELS_CUSTOMIZATIONS_TL B
284     where B.ID = T.ID
285     and B.LANGUAGE = T.SOURCE_LANG)
286   where (
287       T.ID,
288       T.LANGUAGE
289   ) in (select
290       SUBT.ID,
291       SUBT.LANGUAGE
292     from BIS_LEVELS_CUSTOMIZATIONS_TL SUBB, BIS_LEVELS_CUSTOMIZATIONS_TL SUBT
293     where SUBB.ID = SUBT.ID
294     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
295     and (SUBB.NAME <> SUBT.NAME
296       or (SUBB.NAME is null and SUBT.NAME is not null)
297       or (SUBB.NAME is not null and SUBT.NAME is null)
298       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
299       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
300       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
301   ));
302 
303   insert into BIS_LEVELS_CUSTOMIZATIONS_TL (
304     CREATED_BY,
305     CREATION_DATE,
306     LAST_UPDATED_BY,
307     LAST_UPDATE_DATE,
308     LAST_UPDATE_LOGIN,
309     ID,
310     NAME,
311     DESCRIPTION,
312     LANGUAGE,
313     SOURCE_LANG
314   ) select /*+ ORDERED */
315     B.CREATED_BY,
316     B.CREATION_DATE,
317     B.LAST_UPDATED_BY,
318     B.LAST_UPDATE_DATE,
319     B.LAST_UPDATE_LOGIN,
320     B.ID,
321     B.NAME,
322     B.DESCRIPTION,
323     L.LANGUAGE_CODE,
324     B.SOURCE_LANG
325   from BIS_LEVELS_CUSTOMIZATIONS_TL B, FND_LANGUAGES L
326   where L.INSTALLED_FLAG in ('I', 'B')
327   and B.LANGUAGE = userenv('LANG')
328   and not exists
329     (select NULL
330     from BIS_LEVELS_CUSTOMIZATIONS_TL T
331     where T.ID = B.ID
332     and T.LANGUAGE = L.LANGUAGE_CODE);
333 end ADD_LANGUAGE;
334 
335 end BIS_LEVELS_CUSTOMIZATIONS_PKG;