DBA Data[Home] [Help]

PACKAGE BODY: APPS.QPR_REPORT_HDRS_PKG

Source


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