DBA Data[Home] [Help]

PACKAGE BODY: APPS.JTF_R_RULES_PKG

Source


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