[Home] [Help]
PACKAGE BODY: APPS.EGO_RULE_SETS_PKG
Source
1 package body EGO_RULE_SETS_PKG as
2 /* $Header: EGOVRSTB.pls 120.1 2007/07/31 10:53:38 rgadiyar noship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out nocopy VARCHAR2,
5 X_RULESET_ID in NUMBER,
6 X_ATTR_GROUP_TYPE in VARCHAR2,
7 X_RULESET_NAME in VARCHAR2,
8 X_RULESET_TYPE in VARCHAR2,
9 X_COMPOSITE in VARCHAR2,
10 X_ITEM_CATALOG_CATEGORY in NUMBER,
11 X_ATTR_GROUP_NAME in VARCHAR2,
12 X_RULESET_DISPLAY_NAME in VARCHAR2,
13 X_DESCRIPTION in VARCHAR2,
14 X_CREATION_DATE in DATE,
15 X_CREATED_BY in NUMBER,
16 X_LAST_UPDATE_DATE in DATE,
17 X_LAST_UPDATED_BY in NUMBER,
18 X_LAST_UPDATE_LOGIN in NUMBER
19 ) is
20 cursor C is select ROWID from EGO_RULE_SETS_B
21 where RULESET_ID = X_RULESET_ID
22 ;
23 begin
24 insert into EGO_RULE_SETS_B (
25 ATTR_GROUP_TYPE,
26 RULESET_ID,
27 RULESET_NAME,
28 RULESET_TYPE,
29 COMPOSITE,
30 ITEM_CATALOG_CATEGORY,
31 ATTR_GROUP_NAME,
32 CREATION_DATE,
33 CREATED_BY,
34 LAST_UPDATE_DATE,
35 LAST_UPDATED_BY,
36 LAST_UPDATE_LOGIN
37 ) values (
38 X_ATTR_GROUP_TYPE,
39 X_RULESET_ID,
40 X_RULESET_NAME,
41 X_RULESET_TYPE,
42 X_COMPOSITE,
43 X_ITEM_CATALOG_CATEGORY,
44 X_ATTR_GROUP_NAME,
45 Nvl(X_CREATION_DATE,SYSDATE),
46 X_CREATED_BY,
47 Nvl(X_LAST_UPDATE_DATE, SYSDATE),
48 X_LAST_UPDATED_BY,
49 X_LAST_UPDATE_LOGIN
50 );
51
52 insert into EGO_RULE_SETS_TL (
53 RULESET_ID,
54 RULESET_DISPLAY_NAME,
55 DESCRIPTION,
56 LAST_UPDATE_DATE,
57 LAST_UPDATED_BY,
58 CREATION_DATE,
59 CREATED_BY,
60 LAST_UPDATE_LOGIN,
61 LANGUAGE,
62 SOURCE_LANG
63 ) select
64 X_RULESET_ID,
65 X_RULESET_DISPLAY_NAME,
66 X_DESCRIPTION,
67 Nvl(X_LAST_UPDATE_DATE,SYSDATE),
68 X_LAST_UPDATED_BY,
69 Nvl(X_CREATION_DATE,SYSDATE),
70 X_CREATED_BY,
71 X_LAST_UPDATE_LOGIN,
72 L.LANGUAGE_CODE,
73 userenv('LANG')
74 from FND_LANGUAGES L
75 where L.INSTALLED_FLAG in ('I', 'B')
76 and not exists
77 (select NULL
78 from EGO_RULE_SETS_TL T
79 where T.RULESET_ID = X_RULESET_ID
80 and T.LANGUAGE = L.LANGUAGE_CODE);
81
82 open c;
83 fetch c into X_ROWID;
84 if (c%notfound) then
85 close c;
86 raise no_data_found;
87 end if;
88 close c;
89
90 end INSERT_ROW;
91
92 procedure LOCK_ROW (
93 X_RULESET_ID in NUMBER,
94 X_ATTR_GROUP_TYPE in VARCHAR2,
95 X_RULESET_NAME in VARCHAR2,
96 X_RULESET_TYPE in VARCHAR2,
97 X_COMPOSITE in VARCHAR2,
98 X_ITEM_CATALOG_CATEGORY in NUMBER,
99 X_ATTR_GROUP_NAME in VARCHAR2,
100 X_RULESET_DISPLAY_NAME in VARCHAR2,
101 X_DESCRIPTION in VARCHAR2
102 ) is
103 cursor c is select
104 ATTR_GROUP_TYPE,
105 RULESET_NAME,
106 RULESET_TYPE,
107 COMPOSITE,
108 ITEM_CATALOG_CATEGORY,
109 ATTR_GROUP_NAME
110 from EGO_RULE_SETS_B
111 where RULESET_ID = X_RULESET_ID
112 for update of RULESET_ID nowait;
113 recinfo c%rowtype;
114
115 cursor c1 is select
116 RULESET_DISPLAY_NAME,
117 DESCRIPTION,
118 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
119 from EGO_RULE_SETS_TL
120 where RULESET_ID = X_RULESET_ID
121 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
122 for update of RULESET_ID nowait;
123 begin
124 open c;
125 fetch c into recinfo;
126 if (c%notfound) then
127 close c;
128 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
129 app_exception.raise_exception;
130 end if;
131 close c;
132 if ( ((recinfo.ATTR_GROUP_TYPE = X_ATTR_GROUP_TYPE)
133 OR ((recinfo.ATTR_GROUP_TYPE is null) AND (X_ATTR_GROUP_TYPE is null)))
134 AND (recinfo.RULESET_NAME = X_RULESET_NAME)
135 AND (recinfo.RULESET_TYPE = X_RULESET_TYPE)
136 AND (recinfo.COMPOSITE = X_COMPOSITE)
137 AND ((recinfo.ITEM_CATALOG_CATEGORY = X_ITEM_CATALOG_CATEGORY)
138 OR ((recinfo.ITEM_CATALOG_CATEGORY is null) AND (X_ITEM_CATALOG_CATEGORY is null)))
139 AND ((recinfo.ATTR_GROUP_NAME = X_ATTR_GROUP_NAME)
140 OR ((recinfo.ATTR_GROUP_NAME is null) AND (X_ATTR_GROUP_NAME is null)))
141 ) then
142 null;
143 else
144 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
145 app_exception.raise_exception;
146 end if;
147
148 for tlinfo in c1 loop
149 if (tlinfo.BASELANG = 'Y') then
150 if ( ((tlinfo.RULESET_DISPLAY_NAME = X_RULESET_DISPLAY_NAME)
151 OR ((tlinfo.RULESET_DISPLAY_NAME is null) AND (X_RULESET_DISPLAY_NAME is null)))
152 AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
153 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
154 ) then
155 null;
156 else
157 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
158 app_exception.raise_exception;
159 end if;
160 end if;
161 end loop;
162 return;
163 end LOCK_ROW;
164
165 procedure UPDATE_ROW (
166 X_RULESET_ID in NUMBER,
167 X_ATTR_GROUP_TYPE in VARCHAR2,
168 X_RULESET_NAME in VARCHAR2,
169 X_RULESET_TYPE in VARCHAR2,
170 X_COMPOSITE in VARCHAR2,
171 X_ITEM_CATALOG_CATEGORY in NUMBER,
172 X_ATTR_GROUP_NAME in VARCHAR2,
173 X_RULESET_DISPLAY_NAME in VARCHAR2,
174 X_DESCRIPTION in VARCHAR2,
175 X_LAST_UPDATE_DATE in DATE,
176 X_LAST_UPDATED_BY in NUMBER,
177 X_LAST_UPDATE_LOGIN in NUMBER
178 ) is
179 begin
180 update EGO_RULE_SETS_B set
181 ATTR_GROUP_TYPE = X_ATTR_GROUP_TYPE,
182 RULESET_NAME = X_RULESET_NAME,
183 RULESET_TYPE = X_RULESET_TYPE,
184 COMPOSITE = X_COMPOSITE,
185 ITEM_CATALOG_CATEGORY = X_ITEM_CATALOG_CATEGORY,
186 ATTR_GROUP_NAME = X_ATTR_GROUP_NAME,
187 LAST_UPDATE_DATE = Nvl(X_LAST_UPDATE_DATE,SYSDATE),
188 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
189 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
190 where RULESET_ID = X_RULESET_ID;
191
192 if (sql%notfound) then
193 raise no_data_found;
194 end if;
195
196 update EGO_RULE_SETS_TL set
197 RULESET_DISPLAY_NAME = X_RULESET_DISPLAY_NAME,
198 DESCRIPTION = X_DESCRIPTION,
199 LAST_UPDATE_DATE = Nvl(X_LAST_UPDATE_DATE,SYSDATE),
200 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
201 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
202 SOURCE_LANG = userenv('LANG')
203 where RULESET_ID = X_RULESET_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_RULESET_ID in NUMBER
213 ) is
214 begin
215 delete from EGO_RULE_SETS_TL
216 where RULESET_ID = X_RULESET_ID;
217
218 if (sql%notfound) then
219 raise no_data_found;
220 end if;
221
222 delete from EGO_RULE_SETS_B
223 where RULESET_ID = X_RULESET_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 EGO_RULE_SETS_TL T
234 where not exists
235 (select NULL
236 from EGO_RULE_SETS_B B
237 where B.RULESET_ID = T.RULESET_ID
238 );
239
240 update EGO_RULE_SETS_TL T set (
241 RULESET_DISPLAY_NAME,
242 DESCRIPTION
243 ) = (select
244 B.RULESET_DISPLAY_NAME,
245 B.DESCRIPTION
246 from EGO_RULE_SETS_TL B
247 where B.RULESET_ID = T.RULESET_ID
248 and B.LANGUAGE = T.SOURCE_LANG)
249 where (
250 T.RULESET_ID,
251 T.LANGUAGE
252 ) in (select
253 SUBT.RULESET_ID,
254 SUBT.LANGUAGE
255 from EGO_RULE_SETS_TL SUBB, EGO_RULE_SETS_TL SUBT
256 where SUBB.RULESET_ID = SUBT.RULESET_ID
257 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
258 and (SUBB.RULESET_DISPLAY_NAME <> SUBT.RULESET_DISPLAY_NAME
259 or (SUBB.RULESET_DISPLAY_NAME is null and SUBT.RULESET_DISPLAY_NAME is not null)
260 or (SUBB.RULESET_DISPLAY_NAME is not null and SUBT.RULESET_DISPLAY_NAME is null)
261 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
262 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
263 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
264 ));
265
266 insert into EGO_RULE_SETS_TL (
267 RULESET_ID,
268 RULESET_DISPLAY_NAME,
269 DESCRIPTION,
270 LAST_UPDATE_DATE,
271 LAST_UPDATED_BY,
272 CREATION_DATE,
273 CREATED_BY,
274 LAST_UPDATE_LOGIN,
275 LANGUAGE,
276 SOURCE_LANG
277 ) select /*+ ORDERED */
278 B.RULESET_ID,
279 B.RULESET_DISPLAY_NAME,
280 B.DESCRIPTION,
281 B.LAST_UPDATE_DATE,
282 B.LAST_UPDATED_BY,
283 B.CREATION_DATE,
284 B.CREATED_BY,
285 B.LAST_UPDATE_LOGIN,
286 L.LANGUAGE_CODE,
287 B.SOURCE_LANG
288 from EGO_RULE_SETS_TL B, FND_LANGUAGES L
289 where L.INSTALLED_FLAG in ('I', 'B')
290 and B.LANGUAGE = userenv('LANG')
291 and not exists
292 (select NULL
293 from EGO_RULE_SETS_TL T
294 where T.RULESET_ID = B.RULESET_ID
295 and T.LANGUAGE = L.LANGUAGE_CODE);
296 end ADD_LANGUAGE;
297
298 procedure TRANSLATE_ROW (
299 X_RULESET_ID in NUMBER,
300 X_RULESET_DISPLAY_NAME in VARCHAR2,
301 X_DESCRIPTION in VARCHAR2,
302 X_OWNER in VARCHAR2
303 ) is
304 begin
305 update EGO_RULE_SETS_TL set
306 RULESET_DISPLAY_NAME = X_RULESET_DISPLAY_NAME,
307 DESCRIPTION = X_DESCRIPTION,
308 LAST_UPDATE_DATE = sysdate,
309 LAST_UPDATED_BY = decode(x_owner, 'ORACLE', 1, 0),
310 LAST_UPDATE_LOGIN = 0,
311 SOURCE_LANG = userenv('LANG')
312 where userenv('LANG') in (LANGUAGE, SOURCE_LANG)
313 and RULESET_ID = X_RULESET_ID;
314 end TRANSLATE_ROW;
315
316 procedure LOAD_ROW (
317 X_ROWID in out nocopy VARCHAR2,
318 X_RULESET_ID in NUMBER,
319 X_RULESET_NAME in VARCHAR2,
320 X_ATTR_GROUP_TYPE in VARCHAR2,
321 X_RULESET_TYPE in VARCHAR2,
322 X_COMPOSITE in VARCHAR2,
323 X_ITEM_CATALOG_CATEGORY in NUMBER,
324 X_ATTR_GROUP_NAME in VARCHAR2,
325 X_RULESET_DISPLAY_NAME in VARCHAR2,
326 X_DESCRIPTION in VARCHAR2,
327 X_CREATED_BY in NUMBER,
328 X_LAST_UPDATE_DATE in DATE,
329 X_LAST_UPDATED_BY in NUMBER,
330 X_LAST_UPDATE_LOGIN in NUMBER
331 ) is
332 begin
333 declare
334 l_ruleset_id number := 0;
335
336 begin
337 select RULESET_ID into l_ruleset_id
338 from EGO_RULE_SETS_B
339 where RULESET_NAME = X_RULESET_NAME;
340
341 EGO_RULE_SETS_PKG.UPDATE_ROW(
342 X_RULESET_ID => l_ruleset_id,
343 X_RULESET_NAME => X_RULESET_NAME,
344 X_ATTR_GROUP_TYPE => X_ATTR_GROUP_TYPE,
345 X_RULESET_TYPE => X_RULESET_TYPE,
346 X_COMPOSITE => X_COMPOSITE,
347 X_ITEM_CATALOG_CATEGORY => X_ITEM_CATALOG_CATEGORY,
348 X_ATTR_GROUP_NAME => X_ATTR_GROUP_NAME,
349 X_RULESET_DISPLAY_NAME => X_RULESET_DISPLAY_NAME,
350 X_DESCRIPTION => X_DESCRIPTION,
351 X_LAST_UPDATE_DATE => SYSDATE,
352 X_LAST_UPDATED_BY => X_LAST_UPDATED_BY,
353 X_LAST_UPDATE_LOGIN => X_LAST_UPDATE_LOGIN
354 );
355
356 exception
357 when NO_DATA_FOUND then
358 select EGO_RULE_SETS_S.nextval into l_ruleset_id from dual;
359
360 EGO_RULE_SETS_PKG.INSERT_ROW(
361 X_ROWID => X_ROWID,
362 X_RULESET_ID => l_ruleset_id,
363 X_ATTR_GROUP_TYPE => X_ATTR_GROUP_TYPE,
364 X_RULESET_NAME => X_RULESET_NAME,
365 X_RULESET_TYPE => X_RULESET_TYPE,
366 X_COMPOSITE => X_COMPOSITE,
367 X_ITEM_CATALOG_CATEGORY => X_ITEM_CATALOG_CATEGORY,
368 X_ATTR_GROUP_NAME => X_ATTR_GROUP_NAME,
369 X_RULESET_DISPLAY_NAME => X_RULESET_DISPLAY_NAME,
370 X_DESCRIPTION => X_DESCRIPTION,
371 X_CREATION_DATE => sysdate,
372 X_CREATED_BY => X_CREATED_BY,
373 X_LAST_UPDATE_DATE => sysdate,
374 X_LAST_UPDATED_BY => X_LAST_UPDATED_BY,
375 X_LAST_UPDATE_LOGIN => X_LAST_UPDATE_LOGIN
376 );
377 end;
378 end LOAD_ROW;
379
380 end EGO_RULE_SETS_PKG;