DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSD_RET_RULE_CONDITIONS_PKG

Source


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