DBA Data[Home] [Help]

PACKAGE BODY: APPS.JTF_CAL_EXCEPTION_ASSIGN_PKG

Source


1 package body JTF_CAL_EXCEPTION_ASSIGN_PKG as
2 /* $Header: jtfcleab.pls 115.18 2002/11/15 14:42:10 sukulkar ship $ */
3 procedure INSERT_ROW (
4   X_ERROR out NOCOPY VARCHAR2,
5   X_ROWID in out NOCOPY VARCHAR2,
6   X_CAL_EXCEPTION_ASSIGN_ID in out NOCOPY NUMBER,
7   X_OBJECT_VERSION_NUMBER in NUMBER,
8   X_EXCEPTION_REASON in VARCHAR2,
9   X_CALENDAR_ID in NUMBER,
10   X_EXCEPTION_ID in NUMBER,
11   X_START_DATE_ACTIVE in DATE,
12   X_END_DATE_ACTIVE in DATE,
13   X_ATTRIBUTE1 in VARCHAR2,
14   X_ATTRIBUTE2 in VARCHAR2,
15   X_ATTRIBUTE3 in VARCHAR2,
16   X_ATTRIBUTE4 in VARCHAR2,
17   X_ATTRIBUTE5 in VARCHAR2,
18   X_ATTRIBUTE6 in VARCHAR2,
19   X_ATTRIBUTE7 in VARCHAR2,
20   X_ATTRIBUTE8 in VARCHAR2,
21   X_ATTRIBUTE9 in VARCHAR2,
22   X_ATTRIBUTE10 in VARCHAR2,
23   X_ATTRIBUTE11 in VARCHAR2,
24   X_ATTRIBUTE12 in VARCHAR2,
25   X_ATTRIBUTE13 in VARCHAR2,
26   X_ATTRIBUTE14 in VARCHAR2,
27   X_ATTRIBUTE15 in VARCHAR2,
28   X_ATTRIBUTE_CATEGORY in VARCHAR2,
29   X_CREATION_DATE in DATE,
30   X_CREATED_BY in NUMBER,
31   X_LAST_UPDATE_DATE in DATE,
32   X_LAST_UPDATED_BY in NUMBER,
33   X_LAST_UPDATE_LOGIN in NUMBER
34 ) is
35 
36   cursor C is select ROWID from JTF_CAL_EXCEPTION_ASSIGN
37     where CAL_EXCEPTION_ASSIGN_ID = X_CAL_EXCEPTION_ASSIGN_ID;
38 
39 	v_error CHAR := 'N';
40         v_cal_exception_assign_id_s NUMBER;
41 begin
42 		fnd_msg_pub.initialize;
43 	IF JTF_CAL_EXCEPTION_ASSIGN_PKG.duplicate_excep(X_CALENDAR_ID,X_EXCEPTION_ID,
44                             X_EXCEPTION_REASON, X_START_DATE_ACTIVE,
45                                 -- nvl(X_END_DATE_ACTIVE,'31-DEC-4712')) = FALSE THEN
46                            --changed this for nls issue inavlid month .. sudarsana 12th Nov 2001
47                                  nvl(X_END_DATE_ACTIVE,fnd_api.g_miss_date)) = FALSE THEN
48 			fnd_message.set_name('JTF','JTF_CAL_EXCEPTION_EXISTS');
49 		--	fnd_message.set_name('JTF', 'JTF_CAL_ALREADY_EXISTS');
50 	--		fnd_message.set_token('P_Name', X_EXCEPTION_REASON);
51 			fnd_msg_pub.add;
52 			v_error := 'Y';
53 		END IF;
54 
55 		/*IF JTF_CAL_EXCEPTION_ASSIGN_PKG.NOT_NULL(X_EXCEPTION_ID) = FALSE THEN
56 			--fnd_message.set_name('JTF', 'EXCEPTION_ID CANNOT BE NULL');
57 		        --app_exception.raise_exception;
58 			fnd_message.set_name('JTF', 'JTF_CAL_REQUIRED');
59 			fnd_message.set_token('P_Name', X_EXCEPTION_ID);
60 			fnd_msg_pub.add;
61 			v_error := 'Y';
62 		END IF;
63 		*/
64 
65 		IF JTF_CAL_EXCEPTION_ASSIGN_PKG.NOT_NULL(X_START_DATE_ACTIVE) = FALSE THEN
66 			--fnd_message.set_name('JTF', 'START_DATE CANNOT BE NULL');
67 		        --app_exception.raise_exception;
68 			fnd_message.set_name('JTF', 'JTF_CAL_START_DATE');
69 			fnd_msg_pub.add;
70 			v_error := 'Y';
71 		END IF;
72 
73 		IF JTF_CAL_EXCEPTION_ASSIGN_PKG.END_GREATER_THAN_BEGIN(X_START_DATE_ACTIVE, X_END_DATE_ACTIVE) = FALSE 				THEN
74 			--fnd_message.set_name('JTF', 'END_DATE IS INCORRECT');
75 		        --app_exception.raise_exception;
76 			fnd_message.set_name('JTF', 'JTF_CAL_END_DATE');
77 			fnd_message.set_token('P_Start_Date', X_START_DATE_ACTIVE);
78 			fnd_message.set_token('P_End_Date', X_END_DATE_ACTIVE);
79 			fnd_msg_pub.add;
80 			v_error := 'Y';
81 		END IF;
82 
83 		IF v_error = 'Y' THEN
84 			X_ERROR := 'Y';
85 			return;
86 		ELSE
87 
88                       SELECT jtf_cal_exception_assign_s.nextval
89                       INTO   v_cal_exception_assign_id_s
90                       FROM   dual;
91                       X_CAL_EXCEPTION_ASSIGN_ID := v_cal_exception_assign_id_s;
92 
93 		  insert into JTF_CAL_EXCEPTION_ASSIGN (
94 		    OBJECT_VERSION_NUMBER,
95 		    CAL_EXCEPTION_ASSIGN_ID,
96 		    EXCEPTION_REASON,
97 		    CALENDAR_ID,
98 		    EXCEPTION_ID,
99 		    START_DATE_ACTIVE,
100 		    END_DATE_ACTIVE,
101 		    CREATED_BY,
102 		    CREATION_DATE,
103 		    LAST_UPDATED_BY,
104 		    LAST_UPDATE_DATE,
105 		    LAST_UPDATE_LOGIN,
106 		    ATTRIBUTE1,
107 		    ATTRIBUTE2,
108 		    ATTRIBUTE3,
109 		    ATTRIBUTE4,
110 		    ATTRIBUTE5,
111 		    ATTRIBUTE6,
112 		    ATTRIBUTE7,
113 		    ATTRIBUTE8,
114 		    ATTRIBUTE9,
115 		    ATTRIBUTE10,
116 		    ATTRIBUTE11,
117 		    ATTRIBUTE12,
118 		    ATTRIBUTE13,
119 		    ATTRIBUTE14,
120 		    ATTRIBUTE15,
121 		    ATTRIBUTE_CATEGORY
122 		  ) values
123 		  ( 1,
124 		    v_CAL_EXCEPTION_ASSIGN_ID_S,
125 		    X_EXCEPTION_REASON,
126 		    X_CALENDAR_ID,
127 		    X_EXCEPTION_ID,
128 		    X_START_DATE_ACTIVE,
129 		    X_END_DATE_ACTIVE,
130 		    FND_GLOBAL.USER_ID,
131 	            sysdate,
132 		    FND_GLOBAL.USER_ID,
133 		    sysdate,
134 		    NULL,
135 		    X_ATTRIBUTE1,
136 		    X_ATTRIBUTE2,
137 		    X_ATTRIBUTE3,
138 		    X_ATTRIBUTE4,
139 		    X_ATTRIBUTE5,
140 		    X_ATTRIBUTE6,
141 		    X_ATTRIBUTE7,
142 		    X_ATTRIBUTE8,
143 		    X_ATTRIBUTE9,
144 		    X_ATTRIBUTE10,
145 		    X_ATTRIBUTE11,
146 		    X_ATTRIBUTE12,
147 		    X_ATTRIBUTE13,
148 		    X_ATTRIBUTE14,
149 		    X_ATTRIBUTE15,
150 		    X_ATTRIBUTE_CATEGORY);
151 
152 --		  open c;
153 --		  fetch c into X_ROWID;
154 --		  if (c%notfound) then
155 --		    close c;
156 --		    raise no_data_found;
157 --		  end if;
158 --		  close c;
159 		END IF;
160 end INSERT_ROW;
161 
162 procedure LOCK_ROW (
163   X_CAL_EXCEPTION_ASSIGN_ID in NUMBER,
164   X_OBJECT_VERSION_NUMBER in NUMBER,
165   X_EXCEPTION_REASON in VARCHAR2,
166   X_CALENDAR_ID in NUMBER,
167   X_EXCEPTION_ID in NUMBER,
168   X_START_DATE_ACTIVE in DATE,
169   X_END_DATE_ACTIVE in DATE,
170   X_ATTRIBUTE1 in VARCHAR2,
171   X_ATTRIBUTE2 in VARCHAR2,
172   X_ATTRIBUTE3 in VARCHAR2,
173   X_ATTRIBUTE4 in VARCHAR2,
174   X_ATTRIBUTE5 in VARCHAR2,
175   X_ATTRIBUTE6 in VARCHAR2,
176   X_ATTRIBUTE7 in VARCHAR2,
177   X_ATTRIBUTE8 in VARCHAR2,
178   X_ATTRIBUTE9 in VARCHAR2,
179   X_ATTRIBUTE10 in VARCHAR2,
180   X_ATTRIBUTE11 in VARCHAR2,
181   X_ATTRIBUTE12 in VARCHAR2,
182   X_ATTRIBUTE13 in VARCHAR2,
183   X_ATTRIBUTE14 in VARCHAR2,
184   X_ATTRIBUTE15 in VARCHAR2,
185   X_ATTRIBUTE_CATEGORY in VARCHAR2
186 ) is
187   cursor c1 is select
188       OBJECT_VERSION_NUMBER,
189       EXCEPTION_REASON,
190       CALENDAR_ID,
191       EXCEPTION_ID,
192       START_DATE_ACTIVE,
193       END_DATE_ACTIVE,
194       ATTRIBUTE1,
195       ATTRIBUTE2,
196       ATTRIBUTE3,
197       ATTRIBUTE4,
198       ATTRIBUTE5,
199       ATTRIBUTE6,
200       ATTRIBUTE7,
201       ATTRIBUTE8,
202       ATTRIBUTE9,
203       ATTRIBUTE10,
204       ATTRIBUTE11,
205       ATTRIBUTE12,
206       ATTRIBUTE13,
207       ATTRIBUTE14,
208       ATTRIBUTE15,
209       ATTRIBUTE_CATEGORY,
210       CAL_EXCEPTION_ASSIGN_ID
211     from JTF_CAL_EXCEPTION_ASSIGN
212     where CAL_EXCEPTION_ASSIGN_ID = X_CAL_EXCEPTION_ASSIGN_ID
213     for update of CAL_EXCEPTION_ASSIGN_ID nowait;
214 begin
215   for tlinfo in c1 loop
216 --    if (tlinfo.BASELANG = 'Y') then
217       if (    (tlinfo.CAL_EXCEPTION_ASSIGN_ID = X_CAL_EXCEPTION_ASSIGN_ID)
218           AND ((tlinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
219                OR ((tlinfo.OBJECT_VERSION_NUMBER is null) AND (X_OBJECT_VERSION_NUMBER is null)))
220           AND ((tlinfo.EXCEPTION_REASON = X_EXCEPTION_REASON)
221                OR ((tlinfo.EXCEPTION_REASON is null) AND (X_EXCEPTION_REASON is null)))
222           AND (tlinfo.CALENDAR_ID = X_CALENDAR_ID)
223           AND (tlinfo.EXCEPTION_ID = X_EXCEPTION_ID)
224           AND ((tlinfo.START_DATE_ACTIVE = X_START_DATE_ACTIVE)
225                OR ((tlinfo.START_DATE_ACTIVE is null) AND (X_START_DATE_ACTIVE is null)))
226           AND ((tlinfo.END_DATE_ACTIVE = X_END_DATE_ACTIVE)
227                OR ((tlinfo.END_DATE_ACTIVE is null) AND (X_END_DATE_ACTIVE is null)))
228           AND ((tlinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
229                OR ((tlinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
230           AND ((tlinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
231                OR ((tlinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
232           AND ((tlinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
233                OR ((tlinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
234           AND ((tlinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
235                OR ((tlinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
236           AND ((tlinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
237                OR ((tlinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
238           AND ((tlinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
239                OR ((tlinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
240           AND ((tlinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
241                OR ((tlinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
242           AND ((tlinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
243                OR ((tlinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
244           AND ((tlinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
245                OR ((tlinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
246           AND ((tlinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
247                OR ((tlinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
248           AND ((tlinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
249                OR ((tlinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
250           AND ((tlinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
251                OR ((tlinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
252           AND ((tlinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
253                OR ((tlinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
254           AND ((tlinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
255                OR ((tlinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
256           AND ((tlinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
257                OR ((tlinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
258           AND ((tlinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
259                OR ((tlinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
260       ) then
261         null;
262       else
263         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
264         app_exception.raise_exception;
265       end if;
266 --    end if;
267   end loop;
268   return;
269 end LOCK_ROW;
270 
271 procedure UPDATE_ROW (
272   X_ERROR out NOCOPY VARCHAR2,
273   X_CAL_EXCEPTION_ASSIGN_ID in NUMBER,
274   X_OBJECT_VERSION_NUMBER in OUT NOCOPY NUMBER,
275   X_EXCEPTION_REASON in VARCHAR2,
276   X_CALENDAR_ID in NUMBER,
277   X_EXCEPTION_ID in NUMBER,
278   X_START_DATE_ACTIVE in DATE,
279   X_END_DATE_ACTIVE in DATE,
280   X_ATTRIBUTE1 in VARCHAR2,
281   X_ATTRIBUTE2 in VARCHAR2,
282   X_ATTRIBUTE3 in VARCHAR2,
283   X_ATTRIBUTE4 in VARCHAR2,
284   X_ATTRIBUTE5 in VARCHAR2,
285   X_ATTRIBUTE6 in VARCHAR2,
286   X_ATTRIBUTE7 in VARCHAR2,
287   X_ATTRIBUTE8 in VARCHAR2,
288   X_ATTRIBUTE9 in VARCHAR2,
289   X_ATTRIBUTE10 in VARCHAR2,
290   X_ATTRIBUTE11 in VARCHAR2,
291   X_ATTRIBUTE12 in VARCHAR2,
292   X_ATTRIBUTE13 in VARCHAR2,
293   X_ATTRIBUTE14 in VARCHAR2,
294   X_ATTRIBUTE15 in VARCHAR2,
295   X_ATTRIBUTE_CATEGORY in VARCHAR2,
296   X_LAST_UPDATE_DATE in DATE,
297   X_LAST_UPDATED_BY in NUMBER,
298   X_LAST_UPDATE_LOGIN in NUMBER
299 ) is
300 	v_error CHAR := 'N';
301 	v_count NUMBER;
302 begin
303 		fnd_msg_pub.initialize;
304 		-- To check duplication of exception
305 		SELECT 	count(*)
306         	INTO v_count
307 		FROM   	jtf_cal_exception_assign
308 		WHERE calendar_id = X_CALENDAR_ID
309           	and exception_id = X_EXCEPTION_ID;
310 
311         	IF v_count > 1 THEN
312           	fnd_message.set_name('JTF','JTF_CAL_EXCEPTION_EXISTS');
313           	fnd_msg_pub.add;
314 		v_error := 'Y';
315 		END IF;
316 
317                /*
318 		IF JTF_CAL_EXCEPTION_ASSIGN_PKG.duplicate_excep(X_CALENDAR_ID,X_EXCEPTION_ID, X_EXCEPTION_REASON,X_START_DATE_ACTIVE, nvl(X_END_DATE_ACTIVE,'31-DEC-4712')) = FALSE THEN
319 			fnd_message.set_name('JTF','JTF_CAL_EXCEPTION_EXISTS');
320 			fnd_msg_pub.add;
321 			v_error := 'Y';
322 		END IF;
323                */
324 
325 
326 		IF JTF_CAL_EXCEPTION_ASSIGN_PKG.NOT_NULL(X_START_DATE_ACTIVE) = FALSE THEN
327 			fnd_message.set_name('JTF', 'JTF_CAL_START_DATE');
328 			fnd_msg_pub.add;
329 			v_error := 'Y';
330 		END IF;
331 
332 		IF JTF_CAL_EXCEPTION_ASSIGN_PKG.END_GREATER_THAN_BEGIN(X_START_DATE_ACTIVE, X_END_DATE_ACTIVE) = FALSE 				THEN
333 			fnd_message.set_name('JTF', 'JTF_CAL_END_DATE');
334 			fnd_message.set_token('P_Start_Date', X_START_DATE_ACTIVE);
335 			fnd_message.set_token('P_End_Date', X_END_DATE_ACTIVE);
336 			fnd_msg_pub.add;
337 			v_error := 'Y';
338 		END IF;
339 
340 		IF v_error = 'Y' THEN
341 			X_ERROR := 'Y';
342 			return;
343 		ELSE
344 			X_ERROR := 'N';
345 		X_OBJECT_VERSION_NUMBER := X_OBJECT_VERSION_NUMBER + 1;
346 
347 		  update JTF_CAL_EXCEPTION_ASSIGN set
348 		    OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
349 		    EXCEPTION_REASON = X_EXCEPTION_REASON,
350 		    CALENDAR_ID = X_CALENDAR_ID,
351 		    EXCEPTION_ID = X_EXCEPTION_ID,
352 		    START_DATE_ACTIVE = X_START_DATE_ACTIVE,
353 		    END_DATE_ACTIVE = X_END_DATE_ACTIVE,
354 		    ATTRIBUTE1 = X_ATTRIBUTE1,
355 		    ATTRIBUTE2 = X_ATTRIBUTE2,
356 		    ATTRIBUTE3 = X_ATTRIBUTE3,
357 		    ATTRIBUTE4 = X_ATTRIBUTE4,
358 		    ATTRIBUTE5 = X_ATTRIBUTE5,
359 		    ATTRIBUTE6 = X_ATTRIBUTE6,
360 		    ATTRIBUTE7 = X_ATTRIBUTE7,
361 		    ATTRIBUTE8 = X_ATTRIBUTE8,
362 		    ATTRIBUTE9 = X_ATTRIBUTE9,
363 		    ATTRIBUTE10 = X_ATTRIBUTE10,
364 		    ATTRIBUTE11 = X_ATTRIBUTE11,
365 		    ATTRIBUTE12 = X_ATTRIBUTE12,
366 		    ATTRIBUTE13 = X_ATTRIBUTE13,
367 		    ATTRIBUTE14 = X_ATTRIBUTE14,
368 		    ATTRIBUTE15 = X_ATTRIBUTE15,
369 		    ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
370 		    CAL_EXCEPTION_ASSIGN_ID = X_CAL_EXCEPTION_ASSIGN_ID,
371 		    LAST_UPDATE_DATE = sysdate,
372 		    LAST_UPDATED_BY = FND_GLOBAL.USER_ID,
373 		    LAST_UPDATE_LOGIN = FND_GLOBAL.LOGIN_ID
374 		  where CAL_EXCEPTION_ASSIGN_ID = X_CAL_EXCEPTION_ASSIGN_ID;
375 
376 --		  if (sql%notfound) then
377 --		    raise no_data_found;
378 --		  end if;
379 		END IF;
380 end UPDATE_ROW;
381 
382 procedure DELETE_ROW (
383   X_CAL_EXCEPTION_ASSIGN_ID in NUMBER
384 ) is
385 begin
386   delete from JTF_CAL_EXCEPTION_ASSIGN
387   where CAL_EXCEPTION_ASSIGN_ID = X_CAL_EXCEPTION_ASSIGN_ID;
388 
389   if (sql%notfound) then
390     raise no_data_found;
391   end if;
392 
393 end DELETE_ROW;
394 /*************************************************************************/
395 	FUNCTION not_null(column_to_check IN CHAR) RETURN boolean IS
396 	BEGIN
397 		IF column_to_check IS NULL THEN
398 		   return(FALSE);
399 		ELSE
400 		   return(TRUE);
401 		END IF;
402 	END;
403 /*************************************************************************/
404 	FUNCTION end_greater_than_begin(start_date IN DATE, end_date IN DATE) RETURN boolean IS
405 	BEGIN
406 		IF start_date > end_date THEN
407 		   return(FALSE);
408 		ELSE
409 		   return(TRUE);
410 		END IF;
411 	END;
412 /*************************************************************************/
413 FUNCTION duplicate_excep(X_CALENDAR_ID in NUMBER,X_EXCEPTION_ID IN NUMBER, X_EXCEPTION_REASON IN CHAR, X_START_DATE_ACTIVE IN DATE, X_END_DATE_ACTIVE IN DATE) RETURN boolean IS
414 
415 	X_FOUND CHAR := 'N';
416     -- Just check the duplication by name.
417 	  cursor dup is
418 		select 	'x'
419 		from   	jtf_cal_exception_assign
420 		where calendar_id = X_CALENDAR_ID
424   --      OR  ( X_START_DATE_ACTIVE BETWEEN  start_date_active and end_date_active)
421         and exception_id = X_EXCEPTION_ID
422 --		and exception_reason= X_EXCEPTION_REASON
423  --       and (( X_START_DATE_ACTIVE <=  start_date_active and nvl(X_END_DATE_ACTIVE,'31-DEC-4712')  >= end_date_active )
425    --     OR  ( nvl(X_END_DATE_ACTIVE,'31-DEC-4712')   BETWEEN  start_date_active and end_date_active)
426     --    OR  ((X_START_DATE_ACTIVE <  start_date_active) AND (nvl(X_END_DATE_ACTIVE,'31-DEC-4712') > end_date_active )))
427 		AND rownum < 2;
428 
429 	BEGIN
430 	-- Excep is unique
431 		open dup;
432 		  fetch dup into X_FOUND;
433 		  if (dup%notfound) then
434 			return(TRUE);
435 		    close dup;
436 		  else
437 			return(FALSE);
438 		  end if;
439 		  close dup;
440 
441 	END;
442 end JTF_CAL_EXCEPTION_ASSIGN_PKG;