DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGW_ROLES_PKG

Source


1 package body IGW_ROLES_PKG as
2 /* $Header: igwstrob.pls 115.7 2002/11/15 00:48:08 ashkumar ship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_ROLE_ID in NUMBER,
6   X_SEEDED_FLAG in VARCHAR2,
7   X_START_DATE_ACTIVE in DATE,
8   X_END_DATE_ACTIVE in DATE,
9   X_ROLE_NAME in VARCHAR2,
10   X_CREATION_DATE in DATE,
11   X_CREATED_BY in NUMBER,
12   X_LAST_UPDATE_DATE in DATE,
13   X_LAST_UPDATED_BY in NUMBER,
14   X_LAST_UPDATE_LOGIN in NUMBER
15 ) is
16   cursor C is select ROWID from IGW_ROLES
17     where ROLE_ID = X_ROLE_ID
18     ;
19 begin
20   insert into IGW_ROLES (
21     SEEDED_FLAG,
22     ROLE_ID,
23     START_DATE_ACTIVE,
24     END_DATE_ACTIVE,
25     CREATION_DATE,
26     CREATED_BY,
27     LAST_UPDATE_DATE,
28     LAST_UPDATED_BY,
29     LAST_UPDATE_LOGIN
30   ) values (
31     X_SEEDED_FLAG,
32     X_ROLE_ID,
33     X_START_DATE_ACTIVE,
34     X_END_DATE_ACTIVE,
35     X_CREATION_DATE,
36     X_CREATED_BY,
37     X_LAST_UPDATE_DATE,
38     X_LAST_UPDATED_BY,
39     X_LAST_UPDATE_LOGIN
40   );
41 
42   insert into IGW_ROLES_TL (
43     CREATION_DATE,
44     LAST_UPDATED_BY,
45     ROLE_NAME,
46     LAST_UPDATE_LOGIN,
47     ROLE_ID,
48     CREATED_BY,
49     LAST_UPDATE_DATE,
50     LANGUAGE,
51     SOURCE_LANG
52   ) select
53     X_CREATION_DATE,
54     X_LAST_UPDATED_BY,
55     X_ROLE_NAME,
56     X_LAST_UPDATE_LOGIN,
57     X_ROLE_ID,
58     X_CREATED_BY,
59     X_LAST_UPDATE_DATE,
60     L.LANGUAGE_CODE,
61     userenv('LANG')
62   from FND_LANGUAGES L
63   where L.INSTALLED_FLAG in ('I', 'B')
64   and not exists
65     (select NULL
66     from IGW_ROLES_TL T
67     where T.ROLE_ID = X_ROLE_ID
68     and T.LANGUAGE = L.LANGUAGE_CODE);
69 
70   open c;
71   fetch c into X_ROWID;
72   if (c%notfound) then
73     close c;
74     raise no_data_found;
75   end if;
76   close c;
77 
78 end INSERT_ROW;
79 
80 procedure LOCK_ROW (
81   X_ROLE_ID in NUMBER,
82   X_SEEDED_FLAG in VARCHAR2,
83   X_START_DATE_ACTIVE in DATE,
84   X_END_DATE_ACTIVE in DATE,
85   X_ROLE_NAME in VARCHAR2
86 ) is
87   cursor c is select
88       SEEDED_FLAG,
89       START_DATE_ACTIVE,
90       END_DATE_ACTIVE
91     from IGW_ROLES
92     where ROLE_ID = X_ROLE_ID
93     for update of ROLE_ID nowait;
94   recinfo c%rowtype;
95 
96   cursor c1 is select
97       ROLE_NAME,
98       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
99     from IGW_ROLES_TL
100     where ROLE_ID = X_ROLE_ID
101     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
102     for update of ROLE_ID nowait;
103 begin
104   open c;
105   fetch c into recinfo;
106   if (c%notfound) then
107     close c;
108     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
109     app_exception.raise_exception;
110   end if;
111   close c;
112   if (    ((recinfo.SEEDED_FLAG = X_SEEDED_FLAG)
113            OR ((recinfo.SEEDED_FLAG is null) AND (X_SEEDED_FLAG is null)))
114       AND (recinfo.START_DATE_ACTIVE = X_START_DATE_ACTIVE)
115       AND ((recinfo.END_DATE_ACTIVE = X_END_DATE_ACTIVE)
116            OR ((recinfo.END_DATE_ACTIVE is null) AND (X_END_DATE_ACTIVE is null)))
117   ) then
118     null;
119   else
120     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
121     app_exception.raise_exception;
122   end if;
123 
124   for tlinfo in c1 loop
125     if (tlinfo.BASELANG = 'Y') then
126       if (    (tlinfo.ROLE_NAME = X_ROLE_NAME)
127       ) then
128         null;
129       else
130         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
131         app_exception.raise_exception;
132       end if;
133     end if;
134   end loop;
135   return;
136 end LOCK_ROW;
137 
138 procedure UPDATE_ROW (
139   X_ROLE_ID in NUMBER,
140   X_SEEDED_FLAG in VARCHAR2,
141   X_START_DATE_ACTIVE in DATE,
142   X_END_DATE_ACTIVE in DATE,
143   X_ROLE_NAME in VARCHAR2,
144   X_LAST_UPDATE_DATE in DATE,
145   X_LAST_UPDATED_BY in NUMBER,
146   X_LAST_UPDATE_LOGIN in NUMBER
147 ) is
148 begin
149   update IGW_ROLES set
150     SEEDED_FLAG = X_SEEDED_FLAG,
151     START_DATE_ACTIVE = X_START_DATE_ACTIVE,
152     END_DATE_ACTIVE = X_END_DATE_ACTIVE,
153     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
154     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
155     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
156   where ROLE_ID = X_ROLE_ID;
157 
158   if (sql%notfound) then
159     raise no_data_found;
160   end if;
161 
162   update IGW_ROLES_TL set
163     ROLE_NAME = X_ROLE_NAME,
164     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
165     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
166     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
167     SOURCE_LANG = userenv('LANG')
168   where ROLE_ID = X_ROLE_ID
169   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
170 
171   if (sql%notfound) then
172     raise no_data_found;
173   end if;
174 end UPDATE_ROW;
175 
176 procedure DELETE_ROW (
177   X_ROLE_ID in NUMBER
178 ) is
179 begin
180   delete from IGW_ROLES_TL
181   where ROLE_ID = X_ROLE_ID;
182 
183   if (sql%notfound) then
184     raise no_data_found;
185   end if;
186 
187   delete from IGW_ROLES
188   where ROLE_ID = X_ROLE_ID;
189 
190   if (sql%notfound) then
191     raise no_data_found;
192   end if;
193 end DELETE_ROW;
194 
195 procedure ADD_LANGUAGE
196 is
197 begin
198   delete from IGW_ROLES_TL T
199   where not exists
200     (select NULL
201     from IGW_ROLES B
202     where B.ROLE_ID = T.ROLE_ID
203     );
204 
205   update IGW_ROLES_TL T set (
206       ROLE_NAME
207     ) = (select
208       B.ROLE_NAME
209     from IGW_ROLES_TL B
210     where B.ROLE_ID = T.ROLE_ID
211     and B.LANGUAGE = T.SOURCE_LANG)
212   where (
213       T.ROLE_ID,
214       T.LANGUAGE
215   ) in (select
216       SUBT.ROLE_ID,
217       SUBT.LANGUAGE
218     from IGW_ROLES_TL SUBB, IGW_ROLES_TL SUBT
219     where SUBB.ROLE_ID = SUBT.ROLE_ID
220     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
221     and (SUBB.ROLE_NAME <> SUBT.ROLE_NAME
222   ));
223 
224   insert into IGW_ROLES_TL (
225     CREATION_DATE,
226     LAST_UPDATED_BY,
227     ROLE_NAME,
228     LAST_UPDATE_LOGIN,
229     ROLE_ID,
230     CREATED_BY,
231     LAST_UPDATE_DATE,
232     LANGUAGE,
233     SOURCE_LANG
234   ) select
235     B.CREATION_DATE,
236     B.LAST_UPDATED_BY,
237     B.ROLE_NAME,
238     B.LAST_UPDATE_LOGIN,
239     B.ROLE_ID,
240     B.CREATED_BY,
241     B.LAST_UPDATE_DATE,
242     L.LANGUAGE_CODE,
243     B.SOURCE_LANG
244   from IGW_ROLES_TL B, FND_LANGUAGES L
245   where L.INSTALLED_FLAG in ('I', 'B')
246   and B.LANGUAGE = userenv('LANG')
247   and not exists
248     (select NULL
249     from IGW_ROLES_TL T
250     where T.ROLE_ID = B.ROLE_ID
251     and T.LANGUAGE = L.LANGUAGE_CODE);
252 end ADD_LANGUAGE;
253 
254 procedure TRANSLATE_ROW (
255   X_ROLE_ID in NUMBER,
256   X_ROLE_NAME in VARCHAR2,
257   X_OWNER  in  VARCHAR2)  is
258 begin
259     update igw_roles_tl set
260       role_name = nvl(X_ROLE_NAME, role_name),
261       last_update_date = sysdate,
262       last_updated_by = decode (X_OWNER, 'SEED', 1, 0),
263       last_update_login = 0,
264       source_lang = userenv ('LANG')
265     where role_id = X_ROLE_ID  and
266           userenv('LANG') in (language, source_lang);
267 end TRANSLATE_ROW;
268 
269 end IGW_ROLES_PKG;