DBA Data[Home] [Help]

PACKAGE BODY: APPS.CAC_VIEW_COLLAB_DETAILS_PKG

Source


1 PACKAGE BODY CAC_VIEW_COLLAB_DETAILS_PKG AS
2 /* $Header: jtfcvcdb.pls 115.2 2004/06/29 20:29:59 cijang noship $ */
3 
4 procedure INSERT_ROW (
5   X_ROWID in out NOCOPY VARCHAR2,
6   X_COLLAB_ID in NUMBER,
7   X_TASK_ID in NUMBER,
8   X_MEETING_MODE in VARCHAR2,
9   X_MEETING_ID in NUMBER,
10   X_MEETING_URL in VARCHAR2,
11   X_JOIN_URL in VARCHAR2,
12   X_PLAYBACK_URL in VARCHAR2,
13   X_DOWNLOAD_URL in VARCHAR2,
14   X_CHAT_URL in VARCHAR2,
15   X_IS_STANDALONE_LOCATION in VARCHAR2,
16   X_LOCATION in VARCHAR2,
17   X_DIAL_IN 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) is
23 
24   cursor C is select ROWID from CAC_VIEW_COLLAB_DETAILS
25     where COLLAB_ID = X_COLLAB_ID
26     ;
27 begin
28 
29   insert into CAC_VIEW_COLLAB_DETAILS (
30     COLLAB_ID,
31     TASK_ID,
32     MEETING_MODE,
33     MEETING_ID,
34     MEETING_URL,
35     JOIN_URL,
36     PLAYBACK_URL,
37     DOWNLOAD_URL,
38     CHAT_URL,
39     IS_STANDALONE_LOCATION,
40     CREATION_DATE,
41     CREATED_BY,
42     LAST_UPDATE_DATE,
43     LAST_UPDATED_BY,
44     LAST_UPDATE_LOGIN
45   ) values (
46     X_COLLAB_ID,
47     X_TASK_ID,
48     X_MEETING_MODE,
49     X_MEETING_ID,
50     X_MEETING_URL,
51     X_JOIN_URL,
52     X_PLAYBACK_URL,
53     X_DOWNLOAD_URL,
54     X_CHAT_URL,
55     X_IS_STANDALONE_LOCATION,
56     X_CREATION_DATE,
57     X_CREATED_BY,
58     X_LAST_UPDATE_DATE,
59     X_LAST_UPDATED_BY,
60     X_LAST_UPDATE_LOGIN
61   );
62 
63   insert into CAC_VIEW_COLLAB_DETAILS_TL (
64     CREATED_BY,
65     CREATION_DATE,
66     LAST_UPDATED_BY,
67     LAST_UPDATE_DATE,
68     LAST_UPDATE_LOGIN,
69     COLLAB_ID,
70     LOCATION,
71     DIAL_IN,
72     LANGUAGE,
73     SOURCE_LANG
74   ) select
75     X_CREATED_BY,
76     X_CREATION_DATE,
77     X_LAST_UPDATED_BY,
78     X_LAST_UPDATE_DATE,
79     X_LAST_UPDATE_LOGIN,
80     X_COLLAB_ID,
81     X_LOCATION,
82     X_DIAL_IN,
83     L.LANGUAGE_CODE,
84     userenv('LANG')
85   from FND_LANGUAGES L
86   where L.INSTALLED_FLAG in ('I', 'B')
87   and not exists
88     (select NULL
89     from CAC_VIEW_COLLAB_DETAILS_TL T
90     where T.COLLAB_ID = X_COLLAB_ID
91     and T.LANGUAGE = L.LANGUAGE_CODE);
92 
93   open c;
94   fetch c into X_ROWID;
95   if (c%notfound) then
96     close c;
97     raise no_data_found;
98   end if;
99   close c;
100 
101 
102 end INSERT_ROW;
103 
104 procedure LOCK_ROW (
105   X_COLLAB_ID in NUMBER,
106   X_TASK_ID in NUMBER,
107   X_MEETING_MODE in VARCHAR2,
108   X_MEETING_ID in NUMBER,
109   X_MEETING_URL in VARCHAR2,
110   X_JOIN_URL in VARCHAR2,
111   X_PLAYBACK_URL in VARCHAR2,
112   X_DOWNLOAD_URL in VARCHAR2,
113   X_CHAT_URL in VARCHAR2,
114   X_IS_STANDALONE_LOCATION in VARCHAR2,
115   X_LOCATION in VARCHAR2,
116   X_DIAL_IN in VARCHAR2
117 ) is
118   cursor c is select
119       TASK_ID,
120       MEETING_MODE,
121       MEETING_ID,
122       MEETING_URL,
123       JOIN_URL,
124       PLAYBACK_URL,
125       DOWNLOAD_URL,
126       CHAT_URL,
127       IS_STANDALONE_LOCATION
128     from CAC_VIEW_COLLAB_DETAILS
129     where COLLAB_ID = X_COLLAB_ID
130     for update of COLLAB_ID nowait;
131   recinfo c%rowtype;
132 
133   cursor c1 is select
134       LOCATION,
135       DIAL_IN,
136       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
137     from CAC_VIEW_COLLAB_DETAILS_TL
138     where COLLAB_ID = X_COLLAB_ID
139     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
140     for update of COLLAB_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.TASK_ID = X_TASK_ID)
151       AND ((recinfo.MEETING_MODE = X_MEETING_MODE)
152            OR ((recinfo.MEETING_MODE is null) AND (X_MEETING_MODE is null)))
153       AND ((recinfo.MEETING_ID = X_MEETING_ID)
154            OR ((recinfo.MEETING_ID is null) AND (X_MEETING_ID is null)))
155       AND ((recinfo.MEETING_URL = X_MEETING_URL)
156            OR ((recinfo.MEETING_URL is null) AND (X_MEETING_URL is null)))
157       AND ((recinfo.JOIN_URL = X_JOIN_URL)
158            OR ((recinfo.JOIN_URL is null) AND (X_JOIN_URL is null)))
159       AND ((recinfo.PLAYBACK_URL = X_PLAYBACK_URL)
160            OR ((recinfo.PLAYBACK_URL is null) AND (X_PLAYBACK_URL is null)))
161       AND ((recinfo.DOWNLOAD_URL = X_DOWNLOAD_URL)
162            OR ((recinfo.DOWNLOAD_URL is null) AND (X_DOWNLOAD_URL is null)))
163       AND ((recinfo.CHAT_URL = X_CHAT_URL)
164            OR ((recinfo.CHAT_URL is null) AND (X_CHAT_URL is null)))
165       AND ((recinfo.IS_STANDALONE_LOCATION = X_IS_STANDALONE_LOCATION)
166            OR ((recinfo.IS_STANDALONE_LOCATION is null) AND (X_IS_STANDALONE_LOCATION is null)))
167   ) then
168     null;
169   else
170     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
171     app_exception.raise_exception;
172   end if;
173 
174   for tlinfo in c1 loop
175     if (tlinfo.BASELANG = 'Y') then
176       if (    ((tlinfo.LOCATION = X_LOCATION)
177                OR ((tlinfo.LOCATION is null) AND (X_LOCATION is null)))
178           AND ((tlinfo.DIAL_IN = X_DIAL_IN)
179                OR ((tlinfo.DIAL_IN is null) AND (X_DIAL_IN is null)))
180       ) then
181         null;
182       else
183         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
184         app_exception.raise_exception;
185       end if;
186     end if;
187   end loop;
188   return;
189 end LOCK_ROW;
190 
191 procedure UPDATE_ROW (
192   X_COLLAB_ID in NUMBER,
193   X_TASK_ID in NUMBER,
194   X_MEETING_MODE in VARCHAR2,
195   X_MEETING_ID in NUMBER,
196   X_MEETING_URL in VARCHAR2,
197   X_JOIN_URL in VARCHAR2,
198   X_PLAYBACK_URL in VARCHAR2,
199   X_DOWNLOAD_URL in VARCHAR2,
200   X_CHAT_URL in VARCHAR2,
201   X_IS_STANDALONE_LOCATION in VARCHAR2,
202   X_LOCATION in VARCHAR2,
203   X_DIAL_IN in VARCHAR2,
204   X_LAST_UPDATE_DATE in DATE,
205   X_LAST_UPDATED_BY in NUMBER,
206   X_LAST_UPDATE_LOGIN in NUMBER
207 ) is
208 begin
209   update CAC_VIEW_COLLAB_DETAILS set
210     TASK_ID = X_TASK_ID,
211     MEETING_MODE = X_MEETING_MODE,
212     MEETING_ID = X_MEETING_ID,
213     MEETING_URL = X_MEETING_URL,
214     JOIN_URL = X_JOIN_URL,
215     PLAYBACK_URL = X_PLAYBACK_URL,
216     DOWNLOAD_URL = X_DOWNLOAD_URL,
217     CHAT_URL = X_CHAT_URL,
218     IS_STANDALONE_LOCATION = X_IS_STANDALONE_LOCATION,
219     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
220     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
221     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
222   where COLLAB_ID = X_COLLAB_ID;
223 
224   if (sql%notfound) then
225     raise no_data_found;
226   end if;
227 
228   update CAC_VIEW_COLLAB_DETAILS_TL set
229     LOCATION = X_LOCATION,
230     DIAL_IN = X_DIAL_IN,
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     SOURCE_LANG = userenv('LANG')
235   where COLLAB_ID = X_COLLAB_ID
236   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
237 
238   if (sql%notfound) then
239     raise no_data_found;
240   end if;
241 end UPDATE_ROW;
242 
243 procedure DELETE_ROW (
244   X_COLLAB_ID in NUMBER
245 ) is
246 begin
247   delete from CAC_VIEW_COLLAB_DETAILS_TL
248   where COLLAB_ID = X_COLLAB_ID;
249 
250   if (sql%notfound) then
251     raise no_data_found;
252   end if;
253 
254   delete from CAC_VIEW_COLLAB_DETAILS
255   where COLLAB_ID = X_COLLAB_ID;
256 
257   if (sql%notfound) then
258     raise no_data_found;
259   end if;
260 end DELETE_ROW;
261 
262 procedure ADD_LANGUAGE
263 is
264 begin
265   delete from CAC_VIEW_COLLAB_DETAILS_TL T
266   where not exists
267     (select NULL
268     from CAC_VIEW_COLLAB_DETAILS B
269     where B.COLLAB_ID = T.COLLAB_ID
270     );
271 
272   update CAC_VIEW_COLLAB_DETAILS_TL T set (
273       LOCATION,
274       DIAL_IN
275     ) = (select
276       B.LOCATION,
277       B.DIAL_IN
278     from CAC_VIEW_COLLAB_DETAILS_TL B
279     where B.COLLAB_ID = T.COLLAB_ID
280     and B.LANGUAGE = T.SOURCE_LANG)
281   where (
282       T.COLLAB_ID,
283       T.LANGUAGE
284   ) in (select
285       SUBT.COLLAB_ID,
286       SUBT.LANGUAGE
287     from CAC_VIEW_COLLAB_DETAILS_TL SUBB, CAC_VIEW_COLLAB_DETAILS_TL SUBT
288     where SUBB.COLLAB_ID = SUBT.COLLAB_ID
289     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
290     and (SUBB.LOCATION <> SUBT.LOCATION
291       or (SUBB.LOCATION is null and SUBT.LOCATION is not null)
292       or (SUBB.LOCATION is not null and SUBT.LOCATION is null)
293       or SUBB.DIAL_IN <> SUBT.DIAL_IN
294       or (SUBB.DIAL_IN is null and SUBT.DIAL_IN is not null)
295       or (SUBB.DIAL_IN is not null and SUBT.DIAL_IN is null)
296   ));
297 
298   insert into CAC_VIEW_COLLAB_DETAILS_TL (
299     CREATED_BY,
300     CREATION_DATE,
301     LAST_UPDATED_BY,
302     LAST_UPDATE_DATE,
303     LAST_UPDATE_LOGIN,
304     COLLAB_ID,
305     LOCATION,
306     DIAL_IN,
307     LANGUAGE,
308     SOURCE_LANG
309   ) select /*+ ORDERED */
310     B.CREATED_BY,
311     B.CREATION_DATE,
312     B.LAST_UPDATED_BY,
313     B.LAST_UPDATE_DATE,
314     B.LAST_UPDATE_LOGIN,
315     B.COLLAB_ID,
316     B.LOCATION,
317     B.DIAL_IN,
318     L.LANGUAGE_CODE,
319     B.SOURCE_LANG
320   from CAC_VIEW_COLLAB_DETAILS_TL B, FND_LANGUAGES L
321   where L.INSTALLED_FLAG in ('I', 'B')
322   and B.LANGUAGE = userenv('LANG')
323   and not exists
324     (select NULL
325     from CAC_VIEW_COLLAB_DETAILS_TL T
326     where T.COLLAB_ID = B.COLLAB_ID
327     and T.LANGUAGE = L.LANGUAGE_CODE);
328 end ADD_LANGUAGE;
329 
330 
331 
332 END CAC_VIEW_COLLAB_DETAILS_PKG;