1 package body RRS_SITESTH_PKG as
2 /* $Header: RRSSTHPB.pls 120.2 2005/12/29 06:31 pfarkade noship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out nocopy VARCHAR2,
5 X_SITE_ID in NUMBER,
6 X_SITE_IDENTIFICATION_NUMBER in VARCHAR2,
7 X_SITE_TYPE_CODE in VARCHAR2,
8 X_SITE_STATUS_CODE in VARCHAR2,
9 X_BRANDNAME_CODE in VARCHAR2,
10 X_CALENDAR_CODE in VARCHAR2,
11 X_LOCATION_ID in NUMBER,
12 X_SITE_PARTY_ID in NUMBER,
13 X_PARTY_SITE_ID in NUMBER,
14 X_LE_PARTY_ID in NUMBER,
15 X_PROPERTY_LOCATION_ID in NUMBER,
16 X_TEMPLATE_COUNTRY in VARCHAR2,
17 X_START_DATE in DATE,
18 X_END_DATE in DATE,
19 X_IS_TEMPLATE_FLAG in VARCHAR2,
20 X_OBJECT_VERSION_NUMBER in NUMBER,
21 X_NAME in VARCHAR2,
22 X_CREATION_DATE in DATE,
23 X_CREATED_BY in NUMBER,
24 X_LAST_UPDATE_DATE in DATE,
25 X_LAST_UPDATED_BY in NUMBER,
26 X_LAST_UPDATE_LOGIN in NUMBER,
27 X_ORGANIZATION_ID in NUMBER,
28 X_DESCRIPTION in VARCHAR2
29 ) is
30 l_site_id NUMBER;
31
32 cursor C is select ROWID from RRS_SITES_B
33 where SITE_ID = l_site_id
34 ;
35
36 begin
37
38 select nvl(X_SITE_ID ,RRS_SITES_S.nextval)
39 into l_site_id
40 from dual;
41
42 insert into RRS_SITES_B (
43 SITE_ID,
44 SITE_IDENTIFICATION_NUMBER,
45 SITE_TYPE_CODE,
46 SITE_STATUS_CODE,
47 BRANDNAME_CODE,
48 CALENDAR_CODE,
49 LOCATION_ID,
50 SITE_PARTY_ID,
51 PARTY_SITE_ID,
52 LE_PARTY_ID,
53 PROPERTY_LOCATION_ID,
54 TEMPLATE_COUNTRY,
55 START_DATE,
56 END_DATE,
57 IS_TEMPLATE_FLAG,
58 OBJECT_VERSION_NUMBER,
59 CREATION_DATE,
60 CREATED_BY,
61 LAST_UPDATE_DATE,
62 LAST_UPDATED_BY,
63 LAST_UPDATE_LOGIN,
64 ORGANIZATION_ID
65 ) values (
66 l_site_id,
67 X_SITE_IDENTIFICATION_NUMBER,
68 X_SITE_TYPE_CODE,
69 X_SITE_STATUS_CODE,
70 X_BRANDNAME_CODE,
71 X_CALENDAR_CODE,
72 X_LOCATION_ID,
73 X_SITE_PARTY_ID,
74 X_PARTY_SITE_ID,
75 X_LE_PARTY_ID,
76 X_PROPERTY_LOCATION_ID,
77 X_TEMPLATE_COUNTRY,
78 X_START_DATE,
79 X_END_DATE,
80 X_IS_TEMPLATE_FLAG,
81 X_OBJECT_VERSION_NUMBER,
82 X_CREATION_DATE,
83 X_CREATED_BY,
84 X_LAST_UPDATE_DATE,
85 X_LAST_UPDATED_BY,
86 X_LAST_UPDATE_LOGIN,
87 X_ORGANIZATION_ID
88 );
89
90 insert into RRS_SITES_TL (
91 SITE_ID,
92 NAME,
93 CREATED_BY,
94 CREATION_DATE,
95 LAST_UPDATED_BY,
96 LAST_UPDATE_DATE,
97 LAST_UPDATE_LOGIN,
98 LANGUAGE,
99 SOURCE_LANG,
100 DESCRIPTION
101 ) select
102 l_site_id,
103 X_NAME,
104 X_CREATED_BY,
105 X_CREATION_DATE,
106 X_LAST_UPDATED_BY,
107 X_LAST_UPDATE_DATE,
108 X_LAST_UPDATE_LOGIN,
109 L.LANGUAGE_CODE,
110 userenv('LANG'),
111 X_DESCRIPTION
112 from FND_LANGUAGES L
113 where L.INSTALLED_FLAG in ('I', 'B')
114 and not exists
115 (select NULL
116 from RRS_SITES_TL T
117 where T.SITE_ID = l_site_id
118 and T.LANGUAGE = L.LANGUAGE_CODE);
119
120 open c;
121 fetch c into X_ROWID;
122 if (c%notfound) then
123 close c;
124 raise no_data_found;
125 end if;
126 close c;
127
128 end INSERT_ROW;
129
130 procedure LOCK_ROW (
131 X_SITE_ID in NUMBER,
132 X_SITE_IDENTIFICATION_NUMBER in VARCHAR2,
133 X_SITE_TYPE_CODE in VARCHAR2,
134 X_SITE_STATUS_CODE in VARCHAR2,
135 X_BRANDNAME_CODE in VARCHAR2,
136 X_CALENDAR_CODE in VARCHAR2,
137 X_LOCATION_ID in NUMBER,
138 X_SITE_PARTY_ID in NUMBER,
139 X_PARTY_SITE_ID in NUMBER,
140 X_LE_PARTY_ID in NUMBER,
141 X_PROPERTY_LOCATION_ID in NUMBER,
142 X_TEMPLATE_COUNTRY in VARCHAR2,
143 X_START_DATE in DATE,
144 X_END_DATE in DATE,
145 X_IS_TEMPLATE_FLAG in VARCHAR2,
146 X_OBJECT_VERSION_NUMBER in NUMBER,
147 X_NAME in VARCHAR2,
148 X_ORGANIZATION_ID in NUMBER,
149 X_DESCRIPTION in VARCHAR2
150 ) is
151 cursor c is select
152 SITE_IDENTIFICATION_NUMBER,
153 SITE_TYPE_CODE,
154 SITE_STATUS_CODE,
155 BRANDNAME_CODE,
156 CALENDAR_CODE,
157 LOCATION_ID,
158 SITE_PARTY_ID,
159 PARTY_SITE_ID,
160 LE_PARTY_ID,
161 PROPERTY_LOCATION_ID,
162 TEMPLATE_COUNTRY,
163 START_DATE,
164 END_DATE,
165 IS_TEMPLATE_FLAG,
166 OBJECT_VERSION_NUMBER,
167 ORGANIZATION_ID
168 from RRS_SITES_B
169 where SITE_ID = X_SITE_ID
170 for update of SITE_ID nowait;
171 recinfo c%rowtype;
172
173 cursor c1 is select
174 NAME,
175 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG,
176 DESCRIPTION
177 from RRS_SITES_TL
178 where SITE_ID = X_SITE_ID
179 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
180 for update of SITE_ID nowait;
181 begin
182 open c;
183 fetch c into recinfo;
184 if (c%notfound) then
185 close c;
186 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
187 app_exception.raise_exception;
188 end if;
189 close c;
190 if ( (recinfo.SITE_IDENTIFICATION_NUMBER = X_SITE_IDENTIFICATION_NUMBER)
191 AND (recinfo.SITE_TYPE_CODE = X_SITE_TYPE_CODE)
192 AND (recinfo.SITE_STATUS_CODE = X_SITE_STATUS_CODE)
193 AND ((recinfo.BRANDNAME_CODE = X_BRANDNAME_CODE)
194 OR ((recinfo.BRANDNAME_CODE is null) AND (X_BRANDNAME_CODE is null)))
195 AND ((recinfo.CALENDAR_CODE = X_CALENDAR_CODE)
196 OR ((recinfo.CALENDAR_CODE is null) AND (X_CALENDAR_CODE is null)))
197 AND ((recinfo.LOCATION_ID = X_LOCATION_ID)
198 OR ((recinfo.LOCATION_ID is null) AND (X_LOCATION_ID is null)))
199 AND ((recinfo.SITE_PARTY_ID = X_SITE_PARTY_ID)
200 OR ((recinfo.SITE_PARTY_ID is null) AND (X_SITE_PARTY_ID is null)))
201 AND ((recinfo.PARTY_SITE_ID = X_PARTY_SITE_ID)
202 OR ((recinfo.PARTY_SITE_ID is null) AND (X_PARTY_SITE_ID is null)))
203 AND ((recinfo.LE_PARTY_ID = X_LE_PARTY_ID)
204 OR ((recinfo.LE_PARTY_ID is null) AND (X_LE_PARTY_ID is null)))
205 AND ((recinfo.PROPERTY_LOCATION_ID = X_PROPERTY_LOCATION_ID)
206 OR ((recinfo.PROPERTY_LOCATION_ID is null) AND (X_PROPERTY_LOCATION_ID is null)))
207 AND ((recinfo.TEMPLATE_COUNTRY = X_TEMPLATE_COUNTRY)
208 OR ((recinfo.TEMPLATE_COUNTRY is null) AND (X_TEMPLATE_COUNTRY is null)))
209 AND ((recinfo.START_DATE = X_START_DATE)
213 AND ((recinfo.IS_TEMPLATE_FLAG = X_IS_TEMPLATE_FLAG)
210 OR ((recinfo.START_DATE is null) AND (X_START_DATE is null)))
211 AND ((recinfo.END_DATE = X_END_DATE)
212 OR ((recinfo.END_DATE is null) AND (X_END_DATE is null)))
214 OR ((recinfo.IS_TEMPLATE_FLAG is null) AND (X_IS_TEMPLATE_FLAG is null)))
215 AND ((recinfo.ORGANIZATION_ID = X_ORGANIZATION_ID)
216 OR ((recinfo.ORGANIZATION_ID is null) AND (X_ORGANIZATION_ID is null)))
217 AND ((recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
218 OR ((recinfo.OBJECT_VERSION_NUMBER is null) AND (X_OBJECT_VERSION_NUMBER is null)))
219 ) then
220 null;
221 else
222 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
223 app_exception.raise_exception;
224 end if;
225
226 for tlinfo in c1 loop
227 if (tlinfo.BASELANG = 'Y') then
228 if ( (tlinfo.NAME = X_NAME)
229 AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
230 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
231 ) then
232 null;
233 else
234 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
235 app_exception.raise_exception;
236 end if;
237 end if;
238 end loop;
239 return;
240 end LOCK_ROW;
241
242 procedure UPDATE_ROW (
243 X_SITE_ID in NUMBER,
244 X_SITE_IDENTIFICATION_NUMBER in VARCHAR2,
245 X_SITE_TYPE_CODE in VARCHAR2,
246 X_SITE_STATUS_CODE in VARCHAR2,
247 X_BRANDNAME_CODE in VARCHAR2,
248 X_CALENDAR_CODE in VARCHAR2,
249 X_LOCATION_ID in NUMBER,
250 X_SITE_PARTY_ID in NUMBER,
251 X_PARTY_SITE_ID in NUMBER,
252 X_LE_PARTY_ID in NUMBER,
253 X_PROPERTY_LOCATION_ID in NUMBER,
254 X_TEMPLATE_COUNTRY in VARCHAR2,
255 X_START_DATE in DATE,
256 X_END_DATE in DATE,
257 X_IS_TEMPLATE_FLAG in VARCHAR2,
258 X_OBJECT_VERSION_NUMBER in NUMBER,
259 X_NAME in VARCHAR2,
260 X_LAST_UPDATE_DATE in DATE,
261 X_LAST_UPDATED_BY in NUMBER,
262 X_LAST_UPDATE_LOGIN in NUMBER,
263 X_ORGANIZATION_ID in NUMBER,
264 X_DESCRIPTION in VARCHAR2
265 ) is
266 begin
267 update RRS_SITES_B set
268 SITE_IDENTIFICATION_NUMBER = X_SITE_IDENTIFICATION_NUMBER,
269 SITE_TYPE_CODE = X_SITE_TYPE_CODE,
270 SITE_STATUS_CODE = X_SITE_STATUS_CODE,
271 BRANDNAME_CODE = X_BRANDNAME_CODE,
272 CALENDAR_CODE = X_CALENDAR_CODE,
273 LOCATION_ID = X_LOCATION_ID,
274 SITE_PARTY_ID = X_SITE_PARTY_ID,
275 PARTY_SITE_ID = X_PARTY_SITE_ID,
276 LE_PARTY_ID = X_LE_PARTY_ID,
277 PROPERTY_LOCATION_ID = X_PROPERTY_LOCATION_ID,
278 TEMPLATE_COUNTRY = X_TEMPLATE_COUNTRY,
279 START_DATE = X_START_DATE,
280 END_DATE = X_END_DATE,
281 IS_TEMPLATE_FLAG = X_IS_TEMPLATE_FLAG,
282 OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
283 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
284 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
285 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
286 ORGANIZATION_ID = X_ORGANIZATION_ID
287 where SITE_ID = X_SITE_ID;
288
289 if (sql%notfound) then
290 raise no_data_found;
291 end if;
292
293 update RRS_SITES_TL set
294 NAME = X_NAME,
295 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
296 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
297 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
298 SOURCE_LANG = userenv('LANG'),
299 DESCRIPTION = X_DESCRIPTION
300 where SITE_ID = X_SITE_ID
301 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
302
303 if (sql%notfound) then
304 raise no_data_found;
305 end if;
306 end UPDATE_ROW;
307
308 procedure DELETE_ROW (
309 X_SITE_ID in NUMBER
310 ) is
311 begin
312 delete from RRS_SITES_TL
313 where SITE_ID = X_SITE_ID;
314
315 if (sql%notfound) then
316 raise no_data_found;
317 end if;
318
319 delete from RRS_SITES_B
320 where SITE_ID = X_SITE_ID;
321
322 if (sql%notfound) then
323 raise no_data_found;
324 end if;
325 end DELETE_ROW;
326
327 procedure ADD_LANGUAGE
328 is
329 begin
330 delete from RRS_SITES_TL T
331 where not exists
332 (select NULL
333 from RRS_SITES_B B
334 where B.SITE_ID = T.SITE_ID
335 );
336
337 update RRS_SITES_TL T set (
338 NAME,
339 DESCRIPTION
340 ) = (select
341 B.NAME,
342 B.DESCRIPTION
343 from RRS_SITES_TL B
344 where B.SITE_ID = T.SITE_ID
345 and B.LANGUAGE = T.SOURCE_LANG)
346 where (
347 T.SITE_ID,
348 T.LANGUAGE
349 ) in (select
350 SUBT.SITE_ID,
351 SUBT.LANGUAGE
352 from RRS_SITES_TL SUBB, RRS_SITES_TL SUBT
353 where SUBB.SITE_ID = SUBT.SITE_ID
354 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
355 and (SUBB.NAME <> SUBT.NAME
356 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
357 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
358 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
359 ));
360
361 insert into RRS_SITES_TL (
362 SITE_ID,
363 NAME,
364 CREATED_BY,
365 CREATION_DATE,
366 LAST_UPDATED_BY,
367 LAST_UPDATE_DATE,
368 LAST_UPDATE_LOGIN,
369 LANGUAGE,
370 SOURCE_LANG,
371 DESCRIPTION
372 ) select /*+ ORDERED */
373 B.SITE_ID,
374 B.NAME,
375 B.CREATED_BY,
376 B.CREATION_DATE,
377 B.LAST_UPDATED_BY,
378 B.LAST_UPDATE_DATE,
379 B.LAST_UPDATE_LOGIN,
380 L.LANGUAGE_CODE,
381 B.SOURCE_LANG,
385 and B.LANGUAGE = userenv('LANG')
382 B.DESCRIPTION
383 from RRS_SITES_TL B, FND_LANGUAGES L
384 where L.INSTALLED_FLAG in ('I', 'B')
386 and not exists
387 (select NULL
388 from RRS_SITES_TL T
389 where T.SITE_ID = B.SITE_ID
390 and T.LANGUAGE = L.LANGUAGE_CODE);
391 end ADD_LANGUAGE;
392
393 end RRS_SITESTH_PKG;