DBA Data[Home] [Help]

PACKAGE BODY: APPS.ZX_REPORTING_CODES_PKG

Source


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