1 package body FND_CONC_RELEASE_CLASSES_PKG as
2 /* $Header: AFCPSC1B.pls 120.2 2005/08/19 20:49:41 jtoruno ship $ */
3
4 procedure INSERT_ROW (
5 X_ROWID in out nocopy VARCHAR2,
6 X_RELEASE_CLASS_ID in NUMBER,
7 X_APPLICATION_ID in NUMBER,
8 X_RELEASE_CLASS_NAME in VARCHAR2,
9 X_ENABLED_FLAG in VARCHAR2,
10 X_START_DATE_ACTIVE in DATE,
11 X_END_DATE_ACTIVE in DATE,
12 X_UPDATED_FLAG in VARCHAR2,
13 X_USER_RELEASE_CLASS_NAME in VARCHAR2,
14 X_DESCRIPTION in VARCHAR2,
15 X_CREATION_DATE in DATE,
16 X_CREATED_BY in NUMBER,
17 X_LAST_UPDATE_DATE in DATE,
18 X_LAST_UPDATED_BY in NUMBER,
19 X_LAST_UPDATE_LOGIN in NUMBER
20 ) is
21 cursor C is select ROWID from FND_CONC_RELEASE_CLASSES
22 where RELEASE_CLASS_ID = X_RELEASE_CLASS_ID
23 and APPLICATION_ID = X_APPLICATION_ID
24 ;
25 begin
26 insert into FND_CONC_RELEASE_CLASSES (
27 APPLICATION_ID,
28 RELEASE_CLASS_ID,
29 RELEASE_CLASS_NAME,
30 ENABLED_FLAG,
31 START_DATE_ACTIVE,
32 END_DATE_ACTIVE,
33 UPDATED_FLAG,
34 CREATION_DATE,
35 CREATED_BY,
36 LAST_UPDATE_DATE,
37 LAST_UPDATED_BY,
38 LAST_UPDATE_LOGIN
39 ) values (
40 X_APPLICATION_ID,
41 X_RELEASE_CLASS_ID,
42 X_RELEASE_CLASS_NAME,
43 X_ENABLED_FLAG,
44 X_START_DATE_ACTIVE,
45 X_END_DATE_ACTIVE,
46 X_UPDATED_FLAG,
47 X_CREATION_DATE,
48 X_CREATED_BY,
49 X_LAST_UPDATE_DATE,
50 X_LAST_UPDATED_BY,
51 X_LAST_UPDATE_LOGIN
52 );
53
54 insert into FND_CONC_RELEASE_CLASSES_TL (
55 APPLICATION_ID,
56 RELEASE_CLASS_ID,
57 USER_RELEASE_CLASS_NAME,
58 DESCRIPTION,
59 LAST_UPDATE_DATE,
60 LAST_UPDATED_BY,
61 LAST_UPDATE_LOGIN,
62 CREATION_DATE,
63 CREATED_BY,
64 LANGUAGE,
65 SOURCE_LANG
66 ) select
67 X_APPLICATION_ID,
68 X_RELEASE_CLASS_ID,
69 X_USER_RELEASE_CLASS_NAME,
70 X_DESCRIPTION,
71 X_LAST_UPDATE_DATE,
72 X_LAST_UPDATED_BY,
73 X_LAST_UPDATE_LOGIN,
74 X_CREATION_DATE,
75 X_CREATED_BY,
76 L.LANGUAGE_CODE,
77 userenv('LANG')
78 from FND_LANGUAGES L
79 where L.INSTALLED_FLAG in ('I', 'B')
80 and not exists
81 (select NULL
82 from FND_CONC_RELEASE_CLASSES_TL T
83 where T.RELEASE_CLASS_ID = X_RELEASE_CLASS_ID
84 and T.APPLICATION_ID = X_APPLICATION_ID
85 and T.LANGUAGE = L.LANGUAGE_CODE);
86
87 open c;
88 fetch c into X_ROWID;
89 if (c%notfound) then
90 close c;
91 raise no_data_found;
92 end if;
93 close c;
94
95 end INSERT_ROW;
96
97 procedure LOCK_ROW (
98 X_RELEASE_CLASS_ID in NUMBER,
99 X_APPLICATION_ID in NUMBER,
100 X_RELEASE_CLASS_NAME in VARCHAR2,
101 X_ENABLED_FLAG in VARCHAR2,
102 X_START_DATE_ACTIVE in DATE,
103 X_END_DATE_ACTIVE in DATE,
104 X_UPDATED_FLAG in VARCHAR2,
105 X_USER_RELEASE_CLASS_NAME in VARCHAR2,
106 X_DESCRIPTION in VARCHAR2
107 ) is
108 cursor c is select
109 RELEASE_CLASS_NAME,
110 ENABLED_FLAG,
111 START_DATE_ACTIVE,
112 END_DATE_ACTIVE,
113 UPDATED_FLAG
114 from FND_CONC_RELEASE_CLASSES
115 where RELEASE_CLASS_ID = X_RELEASE_CLASS_ID
116 and APPLICATION_ID = X_APPLICATION_ID
117 for update of RELEASE_CLASS_ID nowait;
118 recinfo c%rowtype;
119
120 cursor c1 is select
121 USER_RELEASE_CLASS_NAME,
122 DESCRIPTION
123 from FND_CONC_RELEASE_CLASSES_TL
124 where RELEASE_CLASS_ID = X_RELEASE_CLASS_ID
125 and APPLICATION_ID = X_APPLICATION_ID
126 and LANGUAGE = userenv('LANG')
127 for update of RELEASE_CLASS_ID nowait;
128 tlinfo c1%rowtype;
129
130 begin
131 open c;
132 fetch c into recinfo;
133 if (c%notfound) then
134 close c;
135 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
136 app_exception.raise_exception;
137 end if;
138 close c;
139 if ( (recinfo.RELEASE_CLASS_NAME = X_RELEASE_CLASS_NAME)
140 AND (recinfo.ENABLED_FLAG = X_ENABLED_FLAG)
141 AND ((recinfo.START_DATE_ACTIVE = X_START_DATE_ACTIVE)
142 OR ((recinfo.START_DATE_ACTIVE is null) AND (X_START_DATE_ACTIVE is null)))
143 AND ((recinfo.END_DATE_ACTIVE = X_END_DATE_ACTIVE)
144 OR ((recinfo.END_DATE_ACTIVE is null) AND (X_END_DATE_ACTIVE is null)))
145 AND (recinfo.UPDATED_FLAG = X_UPDATED_FLAG)
146 ) then
147 null;
148 else
149 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
150 app_exception.raise_exception;
151 end if;
152
153 open c1;
154 fetch c1 into tlinfo;
155 if (c1%notfound) then
156 close c1;
157 return;
158 end if;
159 close c1;
160
161 if ( (tlinfo.USER_RELEASE_CLASS_NAME = X_USER_RELEASE_CLASS_NAME)
162 AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
163 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
164 ) then
165 null;
166 else
167 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
168 app_exception.raise_exception;
169 end if;
170 return;
171 end LOCK_ROW;
172
173 procedure UPDATE_ROW (
174 X_RELEASE_CLASS_ID in NUMBER,
175 X_APPLICATION_ID in NUMBER,
176 X_RELEASE_CLASS_NAME in VARCHAR2,
177 X_ENABLED_FLAG in VARCHAR2,
178 X_START_DATE_ACTIVE in DATE,
179 X_END_DATE_ACTIVE in DATE,
180 X_UPDATED_FLAG in VARCHAR2,
181 X_USER_RELEASE_CLASS_NAME in VARCHAR2,
182 X_DESCRIPTION in VARCHAR2,
183 X_LAST_UPDATE_DATE in DATE,
184 X_LAST_UPDATED_BY in NUMBER,
185 X_LAST_UPDATE_LOGIN in NUMBER
186 ) is
187 begin
188 update FND_CONC_RELEASE_CLASSES set
189 RELEASE_CLASS_NAME = X_RELEASE_CLASS_NAME,
190 ENABLED_FLAG = X_ENABLED_FLAG,
191 START_DATE_ACTIVE = X_START_DATE_ACTIVE,
192 END_DATE_ACTIVE = X_END_DATE_ACTIVE,
193 UPDATED_FLAG = X_UPDATED_FLAG,
194 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
195 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
196 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
197 where RELEASE_CLASS_ID = X_RELEASE_CLASS_ID
198 and APPLICATION_ID = X_APPLICATION_ID;
199
200 if (sql%notfound) then
201 raise no_data_found;
202 end if;
203
204 update FND_CONC_RELEASE_CLASSES_TL set
205 USER_RELEASE_CLASS_NAME = X_USER_RELEASE_CLASS_NAME,
206 DESCRIPTION = X_DESCRIPTION,
207 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
208 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
209 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
210 SOURCE_LANG = userenv('LANG')
211 where RELEASE_CLASS_ID = X_RELEASE_CLASS_ID
212 and APPLICATION_ID = X_APPLICATION_ID
213 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
214
215 if (sql%notfound) then
216 raise no_data_found;
217 end if;
218 end UPDATE_ROW;
219
220 procedure DELETE_ROW (
221 X_RELEASE_CLASS_ID in NUMBER,
222 X_APPLICATION_ID in NUMBER
223 ) is
224 begin
225 delete from FND_CONC_RELEASE_CLASSES
226 where RELEASE_CLASS_ID = X_RELEASE_CLASS_ID
227 and APPLICATION_ID = X_APPLICATION_ID;
228
229 if (sql%notfound) then
230 raise no_data_found;
231 end if;
232
233 delete from FND_CONC_RELEASE_CLASSES_TL
234 where RELEASE_CLASS_ID = X_RELEASE_CLASS_ID
235 and APPLICATION_ID = X_APPLICATION_ID;
236
237 if (sql%notfound) then
238 raise no_data_found;
239 end if;
240 end DELETE_ROW;
241
242 procedure ADD_LANGUAGE
243 is
244 begin
245
246 /* Mar/19/03 requested by Ric Ginsberg */
247 /* The following delete and update statements are commented out */
248 /* as a quick workaround to fix the time-consuming table handler issue */
249 /* Eventually we'll need to turn them into a separate fix_language procedure */
250 /*
251
252 delete from FND_CONC_RELEASE_CLASSES_TL T
253 where not exists
254 (select NULL
255 from FND_CONC_RELEASE_CLASSES B
256 where B.RELEASE_CLASS_ID = T.RELEASE_CLASS_ID
257 and B.APPLICATION_ID = T.APPLICATION_ID
258 );
259
260 update FND_CONC_RELEASE_CLASSES_TL T set (
261 USER_RELEASE_CLASS_NAME,
262 DESCRIPTION
263 ) = (select
264 B.USER_RELEASE_CLASS_NAME,
265 B.DESCRIPTION
266 from FND_CONC_RELEASE_CLASSES_TL B
267 where B.RELEASE_CLASS_ID = T.RELEASE_CLASS_ID
268 and B.APPLICATION_ID = T.APPLICATION_ID
269 and B.LANGUAGE = T.SOURCE_LANG)
270 where (
271 T.RELEASE_CLASS_ID,
272 T.APPLICATION_ID,
273 T.LANGUAGE
274 ) in (select
275 SUBT.RELEASE_CLASS_ID,
276 SUBT.APPLICATION_ID,
277 SUBT.LANGUAGE
278 from FND_CONC_RELEASE_CLASSES_TL SUBB, FND_CONC_RELEASE_CLASSES_TL SUBT
279 where SUBB.RELEASE_CLASS_ID = SUBT.RELEASE_CLASS_ID
280 and SUBB.APPLICATION_ID = SUBT.APPLICATION_ID
281 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
282 and (SUBB.USER_RELEASE_CLASS_NAME <> SUBT.USER_RELEASE_CLASS_NAME
283 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
284 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
285 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
286 ));
287 */
288
289 insert into FND_CONC_RELEASE_CLASSES_TL (
290 APPLICATION_ID,
291 RELEASE_CLASS_ID,
292 USER_RELEASE_CLASS_NAME,
293 DESCRIPTION,
294 LAST_UPDATE_DATE,
295 LAST_UPDATED_BY,
296 LAST_UPDATE_LOGIN,
297 CREATION_DATE,
298 CREATED_BY,
299 LANGUAGE,
300 SOURCE_LANG
301 ) select
302 B.APPLICATION_ID,
303 B.RELEASE_CLASS_ID,
304 B.USER_RELEASE_CLASS_NAME,
305 B.DESCRIPTION,
306 B.LAST_UPDATE_DATE,
307 B.LAST_UPDATED_BY,
308 B.LAST_UPDATE_LOGIN,
309 B.CREATION_DATE,
310 B.CREATED_BY,
311 L.LANGUAGE_CODE,
312 B.SOURCE_LANG
313 from FND_CONC_RELEASE_CLASSES_TL B, FND_LANGUAGES L
314 where L.INSTALLED_FLAG in ('I', 'B')
315 and B.LANGUAGE = userenv('LANG')
316 and not exists
317 (select NULL
318 from FND_CONC_RELEASE_CLASSES_TL T
319 where T.RELEASE_CLASS_ID = B.RELEASE_CLASS_ID
320 and T.APPLICATION_ID = B.APPLICATION_ID
321 and T.LANGUAGE = L.LANGUAGE_CODE);
322 end ADD_LANGUAGE;
323
324 end FND_CONC_RELEASE_CLASSES_PKG;