DBA Data[Home] [Help]

PACKAGE BODY: APPS.HZ_CREDIT_USAGE_RULE_SETS_PKG

Source


1 PACKAGE BODY HZ_CREDIT_USAGE_RULE_SETS_PKG AS
2 /* $Header: ARHCRUSB.pls 115.10 2003/08/18 17:56:27 rajkrish ship $ */
3 
4 
5 ---------------------------
6 -- PROCEDURES AND FUNCTIONS
7 ---------------------------
8 
9 --========================================================================
10 -- PROCEDURE : Insert_row                   PUBLIC
11 -- COMMENT   : Procedure inserts record into the table HZ_CREDIT_USAGE_RULE_SETS_B
12 --             and  HZ_CREDIT_USAGE_RULE_SETS_TL
13 --========================================================================
14 procedure INSERT_ROW (
15   X_ROWID in out NOCOPY VARCHAR2,
16   X_CREDIT_USAGE_RULE_SET_ID in NUMBER,
17   X_ATTRIBUTE_CATEGORY in VARCHAR2,
18   X_ATTRIBUTE1 in VARCHAR2,
19   X_ATTRIBUTE2 in VARCHAR2,
20   X_ATTRIBUTE3 in VARCHAR2,
21   X_ATTRIBUTE4 in VARCHAR2,
22   X_ATTRIBUTE5 in VARCHAR2,
23   X_ATTRIBUTE6 in VARCHAR2,
24   X_ATTRIBUTE7 in VARCHAR2,
25   X_ATTRIBUTE8 in VARCHAR2,
26   X_ATTRIBUTE9 in VARCHAR2,
27   X_ATTRIBUTE10 in VARCHAR2,
28   X_ATTRIBUTE11 in VARCHAR2,
29   X_ATTRIBUTE12 in VARCHAR2,
30   X_ATTRIBUTE13 in VARCHAR2,
31   X_ATTRIBUTE14 in VARCHAR2,
32   X_ATTRIBUTE15 in VARCHAR2,
33   X_REQUEST_ID in NUMBER,
34   X_NAME in VARCHAR2,
35   X_CREATION_DATE in DATE,
36   X_CREATED_BY in NUMBER,
37   X_LAST_UPDATE_DATE in DATE,
38   X_LAST_UPDATED_BY in NUMBER,
39   X_LAST_UPDATE_LOGIN in NUMBER,
40   X_GLOBAL_EXPOSURE_FLAG IN VARCHAR2
41 ) is
42   cursor C is select ROWID from HZ_CREDIT_USAGE_RULE_SETS_B
43     where CREDIT_USAGE_RULE_SET_ID = X_CREDIT_USAGE_RULE_SET_ID
44     ;
45 begin
46   insert into HZ_CREDIT_USAGE_RULE_SETS_B (
47     ATTRIBUTE_CATEGORY,
48     ATTRIBUTE1,
49     ATTRIBUTE2,
50     ATTRIBUTE3,
51     ATTRIBUTE4,
52     ATTRIBUTE5,
53     ATTRIBUTE6,
54     ATTRIBUTE7,
55     ATTRIBUTE8,
56     ATTRIBUTE9,
57     ATTRIBUTE10,
58     ATTRIBUTE11,
59     ATTRIBUTE12,
60     ATTRIBUTE13,
61     ATTRIBUTE14,
62     ATTRIBUTE15,
63     REQUEST_ID,
64     CREDIT_USAGE_RULE_SET_ID,
65     CREATION_DATE,
66     CREATED_BY,
67     LAST_UPDATE_DATE,
68     LAST_UPDATED_BY,
69     LAST_UPDATE_LOGIN,
70     GLOBAL_EXPOSURE_FLAG
71   ) values (
72     X_ATTRIBUTE_CATEGORY,
73     X_ATTRIBUTE1,
74     X_ATTRIBUTE2,
75     X_ATTRIBUTE3,
76     X_ATTRIBUTE4,
77     X_ATTRIBUTE5,
78     X_ATTRIBUTE6,
79     X_ATTRIBUTE7,
80     X_ATTRIBUTE8,
81     X_ATTRIBUTE9,
82     X_ATTRIBUTE10,
83     X_ATTRIBUTE11,
84     X_ATTRIBUTE12,
85     X_ATTRIBUTE13,
86     X_ATTRIBUTE14,
87     X_ATTRIBUTE15,
88     X_REQUEST_ID,
89     X_CREDIT_USAGE_RULE_SET_ID,
90     X_CREATION_DATE,
91     X_CREATED_BY,
92     X_LAST_UPDATE_DATE,
93     X_LAST_UPDATED_BY,
94     X_LAST_UPDATE_LOGIN,
95     X_GLOBAL_EXPOSURE_FLAG
96   );
97 
98   insert into HZ_CREDIT_USAGE_RULE_SETS_TL (
99     CREDIT_USAGE_RULE_SET_ID,
100     NAME,
101     CREATION_DATE,
102     CREATED_BY,
103     LAST_UPDATE_DATE,
104     LAST_UPDATED_BY,
105     LAST_UPDATE_LOGIN,
106     LANGUAGE,
107     SOURCE_LANG
108   ) select
109     X_CREDIT_USAGE_RULE_SET_ID,
110     X_NAME,
111     X_CREATION_DATE,
112     X_CREATED_BY,
113     X_LAST_UPDATE_DATE,
114     X_LAST_UPDATED_BY,
115     X_LAST_UPDATE_LOGIN,
116     L.LANGUAGE_CODE,
117     userenv('LANG')
118   from FND_LANGUAGES L
119   where L.INSTALLED_FLAG in ('I', 'B')
120   and not exists
121     (select NULL
122     from HZ_CREDIT_USAGE_RULE_SETS_TL T
123     where T.CREDIT_USAGE_RULE_SET_ID = X_CREDIT_USAGE_RULE_SET_ID
124     and T.LANGUAGE = L.LANGUAGE_CODE);
125 
126   open c;
127   fetch c into X_ROWID;
128   if (c%notfound) then
129     close c;
130     raise no_data_found;
131   end if;
132   close c;
133 
134 EXCEPTION
135   WHEN OTHERS THEN
136     IF FND_MSG_PUB.Check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
137     THEN
138        FND_MSG_PUB.Add_exc_msg(G_PKG_NAME,'Insert_row');
139     END IF;
140     RAISE;
141 
142  END Insert_row;
143 
144 --========================================================================
145 -- PROCEDURE : Lock_row                     PUBLIC
146 -- PARAMETERS: p_credit_usage_rule_set_id   credit_usage_rule_set_id
147 --             p_rule_set_name              rule set name
148 --             p_last_update_date
149 -- COMMENT   : Procedure locks record in the table HZ_CREDIT_USAGE_RULE_SETS_B
150 --             and  HZ_CREDIT_USAGE_RULE_SETS_TL
151 --========================================================================
152 procedure LOCK_ROW (
153   X_CREDIT_USAGE_RULE_SET_ID in NUMBER,
154   X_ATTRIBUTE_CATEGORY in VARCHAR2,
155   X_ATTRIBUTE1 in VARCHAR2,
156   X_ATTRIBUTE2 in VARCHAR2,
157   X_ATTRIBUTE3 in VARCHAR2,
158   X_ATTRIBUTE4 in VARCHAR2,
159   X_ATTRIBUTE5 in VARCHAR2,
160   X_ATTRIBUTE6 in VARCHAR2,
161   X_ATTRIBUTE7 in VARCHAR2,
162   X_ATTRIBUTE8 in VARCHAR2,
163   X_ATTRIBUTE9 in VARCHAR2,
164   X_ATTRIBUTE10 in VARCHAR2,
165   X_ATTRIBUTE11 in VARCHAR2,
166   X_ATTRIBUTE12 in VARCHAR2,
167   X_ATTRIBUTE13 in VARCHAR2,
168   X_ATTRIBUTE14 in VARCHAR2,
169   X_ATTRIBUTE15 in VARCHAR2,
170   X_REQUEST_ID in NUMBER,
171   X_NAME in VARCHAR2
172 ) is
173   cursor c is select
174       ATTRIBUTE_CATEGORY,
175       ATTRIBUTE1,
176       ATTRIBUTE2,
177       ATTRIBUTE3,
178       ATTRIBUTE4,
179       ATTRIBUTE5,
180       ATTRIBUTE6,
181       ATTRIBUTE7,
182       ATTRIBUTE8,
183       ATTRIBUTE9,
184       ATTRIBUTE10,
185       ATTRIBUTE11,
186       ATTRIBUTE12,
187       ATTRIBUTE13,
188       ATTRIBUTE14,
189       ATTRIBUTE15,
190       REQUEST_ID
191     from HZ_CREDIT_USAGE_RULE_SETS_B
192     where CREDIT_USAGE_RULE_SET_ID = X_CREDIT_USAGE_RULE_SET_ID
193     for update of CREDIT_USAGE_RULE_SET_ID nowait;
194   recinfo c%rowtype;
195 
196   cursor c1 is select
197       NAME,
198       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
199     from HZ_CREDIT_USAGE_RULE_SETS_TL
200     where CREDIT_USAGE_RULE_SET_ID = X_CREDIT_USAGE_RULE_SET_ID
201     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
202     for update of CREDIT_USAGE_RULE_SET_ID nowait;
203 begin
204   open c;
205   fetch c into recinfo;
206   if (c%notfound) then
207     close c;
208     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
209     app_exception.raise_exception;
210   end if;
211   close c;
212   if (    ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
213            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
214       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
215            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
216       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
217            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
218       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
219            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
220       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
221            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
222       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
223            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
224       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
225            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
226       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
227            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
228       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
229            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
230       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
231            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
232       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
233            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
234       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
235            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
236       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
237            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
238       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
239            OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
240       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
241            OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
242       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
243            OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
244       AND ((recinfo.REQUEST_ID = X_REQUEST_ID)
245            OR ((recinfo.REQUEST_ID is null) AND (X_REQUEST_ID is null)))
246   ) then
247     null;
248   else
249     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
250     app_exception.raise_exception;
251   end if;
252 
253   for tlinfo in c1 loop
254     if (tlinfo.BASELANG = 'Y') then
255       if (    (tlinfo.NAME = X_NAME)
256       ) then
257         null;
258       else
259         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
260         app_exception.raise_exception;
261       end if;
262     end if;
263   end loop;
264   return;
265 end LOCK_ROW;
266 
267 --========================================================================
268 -- PROCEDURE : Update_row                   PUBLIC
269 -- COMMENT   : Procedure updates record in the table HZ_CREDIT_USAGE_RULE_SETS_B
270 --             and  HZ_CREDIT_USAGE_RULE_SETS_TL
271 --========================================================================
272 procedure UPDATE_ROW (
273   X_CREDIT_USAGE_RULE_SET_ID in NUMBER,
274   X_ATTRIBUTE_CATEGORY in VARCHAR2,
275   X_ATTRIBUTE1 in VARCHAR2,
276   X_ATTRIBUTE2 in VARCHAR2,
277   X_ATTRIBUTE3 in VARCHAR2,
278   X_ATTRIBUTE4 in VARCHAR2,
279   X_ATTRIBUTE5 in VARCHAR2,
280   X_ATTRIBUTE6 in VARCHAR2,
281   X_ATTRIBUTE7 in VARCHAR2,
282   X_ATTRIBUTE8 in VARCHAR2,
283   X_ATTRIBUTE9 in VARCHAR2,
284   X_ATTRIBUTE10 in VARCHAR2,
285   X_ATTRIBUTE11 in VARCHAR2,
286   X_ATTRIBUTE12 in VARCHAR2,
287   X_ATTRIBUTE13 in VARCHAR2,
288   X_ATTRIBUTE14 in VARCHAR2,
289   X_ATTRIBUTE15 in VARCHAR2,
290   X_REQUEST_ID in NUMBER,
291   X_NAME in VARCHAR2,
292   X_LAST_UPDATE_DATE in DATE,
293   X_LAST_UPDATED_BY in NUMBER,
294   X_LAST_UPDATE_LOGIN in NUMBER,
295   X_GLOBAL_EXPOSURE_FLAG IN VARCHAR2
296 ) is
297 begin
298   update HZ_CREDIT_USAGE_RULE_SETS_B set
299     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
300     ATTRIBUTE1 = X_ATTRIBUTE1,
301     ATTRIBUTE2 = X_ATTRIBUTE2,
302     ATTRIBUTE3 = X_ATTRIBUTE3,
303     ATTRIBUTE4 = X_ATTRIBUTE4,
304     ATTRIBUTE5 = X_ATTRIBUTE5,
305     ATTRIBUTE6 = X_ATTRIBUTE6,
306     ATTRIBUTE7 = X_ATTRIBUTE7,
307     ATTRIBUTE8 = X_ATTRIBUTE8,
308     ATTRIBUTE9 = X_ATTRIBUTE9,
309     ATTRIBUTE10 = X_ATTRIBUTE10,
310     ATTRIBUTE11 = X_ATTRIBUTE11,
311     ATTRIBUTE12 = X_ATTRIBUTE12,
312     ATTRIBUTE13 = X_ATTRIBUTE13,
313     ATTRIBUTE14 = X_ATTRIBUTE14,
314     ATTRIBUTE15 = X_ATTRIBUTE15,
315     REQUEST_ID = X_REQUEST_ID,
316     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
317     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
318     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
319     GLOBAL_EXPOSURE_FLAG = X_GLOBAL_EXPOSURE_FLAG
320   where CREDIT_USAGE_RULE_SET_ID = X_CREDIT_USAGE_RULE_SET_ID;
321 
322   if (sql%notfound) then
323     raise no_data_found;
324   end if;
325 
326   update HZ_CREDIT_USAGE_RULE_SETS_TL set
327     NAME = X_NAME,
328     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
329     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
330     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
331     SOURCE_LANG = userenv('LANG')
332   where CREDIT_USAGE_RULE_SET_ID = X_CREDIT_USAGE_RULE_SET_ID
333   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
334 
335   if (sql%notfound) then
336     raise no_data_found;
337   end if;
338 
339 EXCEPTION
340   WHEN OTHERS THEN
341     IF FND_MSG_PUB.Check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
342     THEN
343        FND_MSG_PUB.Add_exc_msg(G_PKG_NAME,'Update_row');
344     END IF;
345   RAISE;
346 
347 END Update_Row;
348 
349 --========================================================================
350 -- PROCEDURE : Delete_row             		 PUBLIC
351 -- COMMENT   : Procedure deletes record from the
352 --           table HZ_CREDIT_USAGE_RULE_SETS_B
353 --             and  HZ_CREDIT_USAGE_RULE_SETS_TL
354 --========================================================================
355 procedure DELETE_ROW (
356   X_CREDIT_USAGE_RULE_SET_ID in NUMBER
357 ) is
358 begin
359   delete from HZ_CREDIT_USAGE_RULE_SETS_TL
360   where CREDIT_USAGE_RULE_SET_ID = X_CREDIT_USAGE_RULE_SET_ID;
361 
362   if (sql%notfound) then
363     raise no_data_found;
364   end if;
365 
366   delete from HZ_CREDIT_USAGE_RULE_SETS_B
367   where CREDIT_USAGE_RULE_SET_ID = X_CREDIT_USAGE_RULE_SET_ID;
368 
369   if (sql%notfound) then
370     raise no_data_found;
371   end if;
372 
373   -- BUG 2056313
374   -- Delete the attached records from the HZ_CREDIT_USAGES
375   -- to prevent unwanted data that has no parent. This is important
376   -- to enable the validations in the Assign Usages Rules form to
377   -- function correctly.
378 
379   DELETE from HZ_credit_usages
380   WHERE  credit_usage_rule_set_id = X_CREDIT_USAGE_RULE_SET_ID ;
381 
382   /*if (sql%notfound) then
383     raise no_data_found;
384   end if;
385  */
386 
387 
388 EXCEPTION
389   WHEN OTHERS THEN
390     IF FND_MSG_PUB.Check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
391     THEN
392        FND_MSG_PUB.Add_exc_msg(G_PKG_NAME,'Delete_row');
393     END IF;
394   RAISE;
395 
396 END Delete_row;
397 
398 --========================================================================
399 -- PROCEDURE : ADD_LANGUAGE            		 PUBLIC
400 --
401 -- COMMENT   : Procedure adds new language
402 --========================================================================
403 procedure ADD_LANGUAGE
404 is
405 begin
406   delete from HZ_CREDIT_USAGE_RULE_SETS_TL T
407   where not exists
408     (select NULL
409     from HZ_CREDIT_USAGE_RULE_SETS_B B
410     where B.CREDIT_USAGE_RULE_SET_ID = T.CREDIT_USAGE_RULE_SET_ID
411     );
412 
413   update HZ_CREDIT_USAGE_RULE_SETS_TL T set (
414       NAME
415     ) = (select
416       B.NAME
417     from HZ_CREDIT_USAGE_RULE_SETS_TL B
418     where B.CREDIT_USAGE_RULE_SET_ID = T.CREDIT_USAGE_RULE_SET_ID
419     and B.LANGUAGE = T.SOURCE_LANG)
420   where (
421       T.CREDIT_USAGE_RULE_SET_ID,
422       T.LANGUAGE
423   ) in (select
424       SUBT.CREDIT_USAGE_RULE_SET_ID,
425       SUBT.LANGUAGE
426     from HZ_CREDIT_USAGE_RULE_SETS_TL SUBB, HZ_CREDIT_USAGE_RULE_SETS_TL SUBT
427     where SUBB.CREDIT_USAGE_RULE_SET_ID = SUBT.CREDIT_USAGE_RULE_SET_ID
428     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
429     and (SUBB.NAME <> SUBT.NAME
430   ));
431 
432   insert into HZ_CREDIT_USAGE_RULE_SETS_TL (
433     CREDIT_USAGE_RULE_SET_ID,
434     NAME,
435     CREATION_DATE,
436     CREATED_BY,
437     LAST_UPDATE_DATE,
438     LAST_UPDATED_BY,
439     LAST_UPDATE_LOGIN,
440     LANGUAGE,
441     SOURCE_LANG
442   ) select /*+ ORDERED */
443     B.CREDIT_USAGE_RULE_SET_ID,
444     B.NAME,
445     B.CREATION_DATE,
446     B.CREATED_BY,
447     B.LAST_UPDATE_DATE,
448     B.LAST_UPDATED_BY,
449     B.LAST_UPDATE_LOGIN,
450     L.LANGUAGE_CODE,
451     B.SOURCE_LANG
452   from HZ_CREDIT_USAGE_RULE_SETS_TL B, FND_LANGUAGES L
453   where L.INSTALLED_FLAG in ('I', 'B')
454   and B.LANGUAGE = userenv('LANG')
455   and not exists
456     (select NULL
457     from HZ_CREDIT_USAGE_RULE_SETS_TL T
458     where T.CREDIT_USAGE_RULE_SET_ID = B.CREDIT_USAGE_RULE_SET_ID
459     and T.LANGUAGE = L.LANGUAGE_CODE);
460 end ADD_LANGUAGE;
461 
462 END HZ_CREDIT_USAGE_RULE_SETS_PKG;