DBA Data[Home] [Help]

PACKAGE BODY: APPS.RRS_SITE_GROUPS_PKG

Source


1 package body RRS_SITE_GROUPS_PKG as
2 /* $Header: RRSSGPPB.pls 120.1 2005/09/30 00:41 swbhatna noship $ */
3 
4 procedure INSERT_ROW (
5   X_ROWID in out nocopy VARCHAR2,
6   X_SITE_GROUP_ID in NUMBER,
7   X_SITE_GROUP_TYPE_CODE in VARCHAR2,
8   X_START_DATE in DATE,
9   X_END_DATE in DATE,
10   X_OBJECT_VERSION_NUMBER in NUMBER,
11   X_NAME in VARCHAR2,
12   X_DESCRIPTION in VARCHAR2,
13   X_CREATION_DATE in DATE,
14   X_CREATED_BY in NUMBER,
15   X_LAST_UPDATE_DATE in DATE,
16   X_LAST_UPDATED_BY in NUMBER,
17   X_LAST_UPDATE_LOGIN in NUMBER
18 ) is
19 
20   L_SITE_GROUP_ID NUMBER;
21 
22   cursor C is select ROWID from RRS_SITE_GROUPS_B
23   where SITE_GROUP_ID = L_SITE_GROUP_ID;
24 
25   begin
26 
27   select nvl(X_SITE_GROUP_ID ,RRS_SITE_GROUPS_S.nextval)
28   into   L_SITE_GROUP_ID
29   from   dual;
30 
31   insert into RRS_SITE_GROUPS_B (
32     SITE_GROUP_ID,
33     SITE_GROUP_TYPE_CODE,
34     START_DATE,
35     END_DATE,
36     OBJECT_VERSION_NUMBER,
37     CREATION_DATE,
38     CREATED_BY,
39     LAST_UPDATE_DATE,
40     LAST_UPDATED_BY,
41     LAST_UPDATE_LOGIN
42   ) values (
43     L_SITE_GROUP_ID,
44     X_SITE_GROUP_TYPE_CODE,
45     X_START_DATE,
46     X_END_DATE,
47     X_OBJECT_VERSION_NUMBER,
48     X_CREATION_DATE,
49     X_CREATED_BY,
50     X_LAST_UPDATE_DATE,
51     X_LAST_UPDATED_BY,
52     X_LAST_UPDATE_LOGIN
53   );
54 
55   insert into RRS_SITE_GROUPS_TL (
56     SITE_GROUP_ID,
57     NAME,
58     DESCRIPTION,
59     CREATED_BY,
60     CREATION_DATE,
61     LAST_UPDATED_BY,
62     LAST_UPDATE_DATE,
63     LAST_UPDATE_LOGIN,
64     LANGUAGE,
65     SOURCE_LANG
66   ) select
67     L_SITE_GROUP_ID,
68     X_NAME,
69     X_DESCRIPTION,
70     X_CREATED_BY,
71     X_CREATION_DATE,
72     X_LAST_UPDATED_BY,
73     X_LAST_UPDATE_DATE,
74     X_LAST_UPDATE_LOGIN,
75     L.LANGUAGE_CODE,
76     userenv('LANG')
77   from FND_LANGUAGES L
78   where L.INSTALLED_FLAG in ('I', 'B')
79   and not exists
80     (select NULL
81     from RRS_SITE_GROUPS_TL T
82     where T.SITE_GROUP_ID = L_SITE_GROUP_ID
83     and T.LANGUAGE = L.LANGUAGE_CODE);
84 
85   open c;
86   fetch c into X_ROWID;
87   if (c%notfound) then
88     close c;
89     raise no_data_found;
90   end if;
91   close c;
92 
93 end INSERT_ROW;
94 
95 procedure LOCK_ROW (
96   X_SITE_GROUP_ID in NUMBER,
97   X_SITE_GROUP_TYPE_CODE in VARCHAR2,
98   X_START_DATE in DATE,
99   X_END_DATE in DATE,
100   X_OBJECT_VERSION_NUMBER in NUMBER,
101   X_NAME in VARCHAR2,
102   X_DESCRIPTION in VARCHAR2
103 ) is
104   cursor c is select
105       SITE_GROUP_TYPE_CODE,
106       START_DATE,
107       END_DATE,
108       OBJECT_VERSION_NUMBER
109     from RRS_SITE_GROUPS_B
110     where SITE_GROUP_ID = X_SITE_GROUP_ID
111     for update of SITE_GROUP_ID nowait;
112   recinfo c%rowtype;
113 
114   cursor c1 is select
115       NAME,
116       DESCRIPTION,
117       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
118     from RRS_SITE_GROUPS_TL
119     where SITE_GROUP_ID = X_SITE_GROUP_ID
120     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
121     for update of SITE_GROUP_ID nowait;
122 begin
123   open c;
124   fetch c into recinfo;
125   if (c%notfound) then
126     close c;
127     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
128     app_exception.raise_exception;
129   end if;
130   close c;
131   if (    (recinfo.SITE_GROUP_TYPE_CODE = X_SITE_GROUP_TYPE_CODE)
132       AND (recinfo.START_DATE = X_START_DATE)
133       AND ((recinfo.END_DATE = X_END_DATE)
134            OR ((recinfo.END_DATE is null) AND (X_END_DATE is null)))
135       AND ((recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
136            OR ((recinfo.OBJECT_VERSION_NUMBER is null) AND (X_OBJECT_VERSION_NUMBER is null)))
137   ) then
138     null;
139   else
140     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
141     app_exception.raise_exception;
142   end if;
143 
144   for tlinfo in c1 loop
145     if (tlinfo.BASELANG = 'Y') then
146       if (    (tlinfo.NAME = X_NAME)
147           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
148                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
149       ) then
150         null;
151       else
152         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
153         app_exception.raise_exception;
154       end if;
155     end if;
156   end loop;
157   return;
158 end LOCK_ROW;
159 
160 procedure UPDATE_ROW (
161   X_SITE_GROUP_ID in NUMBER,
162   X_SITE_GROUP_TYPE_CODE in VARCHAR2,
163   X_START_DATE in DATE,
164   X_END_DATE in DATE,
165   X_OBJECT_VERSION_NUMBER in NUMBER,
166   X_NAME in VARCHAR2,
167   X_DESCRIPTION in VARCHAR2,
168   X_LAST_UPDATE_DATE in DATE,
169   X_LAST_UPDATED_BY in NUMBER,
170   X_LAST_UPDATE_LOGIN in NUMBER
171 ) is
172 begin
173   update RRS_SITE_GROUPS_B set
174     SITE_GROUP_TYPE_CODE = X_SITE_GROUP_TYPE_CODE,
175     START_DATE = X_START_DATE,
176     END_DATE = X_END_DATE,
177     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
178     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
179     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
180     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
181   where SITE_GROUP_ID = X_SITE_GROUP_ID;
182 
183   if (sql%notfound) then
184     raise no_data_found;
185   end if;
186 
187   update RRS_SITE_GROUPS_TL set
188     NAME = X_NAME,
189     DESCRIPTION = X_DESCRIPTION,
190     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
191     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
192     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
193     SOURCE_LANG = userenv('LANG')
194   where SITE_GROUP_ID = X_SITE_GROUP_ID
195   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
196 
197   if (sql%notfound) then
198     raise no_data_found;
199   end if;
200 end UPDATE_ROW;
201 
202 procedure DELETE_ROW (
203   X_SITE_GROUP_ID in NUMBER
204 ) is
205 begin
206   delete from RRS_SITE_GROUPS_TL
207   where SITE_GROUP_ID = X_SITE_GROUP_ID;
208 
209   if (sql%notfound) then
210     raise no_data_found;
211   end if;
212 
213   delete from RRS_SITE_GROUPS_B
214   where SITE_GROUP_ID = X_SITE_GROUP_ID;
215 
216   if (sql%notfound) then
217     raise no_data_found;
218   end if;
219 end DELETE_ROW;
220 
221 procedure ADD_LANGUAGE
222 is
223 begin
224   delete from RRS_SITE_GROUPS_TL T
225   where not exists
226     (select NULL
227     from RRS_SITE_GROUPS_B B
228     where B.SITE_GROUP_ID = T.SITE_GROUP_ID
229     );
230 
231   update RRS_SITE_GROUPS_TL T set (
232       NAME,
233       DESCRIPTION
234     ) = (select
235       B.NAME,
236       B.DESCRIPTION
237     from RRS_SITE_GROUPS_TL B
238     where B.SITE_GROUP_ID = T.SITE_GROUP_ID
239     and B.LANGUAGE = T.SOURCE_LANG)
240   where (
241       T.SITE_GROUP_ID,
242       T.LANGUAGE
243   ) in (select
244       SUBT.SITE_GROUP_ID,
245       SUBT.LANGUAGE
246     from RRS_SITE_GROUPS_TL SUBB, RRS_SITE_GROUPS_TL SUBT
247     where SUBB.SITE_GROUP_ID = SUBT.SITE_GROUP_ID
248     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
249     and (SUBB.NAME <> SUBT.NAME
250       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
251       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
252       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
253   ));
254 
255   insert into RRS_SITE_GROUPS_TL (
256     SITE_GROUP_ID,
257     NAME,
258     DESCRIPTION,
259     CREATED_BY,
260     CREATION_DATE,
261     LAST_UPDATED_BY,
262     LAST_UPDATE_DATE,
263     LAST_UPDATE_LOGIN,
264     LANGUAGE,
265     SOURCE_LANG
266   ) select /*+ ORDERED */
267     B.SITE_GROUP_ID,
268     B.NAME,
269     B.DESCRIPTION,
270     B.CREATED_BY,
271     B.CREATION_DATE,
272     B.LAST_UPDATED_BY,
273     B.LAST_UPDATE_DATE,
274     B.LAST_UPDATE_LOGIN,
275     L.LANGUAGE_CODE,
276     B.SOURCE_LANG
277   from RRS_SITE_GROUPS_TL B, FND_LANGUAGES L
278   where L.INSTALLED_FLAG in ('I', 'B')
279   and B.LANGUAGE = userenv('LANG')
280   and not exists
281     (select NULL
282     from RRS_SITE_GROUPS_TL T
283     where T.SITE_GROUP_ID = B.SITE_GROUP_ID
284     and T.LANGUAGE = L.LANGUAGE_CODE);
285 end ADD_LANGUAGE;
286 
287 end RRS_SITE_GROUPS_PKG;