DBA Data[Home] [Help]

PACKAGE BODY: APPS.CAC_SR_EXCEPTIONS_PKG

Source


1 package body CAC_SR_EXCEPTIONS_PKG as
2 /* $Header: cacsrexcpb.pls 120.1 2005/07/02 02:18:27 appldev noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out nocopy VARCHAR2,
5   X_EXCEPTION_ID in NUMBER,
6   X_OBJECT_VERSION_NUMBER in NUMBER,
7   X_EXCEPTION_GROUP in VARCHAR2,
8   X_EXCEPTION_TYPE in VARCHAR2,
9   X_PERIOD_CATEGORY_ID in NUMBER,
10   X_TEMPLATE_ID in NUMBER,
11   X_START_DATE_TIME in DATE,
12   X_END_DATE_TIME in DATE,
13   X_WHOLE_DAY_FLAG in VARCHAR2,
14   X_EXCEPTION_NAME in VARCHAR2,
15   X_EXCEPTION_DESC in VARCHAR2,
16   X_CREATION_DATE in DATE,
17   X_CREATED_BY in NUMBER,
18   X_LAST_UPDATE_DATE in DATE,
19   X_LAST_UPDATED_BY in NUMBER,
20   X_LAST_UPDATE_LOGIN in NUMBER
21 ) is
22   cursor C is select ROWID from CAC_SR_EXCEPTIONS_B
23     where EXCEPTION_ID = X_EXCEPTION_ID
24     ;
25 begin
26   insert into CAC_SR_EXCEPTIONS_B (
27     EXCEPTION_ID,
28     OBJECT_VERSION_NUMBER,
29     EXCEPTION_GROUP,
30     EXCEPTION_TYPE,
31     PERIOD_CATEGORY_ID,
32     TEMPLATE_ID,
33     START_DATE_TIME,
34     END_DATE_TIME,
35     WHOLE_DAY_FLAG,
36     CREATION_DATE,
37     CREATED_BY,
38     LAST_UPDATE_DATE,
39     LAST_UPDATED_BY,
40     LAST_UPDATE_LOGIN
41   ) values (
42     X_EXCEPTION_ID,
43     X_OBJECT_VERSION_NUMBER,
44     X_EXCEPTION_GROUP,
45     X_EXCEPTION_TYPE,
46     X_PERIOD_CATEGORY_ID,
47     X_TEMPLATE_ID,
48     X_START_DATE_TIME,
49     X_END_DATE_TIME,
50     X_WHOLE_DAY_FLAG,
51     X_CREATION_DATE,
52     X_CREATED_BY,
53     X_LAST_UPDATE_DATE,
54     X_LAST_UPDATED_BY,
55     X_LAST_UPDATE_LOGIN
56   );
57 
58   insert into CAC_SR_EXCEPTIONS_TL (
59     CREATION_DATE,
60     LAST_UPDATED_BY,
61     LAST_UPDATE_DATE,
62     LAST_UPDATE_LOGIN,
63     CREATED_BY,
64     EXCEPTION_NAME,
65     EXCEPTION_DESC,
66     EXCEPTION_ID,
67     LANGUAGE,
68     SOURCE_LANG
69   ) select
70     X_CREATION_DATE,
71     X_LAST_UPDATED_BY,
72     X_LAST_UPDATE_DATE,
73     X_LAST_UPDATE_LOGIN,
74     X_CREATED_BY,
75     X_EXCEPTION_NAME,
76     X_EXCEPTION_DESC,
77     X_EXCEPTION_ID,
78     L.LANGUAGE_CODE,
79     userenv('LANG')
80   from FND_LANGUAGES L
81   where L.INSTALLED_FLAG in ('I', 'B')
82   and not exists
83     (select NULL
84     from CAC_SR_EXCEPTIONS_TL T
85     where T.EXCEPTION_ID = X_EXCEPTION_ID
86     and T.LANGUAGE = L.LANGUAGE_CODE);
87 
88   open c;
89   fetch c into X_ROWID;
90   if (c%notfound) then
91     close c;
92     raise no_data_found;
93   end if;
94   close c;
95 
96 end INSERT_ROW;
97 
98 procedure LOCK_ROW (
99   X_EXCEPTION_ID in NUMBER,
100   X_OBJECT_VERSION_NUMBER in NUMBER,
101   X_EXCEPTION_GROUP in VARCHAR2,
102   X_EXCEPTION_TYPE in VARCHAR2,
103   X_PERIOD_CATEGORY_ID in NUMBER,
104   X_TEMPLATE_ID in NUMBER,
105   X_START_DATE_TIME in DATE,
106   X_END_DATE_TIME in DATE,
107   X_WHOLE_DAY_FLAG in VARCHAR2,
108   X_EXCEPTION_NAME in VARCHAR2,
109   X_EXCEPTION_DESC in VARCHAR2
110 ) is
111   cursor c is select
112       OBJECT_VERSION_NUMBER,
113       EXCEPTION_GROUP,
114       EXCEPTION_TYPE,
115       PERIOD_CATEGORY_ID,
116       TEMPLATE_ID,
117       START_DATE_TIME,
118       END_DATE_TIME,
119       WHOLE_DAY_FLAG
120     from CAC_SR_EXCEPTIONS_B
121     where EXCEPTION_ID = X_EXCEPTION_ID
122     for update of EXCEPTION_ID nowait;
123   recinfo c%rowtype;
124 
125   cursor c1 is select
126       EXCEPTION_NAME,
127       EXCEPTION_DESC,
128       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
129     from CAC_SR_EXCEPTIONS_TL
130     where EXCEPTION_ID = X_EXCEPTION_ID
131     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
132     for update of EXCEPTION_ID nowait;
133 begin
134   open c;
135   fetch c into recinfo;
136   if (c%notfound) then
137     close c;
138     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
139     app_exception.raise_exception;
140   end if;
141   close c;
142   if (    (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
143       AND ((recinfo.EXCEPTION_GROUP = X_EXCEPTION_GROUP)
144            OR ((recinfo.EXCEPTION_GROUP is null) AND (X_EXCEPTION_GROUP is null)))
145       AND (recinfo.EXCEPTION_TYPE = X_EXCEPTION_TYPE)
146       AND ((recinfo.PERIOD_CATEGORY_ID = X_PERIOD_CATEGORY_ID)
147            OR ((recinfo.PERIOD_CATEGORY_ID is null) AND (X_PERIOD_CATEGORY_ID is null)))
148       AND ((recinfo.TEMPLATE_ID = X_TEMPLATE_ID)
149            OR ((recinfo.TEMPLATE_ID is null) AND (X_TEMPLATE_ID is null)))
150       AND (recinfo.START_DATE_TIME = X_START_DATE_TIME)
151       AND (recinfo.END_DATE_TIME = X_END_DATE_TIME)
152       AND ((recinfo.WHOLE_DAY_FLAG = X_WHOLE_DAY_FLAG)
153            OR ((recinfo.WHOLE_DAY_FLAG is null) AND (X_WHOLE_DAY_FLAG 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 
161   for tlinfo in c1 loop
162     if (tlinfo.BASELANG = 'Y') then
163       if (    (tlinfo.EXCEPTION_NAME = X_EXCEPTION_NAME)
164           AND ((tlinfo.EXCEPTION_DESC = X_EXCEPTION_DESC)
165                OR ((tlinfo.EXCEPTION_DESC is null) AND (X_EXCEPTION_DESC is null)))
166       ) then
167         null;
168       else
169         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
170         app_exception.raise_exception;
171       end if;
172     end if;
173   end loop;
174   return;
175 end LOCK_ROW;
176 
177 procedure UPDATE_ROW (
178   X_EXCEPTION_ID in NUMBER,
179   X_OBJECT_VERSION_NUMBER in NUMBER,
180   X_EXCEPTION_GROUP in VARCHAR2,
181   X_EXCEPTION_TYPE in VARCHAR2,
182   X_PERIOD_CATEGORY_ID in NUMBER,
183   X_TEMPLATE_ID in NUMBER,
184   X_START_DATE_TIME in DATE,
185   X_END_DATE_TIME in DATE,
186   X_WHOLE_DAY_FLAG in VARCHAR2,
187   X_EXCEPTION_NAME in VARCHAR2,
188   X_EXCEPTION_DESC in VARCHAR2,
189   X_LAST_UPDATE_DATE in DATE,
190   X_LAST_UPDATED_BY in NUMBER,
191   X_LAST_UPDATE_LOGIN in NUMBER
192 ) is
193 begin
194   update CAC_SR_EXCEPTIONS_B set
195     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
196     EXCEPTION_GROUP = X_EXCEPTION_GROUP,
197     EXCEPTION_TYPE = X_EXCEPTION_TYPE,
198     PERIOD_CATEGORY_ID = X_PERIOD_CATEGORY_ID,
199     TEMPLATE_ID = X_TEMPLATE_ID,
200     START_DATE_TIME = X_START_DATE_TIME,
201     END_DATE_TIME = X_END_DATE_TIME,
202     WHOLE_DAY_FLAG = X_WHOLE_DAY_FLAG,
203     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
204     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
205     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
206   where EXCEPTION_ID = X_EXCEPTION_ID;
207 
208   if (sql%notfound) then
209     raise no_data_found;
210   end if;
211 
212   update CAC_SR_EXCEPTIONS_TL set
213     EXCEPTION_NAME = X_EXCEPTION_NAME,
214     EXCEPTION_DESC = X_EXCEPTION_DESC,
215     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
216     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
217     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
218     SOURCE_LANG = userenv('LANG')
219   where EXCEPTION_ID = X_EXCEPTION_ID
220   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
221 
222   if (sql%notfound) then
223     raise no_data_found;
224   end if;
225 end UPDATE_ROW;
226 
227 procedure DELETE_ROW (
228   X_EXCEPTION_ID in NUMBER
229 ) is
230 begin
231   delete from CAC_SR_EXCEPTIONS_TL
232   where EXCEPTION_ID = X_EXCEPTION_ID;
233 
234   if (sql%notfound) then
235     raise no_data_found;
236   end if;
237 
238   delete from CAC_SR_EXCEPTIONS_B
239   where EXCEPTION_ID = X_EXCEPTION_ID;
240 
241   if (sql%notfound) then
242     raise no_data_found;
243   end if;
244 end DELETE_ROW;
245 
246 procedure ADD_LANGUAGE
247 is
248 begin
249   delete from CAC_SR_EXCEPTIONS_TL T
250   where not exists
251     (select NULL
252     from CAC_SR_EXCEPTIONS_B B
253     where B.EXCEPTION_ID = T.EXCEPTION_ID
254     );
255 
256   update CAC_SR_EXCEPTIONS_TL T set (
257       EXCEPTION_NAME,
258       EXCEPTION_DESC
259     ) = (select
260       B.EXCEPTION_NAME,
261       B.EXCEPTION_DESC
262     from CAC_SR_EXCEPTIONS_TL B
263     where B.EXCEPTION_ID = T.EXCEPTION_ID
264     and B.LANGUAGE = T.SOURCE_LANG)
265   where (
266       T.EXCEPTION_ID,
267       T.LANGUAGE
268   ) in (select
269       SUBT.EXCEPTION_ID,
270       SUBT.LANGUAGE
271     from CAC_SR_EXCEPTIONS_TL SUBB, CAC_SR_EXCEPTIONS_TL SUBT
272     where SUBB.EXCEPTION_ID = SUBT.EXCEPTION_ID
273     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
274     and (SUBB.EXCEPTION_NAME <> SUBT.EXCEPTION_NAME
275       or SUBB.EXCEPTION_DESC <> SUBT.EXCEPTION_DESC
276       or (SUBB.EXCEPTION_DESC is null and SUBT.EXCEPTION_DESC is not null)
277       or (SUBB.EXCEPTION_DESC is not null and SUBT.EXCEPTION_DESC is null)
278   ));
279 
280   insert into CAC_SR_EXCEPTIONS_TL (
281     CREATION_DATE,
282     LAST_UPDATED_BY,
283     LAST_UPDATE_DATE,
284     LAST_UPDATE_LOGIN,
285     CREATED_BY,
286     EXCEPTION_NAME,
287     EXCEPTION_DESC,
288     EXCEPTION_ID,
289     LANGUAGE,
290     SOURCE_LANG
291   ) select /*+ ORDERED */
292     B.CREATION_DATE,
293     B.LAST_UPDATED_BY,
294     B.LAST_UPDATE_DATE,
295     B.LAST_UPDATE_LOGIN,
296     B.CREATED_BY,
297     B.EXCEPTION_NAME,
298     B.EXCEPTION_DESC,
299     B.EXCEPTION_ID,
300     L.LANGUAGE_CODE,
301     B.SOURCE_LANG
302   from CAC_SR_EXCEPTIONS_TL B, FND_LANGUAGES L
303   where L.INSTALLED_FLAG in ('I', 'B')
304   and B.LANGUAGE = userenv('LANG')
305   and not exists
306     (select NULL
307     from CAC_SR_EXCEPTIONS_TL T
308     where T.EXCEPTION_ID = B.EXCEPTION_ID
309     and T.LANGUAGE = L.LANGUAGE_CODE);
310 end ADD_LANGUAGE;
311 
312 end CAC_SR_EXCEPTIONS_PKG;