[Home] [Help]
PACKAGE BODY: APPS.IEB_SVC_PLANS_PKG
Source
1 package body IEB_SVC_PLANS_PKG as
2 /* $Header: IEBSVCPB.pls 120.3 2005/09/29 06:17:12 appldev noship $ */
3
4 procedure INSERT_ROW_B (
5 P_SVCPLN_ID IN NUMBER,
6 P_SERVICE_PLAN_NAME IN VARCHAR2,
7 P_DIRECTION IN VARCHAR2,
8 P_TREATMENT IN VARCHAR2,
9 P_PLAN_NAME IN VARCHAR2,
10 P_DESCRIPTION IN VARCHAR2,
11 P_OBJECT_VERSION_NUMBER IN NUMBER,
12 P_MEDIA_TYPE_ID IN NUMBER,
13 P_OWNER_ID IN NUMBER,
14 X_ROWID IN OUT NOCOPY VARCHAR2
15 ) is
16 cursor C is select ROWID from IEB_SERVICE_PLANS
17 where SVCPLN_ID = P_SVCPLN_ID ;
18 begin
19
20 insert into IEB_SERVICE_PLANS (
21 SVCPLN_ID,
22 SERVICE_PLAN_NAME,
23 DIRECTION,
24 TREATMENT,
25 OBJECT_VERSION_NUMBER ,
26 MEDIA_TYPE_ID,
27 CREATION_DATE,
28 CREATED_BY,
29 LAST_UPDATE_DATE,
30 LAST_UPDATED_BY,
31 LAST_UPDATE_LOGIN
32 ) values (
33 P_SVCPLN_ID,
34 P_SERVICE_PLAN_NAME,
35 P_DIRECTION,
36 P_TREATMENT,
37 P_OBJECT_VERSION_NUMBER,
38 P_MEDIA_TYPE_ID,
39 SYSDATE,
40 P_OWNER_ID,
41 SYSDATE,
42 P_OWNER_ID,
43 FND_GLOBAL.LOGIN_ID
44 );
45
46 open c;
47 fetch c into X_ROWID;
48 if (c%notfound) then
49 close c;
50 raise no_data_found;
51 end if;
52 close c;
53
54 end INSERT_ROW_B;
55
56
57 procedure INSERT_ROW_TL (
58 P_SVCPLN_ID IN NUMBER,
59 P_PLAN_NAME IN VARCHAR2,
60 P_DESCRIPTION IN VARCHAR2,
61 P_OBJECT_VERSION_NUMBER IN NUMBER,
62 P_OWNER_ID IN NUMBER,
63 X_ROWID IN OUT NOCOPY VARCHAR2
64 ) is
65 cursor C is select ROWID from IEB_SERVICE_PLANS_TL
66 where SERVICE_PLAN_ID = P_SVCPLN_ID;
67 begin
68
69 insert into IEB_SERVICE_PLANS_TL (
70 CREATION_DATE,
71 LAST_UPDATED_BY,
72 LAST_UPDATE_DATE,
73 CREATED_BY,
74 SERVICE_PLAN_ID,
75 OBJECT_VERSION_NUMBER,
76 DESCRIPTION,
77 LAST_UPDATE_LOGIN,
78 PLAN_NAME,
79 LANGUAGE,
80 SOURCE_LANG
81 ) select
82 SYSDATE,
83 P_OWNER_ID,
84 SYSDATE,
85 P_OWNER_ID,
86 P_SVCPLN_ID,
87 P_OBJECT_VERSION_NUMBER,
88 P_DESCRIPTION,
89 FND_GLOBAL.LOGIN_ID,
90 P_PLAN_NAME,
91 L.LANGUAGE_CODE,
92 userenv('LANG')
93 FROM FND_LANGUAGES L
94 where L.INSTALLED_FLAG in ('I', 'B')
95 and not exists
96 (select NULL
97 from IEB_SERVICE_PLANS_TL T
98 where T.SERVICE_PLAN_ID = P_SVCPLN_ID
99 and T.LANGUAGE = L.LANGUAGE_CODE);
100
101 open c;
102 fetch c into X_ROWID;
103 if (c%notfound) then
104 close c;
105 raise no_data_found;
106 end if;
107 close c;
108
109 end INSERT_ROW_TL;
110
111 procedure LOCK_ROW (
112 P_SVCPLN_ID IN NUMBER,
113 P_SERVICE_PLAN_NAME IN VARCHAR2,
114 P_DIRECTION IN VARCHAR2,
115 P_TREATMENT IN VARCHAR2,
116 P_PLAN_NAME IN VARCHAR2,
117 P_DESCRIPTION IN VARCHAR2,
118 P_OBJECT_VERSION_NUMBER IN NUMBER,
119 P_MEDIA_TYPE_ID IN NUMBER
120 ) is
121 cursor c is select
122 SERVICE_PLAN_NAME,
123 DIRECTION,
124 TREATMENT,
125 OBJECT_VERSION_NUMBER,
126 MEDIA_TYPE_ID
127 FROM IEB_SERVICE_PLANS
128 WHERE SVCPLN_ID = P_SVCPLN_ID
129 FOR update of SVCPLN_ID nowait;
130 recinfo c%rowtype;
131
132 cursor c1 is select
133 PLAN_NAME,
134 DESCRIPTION,
135 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
136 FROM IEB_SERVICE_PLANS_TL
137 WHERE SERVICE_PLAN_ID = P_SVCPLN_ID
138 AND userenv('LANG') in (LANGUAGE, SOURCE_LANG)
139 FOR update of SERVICE_PLAN_ID nowait;
140 begin
141 open c;
142 fetch c into recinfo;
143 if (c%notfound) then
144 close c;
145 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
146 app_exception.raise_exception;
147 end if;
148 close c;
149 if ( (recinfo.SERVICE_PLAN_NAME = P_SERVICE_PLAN_NAME)
150 AND (recinfo.DIRECTION = P_DIRECTION)
151 AND ((recinfo.TREATMENT = P_TREATMENT)
152 OR ((recinfo.TREATMENT is null) AND (P_TREATMENT is null)))
153 AND ((recinfo.MEDIA_TYPE_ID = P_MEDIA_TYPE_ID)
154 OR ((recinfo.MEDIA_TYPE_ID is null) AND (P_MEDIA_TYPE_ID is null)))
155 AND (recinfo.OBJECT_VERSION_NUMBER = P_OBJECT_VERSION_NUMBER))
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.PLAN_NAME = P_PLAN_NAME)
166 AND (tlinfo.DESCRIPTION = P_DESCRIPTION)
167 ) then
168 null;
169 else
170 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
171 app_exception.raise_exception;
172 end if;
173 end if;
174 end loop;
175 return;
176 end LOCK_ROW;
177
178 procedure UPDATE_ROW_B (
179 P_SVCPLN_ID IN NUMBER,
180 P_SERVICE_PLAN_NAME IN VARCHAR2,
181 P_DIRECTION IN VARCHAR2,
182 P_TREATMENT IN VARCHAR2,
183 P_PLAN_NAME IN VARCHAR2,
184 P_DESCRIPTION IN VARCHAR2,
185 P_OBJECT_VERSION_NUMBER IN NUMBER,
186 P_MEDIA_TYPE_ID IN NUMBER,
187 P_OWNER_ID IN NUMBER
188 ) is
189 begin
190 update IEB_SERVICE_PLANS set
191 SERVICE_PLAN_NAME = P_SERVICE_PLAN_NAME,
192 DIRECTION = P_DIRECTION,
193 TREATMENT = P_TREATMENT,
194 OBJECT_VERSION_NUMBER = P_OBJECT_VERSION_NUMBER,
195 MEDIA_TYPE_ID = P_MEDIA_TYPE_ID,
196 LAST_UPDATE_DATE = SYSDATE,
197 LAST_UPDATED_BY = P_OWNER_ID,
198 LAST_UPDATE_LOGIN = FND_GLOBAL.LOGIN_ID
199 where SVCPLN_ID = P_SVCPLN_ID;
200
201 if (sql%notfound) then
202 raise no_data_found;
203 end if;
204 end UPDATE_ROW_B;
205
206 procedure UPDATE_ROW_TL (
207 P_SVCPLN_ID IN NUMBER,
208 P_PLAN_NAME IN VARCHAR2,
209 P_DESCRIPTION IN VARCHAR2,
210 P_OBJECT_VERSION_NUMBER IN NUMBER,
211 P_OWNER_ID IN NUMBER
212 ) is
213 begin
214 update IEB_SERVICE_PLANS_TL set
215 PLAN_NAME = P_PLAN_NAME,
216 DESCRIPTION = P_DESCRIPTION,
217 OBJECT_VERSION_NUMBER = P_OBJECT_VERSION_NUMBER,
218 LAST_UPDATE_DATE = SYSDATE,
219 LAST_UPDATED_BY = P_OWNER_ID,
220 LAST_UPDATE_LOGIN = FND_GLOBAL.LOGIN_ID,
221 SOURCE_LANG = userenv('LANG')
222 where SERVICE_PLAN_ID = P_SVCPLN_ID
223 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
224
225 if (sql%notfound) then
226 raise no_data_found;
227 end if;
228 end UPDATE_ROW_TL;
229
230
231 procedure DELETE_ROW (
232 P_SVCPLN_ID in NUMBER
233 ) is
234 begin
235 delete from IEB_SERVICE_PLANS
236 where SVCPLN_ID = P_SVCPLN_ID;
237
238 if (sql%notfound) then
239 raise no_data_found;
240 end if;
241
242 delete from IEB_SERVICE_PLANS_TL
243 where SERVICE_PLAN_ID = P_SVCPLN_ID;
244
245 if (sql%notfound) then
246 raise no_data_found;
247 end if;
248 end DELETE_ROW;
249
250 procedure ADD_LANGUAGE
251 is
252 begin
253 delete from IEB_SERVICE_PLANS_TL T
254 where not exists
255 (select NULL
256 from IEB_SERVICE_PLANS B
257 where B.SVCPLN_ID = T.SERVICE_PLAN_ID
258 );
259
260 update IEB_SERVICE_PLANS_TL T set (
261 PLAN_NAME,
262 DESCRIPTION
263 ) = (select
264 B.PLAN_NAME,
265 B.DESCRIPTION
266 from IEB_SERVICE_PLANS_TL B
267 where B.SERVICE_PLAN_ID = T.SERVICE_PLAN_ID
268 and B.LANGUAGE = T.SOURCE_LANG)
269 where (
270 T.SERVICE_PLAN_ID,
271 T.LANGUAGE
272 ) in (select
273 SUBT.SERVICE_PLAN_ID,
274 SUBT.LANGUAGE
275 from IEB_SERVICE_PLANS_TL SUBB, IEB_SERVICE_PLANS_TL SUBT
276 where SUBB.SERVICE_PLAN_ID = SUBT.SERVICE_PLAN_ID
277 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
278 and (SUBB.PLAN_NAME <> SUBT.PLAN_NAME
279 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
280 ));
281
282 insert into IEB_SERVICE_PLANS_TL (
283 CREATION_DATE,
284 LAST_UPDATED_BY,
285 LAST_UPDATE_DATE,
286 CREATED_BY,
287 SERVICE_PLAN_ID,
288 OBJECT_VERSION_NUMBER,
289 DESCRIPTION,
290 LAST_UPDATE_LOGIN,
291 PLAN_NAME,
292 LANGUAGE,
293 SOURCE_LANG
294 ) select
295 B.CREATION_DATE,
296 B.LAST_UPDATED_BY,
297 B.LAST_UPDATE_DATE,
298 B.CREATED_BY,
299 B.SERVICE_PLAN_ID,
300 B.OBJECT_VERSION_NUMBER,
301 B.DESCRIPTION,
302 B.LAST_UPDATE_LOGIN,
303 B.PLAN_NAME,
304 L.LANGUAGE_CODE,
305 B.SOURCE_LANG
306 from IEB_SERVICE_PLANS_TL B, FND_LANGUAGES L
307 where L.INSTALLED_FLAG in ('I', 'B')
308 and B.LANGUAGE = userenv('LANG')
309 and not exists
310 (select NULL
311 from IEB_SERVICE_PLANS_TL T
312 where T.SERVICE_PLAN_ID = B.SERVICE_PLAN_ID
313 and T.LANGUAGE = L.LANGUAGE_CODE);
314 end ADD_LANGUAGE;
315
316 procedure TRANSLATE_ROW (
317 P_SVCPLN_ID IN NUMBER,
318 P_PLAN_NAME IN VARCHAR2,
319 P_DESCRIPTION IN VARCHAR2,
320 P_OWNER IN VARCHAR2
321 ) IS
322
323 BEGIN
324 --only update rows that have not been altered by user
325 UPDATE IEB_SERVICE_PLANS_TL
326 SET
327 PLAN_NAME = P_PLAN_NAME,
328 SOURCE_LANG = userenv( 'LANG' ),
329 DESCRIPTION = P_DESCRIPTION,
330 LAST_UPDATE_DATE = SYSDATE,
331 LAST_UPDATED_BY = fnd_load_util.owner_id(P_OWNER),
332 LAST_UPDATE_LOGIN = 0
333 WHERE
334 SERVICE_PLAN_ID = P_SVCPLN_ID
335 AND userenv('LANG') IN (LANGUAGE, SOURCE_LANG);
336
337 END TRANSLATE_ROW;
338
339
340 procedure LOAD_ROW (
341 P_SVCPLN_ID IN NUMBER,
342 P_SERVICE_PLAN_NAME IN VARCHAR2,
343 P_DIRECTION IN VARCHAR2,
344 P_TREATMENT IN VARCHAR2,
345 P_PLAN_NAME IN VARCHAR2,
346 P_DESCRIPTION IN VARCHAR2,
347 P_OBJECT_VERSION_NUMBER IN NUMBER,
348 P_MEDIA_TYPE_ID IN NUMBER,
349 P_OWNER IN VARCHAR2
350 ) IS
351
352 BEGIN
353
354 DECLARE
355 user_id NUMBER := 0;
356 rowid VARCHAR2(50);
357 BEGIN
358
359 user_id := fnd_load_util.owner_id(P_OWNER);
360
361 BEGIN
362 UPDATE_ROW_B (
363 P_SVCPLN_ID ,
364 P_SERVICE_PLAN_NAME ,
365 P_DIRECTION ,
366 P_TREATMENT ,
367 P_PLAN_NAME ,
368 P_DESCRIPTION ,
369 P_OBJECT_VERSION_NUMBER ,
370 P_MEDIA_TYPE_ID ,
371 user_id
372 );
373
374 EXCEPTION
375 when no_data_found then
376
377 INSERT_ROW_B (
378 P_SVCPLN_ID ,
379 P_SERVICE_PLAN_NAME ,
380 P_DIRECTION ,
381 P_TREATMENT ,
382 P_PLAN_NAME ,
383 P_DESCRIPTION ,
384 P_OBJECT_VERSION_NUMBER ,
385 P_MEDIA_TYPE_ID ,
386 user_id,
387 rowid
388 );
389 END;
390
391 BEGIN
392 UPDATE_ROW_TL (
393 P_SVCPLN_ID ,
394 P_PLAN_NAME ,
395 P_DESCRIPTION ,
396 P_OBJECT_VERSION_NUMBER ,
397 user_id
398 );
399
400 EXCEPTION
401 when no_data_found then
402
403 INSERT_ROW_TL (
404 P_SVCPLN_ID ,
405 P_PLAN_NAME ,
406 P_DESCRIPTION ,
407 P_OBJECT_VERSION_NUMBER ,
408 user_id,
409 rowid
410 );
411 END;
412 END;
413
414 END LOAD_ROW;
415
416 procedure LOAD_SEED_ROW (
417 P_SVCPLN_ID IN NUMBER,
418 P_SERVICE_PLAN_NAME IN VARCHAR2,
419 P_DIRECTION IN VARCHAR2,
420 P_TREATMENT IN VARCHAR2,
421 P_PLAN_NAME IN VARCHAR2,
422 P_DESCRIPTION IN VARCHAR2,
423 P_OBJECT_VERSION_NUMBER IN NUMBER,
424 P_MEDIA_TYPE_ID IN NUMBER,
425 P_OWNER IN VARCHAR2,
426 P_UPLOAD_MODE IN VARCHAR2
427 ) IS
428 BEGIN
429 IF (P_UPLOAD_MODE = 'NLS') THEN
430 IEB_SVC_PLANS_PKG.TRANSLATE_ROW (
431 P_SVCPLN_ID,
432 P_PLAN_NAME,
433 P_DESCRIPTION,
434 P_OWNER );
435 ELSE
436 IEB_SVC_PLANS_PKG.LOAD_ROW(
437 P_SVCPLN_ID,
438 P_SERVICE_PLAN_NAME,
439 P_DIRECTION,
440 P_TREATMENT,
441 P_PLAN_NAME,
442 P_DESCRIPTION,
443 P_OBJECT_VERSION_NUMBER,
444 P_MEDIA_TYPE_ID,
445 P_OWNER );
446 END IF;
447 END LOAD_SEED_ROW;
448
449 end IEB_SVC_PLANS_PKG;