DBA Data[Home] [Help]

PACKAGE BODY: APPS.AHL_VISIT_TYPES_PKG

Source


1 package body AHL_VISIT_TYPES_PKG as
2 /* $Header: AHLLVTPB.pls 120.0.12020000.2 2012/12/06 23:55:02 sareepar noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out nocopy VARCHAR2,
5   X_VISIT_TYPE_ID in NUMBER,
6   X_ATTRIBUTE12 in VARCHAR2,
7   X_ATTRIBUTE13 in VARCHAR2,
8   X_ATTRIBUTE14 in VARCHAR2,
9   X_ATTRIBUTE15 in VARCHAR2,
10   X_ATTRIBUTE_CATEGORY in VARCHAR2,
11   X_ATTRIBUTE1 in VARCHAR2,
12   X_ATTRIBUTE2 in VARCHAR2,
13   X_ATTRIBUTE3 in VARCHAR2,
14   X_ATTRIBUTE4 in VARCHAR2,
15   X_VISIT_TYPE_CODE in VARCHAR2,
16   X_SERVICE_CATEGORY_CODE in VARCHAR2,
17   X_STATUS_CODE in VARCHAR2,
18   X_ESTIMATED_DURATION in NUMBER,
19   X_MC_ID in NUMBER,
20   X_LINKED_VISIT_TYPE_ID in NUMBER,
21   X_TRANSIT_TYPE_FLAG in VARCHAR2,
22   X_OBJECT_VERSION_NUMBER in NUMBER,
23   X_ATTRIBUTE10 in VARCHAR2,
24   X_ATTRIBUTE11 in VARCHAR2,
25   X_ATTRIBUTE8 in VARCHAR2,
26   X_ATTRIBUTE9 in VARCHAR2,
27   X_ATTRIBUTE5 in VARCHAR2,
28   X_ATTRIBUTE6 in VARCHAR2,
29   X_ATTRIBUTE7 in VARCHAR2,
30   X_DESCRIPTION in VARCHAR2,
31   X_CREATION_DATE in DATE,
32   X_CREATED_BY in NUMBER,
33   X_LAST_UPDATE_DATE in DATE,
34   X_LAST_UPDATED_BY in NUMBER,
35   X_LAST_UPDATE_LOGIN in NUMBER
36 ) is
37   cursor C is select ROWID from AHL_VISIT_TYPES_B
38     where VISIT_TYPE_ID = X_VISIT_TYPE_ID
39     ;
40 begin
41   insert into AHL_VISIT_TYPES_B (
42     ATTRIBUTE12,
43     ATTRIBUTE13,
44     ATTRIBUTE14,
45     ATTRIBUTE15,
46     ATTRIBUTE_CATEGORY,
47     ATTRIBUTE1,
48     ATTRIBUTE2,
49     ATTRIBUTE3,
50     ATTRIBUTE4,
51     VISIT_TYPE_ID,
52     VISIT_TYPE_CODE,
53     SERVICE_CATEGORY_CODE,
54     STATUS_CODE,
55     ESTIMATED_DURATION,
56     MC_ID,
57     LINKED_VISIT_TYPE_ID,
58     TRANSIT_TYPE_FLAG,
59     OBJECT_VERSION_NUMBER,
60     ATTRIBUTE10,
61     ATTRIBUTE11,
62     ATTRIBUTE8,
63     ATTRIBUTE9,
64     ATTRIBUTE5,
65     ATTRIBUTE6,
66     ATTRIBUTE7,
67     CREATION_DATE,
68     CREATED_BY,
69     LAST_UPDATE_DATE,
70     LAST_UPDATED_BY,
71     LAST_UPDATE_LOGIN
72   ) values (
73     X_ATTRIBUTE12,
74     X_ATTRIBUTE13,
75     X_ATTRIBUTE14,
76     X_ATTRIBUTE15,
77     X_ATTRIBUTE_CATEGORY,
78     X_ATTRIBUTE1,
79     X_ATTRIBUTE2,
80     X_ATTRIBUTE3,
81     X_ATTRIBUTE4,
82     X_VISIT_TYPE_ID,
83     X_VISIT_TYPE_CODE,
84     X_SERVICE_CATEGORY_CODE,
85     X_STATUS_CODE,
86     X_ESTIMATED_DURATION,
87     X_MC_ID,
88     X_LINKED_VISIT_TYPE_ID,
89     X_TRANSIT_TYPE_FLAG,
90     X_OBJECT_VERSION_NUMBER,
91     X_ATTRIBUTE10,
92     X_ATTRIBUTE11,
93     X_ATTRIBUTE8,
94     X_ATTRIBUTE9,
95     X_ATTRIBUTE5,
96     X_ATTRIBUTE6,
97     X_ATTRIBUTE7,
98     X_CREATION_DATE,
99     X_CREATED_BY,
100     X_LAST_UPDATE_DATE,
101     X_LAST_UPDATED_BY,
102     X_LAST_UPDATE_LOGIN
103   );
104 
105   insert into AHL_VISIT_TYPES_TL (
106     VISIT_TYPE_ID,
107     DESCRIPTION,
108     LAST_UPDATE_DATE,
109     LAST_UPDATED_BY,
110     CREATION_DATE,
111     CREATED_BY,
112     LAST_UPDATE_LOGIN,
113     LANGUAGE,
114     SOURCE_LANG
115   ) select
116     X_VISIT_TYPE_ID,
117     X_DESCRIPTION,
118     X_LAST_UPDATE_DATE,
119     X_LAST_UPDATED_BY,
120     X_CREATION_DATE,
121     X_CREATED_BY,
122     X_LAST_UPDATE_LOGIN,
123     L.LANGUAGE_CODE,
124     userenv('LANG')
125   from FND_LANGUAGES L
126   where L.INSTALLED_FLAG in ('I', 'B')
127   and not exists
128     (select NULL
129     from AHL_VISIT_TYPES_TL T
130     where T.VISIT_TYPE_ID = X_VISIT_TYPE_ID
131     and T.LANGUAGE = L.LANGUAGE_CODE);
132 
133   open c;
134   fetch c into X_ROWID;
135   if (c%notfound) then
136     close c;
137     raise no_data_found;
138   end if;
139   close c;
140 
141 end INSERT_ROW;
142 
143 procedure LOCK_ROW (
144   X_VISIT_TYPE_ID in NUMBER,
145   X_ATTRIBUTE12 in VARCHAR2,
146   X_ATTRIBUTE13 in VARCHAR2,
147   X_ATTRIBUTE14 in VARCHAR2,
148   X_ATTRIBUTE15 in VARCHAR2,
149   X_ATTRIBUTE_CATEGORY in VARCHAR2,
150   X_ATTRIBUTE1 in VARCHAR2,
151   X_ATTRIBUTE2 in VARCHAR2,
152   X_ATTRIBUTE3 in VARCHAR2,
153   X_ATTRIBUTE4 in VARCHAR2,
154   X_VISIT_TYPE_CODE in VARCHAR2,
155   X_SERVICE_CATEGORY_CODE in VARCHAR2,
156   X_STATUS_CODE in VARCHAR2,
157   X_ESTIMATED_DURATION in NUMBER,
158   X_MC_ID in NUMBER,
159   X_LINKED_VISIT_TYPE_ID in NUMBER,
160   X_TRANSIT_TYPE_FLAG in VARCHAR2,
161   X_OBJECT_VERSION_NUMBER in NUMBER,
162   X_ATTRIBUTE10 in VARCHAR2,
163   X_ATTRIBUTE11 in VARCHAR2,
164   X_ATTRIBUTE8 in VARCHAR2,
165   X_ATTRIBUTE9 in VARCHAR2,
166   X_ATTRIBUTE5 in VARCHAR2,
167   X_ATTRIBUTE6 in VARCHAR2,
168   X_ATTRIBUTE7 in VARCHAR2,
169   X_DESCRIPTION in VARCHAR2
170 ) is
171   cursor c is select
172       ATTRIBUTE12,
173       ATTRIBUTE13,
174       ATTRIBUTE14,
175       ATTRIBUTE15,
176       ATTRIBUTE_CATEGORY,
177       ATTRIBUTE1,
178       ATTRIBUTE2,
179       ATTRIBUTE3,
180       ATTRIBUTE4,
181       VISIT_TYPE_CODE,
182       SERVICE_CATEGORY_CODE,
183       STATUS_CODE,
184       ESTIMATED_DURATION,
185       MC_ID,
186       LINKED_VISIT_TYPE_ID,
187       TRANSIT_TYPE_FLAG,
188       OBJECT_VERSION_NUMBER,
189       ATTRIBUTE10,
190       ATTRIBUTE11,
191       ATTRIBUTE8,
192       ATTRIBUTE9,
193       ATTRIBUTE5,
194       ATTRIBUTE6,
195       ATTRIBUTE7
196     from AHL_VISIT_TYPES_B
197     where VISIT_TYPE_ID = X_VISIT_TYPE_ID
198     for update of VISIT_TYPE_ID nowait;
199   recinfo c%rowtype;
200 
201   cursor c1 is select
202       DESCRIPTION,
203       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
204     from AHL_VISIT_TYPES_TL
205     where VISIT_TYPE_ID = X_VISIT_TYPE_ID
206     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
207     for update of VISIT_TYPE_ID nowait;
208 begin
209   open c;
210   fetch c into recinfo;
211   if (c%notfound) then
212     close c;
213     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
214     app_exception.raise_exception;
215   end if;
216   close c;
217   if (    ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
218            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
219       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
220            OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
221       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
222            OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
223       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
224            OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
225       AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
226            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
227       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
228            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
229       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
230            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
231       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
232            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
233       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
234            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
235       AND (recinfo.VISIT_TYPE_CODE = X_VISIT_TYPE_CODE)
236       AND ((recinfo.SERVICE_CATEGORY_CODE = X_SERVICE_CATEGORY_CODE)
237            OR ((recinfo.SERVICE_CATEGORY_CODE is null) AND (X_SERVICE_CATEGORY_CODE is null)))
238       AND (recinfo.STATUS_CODE = X_STATUS_CODE)
239       AND ((recinfo.ESTIMATED_DURATION = X_ESTIMATED_DURATION)
240            OR ((recinfo.ESTIMATED_DURATION is null) AND (X_ESTIMATED_DURATION is null)))
241       AND ((recinfo.MC_ID = X_MC_ID)
242            OR ((recinfo.MC_ID is null) AND (X_MC_ID is null)))
243       AND ((recinfo.LINKED_VISIT_TYPE_ID = X_LINKED_VISIT_TYPE_ID)
244            OR ((recinfo.LINKED_VISIT_TYPE_ID is null) AND (X_LINKED_VISIT_TYPE_ID is null)))
245       AND (recinfo.TRANSIT_TYPE_FLAG = X_TRANSIT_TYPE_FLAG)
246       AND (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
247       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
248            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
249       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
250            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
251       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
252            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
253       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
254            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
255       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
256            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
257       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
258            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
259       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
260            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
261   ) then
262     null;
263   else
264     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
265     app_exception.raise_exception;
266   end if;
267 
268   for tlinfo in c1 loop
269     if (tlinfo.BASELANG = 'Y') then
270       if (    ((tlinfo.DESCRIPTION = X_DESCRIPTION)
271                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
272       ) then
273         null;
274       else
275         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
276         app_exception.raise_exception;
277       end if;
278     end if;
279   end loop;
280   return;
281 end LOCK_ROW;
282 
283 procedure UPDATE_ROW (
284   X_VISIT_TYPE_ID in NUMBER,
285   X_ATTRIBUTE12 in VARCHAR2,
286   X_ATTRIBUTE13 in VARCHAR2,
287   X_ATTRIBUTE14 in VARCHAR2,
288   X_ATTRIBUTE15 in VARCHAR2,
289   X_ATTRIBUTE_CATEGORY in VARCHAR2,
290   X_ATTRIBUTE1 in VARCHAR2,
291   X_ATTRIBUTE2 in VARCHAR2,
292   X_ATTRIBUTE3 in VARCHAR2,
293   X_ATTRIBUTE4 in VARCHAR2,
294   X_VISIT_TYPE_CODE in VARCHAR2,
295   X_SERVICE_CATEGORY_CODE in VARCHAR2,
296   X_STATUS_CODE in VARCHAR2,
297   X_ESTIMATED_DURATION in NUMBER,
298   X_MC_ID in NUMBER,
299   X_LINKED_VISIT_TYPE_ID in NUMBER,
300   X_TRANSIT_TYPE_FLAG in VARCHAR2,
301   X_OBJECT_VERSION_NUMBER in NUMBER,
302   X_ATTRIBUTE10 in VARCHAR2,
303   X_ATTRIBUTE11 in VARCHAR2,
304   X_ATTRIBUTE8 in VARCHAR2,
305   X_ATTRIBUTE9 in VARCHAR2,
306   X_ATTRIBUTE5 in VARCHAR2,
307   X_ATTRIBUTE6 in VARCHAR2,
308   X_ATTRIBUTE7 in VARCHAR2,
309   X_DESCRIPTION in VARCHAR2,
310   X_LAST_UPDATE_DATE in DATE,
311   X_LAST_UPDATED_BY in NUMBER,
312   X_LAST_UPDATE_LOGIN in NUMBER
313 ) is
314 begin
315   update AHL_VISIT_TYPES_B set
316     ATTRIBUTE12 = X_ATTRIBUTE12,
317     ATTRIBUTE13 = X_ATTRIBUTE13,
318     ATTRIBUTE14 = X_ATTRIBUTE14,
319     ATTRIBUTE15 = X_ATTRIBUTE15,
320     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
321     ATTRIBUTE1 = X_ATTRIBUTE1,
322     ATTRIBUTE2 = X_ATTRIBUTE2,
323     ATTRIBUTE3 = X_ATTRIBUTE3,
324     ATTRIBUTE4 = X_ATTRIBUTE4,
325     VISIT_TYPE_CODE = X_VISIT_TYPE_CODE,
326     SERVICE_CATEGORY_CODE = X_SERVICE_CATEGORY_CODE,
327     STATUS_CODE = X_STATUS_CODE,
328     ESTIMATED_DURATION = X_ESTIMATED_DURATION,
329     MC_ID = X_MC_ID,
330     LINKED_VISIT_TYPE_ID = X_LINKED_VISIT_TYPE_ID,
331     TRANSIT_TYPE_FLAG = X_TRANSIT_TYPE_FLAG,
332     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
333     ATTRIBUTE10 = X_ATTRIBUTE10,
334     ATTRIBUTE11 = X_ATTRIBUTE11,
335     ATTRIBUTE8 = X_ATTRIBUTE8,
336     ATTRIBUTE9 = X_ATTRIBUTE9,
337     ATTRIBUTE5 = X_ATTRIBUTE5,
338     ATTRIBUTE6 = X_ATTRIBUTE6,
339     ATTRIBUTE7 = X_ATTRIBUTE7,
340     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
341     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
342     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
343   where VISIT_TYPE_ID = X_VISIT_TYPE_ID;
344 
345   if (sql%notfound) then
346     raise no_data_found;
347   end if;
348 
349   update AHL_VISIT_TYPES_TL set
350     DESCRIPTION = X_DESCRIPTION,
351     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
352     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
353     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
354     SOURCE_LANG = userenv('LANG')
355   where VISIT_TYPE_ID = X_VISIT_TYPE_ID
356   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
357 
358   if (sql%notfound) then
359     raise no_data_found;
360   end if;
361 end UPDATE_ROW;
362 
363 procedure DELETE_ROW (
364   X_VISIT_TYPE_ID in NUMBER
365 ) is
366 begin
367   delete from AHL_VISIT_TYPES_TL
368   where VISIT_TYPE_ID = X_VISIT_TYPE_ID;
369 
370   if (sql%notfound) then
371     raise no_data_found;
372   end if;
373 
374   delete from AHL_VISIT_TYPES_B
375   where VISIT_TYPE_ID = X_VISIT_TYPE_ID;
376 
377   if (sql%notfound) then
378     raise no_data_found;
379   end if;
380 end DELETE_ROW;
381 
382 procedure ADD_LANGUAGE
383 is
384 begin
385   delete from AHL_VISIT_TYPES_TL T
386   where not exists
387     (select NULL
388     from AHL_VISIT_TYPES_B B
389     where B.VISIT_TYPE_ID = T.VISIT_TYPE_ID
390     );
391 
392   update AHL_VISIT_TYPES_TL T set (
393       DESCRIPTION
394     ) = (select
395       B.DESCRIPTION
396     from AHL_VISIT_TYPES_TL B
397     where B.VISIT_TYPE_ID = T.VISIT_TYPE_ID
398     and B.LANGUAGE = T.SOURCE_LANG)
399   where (
400       T.VISIT_TYPE_ID,
401       T.LANGUAGE
402   ) in (select
403       SUBT.VISIT_TYPE_ID,
404       SUBT.LANGUAGE
405     from AHL_VISIT_TYPES_TL SUBB, AHL_VISIT_TYPES_TL SUBT
406     where SUBB.VISIT_TYPE_ID = SUBT.VISIT_TYPE_ID
407     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
408     and (SUBB.DESCRIPTION <> SUBT.DESCRIPTION
409       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
410       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
411   ));
412 
413   insert into AHL_VISIT_TYPES_TL (
414     VISIT_TYPE_ID,
415     DESCRIPTION,
416     LAST_UPDATE_DATE,
417     LAST_UPDATED_BY,
418     CREATION_DATE,
419     CREATED_BY,
420     LAST_UPDATE_LOGIN,
421     LANGUAGE,
422     SOURCE_LANG
423   ) select /*+ ORDERED */
424     B.VISIT_TYPE_ID,
425     B.DESCRIPTION,
426     B.LAST_UPDATE_DATE,
427     B.LAST_UPDATED_BY,
428     B.CREATION_DATE,
429     B.CREATED_BY,
430     B.LAST_UPDATE_LOGIN,
431     L.LANGUAGE_CODE,
432     B.SOURCE_LANG
433   from AHL_VISIT_TYPES_TL B, FND_LANGUAGES L
434   where L.INSTALLED_FLAG in ('I', 'B')
435   and B.LANGUAGE = userenv('LANG')
436   and not exists
437     (select NULL
438     from AHL_VISIT_TYPES_TL T
439     where T.VISIT_TYPE_ID = B.VISIT_TYPE_ID
440     and T.LANGUAGE = L.LANGUAGE_CODE);
441 end ADD_LANGUAGE;
442 
443 end AHL_VISIT_TYPES_PKG;