[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;