DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGW_QUESTIONS_PKG

Source


1 package body IGW_QUESTIONS_PKG as
2 -- $Header: igwstqub.pls 115.8 2002/11/15 00:47:34 ashkumar ship $
3 
4 procedure INSERT_ROW (
5   X_ROWID in out NOCOPY VARCHAR2,
6   X_QUESTION_NUMBER in VARCHAR2,
7   X_APPLIES_TO in VARCHAR2,
8   X_EXPLANATION_FOR_YES_FLAG in VARCHAR2,
9   X_EXPLANATION_FOR_NO_FLAG in VARCHAR2,
10   X_DATE_FOR_YES_FLAG in VARCHAR2,
11   X_DATE_FOR_NO_FLAG in VARCHAR2,
12   X_START_DATE_ACTIVE in DATE,
13   X_END_DATE_ACTIVE in DATE,
14   X_EXPLANATION in VARCHAR2,
15   X_POLICY in VARCHAR2,
16   X_REGULATION in VARCHAR2,
17   X_DESCRIPTION in VARCHAR2,
18   X_CREATION_DATE in DATE,
19   X_CREATED_BY in NUMBER,
20   X_LAST_UPDATE_DATE in DATE,
21   X_LAST_UPDATED_BY in NUMBER,
22   X_LAST_UPDATE_LOGIN in NUMBER
23 ) is
24   cursor C is select ROWID from IGW_QUESTIONS
25     where QUESTION_NUMBER = X_QUESTION_NUMBER
26     ;
27 begin
28   insert into IGW_QUESTIONS (
29     QUESTION_NUMBER,
30     APPLIES_TO,
31     EXPLANATION_FOR_YES_FLAG,
32     EXPLANATION_FOR_NO_FLAG,
33     DATE_FOR_YES_FLAG,
34     DATE_FOR_NO_FLAG,
35     START_DATE_ACTIVE,
36     END_DATE_ACTIVE,
37     CREATION_DATE,
38     CREATED_BY,
39     LAST_UPDATE_DATE,
40     LAST_UPDATED_BY,
41     LAST_UPDATE_LOGIN
42   ) values (
43     X_QUESTION_NUMBER,
44     X_APPLIES_TO,
45     X_EXPLANATION_FOR_YES_FLAG,
46     X_EXPLANATION_FOR_NO_FLAG,
47     X_DATE_FOR_YES_FLAG,
48     X_DATE_FOR_NO_FLAG,
49     X_START_DATE_ACTIVE,
50     X_END_DATE_ACTIVE,
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 IGW_QUESTIONS_TL (
59     QUESTION_NUMBER,
60     DESCRIPTION,
61     EXPLANATION,
62     POLICY,
63     REGULATION,
64     LAST_UPDATE_DATE,
65     LAST_UPDATED_BY,
66     CREATION_DATE,
67     CREATED_BY,
68     LAST_UPDATE_LOGIN,
69     LANGUAGE,
70     SOURCE_LANG
71   ) select
72     X_QUESTION_NUMBER,
73     X_DESCRIPTION,
74     X_EXPLANATION,
75     X_POLICY,
76     X_REGULATION,
77     X_LAST_UPDATE_DATE,
78     X_LAST_UPDATED_BY,
79     X_CREATION_DATE,
80     X_CREATED_BY,
81     X_LAST_UPDATE_LOGIN,
82     L.LANGUAGE_CODE,
83     userenv('LANG')
84   from FND_LANGUAGES L
85   where L.INSTALLED_FLAG in ('I', 'B')
86   and not exists
87     (select NULL
88     from IGW_QUESTIONS_TL T
89     where T.QUESTION_NUMBER = X_QUESTION_NUMBER
90     and T.LANGUAGE = L.LANGUAGE_CODE);
91 
92   open c;
93   fetch c into X_ROWID;
94   if (c%notfound) then
95     close c;
96     raise no_data_found;
97   end if;
98   close c;
99 
100 end INSERT_ROW;
101 
102 procedure LOCK_ROW (
103   X_QUESTION_NUMBER in VARCHAR2,
104   X_APPLIES_TO in VARCHAR2,
105   X_EXPLANATION_FOR_YES_FLAG in VARCHAR2,
106   X_EXPLANATION_FOR_NO_FLAG in VARCHAR2,
107   X_DATE_FOR_YES_FLAG in VARCHAR2,
108   X_DATE_FOR_NO_FLAG in VARCHAR2,
109   X_START_DATE_ACTIVE in DATE,
110   X_END_DATE_ACTIVE in DATE,
111   X_EXPLANATION in VARCHAR2,
112   X_POLICY in VARCHAR2,
113   X_REGULATION in VARCHAR2,
114   X_DESCRIPTION in VARCHAR2
115 ) is
116   cursor c is select
117       APPLIES_TO,
118       EXPLANATION_FOR_YES_FLAG,
119       EXPLANATION_FOR_NO_FLAG,
120       DATE_FOR_YES_FLAG,
121       DATE_FOR_NO_FLAG,
122       START_DATE_ACTIVE,
123       END_DATE_ACTIVE
124     from IGW_QUESTIONS
125     where QUESTION_NUMBER = X_QUESTION_NUMBER
126     for update of QUESTION_NUMBER nowait;
127   recinfo c%rowtype;
128 
129   cursor c1 is select
130       DESCRIPTION,
131       EXPLANATION,
132       POLICY,
133       REGULATION,
134       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
135     from IGW_QUESTIONS_TL
136     where QUESTION_NUMBER = X_QUESTION_NUMBER
137     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
138     for update of QUESTION_NUMBER nowait;
139 begin
140   open c;
141   fetch c into recinfo;
142   if (c%notfound) then
143     close c;
144     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
145     app_exception.raise_exception;
146   end if;
147   close c;
148   if (    (recinfo.APPLIES_TO = X_APPLIES_TO)
149       AND (recinfo.EXPLANATION_FOR_YES_FLAG = X_EXPLANATION_FOR_YES_FLAG)
150       AND (recinfo.EXPLANATION_FOR_NO_FLAG = X_EXPLANATION_FOR_NO_FLAG)
151       AND (recinfo.DATE_FOR_YES_FLAG = X_DATE_FOR_YES_FLAG)
152       AND (recinfo.DATE_FOR_NO_FLAG = X_DATE_FOR_NO_FLAG)
153       AND (recinfo.START_DATE_ACTIVE = X_START_DATE_ACTIVE)
154       AND ((recinfo.END_DATE_ACTIVE = X_END_DATE_ACTIVE)
155            OR ((recinfo.END_DATE_ACTIVE is null) AND (X_END_DATE_ACTIVE is null)))
156   ) then
157     null;
158   else
159     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
160     app_exception.raise_exception;
161   end if;
162 
163   for tlinfo in c1 loop
164     if (tlinfo.BASELANG = 'Y') then
165       if (    (tlinfo.DESCRIPTION = X_DESCRIPTION)
166          AND ((tlinfo.EXPLANATION = X_EXPLANATION)
167               OR ((tlinfo.EXPLANATION is null) AND (X_EXPLANATION is null)))
168          AND ((tlinfo.POLICY = X_POLICY)
169               OR ((tlinfo.POLICY is null) AND (X_POLICY is null)))
170          AND ((tlinfo.REGULATION = X_REGULATION)
171            OR ((tlinfo.REGULATION is null) AND (X_REGULATION is null)))
172       ) then
173         null;
174       else
175         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
176         app_exception.raise_exception;
177       end if;
178     end if;
179   end loop;
180   return;
181 end LOCK_ROW;
182 
183 procedure UPDATE_ROW (
184   X_QUESTION_NUMBER in VARCHAR2,
185   X_APPLIES_TO in VARCHAR2,
186   X_EXPLANATION_FOR_YES_FLAG in VARCHAR2,
187   X_EXPLANATION_FOR_NO_FLAG in VARCHAR2,
188   X_DATE_FOR_YES_FLAG in VARCHAR2,
189   X_DATE_FOR_NO_FLAG in VARCHAR2,
190   X_START_DATE_ACTIVE in DATE,
191   X_END_DATE_ACTIVE in DATE,
192   X_EXPLANATION in VARCHAR2,
193   X_POLICY in VARCHAR2,
194   X_REGULATION in VARCHAR2,
195   X_DESCRIPTION in VARCHAR2,
196   X_LAST_UPDATE_DATE in DATE,
197   X_LAST_UPDATED_BY in NUMBER,
198   X_LAST_UPDATE_LOGIN in NUMBER
199 ) is
200 begin
201   update IGW_QUESTIONS set
202     APPLIES_TO = X_APPLIES_TO,
203     EXPLANATION_FOR_YES_FLAG = X_EXPLANATION_FOR_YES_FLAG,
204     EXPLANATION_FOR_NO_FLAG = X_EXPLANATION_FOR_NO_FLAG,
205     DATE_FOR_YES_FLAG = X_DATE_FOR_YES_FLAG,
206     DATE_FOR_NO_FLAG = X_DATE_FOR_NO_FLAG,
207     START_DATE_ACTIVE = X_START_DATE_ACTIVE,
208     END_DATE_ACTIVE = X_END_DATE_ACTIVE,
209     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
210     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
211     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
212   where QUESTION_NUMBER = X_QUESTION_NUMBER;
213 
214   if (sql%notfound) then
215     raise no_data_found;
216   end if;
217 
218   update IGW_QUESTIONS_TL set
219     DESCRIPTION = X_DESCRIPTION,
220     EXPLANATION = X_EXPLANATION,
221     POLICY = X_POLICY,
222     REGULATION = X_REGULATION,
223     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
224     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
225     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
226     SOURCE_LANG = userenv('LANG')
227   where QUESTION_NUMBER = X_QUESTION_NUMBER
228   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
229 
230   if (sql%notfound) then
231     raise no_data_found;
232   end if;
233 end UPDATE_ROW;
234 
235 procedure DELETE_ROW (
236   X_QUESTION_NUMBER in VARCHAR2
237 ) is
238 begin
239   delete from IGW_QUESTIONS_TL
240   where QUESTION_NUMBER = X_QUESTION_NUMBER;
241 
242   if (sql%notfound) then
243     raise no_data_found;
244   end if;
245 
246   delete from IGW_QUESTIONS
247   where QUESTION_NUMBER = X_QUESTION_NUMBER;
248 
249   if (sql%notfound) then
250     raise no_data_found;
251   end if;
252 end DELETE_ROW;
253 
254 procedure ADD_LANGUAGE
255 is
256 begin
257   delete from IGW_QUESTIONS_TL T
258   where not exists
259     (select NULL
260     from IGW_QUESTIONS B
261     where B.QUESTION_NUMBER = T.QUESTION_NUMBER
262     );
263 
264   update IGW_QUESTIONS_TL T set (
265       DESCRIPTION,
266       EXPLANATION,
267       POLICY,
268       REGULATION
269     ) = (select
270       B.DESCRIPTION,
271       B.EXPLANATION,
272       B.POLICY,
273       B.REGULATION
274     from IGW_QUESTIONS_TL B
275     where B.QUESTION_NUMBER = T.QUESTION_NUMBER
276     and B.LANGUAGE = T.SOURCE_LANG)
277   where (
278       T.QUESTION_NUMBER,
279       T.LANGUAGE
280   ) in (select
281       SUBT.QUESTION_NUMBER,
282       SUBT.LANGUAGE
283     from IGW_QUESTIONS_TL SUBB, IGW_QUESTIONS_TL SUBT
284     where SUBB.QUESTION_NUMBER = SUBT.QUESTION_NUMBER
285     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
286     and (SUBB.DESCRIPTION <> SUBT.DESCRIPTION
287      OR (SUBB.EXPLANATION <> SUBT.EXPLANATION)
288      OR (SUBB.EXPLANATION is null and SUBT.EXPLANATION is not null)
289      OR (SUBB.EXPLANATION is not null and SUBT.EXPLANATION is null)
290      OR (SUBB.POLICY <> SUBT.POLICY)
291      OR (SUBB.POLICY is null and SUBT.POLICY is not null)
292      OR (SUBB.POLICY is not null and SUBT.POLICY is null)
293      OR (SUBB.REGULATION <> SUBT.REGULATION)
294      OR (SUBB.REGULATION is null and SUBT.REGULATION is not null)
295      OR (SUBB.REGULATION is not null and SUBT.REGULATION is null))
296   );
297 
298   insert into IGW_QUESTIONS_TL (
299     QUESTION_NUMBER,
300     DESCRIPTION,
301     EXPLANATION,
302     POLICY,
303     REGULATION,
304     LAST_UPDATE_DATE,
305     LAST_UPDATED_BY,
306     CREATION_DATE,
307     CREATED_BY,
308     LAST_UPDATE_LOGIN,
309     LANGUAGE,
310     SOURCE_LANG
311   ) select
312     B.QUESTION_NUMBER,
313     B.DESCRIPTION,
314     B.EXPLANATION,
315     B.POLICY,
316     B.REGULATION,
317     B.LAST_UPDATE_DATE,
318     B.LAST_UPDATED_BY,
319     B.CREATION_DATE,
320     B.CREATED_BY,
321     B.LAST_UPDATE_LOGIN,
322     L.LANGUAGE_CODE,
323     B.SOURCE_LANG
324   from IGW_QUESTIONS_TL B, FND_LANGUAGES L
325   where L.INSTALLED_FLAG in ('I', 'B')
326   and B.LANGUAGE = userenv('LANG')
327   and not exists
328     (select NULL
329     from IGW_QUESTIONS_TL T
330     where T.QUESTION_NUMBER = B.QUESTION_NUMBER
331     and T.LANGUAGE = L.LANGUAGE_CODE);
332 end ADD_LANGUAGE;
333 
334 procedure TRANSLATE_ROW (
335   X_QUESTION_NUMBER in VARCHAR2,
336   X_DESCRIPTION in VARCHAR2,
337   X_EXPLANATION in VARCHAR2,
338   X_POLICY  in VARCHAR2,
339   X_REGULATION in VARCHAR2,
340   X_OWNER in VARCHAR2) is
341 begin
342    update igw_questions_tl set
343      DESCRIPTION = nvl(X_DESCRIPTION, DESCRIPTION),
344      EXPLANATION = nvl(X_EXPLANATION, EXPLANATION),
345      POLICY = nvl(X_POLICY, POLICY),
346      REGULATION = nvl(X_REGULATION, REGULATION),
347      LAST_UPDATE_DATE = sysdate,
348      LAST_UPDATED_BY = decode(X_OWNER, 'SEED', 1, 0),
349      LAST_UPDATE_LOGIN = 0,
350      SOURCE_LANG = userenv('LANG')
351    where question_number = X_QUESTION_NUMBER  and
352          userenv('LANG') in (language, source_lang);
353 
354  end TRANSLATE_ROW;
355 
356 end IGW_QUESTIONS_PKG;
357