DBA Data[Home] [Help]

PACKAGE BODY: APPS.AHL_VISIT_TYPE_STAGES_PKG

Source


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