210: if l_perd_typ_cd = 'CLNDR' then
211:
212: if p_strt_mo < strt_mm or p_strt_mo > end_mm then
213: --
214: fnd_message.set_name('BEN','BEN_92132_INVALID_START_MONTH');
215: fnd_message.raise_error;
216: --
217: elsif p_end_mo > end_mm or p_end_mo < strt_mm then
218: --
211:
212: if p_strt_mo < strt_mm or p_strt_mo > end_mm then
213: --
214: fnd_message.set_name('BEN','BEN_92132_INVALID_START_MONTH');
215: fnd_message.raise_error;
216: --
217: elsif p_end_mo > end_mm or p_end_mo < strt_mm then
218: --
219: fnd_message.set_name('BEN','BEN_92133_INVALID_END_MONTH');
215: fnd_message.raise_error;
216: --
217: elsif p_end_mo > end_mm or p_end_mo < strt_mm then
218: --
219: fnd_message.set_name('BEN','BEN_92133_INVALID_END_MONTH');
220: fnd_message.raise_error;
221: --
222: elsif p_end_mo < p_strt_mo then
223: --
216: --
217: elsif p_end_mo > end_mm or p_end_mo < strt_mm then
218: --
219: fnd_message.set_name('BEN','BEN_92133_INVALID_END_MONTH');
220: fnd_message.raise_error;
221: --
222: elsif p_end_mo < p_strt_mo then
223: --
224: fnd_message.set_name('BEN','BEN_92134_INVALID_MONTH_ORDER');
220: fnd_message.raise_error;
221: --
222: elsif p_end_mo < p_strt_mo then
223: --
224: fnd_message.set_name('BEN','BEN_92134_INVALID_MONTH_ORDER');
225: fnd_message.raise_error;
226: --
227: end if;
228:
221: --
222: elsif p_end_mo < p_strt_mo then
223: --
224: fnd_message.set_name('BEN','BEN_92134_INVALID_MONTH_ORDER');
225: fnd_message.raise_error;
226: --
227: end if;
228:
229: --
230: if p_strt_mo = strt_mm then
231: --
232: if p_strt_day < strt_dd then
233: --
234: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
235: fnd_message.raise_error;
236: --
237: end if;
238: --
231: --
232: if p_strt_day < strt_dd then
233: --
234: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
235: fnd_message.raise_error;
236: --
237: end if;
238: --
239: elsif p_end_mo = end_mm then
239: elsif p_end_mo = end_mm then
240: --
241: if p_end_day > end_dd then
242: --
243: fnd_message.set_name('BEN','BEN_92136_INVALID_END_DAY');
244: fnd_message.raise_error;
245: --
246: end if;
247: --
240: --
241: if p_end_day > end_dd then
242: --
243: fnd_message.set_name('BEN','BEN_92136_INVALID_END_DAY');
244: fnd_message.raise_error;
245: --
246: end if;
247: --
248: end if;
257: if strt_mm < end_mm then
258:
259: if p_end_mo < p_strt_mo then
260: --
261: fnd_message.set_name('BEN','BEN_92134_INVALID_MONTH_ORDER');
262: fnd_message.raise_error;
263: --
264: end if;
265: if p_strt_mo < strt_mm then
258:
259: if p_end_mo < p_strt_mo then
260: --
261: fnd_message.set_name('BEN','BEN_92134_INVALID_MONTH_ORDER');
262: fnd_message.raise_error;
263: --
264: end if;
265: if p_strt_mo < strt_mm then
266: --
263: --
264: end if;
265: if p_strt_mo < strt_mm then
266: --
267: fnd_message.set_name('BEN','BEN_92132_INVALID_START_MONTH');
268: fnd_message.raise_error;
269: --
270: end if;
271: if p_strt_mo = strt_mm and p_strt_day < strt_dd then
264: end if;
265: if p_strt_mo < strt_mm then
266: --
267: fnd_message.set_name('BEN','BEN_92132_INVALID_START_MONTH');
268: fnd_message.raise_error;
269: --
270: end if;
271: if p_strt_mo = strt_mm and p_strt_day < strt_dd then
272: --
269: --
270: end if;
271: if p_strt_mo = strt_mm and p_strt_day < strt_dd then
272: --
273: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
274: fnd_message.raise_error;
275: --
276: end if;
277:
270: end if;
271: if p_strt_mo = strt_mm and p_strt_day < strt_dd then
272: --
273: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
274: fnd_message.raise_error;
275: --
276: end if;
277:
278: if p_strt_mo > strt_mm then
277:
278: if p_strt_mo > strt_mm then
279: if p_strt_mo > end_mm then
280: --
281: fnd_message.set_name('BEN','BEN_92132_INVALID_START_MONTH');
282: fnd_message.raise_error;
283: --
284: end if;
285:
278: if p_strt_mo > strt_mm then
279: if p_strt_mo > end_mm then
280: --
281: fnd_message.set_name('BEN','BEN_92132_INVALID_START_MONTH');
282: fnd_message.raise_error;
283: --
284: end if;
285:
286: if p_strt_mo = end_mm and p_strt_day > end_dd then
284: end if;
285:
286: if p_strt_mo = end_mm and p_strt_day > end_dd then
287: --
288: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
289: fnd_message.raise_error;
290: --
291: end if;
292: end if;
285:
286: if p_strt_mo = end_mm and p_strt_day > end_dd then
287: --
288: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
289: fnd_message.raise_error;
290: --
291: end if;
292: end if;
293:
292: end if;
293:
294: if p_end_mo > end_mm then
295: --
296: fnd_message.set_name('BEN','BEN_92133_INVALID_END_MONTH');
297: fnd_message.raise_error;
298: --
299: end if;
300: if p_end_mo = end_mm and p_end_day > end_dd then
293:
294: if p_end_mo > end_mm then
295: --
296: fnd_message.set_name('BEN','BEN_92133_INVALID_END_MONTH');
297: fnd_message.raise_error;
298: --
299: end if;
300: if p_end_mo = end_mm and p_end_day > end_dd then
301: --
298: --
299: end if;
300: if p_end_mo = end_mm and p_end_day > end_dd then
301: --
302: fnd_message.set_name('BEN','BEN_92136_INVALID_END_DAY');
303: fnd_message.raise_error;
304: --
305: end if;
306: if p_end_mo
299: end if;
300: if p_end_mo = end_mm and p_end_day > end_dd then
301: --
302: fnd_message.set_name('BEN','BEN_92136_INVALID_END_DAY');
303: fnd_message.raise_error;
304: --
305: end if;
306: if p_end_mo
305: end if;
306: if p_end_mo
308: --
309: fnd_message.set_name('BEN','BEN_92133_INVALID_END_MONTH');
310: fnd_message.raise_error;
311: --
312: end if;
313: if p_end_mo = strt_mm and p_end_day < strt_dd then
306: if p_end_mo
308: --
309: fnd_message.set_name('BEN','BEN_92133_INVALID_END_MONTH');
310: fnd_message.raise_error;
311: --
312: end if;
313: if p_end_mo = strt_mm and p_end_day < strt_dd then
314: --
311: --
312: end if;
313: if p_end_mo = strt_mm and p_end_day < strt_dd then
314: --
315: fnd_message.set_name('BEN','BEN_92136_INVALID_END_DAY');
316: fnd_message.raise_error;
317: --
318: end if;
319: end if;
312: end if;
313: if p_end_mo = strt_mm and p_end_day < strt_dd then
314: --
315: fnd_message.set_name('BEN','BEN_92136_INVALID_END_DAY');
316: fnd_message.raise_error;
317: --
318: end if;
319: end if;
320:
319: end if;
320:
321: if p_strt_mo = p_end_mo and p_strt_day > p_end_day then
322: --
323: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
324: fnd_message.raise_error;
325: --
326: end if;
327:
320:
321: if p_strt_mo = p_end_mo and p_strt_day > p_end_day then
322: --
323: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
324: fnd_message.raise_error;
325: --
326: end if;
327:
328: end if;
338: if (p_strt_mo > end_mm) or
339: (p_end_mo > strt_mm) or
340: (p_end_mo < p_strt_mo) then
341: --
342: fnd_message.set_name('BEN','BEN_92132_INVALID_START_MONTH');
343: fnd_message.raise_error;
344: --
345: end if;
346: if p_strt_mo = end_mm and p_strt_day > end_dd then
339: (p_end_mo > strt_mm) or
340: (p_end_mo < p_strt_mo) then
341: --
342: fnd_message.set_name('BEN','BEN_92132_INVALID_START_MONTH');
343: fnd_message.raise_error;
344: --
345: end if;
346: if p_strt_mo = end_mm and p_strt_day > end_dd then
347: --
344: --
345: end if;
346: if p_strt_mo = end_mm and p_strt_day > end_dd then
347: --
348: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
349: fnd_message.raise_error;
350: --
351: end if;
352: if p_end_mo = strt_mm and p_end_day > strt_dd then
345: end if;
346: if p_strt_mo = end_mm and p_strt_day > end_dd then
347: --
348: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
349: fnd_message.raise_error;
350: --
351: end if;
352: if p_end_mo = strt_mm and p_end_day > strt_dd then
353: --
350: --
351: end if;
352: if p_end_mo = strt_mm and p_end_day > strt_dd then
353: --
354: fnd_message.set_name('BEN','BEN_92136_INVALID_END_DAY');
355: fnd_message.raise_error;
356: --
357: end if;
358: end if;
351: end if;
352: if p_end_mo = strt_mm and p_end_day > strt_dd then
353: --
354: fnd_message.set_name('BEN','BEN_92136_INVALID_END_DAY');
355: fnd_message.raise_error;
356: --
357: end if;
358: end if;
359:
361:
362: if p_strt_day < strt_dd then
363: if p_end_mo < p_strt_mo or ( p_end_mo = p_strt_mo and p_end_day < p_strt_day) then
364: --
365: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
366: fnd_message.raise_error;
367: --
368: end if;
369:
362: if p_strt_day < strt_dd then
363: if p_end_mo < p_strt_mo or ( p_end_mo = p_strt_mo and p_end_day < p_strt_day) then
364: --
365: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
366: fnd_message.raise_error;
367: --
368: end if;
369:
370: if ( strt_mm <> end_mm ) or (strt_mm = end_mm and p_strt_day > end_dd) then
368: end if;
369:
370: if ( strt_mm <> end_mm ) or (strt_mm = end_mm and p_strt_day > end_dd) then
371: --
372: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
373: fnd_message.raise_error;
374: --
375: end if;
376: end if;
369:
370: if ( strt_mm <> end_mm ) or (strt_mm = end_mm and p_strt_day > end_dd) then
371: --
372: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
373: fnd_message.raise_error;
374: --
375: end if;
376: end if;
377: end if;
381: if (p_end_mo < strt_mm) or
382: (p_strt_mo < end_mm) or
383: (p_strt_mo > p_end_mo) then
384: --
385: fnd_message.set_name('BEN','BEN_92133_INVALID_END_MONTH');
386: fnd_message.raise_error;
387: --
388: end if;
389: if p_end_mo = strt_mm and p_end_day < strt_dd then
382: (p_strt_mo < end_mm) or
383: (p_strt_mo > p_end_mo) then
384: --
385: fnd_message.set_name('BEN','BEN_92133_INVALID_END_MONTH');
386: fnd_message.raise_error;
387: --
388: end if;
389: if p_end_mo = strt_mm and p_end_day < strt_dd then
390: --
387: --
388: end if;
389: if p_end_mo = strt_mm and p_end_day < strt_dd then
390: --
391: fnd_message.set_name('BEN','BEN_92136_INVALID_END_DAY');
392: fnd_message.raise_error;
393: --
394: end if;
395: if p_strt_mo = end_mm and p_strt_day < end_dd then
388: end if;
389: if p_end_mo = strt_mm and p_end_day < strt_dd then
390: --
391: fnd_message.set_name('BEN','BEN_92136_INVALID_END_DAY');
392: fnd_message.raise_error;
393: --
394: end if;
395: if p_strt_mo = end_mm and p_strt_day < end_dd then
396: --
393: --
394: end if;
395: if p_strt_mo = end_mm and p_strt_day < end_dd then
396: --
397: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
398: fnd_message.raise_error;
399: --
400: end if;
401:
394: end if;
395: if p_strt_mo = end_mm and p_strt_day < end_dd then
396: --
397: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
398: fnd_message.raise_error;
399: --
400: end if;
401:
402:
405: if p_end_mo = end_mm then
406: if p_end_day > end_dd then
407: if p_strt_mo > p_end_mo or (p_strt_mo = p_end_mo and p_strt_day > p_end_day) then
408: --
409: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
410: fnd_message.raise_error;
411: --
412: end if;
413:
406: if p_end_day > end_dd then
407: if p_strt_mo > p_end_mo or (p_strt_mo = p_end_mo and p_strt_day > p_end_day) then
408: --
409: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
410: fnd_message.raise_error;
411: --
412: end if;
413:
414: if ( end_mm <> strt_mm ) or ( end_mm = strt_mm and p_end_day < strt_dd ) then
412: end if;
413:
414: if ( end_mm <> strt_mm ) or ( end_mm = strt_mm and p_end_day < strt_dd ) then
415: --
416: fnd_message.set_name('BEN','BEN_92136_INVALID_END_DAY');
417: fnd_message.raise_error;
418: --
419: end if;
420: end if;
413:
414: if ( end_mm <> strt_mm ) or ( end_mm = strt_mm and p_end_day < strt_dd ) then
415: --
416: fnd_message.set_name('BEN','BEN_92136_INVALID_END_DAY');
417: fnd_message.raise_error;
418: --
419: end if;
420: end if;
421: end if;
427: if strt_mm = end_mm and strt_dd <= end_dd then
428:
429: if (p_strt_mo <> strt_mm) then
430: --
431: fnd_message.set_name('BEN','BEN_92132_INVALID_START_MONTH');
432: fnd_message.raise_error;
433: --
434: end if;
435: if (p_end_mo <> end_mm) then
428:
429: if (p_strt_mo <> strt_mm) then
430: --
431: fnd_message.set_name('BEN','BEN_92132_INVALID_START_MONTH');
432: fnd_message.raise_error;
433: --
434: end if;
435: if (p_end_mo <> end_mm) then
436: --
433: --
434: end if;
435: if (p_end_mo <> end_mm) then
436: --
437: fnd_message.set_name('BEN','BEN_92133_INVALID_END_MONTH');
438: fnd_message.raise_error;
439: --
440: end if;
441:
434: end if;
435: if (p_end_mo <> end_mm) then
436: --
437: fnd_message.set_name('BEN','BEN_92133_INVALID_END_MONTH');
438: fnd_message.raise_error;
439: --
440: end if;
441:
442: if p_strt_day < strt_dd or p_strt_day > p_end_day then
440: end if;
441:
442: if p_strt_day < strt_dd or p_strt_day > p_end_day then
443: --
444: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
445: fnd_message.raise_error;
446: --
447: end if;
448: if p_end_day > end_dd then
441:
442: if p_strt_day < strt_dd or p_strt_day > p_end_day then
443: --
444: fnd_message.set_name('BEN','BEN_92135_INVALID_START_DAY');
445: fnd_message.raise_error;
446: --
447: end if;
448: if p_end_day > end_dd then
449: --
446: --
447: end if;
448: if p_end_day > end_dd then
449: --
450: fnd_message.set_name('BEN','BEN_92136_INVALID_END_DAY');
451: fnd_message.raise_error;
452: --
453: end if;
454:
447: end if;
448: if p_end_day > end_dd then
449: --
450: fnd_message.set_name('BEN','BEN_92136_INVALID_END_DAY');
451: fnd_message.raise_error;
452: --
453: end if;
454:
455: end if;
535: if (p_strt_mo < existing_end_mm and p_strt_mo > existing_strt_mm) or
536: (p_end_mo > existing_strt_mm and p_end_mo < existing_end_mm) then
537: --
538: close uom;
539: fnd_message.set_name('BEN','BEN_92352_MAY_NOT_OVERLAP');
540: fnd_message.raise_error;
541: --
542: elsif p_strt_mo = existing_strt_mm then
543: --
536: (p_end_mo > existing_strt_mm and p_end_mo < existing_end_mm) then
537: --
538: close uom;
539: fnd_message.set_name('BEN','BEN_92352_MAY_NOT_OVERLAP');
540: fnd_message.raise_error;
541: --
542: elsif p_strt_mo = existing_strt_mm then
543: --
544: if p_strt_mo = existing_end_mm then
545: --
546: if p_strt_day < existing_end_dd then
547: --
548: close uom;
549: fnd_message.set_name('BEN','BEN_92352_MAY_NOT_OVERLAP');
550: fnd_message.raise_error;
551: --
552: end if;
553: --
546: if p_strt_day < existing_end_dd then
547: --
548: close uom;
549: fnd_message.set_name('BEN','BEN_92352_MAY_NOT_OVERLAP');
550: fnd_message.raise_error;
551: --
552: end if;
553: --
554: else
555: --
556: if p_strt_day > existing_strt_dd then
557: --
558: close uom;
559: fnd_message.set_name('BEN','BEN_92352_MAY_NOT_OVERLAP');
560: fnd_message.raise_error;
561: --
562: end if;
563: --
556: if p_strt_day > existing_strt_dd then
557: --
558: close uom;
559: fnd_message.set_name('BEN','BEN_92352_MAY_NOT_OVERLAP');
560: fnd_message.raise_error;
561: --
562: end if;
563: --
564: end if;
567: --
568: if p_strt_day <= existing_end_dd then
569: --
570: close uom;
571: fnd_message.set_name('BEN','BEN_92352_MAY_NOT_OVERLAP');
572: fnd_message.raise_error;
573: --
574: end if;
575: --
568: if p_strt_day <= existing_end_dd then
569: --
570: close uom;
571: fnd_message.set_name('BEN','BEN_92352_MAY_NOT_OVERLAP');
572: fnd_message.raise_error;
573: --
574: end if;
575: --
576: elsif p_end_mo = existing_strt_mm then
577: --
578: if p_end_day > existing_strt_dd then
579: --
580: close uom;
581: fnd_message.set_name('BEN','BEN_92352_MAY_NOT_OVERLAP');
582: fnd_message.raise_error;
583: --
584: end if;
585: --
578: if p_end_day > existing_strt_dd then
579: --
580: close uom;
581: fnd_message.set_name('BEN','BEN_92352_MAY_NOT_OVERLAP');
582: fnd_message.raise_error;
583: --
584: end if;
585: --
586: elsif p_end_mo = existing_end_mm then
587: --
588: if p_end_day < existing_end_dd then
589: --
590: close uom;
591: fnd_message.set_name('BEN','BEN_92352_MAY_NOT_OVERLAP');
592: fnd_message.raise_error;
593: --
594: end if;
595: --
588: if p_end_day < existing_end_dd then
589: --
590: close uom;
591: fnd_message.set_name('BEN','BEN_92352_MAY_NOT_OVERLAP');
592: fnd_message.raise_error;
593: --
594: end if;
595: --
596: end if;
677: -- raise error as that combination of starting day, starting
678: -- month, ending day and ending month already exists within
679: -- the selected uom
680: --
681: fnd_message.set_name('BEN','BEN_92351_COMBO_NOT_UNIQUE');
682: fnd_message.raise_error;
683: --
684: end if;
685: --
678: -- month, ending day and ending month already exists within
679: -- the selected uom
680: --
681: fnd_message.set_name('BEN','BEN_92351_COMBO_NOT_UNIQUE');
682: fnd_message.raise_error;
683: --
684: end if;
685: --
686: close c1;
745: p_effective_date => p_effective_date) then
746: --
747: -- raise error as does not exist as lookup
748: --
749: fnd_message.set_name('BEN','BEN_91628_LOOKUP_TYPE_GENERIC');
750: fnd_message.set_token('FIELD', 'p_tm_uom');
751: fnd_message.set_token('TYPE', 'BEN_TM_UOM');
752: fnd_message.raise_error;
753: --
746: --
747: -- raise error as does not exist as lookup
748: --
749: fnd_message.set_name('BEN','BEN_91628_LOOKUP_TYPE_GENERIC');
750: fnd_message.set_token('FIELD', 'p_tm_uom');
751: fnd_message.set_token('TYPE', 'BEN_TM_UOM');
752: fnd_message.raise_error;
753: --
754: end if;
747: -- raise error as does not exist as lookup
748: --
749: fnd_message.set_name('BEN','BEN_91628_LOOKUP_TYPE_GENERIC');
750: fnd_message.set_token('FIELD', 'p_tm_uom');
751: fnd_message.set_token('TYPE', 'BEN_TM_UOM');
752: fnd_message.raise_error;
753: --
754: end if;
755: --
748: --
749: fnd_message.set_name('BEN','BEN_91628_LOOKUP_TYPE_GENERIC');
750: fnd_message.set_token('FIELD', 'p_tm_uom');
751: fnd_message.set_token('TYPE', 'BEN_TM_UOM');
752: fnd_message.raise_error;
753: --
754: end if;
755: --
756: end if;
850: when others then
851: --
852: -- raise error as the date is not valid.
853: --
854: fnd_message.set_name('BEN','BEN_93012_INVALID_DATE');
855: fnd_message.set_token('TYPE', p_type);
856: fnd_message.raise_error;
857: end;
858:
851: --
852: -- raise error as the date is not valid.
853: --
854: fnd_message.set_name('BEN','BEN_93012_INVALID_DATE');
855: fnd_message.set_token('TYPE', p_type);
856: fnd_message.raise_error;
857: end;
858:
859: hr_utility.set_location('Leaving:'||l_proc, 15);
852: -- raise error as the date is not valid.
853: --
854: fnd_message.set_name('BEN','BEN_93012_INVALID_DATE');
855: fnd_message.set_token('TYPE', p_type);
856: fnd_message.raise_error;
857: end;
858:
859: hr_utility.set_location('Leaving:'||l_proc, 15);
860: End chk_valid_date;