DBA Data[Home] [Help]

PACKAGE BODY: APPS.JTF_CAL_SHIFT_ASSIGN_PKG

Source


1 package body JTF_CAL_SHIFT_ASSIGN_PKG as
2 /* $Header: jtfclsab.pls 115.19 2002/11/15 14:37:04 sukulkar ship $ */
3 procedure INSERT_ROW (
4   X_ERROR out NOCOPY VARCHAR2,
5   X_ROWID in out NOCOPY VARCHAR2,
6   X_CAL_SHIFT_ASSIGN_ID in out NOCOPY NUMBER,
7   X_SHIFT_START_DATE in DATE,
8   X_SHIFT_END_DATE in DATE,
9   X_CALENDAR_ID in NUMBER,
10   X_SHIFT_SEQUENCE_NUMBER in NUMBER,
11   X_SHIFT_ID in NUMBER,
12   X_ATTRIBUTE1 in VARCHAR2,
13   X_ATTRIBUTE2 in VARCHAR2,
14   X_ATTRIBUTE4 in VARCHAR2,
15   X_ATTRIBUTE5 in VARCHAR2,
16   X_ATTRIBUTE3 in VARCHAR2,
17   X_ATTRIBUTE6 in VARCHAR2,
18   X_ATTRIBUTE7 in VARCHAR2,
19   X_ATTRIBUTE8 in VARCHAR2,
20   X_ATTRIBUTE9 in VARCHAR2,
21   X_ATTRIBUTE10 in VARCHAR2,
22   X_ATTRIBUTE11 in VARCHAR2,
23   X_ATTRIBUTE12 in VARCHAR2,
24   X_ATTRIBUTE13 in VARCHAR2,
25   X_ATTRIBUTE14 in VARCHAR2,
26   X_ATTRIBUTE15 in VARCHAR2,
27   X_ATTRIBUTE_CATEGORY in VARCHAR2,
28   X_CREATION_DATE in DATE,
29   X_CREATED_BY in NUMBER,
30   X_LAST_UPDATE_DATE in DATE,
31   X_LAST_UPDATED_BY in NUMBER,
32   X_LAST_UPDATE_LOGIN in NUMBER
33 ) is
34 count_cal number;
35 temp_count number;
36 --  cursor C is select ROWID from JTF_CAL_SHIFT_ASSIGN
37 --    where CAL_SHIFT_ASSIGN_ID = X_CAL_SHIFT_ASSIGN_ID;
38 
39 	v_error CHAR := 'N';
40         v_jtf_cal_shift_assign_s NUMBER;
41 begin
42 		fnd_msg_pub.initialize;
43      select count(*) into count_cal
44      from jtf_cal_shift_assign
45      where calendar_id = X_CALENDAR_ID;
46 
47 IF count_cal > 0 THEN
48          select count(*) into temp_count
49 	from jtf_cal_shift_assign
50 	where calendar_id = X_CALENDAR_ID
51 	and shift_id = X_SHIFT_ID
52 	and shift_start_date = TRUNC(X_SHIFT_START_DATE)
53 	and shift_end_date = TRUNC(X_SHIFT_END_DATE);
54 
55 	If temp_count > 0 THEN
56 
57 			fnd_message.set_name('JTF', 'JTF_CAL_DUPLICATE_ASSIGNMENT');
58 			--fnd_message.set_token('P_Name', 'Assignment');
59 			fnd_msg_pub.add;
60 
61 			v_error := 'Y';
62        END IF;
63 
64 /*	IF JTF_CAL_SHIFT_ASSIGN_PKG.duplicate_assign(X_CALENDAR_ID,X_SHIFT_ID, X_SHIFT_START_DATE, X_SHIFT_END_DATE)
65 									= FALSE THEN
66 			--fnd_message.set_name('JTF', 'DUPLICATE RECORD ENTERED');
67 		        --app_exception.raise_exception;
68 			fnd_message.set_name('JTF', 'JTF_CAL_DUPLICATE_ASSIGNMENT');
69 			--fnd_message.set_token('P_Name', 'Assignment');
70 			fnd_msg_pub.add;
71 
72 			v_error := 'Y';
73 
74 		END IF;
75 
76 		IF JTF_CAL_SHIFT_ASSIGN_PKG.duplicate_seq(X_SHIFT_ID, X_SHIFT_SEQUENCE_NUMBER) = 			FALSE THEN
77 			fnd_message.set_name('JTF', 'JTF_CAL_SHIFT_SEQ_NUM');
78 			fnd_message.set_token('P_Shift_Seq_Num', X_SHIFT_SEQUENCE_NUMBER);
79 			fnd_msg_pub.add;
80 			v_error := 'Y';
81 		END IF;
82 */
83 END IF;
84 
85 		IF JTF_CAL_SHIFT_ASSIGN_PKG.NOT_NULL(X_SHIFT_ID) = FALSE THEN
86 			--fnd_message.set_name('JTF', 'SHIFT_ID CANNOT BE NULL');
87 		        --app_exception.raise_exception;
88 			fnd_message.set_name('JTF', 'JTF_CAL_SHIFT_NAME');
89 			--fnd_message.set_token('P_Name', 'SHIFT');
90 			fnd_msg_pub.add;
91 
92 			v_error := 'Y';
93 		END IF;
94 
95 		IF JTF_CAL_SHIFT_ASSIGN_PKG.NOT_NULL(X_SHIFT_START_DATE) = FALSE THEN
96 			--fnd_message.set_name('JTF', 'SHIFT_START_DATE CANNOT BE NULL');
97 		        --app_exception.raise_exception;
98 			fnd_message.set_name('JTF', 'JTF_CAL_START_DATE');
99 			fnd_msg_pub.add;
100 			v_error := 'Y';
101 		END IF;
102 
103 		IF JTF_CAL_SHIFT_ASSIGN_PKG.END_GREATER_THAN_BEGIN(X_SHIFT_START_DATE, X_SHIFT_END_DATE) = FALSE THEN
104 			--fnd_message.set_name('JTF', 'END_DATE IS INCORRECT');
105 		        --app_exception.raise_exception;
106 			fnd_message.set_name('JTF', 'JTF_CAL_END_DATE');
107 			fnd_message.set_token('P_Start_Date', X_SHIFT_START_DATE);
108 			fnd_message.set_token('P_End_Date', X_SHIFT_END_DATE);
109 			fnd_msg_pub.add;
110 			v_error := 'Y';
111 		END IF;
112 
113 /*
114 		IF JTF_CAL_SHIFT_ASSIGN_PKG.duplicate_seq(X_SHIFT_ID, X_SHIFT_SEQUENCE_NUMBER) = 			FALSE THEN
115 			fnd_message.set_name('JTF', 'JTF_CAL_SHIFT_SEQ_NUM');
116 			fnd_message.set_token('P_Shift_Seq_Num', X_SHIFT_SEQUENCE_NUMBER);
117 			fnd_msg_pub.add;
118 			v_error := 'Y';
119 		END IF;
120 */
121 
122 		IF v_error = 'Y' THEN
123 			X_ERROR := 'Y';
124 			return;
125 		ELSE
126 
127                      SELECT jtf_cal_shift_assign_s.nextval
128                      INTO   v_jtf_cal_shift_assign_s
129                      FROM dual;
130 
131                      X_CAL_SHIFT_ASSIGN_ID := v_jtf_cal_shift_assign_s;
132 
133 	  insert into JTF_CAL_SHIFT_ASSIGN (
134 		    OBJECT_VERSION_NUMBER,
135 		    SHIFT_START_DATE,
136 		    SHIFT_END_DATE,
137 		    CAL_SHIFT_ASSIGN_ID,
138 		    CALENDAR_ID,
139 		    SHIFT_SEQUENCE_NUMBER,
140 		    SHIFT_ID,
141 		    CREATED_BY,
142 		    CREATION_DATE,
143 		    LAST_UPDATED_BY,
144 		    LAST_UPDATE_DATE,
145 		    LAST_UPDATE_LOGIN,
146 		    ATTRIBUTE1,
147 		    ATTRIBUTE2,
148 		    ATTRIBUTE4,
149 		    ATTRIBUTE5,
150 		    ATTRIBUTE3,
151 		    ATTRIBUTE6,
152 		    ATTRIBUTE7,
153 		    ATTRIBUTE8,
154 		    ATTRIBUTE9,
155 		    ATTRIBUTE10,
156 		    ATTRIBUTE11,
157 		    ATTRIBUTE12,
158 		    ATTRIBUTE13,
159 		    ATTRIBUTE14,
160 		    ATTRIBUTE15,
161 		    ATTRIBUTE_CATEGORY
162 		  ) values
163 		  ( 1,
164 	       	 X_SHIFT_START_DATE,
165 		    X_SHIFT_END_DATE,
166 		    v_jtf_cal_shift_assign_s,
167 		    X_CALENDAR_ID,
168 		    X_SHIFT_SEQUENCE_NUMBER,
169 		    X_SHIFT_ID,
170 		    FND_GLOBAL.USER_ID,
171 		    sysdate,
172 		    FND_GLOBAL.USER_ID,
173 		    sysdate,
174 		    FND_GLOBAL.LOGIN_ID,
175 		    X_ATTRIBUTE1,
176 		    X_ATTRIBUTE2,
177 		    X_ATTRIBUTE4,
178 		    X_ATTRIBUTE5,
179 		    X_ATTRIBUTE3,
180 		    X_ATTRIBUTE6,
181 		    X_ATTRIBUTE7,
182 		    X_ATTRIBUTE8,
183 		    X_ATTRIBUTE9,
184 		    X_ATTRIBUTE10,
185 		    X_ATTRIBUTE11,
186 		    X_ATTRIBUTE12,
187 		    X_ATTRIBUTE13,
188 		    X_ATTRIBUTE14,
189 		    X_ATTRIBUTE15,
190 		    X_ATTRIBUTE_CATEGORY);
191 
192 --		  open c;
193 --		  fetch c into X_ROWID;
194 --		  if (c%notfound) then
195 --		    close c;
196 --		    raise no_data_found;
197 --		  end if;
198 --		  close c;
199 	END IF;
200 end INSERT_ROW;
201 /*************************************************************************/
202 procedure LOCK_ROW (
203   X_CAL_SHIFT_ASSIGN_ID in NUMBER,
204   X_SHIFT_START_DATE in DATE,
205   X_SHIFT_END_DATE in DATE,
206   X_CALENDAR_ID in NUMBER,
207   X_SHIFT_SEQUENCE_NUMBER in NUMBER,
208   X_SHIFT_ID in NUMBER,
209   X_ATTRIBUTE1 in VARCHAR2,
210   X_ATTRIBUTE2 in VARCHAR2,
211   X_ATTRIBUTE4 in VARCHAR2,
212   X_ATTRIBUTE5 in VARCHAR2,
213   X_ATTRIBUTE3 in VARCHAR2,
214   X_ATTRIBUTE6 in VARCHAR2,
215   X_ATTRIBUTE7 in VARCHAR2,
216   X_ATTRIBUTE8 in VARCHAR2,
217   X_ATTRIBUTE9 in VARCHAR2,
218   X_ATTRIBUTE10 in VARCHAR2,
219   X_ATTRIBUTE11 in VARCHAR2,
220   X_ATTRIBUTE12 in VARCHAR2,
221   X_ATTRIBUTE13 in VARCHAR2,
222   X_ATTRIBUTE14 in VARCHAR2,
223   X_ATTRIBUTE15 in VARCHAR2,
224   X_ATTRIBUTE_CATEGORY in VARCHAR2
225 ) is
226   cursor c1 is select
227       SHIFT_START_DATE,
228       SHIFT_END_DATE,
229       CALENDAR_ID,
230       SHIFT_SEQUENCE_NUMBER,
231       SHIFT_ID,
232       ATTRIBUTE1,
233       ATTRIBUTE2,
234       ATTRIBUTE4,
235       ATTRIBUTE5,
236       ATTRIBUTE3,
237       ATTRIBUTE6,
238       ATTRIBUTE7,
239       ATTRIBUTE8,
240       ATTRIBUTE9,
241       ATTRIBUTE10,
242       ATTRIBUTE11,
243       ATTRIBUTE12,
244       ATTRIBUTE13,
245       ATTRIBUTE14,
246       ATTRIBUTE15,
247       ATTRIBUTE_CATEGORY,
248       CAL_SHIFT_ASSIGN_ID
249     from JTF_CAL_SHIFT_ASSIGN
250     where CAL_SHIFT_ASSIGN_ID = X_CAL_SHIFT_ASSIGN_ID
251     for update of CAL_SHIFT_ASSIGN_ID nowait;
252 begin
253   for tlinfo in c1 loop
254 --    if (tlinfo.BASELANG = 'Y') then
255       if (    (tlinfo.CAL_SHIFT_ASSIGN_ID = X_CAL_SHIFT_ASSIGN_ID)
256           AND (tlinfo.SHIFT_START_DATE = X_SHIFT_START_DATE)
257           AND (tlinfo.SHIFT_END_DATE = X_SHIFT_END_DATE)
258           AND (tlinfo.CALENDAR_ID = X_CALENDAR_ID)
259           AND (tlinfo.SHIFT_SEQUENCE_NUMBER = X_SHIFT_SEQUENCE_NUMBER)
260           AND (tlinfo.SHIFT_ID = X_SHIFT_ID)
261           AND ((tlinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
262                OR ((tlinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
263           AND ((tlinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
264                OR ((tlinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
265           AND ((tlinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
266                OR ((tlinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
267           AND ((tlinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
268                OR ((tlinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
269           AND ((tlinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
270                OR ((tlinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
271           AND ((tlinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
272                OR ((tlinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
273           AND ((tlinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
274                OR ((tlinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
275           AND ((tlinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
276                OR ((tlinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
277           AND ((tlinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
278                OR ((tlinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
279           AND ((tlinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
280                OR ((tlinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
281           AND ((tlinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
282                OR ((tlinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
283           AND ((tlinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
284                OR ((tlinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
285           AND ((tlinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
286                OR ((tlinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
287           AND ((tlinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
288                OR ((tlinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
289           AND ((tlinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
290                OR ((tlinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
291           AND ((tlinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
292                OR ((tlinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
293       ) then
294         null;
295       else
296         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
297         app_exception.raise_exception;
298       end if;
299 --    end if;
300   end loop;
301   return;
302 end LOCK_ROW;
303 /*************************************************************************/
304 procedure UPDATE_ROW (
305   X_ERROR out NOCOPY VARCHAR2,
306   X_CAL_SHIFT_ASSIGN_ID in NUMBER,
307   X_SHIFT_START_DATE in DATE,
308   X_SHIFT_END_DATE in DATE,
309   X_CALENDAR_ID in NUMBER,
310   X_SHIFT_SEQUENCE_NUMBER in NUMBER,
311   X_SHIFT_ID in NUMBER,
312   X_ATTRIBUTE1 in VARCHAR2,
313   X_ATTRIBUTE2 in VARCHAR2,
314   X_ATTRIBUTE4 in VARCHAR2,
315   X_ATTRIBUTE5 in VARCHAR2,
316   X_ATTRIBUTE3 in VARCHAR2,
317   X_ATTRIBUTE6 in VARCHAR2,
318   X_ATTRIBUTE7 in VARCHAR2,
319   X_ATTRIBUTE8 in VARCHAR2,
320   X_ATTRIBUTE9 in VARCHAR2,
321   X_ATTRIBUTE10 in VARCHAR2,
322   X_ATTRIBUTE11 in VARCHAR2,
323   X_ATTRIBUTE12 in VARCHAR2,
324   X_ATTRIBUTE13 in VARCHAR2,
325   X_ATTRIBUTE14 in VARCHAR2,
326   X_ATTRIBUTE15 in VARCHAR2,
327   X_ATTRIBUTE_CATEGORY in VARCHAR2,
328   X_LAST_UPDATE_DATE in DATE,
329   X_LAST_UPDATED_BY in NUMBER,
330   X_LAST_UPDATE_LOGIN in NUMBER
331 ) is
332 	temp_count number;
333 	v_error CHAR := 'N';
334 
335 begin
336 		fnd_msg_pub.initialize;
337 
338          select count(*) into temp_count
339 	from jtf_cal_shift_assign
340 	where calendar_id = X_CALENDAR_ID
341 	and shift_id = X_SHIFT_ID
342 	and shift_start_date = TRUNC(X_SHIFT_START_DATE)
343 	and shift_end_date = TRUNC(X_SHIFT_END_DATE);
344 
345 	If temp_count > 1 THEN
346 
347 			fnd_message.set_name('JTF', 'JTF_CAL_DUPLICATE_ASSIGNMENT');
348 			--fnd_message.set_token('P_Name', 'Assignment');
349 			fnd_msg_pub.add;
350              v_error := 'Y';
351 	END IF;
352 
353 	/*	IF JTF_CAL_SHIFT_ASSIGN_PKG.duplicate_assign(X_CALENDAR_ID,X_SHIFT_ID, X_SHIFT_START_DATE, X_SHIFT_END_DATE)
354 									= FALSE THEN
355 			--fnd_message.set_name('JTF', 'DUPLICATE RECORD ENTERED');
356 		        --app_exception.raise_exception;
357 			fnd_message.set_name('JTF', 'JTF_CAL_DUPLICATE_ASSIGNMENT');
358 			--fnd_message.set_token('P_Name', 'Assignment');
359 			fnd_msg_pub.add;
360 
361 			v_error := 'Y';
362 
363 		END IF;
364 	*/
365 		IF JTF_CAL_SHIFT_ASSIGN_PKG.NOT_NULL(X_SHIFT_ID) = FALSE THEN
366 			--fnd_message.set_name('JTF', 'SHIFT_ID CANNOT BE NULL');
367 		        --app_exception.raise_exception;
368 			fnd_message.set_name('JTF', 'JTF_CAL_SHIFT_NAME');
369 			--fnd_message.set_token('P_Name', 'SHIFT');
370 			fnd_msg_pub.add;
371 
372 			v_error := 'Y';
373 		END IF;
374 
375 		IF JTF_CAL_SHIFT_ASSIGN_PKG.NOT_NULL(X_SHIFT_START_DATE) = FALSE THEN
376 			--fnd_message.set_name('JTF', 'SHIFT_START_DATE CANNOT BE NULL');
377 		        --app_exception.raise_exception;
378 			fnd_message.set_name('JTF', 'JTF_CAL_START_DATE');
379 			fnd_msg_pub.add;
380 			v_error := 'Y';
381 		END IF;
382 
383 		IF JTF_CAL_SHIFT_ASSIGN_PKG.END_GREATER_THAN_BEGIN(X_SHIFT_START_DATE, X_SHIFT_END_DATE) = FALSE THEN
384 			--fnd_message.set_name('JTF', 'END_DATE IS INCORRECT');
385 		        --app_exception.raise_exception;
386 			fnd_message.set_name('JTF', 'JTF_CAL_END_DATE');
387 			fnd_message.set_token('P_Start_Date', X_SHIFT_START_DATE);
388 			fnd_message.set_token('P_End_Date', X_SHIFT_END_DATE);
389 			fnd_msg_pub.add;
390 			v_error := 'Y';
391 		END IF;
392 
393 		IF v_error = 'Y' THEN
394 			X_ERROR := 'Y';
395 			return;
396 		ELSE
397 
398 		  update JTF_CAL_SHIFT_ASSIGN set
399                     object_version_number = object_version_number + 1,
400 		    SHIFT_START_DATE = X_SHIFT_START_DATE,
401 		    SHIFT_END_DATE = X_SHIFT_END_DATE,
402 		    CALENDAR_ID = X_CALENDAR_ID,
403 		    SHIFT_SEQUENCE_NUMBER = X_SHIFT_SEQUENCE_NUMBER,
404 		    SHIFT_ID = X_SHIFT_ID,
405 		    ATTRIBUTE1 = X_ATTRIBUTE1,
406 		    ATTRIBUTE2 = X_ATTRIBUTE2,
407 		    ATTRIBUTE4 = X_ATTRIBUTE4,
408 		    ATTRIBUTE5 = X_ATTRIBUTE5,
409 		    ATTRIBUTE3 = X_ATTRIBUTE3,
410 		    ATTRIBUTE6 = X_ATTRIBUTE6,
411 		    ATTRIBUTE7 = X_ATTRIBUTE7,
412 		    ATTRIBUTE8 = X_ATTRIBUTE8,
413 		    ATTRIBUTE9 = X_ATTRIBUTE9,
414 		    ATTRIBUTE10 = X_ATTRIBUTE10,
415 		    ATTRIBUTE11 = X_ATTRIBUTE11,
419 		    ATTRIBUTE15 = X_ATTRIBUTE15,
416 		    ATTRIBUTE12 = X_ATTRIBUTE12,
417 		    ATTRIBUTE13 = X_ATTRIBUTE13,
418 		    ATTRIBUTE14 = X_ATTRIBUTE14,
420 		    ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
421 		    CAL_SHIFT_ASSIGN_ID = X_CAL_SHIFT_ASSIGN_ID,
422 		    LAST_UPDATE_DATE = SYSDATE,
423 		    LAST_UPDATED_BY = FND_GLOBAL.USER_ID,
424 		    LAST_UPDATE_LOGIN = FND_GLOBAL.LOGIN_ID
425 		  where CAL_SHIFT_ASSIGN_ID = X_CAL_SHIFT_ASSIGN_ID;
426 
427 --		  if (sql%notfound) then
428 --		    raise no_data_found;
429 --		  end if;
430 		END IF;
431 	end UPDATE_ROW;
432 /*************************************************************************/
433 procedure DELETE_ROW (
434   X_CAL_SHIFT_ASSIGN_ID in NUMBER
435 ) is
436 begin
437   delete from JTF_CAL_SHIFT_ASSIGN
438   where CAL_SHIFT_ASSIGN_ID = X_CAL_SHIFT_ASSIGN_ID;
439 
440   if (sql%notfound) then
441     raise no_data_found;
442   end if;
443 
444 end DELETE_ROW;
445 /*************************************************************************/
446 	FUNCTION not_null(column_to_check IN CHAR) RETURN boolean IS
447 	BEGIN
448 		IF column_to_check IS NULL THEN
449 		   return(FALSE);
450 		ELSE
451 		   return(TRUE);
452 		END IF;
453 	END;
454 /*************************************************************************/
455 	FUNCTION end_greater_than_begin(start_date IN DATE, end_date IN DATE) RETURN boolean IS
456 	BEGIN
457 		IF start_date > end_date THEN
458 		   return(FALSE);
459 		ELSE
460 		   return(TRUE);
461 		END IF;
462 	END;
463 /*************************************************************************/
464 	FUNCTION duplicate_assign(X_CALENDAR_ID IN NUMBER, X_SHIFT_ID IN NUMBER, X_SHIFT_START_DATE IN DATE, X_SHIFT_END_DATE IN DATE) RETURN boolean IS
465 
466 	X_FOUND CHAR := 'N';
467 	cursor dup is
468 		select 'x'
469 		from   jtf_cal_shift_assign
470 		where  shift_id = X_SHIFT_ID
471 		and    shift_start_date = TRUNC(X_SHIFT_START_DATE)
472 		AND    shift_end_date = TRUNC(X_SHIFT_END_DATE)
473 		AND rownum < 2;
474 
475 	BEGIN
476 	-- Shift is unique
477 
478 
479 		open dup;
480 		  fetch dup into X_FOUND;
481 		  if (dup%notfound) then
482 			return(TRUE);
483 		    close dup;
484 		  else
485 			return(FALSE);
486 		  end if;
487 
488 		  close dup;
489 	END;
490 /*************************************************************************/
491 FUNCTION duplicate_seq(X_SHIFT_ID IN NUMBER, X_SHIFT_SEQUENCE_NUMBER IN NUMBER) RETURN boolean IS
492 
493 	X_FOUND CHAR := 'N';
494 	  cursor dup is
495 		select 'x'
496 		from   jtf_cal_shift_assign
497 		where  shift_id = X_SHIFT_ID
498 		and    shift_sequence_number = X_SHIFT_SEQUENCE_NUMBER
499 		AND rownum < 2;
500 
501 	BEGIN
502 	-- Shift is unique
503 		open dup;
504 		  fetch dup into X_FOUND;
505 		  if (dup%notfound) then
506 			return(TRUE);
507 		    close dup;
508 		  else
509 			return(FALSE);
510 		  end if;
511 		  close dup;
512 	END;
513 
514 
515 end JTF_CAL_SHIFT_ASSIGN_PKG;