DBA Data[Home] [Help]

PACKAGE BODY: APPS.AHL_MC_RULES_PKG

Source


1 package body AHL_MC_RULES_PKG as
2 /* $Header: AHLLRULB.pls 115.0 2003/07/31 21:44:33 cxcheng noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out nocopy VARCHAR2,
5   X_RULE_ID in NUMBER,
6   X_OBJECT_VERSION_NUMBER in NUMBER,
7   X_RULE_NAME in VARCHAR2,
8   X_MC_HEADER_ID in NUMBER,
9   X_RULE_TYPE_CODE in VARCHAR2,
10   X_ACTIVE_START_DATE in DATE,
11   X_ACTIVE_END_DATE in DATE,
12   X_ATTRIBUTE_CATEGORY in VARCHAR2,
13   X_ATTRIBUTE1 in VARCHAR2,
14   X_ATTRIBUTE2 in VARCHAR2,
15   X_ATTRIBUTE3 in VARCHAR2,
16   X_ATTRIBUTE4 in VARCHAR2,
17   X_ATTRIBUTE5 in VARCHAR2,
18   X_ATTRIBUTE6 in VARCHAR2,
19   X_ATTRIBUTE7 in VARCHAR2,
20   X_ATTRIBUTE8 in VARCHAR2,
21   X_ATTRIBUTE9 in VARCHAR2,
22   X_ATTRIBUTE10 in VARCHAR2,
23   X_ATTRIBUTE11 in VARCHAR2,
24   X_ATTRIBUTE12 in VARCHAR2,
25   X_ATTRIBUTE13 in VARCHAR2,
26   X_ATTRIBUTE14 in VARCHAR2,
27   X_ATTRIBUTE15 in VARCHAR2,
28   X_DESCRIPTION in VARCHAR2,
29   X_CREATION_DATE in DATE,
30   X_CREATED_BY in NUMBER,
31   X_LAST_UPDATE_DATE in DATE,
32   X_LAST_UPDATED_BY in NUMBER,
33   X_LAST_UPDATE_LOGIN in NUMBER
34 ) is
35   cursor C is select ROWID from AHL_MC_RULES_B
36     where RULE_ID = X_RULE_ID
37     ;
38 begin
39   insert into AHL_MC_RULES_B (
40     ATTRIBUTE3,
41     ATTRIBUTE4,
42     ATTRIBUTE5,
43     ATTRIBUTE6,
44     ATTRIBUTE7,
45     ATTRIBUTE8,
46     ATTRIBUTE9,
47     ATTRIBUTE10,
48     ATTRIBUTE11,
49     ATTRIBUTE12,
50     ATTRIBUTE13,
51     ATTRIBUTE14,
52     ATTRIBUTE15,
53     ATTRIBUTE1,
54     ATTRIBUTE2,
55     MC_HEADER_ID,
56     RULE_NAME,
57     RULE_TYPE_CODE,
58     ACTIVE_START_DATE,
59     ACTIVE_END_DATE,
60     ATTRIBUTE_CATEGORY,
61     RULE_ID,
62     OBJECT_VERSION_NUMBER,
63     CREATION_DATE,
64     CREATED_BY,
65     LAST_UPDATE_DATE,
66     LAST_UPDATED_BY,
67     LAST_UPDATE_LOGIN
68   ) values (
69     X_ATTRIBUTE3,
70     X_ATTRIBUTE4,
71     X_ATTRIBUTE5,
72     X_ATTRIBUTE6,
73     X_ATTRIBUTE7,
74     X_ATTRIBUTE8,
75     X_ATTRIBUTE9,
76     X_ATTRIBUTE10,
77     X_ATTRIBUTE11,
78     X_ATTRIBUTE12,
79     X_ATTRIBUTE13,
80     X_ATTRIBUTE14,
81     X_ATTRIBUTE15,
82     X_ATTRIBUTE1,
83     X_ATTRIBUTE2,
84     X_MC_HEADER_ID,
85     X_RULE_NAME,
86     X_RULE_TYPE_CODE,
87     X_ACTIVE_START_DATE,
88     X_ACTIVE_END_DATE,
89     X_ATTRIBUTE_CATEGORY,
90     X_RULE_ID,
91     X_OBJECT_VERSION_NUMBER,
92     X_CREATION_DATE,
93     X_CREATED_BY,
94     X_LAST_UPDATE_DATE,
95     X_LAST_UPDATED_BY,
96     X_LAST_UPDATE_LOGIN
97   );
98 
99   insert into AHL_MC_RULES_TL (
100     CREATED_BY,
101     LAST_UPDATE_LOGIN,
102     LAST_UPDATE_DATE,
103     LAST_UPDATED_BY,
104     CREATION_DATE,
105     RULE_ID,
106     DESCRIPTION,
107     LANGUAGE,
108     SOURCE_LANG
109   ) select
110     X_CREATED_BY,
111     X_LAST_UPDATE_LOGIN,
112     X_LAST_UPDATE_DATE,
113     X_LAST_UPDATED_BY,
114     X_CREATION_DATE,
115     X_RULE_ID,
116     X_DESCRIPTION,
117     L.LANGUAGE_CODE,
118     userenv('LANG')
119   from FND_LANGUAGES L
120   where L.INSTALLED_FLAG in ('I', 'B')
121   and not exists
122     (select NULL
123     from AHL_MC_RULES_TL T
124     where T.RULE_ID = X_RULE_ID
125     and T.LANGUAGE = L.LANGUAGE_CODE);
126 
127   open c;
128   fetch c into X_ROWID;
129   if (c%notfound) then
130     close c;
131     raise no_data_found;
132   end if;
133   close c;
134 
135 end INSERT_ROW;
136 
137 procedure LOCK_ROW (
138   X_RULE_ID in NUMBER,
139   X_MC_HEADER_ID in NUMBER,
140   X_RULE_NAME in VARCHAR2,
141   X_RULE_TYPE_CODE in VARCHAR2,
142   X_ACTIVE_START_DATE in DATE,
143   X_ACTIVE_END_DATE in DATE,
144   X_OBJECT_VERSION_NUMBER in NUMBER,
145   X_ATTRIBUTE_CATEGORY in VARCHAR2,
146   X_ATTRIBUTE1 in VARCHAR2,
147   X_ATTRIBUTE2 in VARCHAR2,
148   X_ATTRIBUTE3 in VARCHAR2,
149   X_ATTRIBUTE4 in VARCHAR2,
150   X_ATTRIBUTE5 in VARCHAR2,
151   X_ATTRIBUTE6 in VARCHAR2,
152   X_ATTRIBUTE7 in VARCHAR2,
153   X_ATTRIBUTE8 in VARCHAR2,
154   X_ATTRIBUTE9 in VARCHAR2,
155   X_ATTRIBUTE10 in VARCHAR2,
156   X_ATTRIBUTE11 in VARCHAR2,
157   X_ATTRIBUTE12 in VARCHAR2,
158   X_ATTRIBUTE13 in VARCHAR2,
159   X_ATTRIBUTE14 in VARCHAR2,
160   X_ATTRIBUTE15 in VARCHAR2,
161   X_DESCRIPTION in VARCHAR2
162 ) is
163   cursor c is select
164       ATTRIBUTE3,
165       ATTRIBUTE4,
166       ATTRIBUTE5,
167       ATTRIBUTE6,
168       ATTRIBUTE7,
169       ATTRIBUTE8,
170       ATTRIBUTE9,
171       ATTRIBUTE10,
172       ATTRIBUTE11,
173       ATTRIBUTE12,
174       ATTRIBUTE13,
175       ATTRIBUTE14,
176       ATTRIBUTE15,
177       ATTRIBUTE1,
178       ATTRIBUTE2,
179       MC_HEADER_ID,
180       RULE_NAME,
181       RULE_TYPE_CODE,
182       ACTIVE_START_DATE,
183       ACTIVE_END_DATE,
184       ATTRIBUTE_CATEGORY,
185       OBJECT_VERSION_NUMBER
186     from AHL_MC_RULES_B
187     where RULE_ID = X_RULE_ID
188     for update of RULE_ID nowait;
189   recinfo c%rowtype;
190 
191   cursor c1 is select
192       DESCRIPTION,
193       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
194     from AHL_MC_RULES_TL
195     where RULE_ID = X_RULE_ID
196     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
197     for update of RULE_ID nowait;
198 begin
199   open c;
200   fetch c into recinfo;
201   if (c%notfound) then
202     close c;
203     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
204     app_exception.raise_exception;
205   end if;
206   close c;
207   if (    ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
208            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
209       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
210            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
211       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
212            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
213       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
214            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
215       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
216            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
217       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
218            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
219       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
220            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
221       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
222            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
223       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
224            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
225       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
226            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
227       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
228            OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
229       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
230            OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
231       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
232            OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
233       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
234            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
235       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
236            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
237       AND (recinfo.MC_HEADER_ID = X_MC_HEADER_ID)
238       AND (recinfo.RULE_NAME = X_RULE_NAME)
239       AND (recinfo.RULE_TYPE_CODE = X_RULE_TYPE_CODE)
240       AND ((recinfo.ACTIVE_START_DATE = X_ACTIVE_START_DATE)
241            OR ((recinfo.ACTIVE_START_DATE is null) AND (X_ACTIVE_START_DATE is null)))
242       AND ((recinfo.ACTIVE_END_DATE = X_ACTIVE_END_DATE)
243            OR ((recinfo.ACTIVE_END_DATE is null) AND (X_ACTIVE_END_DATE is null)))
244       AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
245            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
246       AND (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
247   ) then
248     null;
249   else
250     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
254   for tlinfo in c1 loop
251     app_exception.raise_exception;
252   end if;
253 
255     if (tlinfo.BASELANG = 'Y') then
256       if (    ((tlinfo.DESCRIPTION = X_DESCRIPTION)
257                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
258       ) then
259         null;
260       else
261         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
262         app_exception.raise_exception;
263       end if;
264     end if;
265   end loop;
266   return;
267 end LOCK_ROW;
268 
269 procedure UPDATE_ROW (
270   X_RULE_ID in NUMBER,
271   X_OBJECT_VERSION_NUMBER in NUMBER,
272   X_MC_HEADER_ID in NUMBER,
273   X_RULE_NAME in VARCHAR2,
274   X_RULE_TYPE_CODE in VARCHAR2,
275   X_ACTIVE_START_DATE in DATE,
276   X_ACTIVE_END_DATE in DATE,
277   X_ATTRIBUTE_CATEGORY in VARCHAR2,
278   X_ATTRIBUTE1 in VARCHAR2,
279   X_ATTRIBUTE2 in VARCHAR2,
280   X_ATTRIBUTE3 in VARCHAR2,
281   X_ATTRIBUTE4 in VARCHAR2,
282   X_ATTRIBUTE5 in VARCHAR2,
283   X_ATTRIBUTE6 in VARCHAR2,
284   X_ATTRIBUTE7 in VARCHAR2,
285   X_ATTRIBUTE8 in VARCHAR2,
286   X_ATTRIBUTE9 in VARCHAR2,
287   X_ATTRIBUTE10 in VARCHAR2,
288   X_ATTRIBUTE11 in VARCHAR2,
289   X_ATTRIBUTE12 in VARCHAR2,
290   X_ATTRIBUTE13 in VARCHAR2,
291   X_ATTRIBUTE14 in VARCHAR2,
292   X_ATTRIBUTE15 in VARCHAR2,
293   X_DESCRIPTION in VARCHAR2,
294   X_LAST_UPDATE_DATE in DATE,
295   X_LAST_UPDATED_BY in NUMBER,
296   X_LAST_UPDATE_LOGIN in NUMBER
297 ) is
298 begin
299   update AHL_MC_RULES_B set
300     ATTRIBUTE3 = X_ATTRIBUTE3,
301     ATTRIBUTE4 = X_ATTRIBUTE4,
302     ATTRIBUTE5 = X_ATTRIBUTE5,
303     ATTRIBUTE6 = X_ATTRIBUTE6,
304     ATTRIBUTE7 = X_ATTRIBUTE7,
305     ATTRIBUTE8 = X_ATTRIBUTE8,
306     ATTRIBUTE9 = X_ATTRIBUTE9,
307     ATTRIBUTE10 = X_ATTRIBUTE10,
308     ATTRIBUTE11 = X_ATTRIBUTE11,
309     ATTRIBUTE12 = X_ATTRIBUTE12,
310     ATTRIBUTE13 = X_ATTRIBUTE13,
311     ATTRIBUTE14 = X_ATTRIBUTE14,
312     ATTRIBUTE15 = X_ATTRIBUTE15,
313     ATTRIBUTE1 = X_ATTRIBUTE1,
314     ATTRIBUTE2 = X_ATTRIBUTE2,
315     MC_HEADER_ID = X_MC_HEADER_ID,
316     RULE_NAME = X_RULE_NAME,
317     RULE_TYPE_CODE = X_RULE_TYPE_CODE,
318     ACTIVE_START_DATE = X_ACTIVE_START_DATE,
319     ACTIVE_END_DATE = X_ACTIVE_END_DATE,
320      ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
321     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
322     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
323     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
324     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
325   where RULE_ID = X_RULE_ID;
326 
327   if (sql%notfound) then
328     raise no_data_found;
329   end if;
330 
331   update AHL_MC_RULES_TL set
332     DESCRIPTION = X_DESCRIPTION,
333     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
334     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
335     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
336     SOURCE_LANG = userenv('LANG')
337   where RULE_ID = X_RULE_ID
338   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
339 
340   if (sql%notfound) then
341     raise no_data_found;
342   end if;
343 end UPDATE_ROW;
344 
345 procedure DELETE_ROW (
346   X_RULE_ID in NUMBER
347 ) is
348 begin
349   delete from AHL_MC_RULES_TL
350   where RULE_ID = X_RULE_ID;
351 
352   if (sql%notfound) then
353     raise no_data_found;
354   end if;
355 
356   delete from AHL_MC_RULES_B
357   where RULE_ID = X_RULE_ID;
358 
359   if (sql%notfound) then
360     raise no_data_found;
361   end if;
362 end DELETE_ROW;
363 
364 procedure ADD_LANGUAGE
365 is
366 begin
367   delete from AHL_MC_RULES_TL T
368   where not exists
369     (select NULL
370     from AHL_MC_RULES_B B
371     where B.RULE_ID = T.RULE_ID
372     );
373 
374   update AHL_MC_RULES_TL T set (
375       DESCRIPTION
376     ) = (select
377       B.DESCRIPTION
378     from AHL_MC_RULES_TL B
379     where B.RULE_ID = T.RULE_ID
380     and B.LANGUAGE = T.SOURCE_LANG)
381   where (
382       T.RULE_ID,
383       T.LANGUAGE
384   ) in (select
385       SUBT.RULE_ID,
386       SUBT.LANGUAGE
387     from AHL_MC_RULES_TL SUBB, AHL_MC_RULES_TL SUBT
388     where SUBB.RULE_ID = SUBT.RULE_ID
389     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
390     and (SUBB.DESCRIPTION <> SUBT.DESCRIPTION
391       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
392       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
393   ));
394 
395   insert into AHL_MC_RULES_TL (
396     CREATED_BY,
397     LAST_UPDATE_LOGIN,
398     LAST_UPDATE_DATE,
399     LAST_UPDATED_BY,
400     CREATION_DATE,
401     RULE_ID,
402     DESCRIPTION,
403       LANGUAGE,
404     SOURCE_LANG
405   ) select
406     B.CREATED_BY,
407     B.LAST_UPDATE_LOGIN,
408     B.LAST_UPDATE_DATE,
409     B.LAST_UPDATED_BY,
410     B.CREATION_DATE,
411     B.RULE_ID,
412     B.DESCRIPTION,
413     L.LANGUAGE_CODE,
414     B.SOURCE_LANG
415   from AHL_MC_RULES_TL B, FND_LANGUAGES L
416   where L.INSTALLED_FLAG in ('I', 'B')
417   and B.LANGUAGE = userenv('LANG')
418   and not exists
419     (select NULL
420     from AHL_MC_RULES_TL T
424 
421     where T.RULE_ID = B.RULE_ID
422     and T.LANGUAGE = L.LANGUAGE_CODE);
423 end ADD_LANGUAGE;
425 end AHL_MC_RULES_PKG;