259: l_exists VARCHAR2(1);
260: l_proc VARCHAR2(100) := 'PAY_NO_ABS_VALIDATION.CHK_ABSENCE_OVERLAP';
261: BEGIN
262: --
263: hr_utility.set_location (l_proc,5);
264: --
265: -- Cursor to return the absence for the period
266: --
267: OPEN csr_abs_overlap_another;
266: --
267: OPEN csr_abs_overlap_another;
268: FETCH csr_abs_overlap_another INTO l_exists;
269:
270: hr_utility.set_location (l_proc,10);
271: IF csr_abs_overlap_another%FOUND THEN
272: --
273: -- Raise the error message
274: --
271: IF csr_abs_overlap_another%FOUND THEN
272: --
273: -- Raise the error message
274: --
275: hr_utility.set_location (l_proc,15);
276: Fnd_message.set_name('PAY','PAY_376933_NO_ABS_OVERLAP');
277: CLOSE csr_abs_overlap_another;
278: Fnd_message.raise_error;
279: END IF;
277: CLOSE csr_abs_overlap_another;
278: Fnd_message.raise_error;
279: END IF;
280:
281: hr_utility.set_location (l_proc,20);
282: CLOSE csr_abs_overlap_another;
283: hr_utility.set_location (l_proc,25);
284: --
285: END chk_absence_overlap;
279: END IF;
280:
281: hr_utility.set_location (l_proc,20);
282: CLOSE csr_abs_overlap_another;
283: hr_utility.set_location (l_proc,25);
284: --
285: END chk_absence_overlap;
286: --
287: -- Function returns the number of working days for a given period as per
295: l_working_days NUMBER;
296: l_proc VARCHAR2(100) := 'PAY_NO_ABS_VALIDATION.GET_NO_WORK_DAYS';
297: BEGIN
298:
299: hr_utility.set_location (l_proc,5);
300: --
301: -- Function would return 0 if start date is greater than end date
302: --
303: IF (p_start_date > p_end_date) THEN
300: --
301: -- Function would return 0 if start date is greater than end date
302: --
303: IF (p_start_date > p_end_date) THEN
304: hr_utility.set_location (l_proc,10);
305: RETURN 0;
306: END IF;
307:
308: l_date := p_start_date;
307:
308: l_date := p_start_date;
309: l_working_days := 0;
310:
311: hr_utility.set_location (l_proc,15);
312:
313: --
314: -- Loop through all days from start date to the end date
315: --
314: -- Loop through all days from start date to the end date
315: --
316: WHILE (l_date <= p_end_date)
317: LOOP
318: hr_utility.set_location (l_proc,20);
319: --
320: -- Check if the day of the date is Saturday or Sunday. If not add
321: -- 1 to number of working days
322: --
322: --
323: IF ((to_char(l_date,'DY','nls_date_language=ENGLISH') <> 'SUN')
324: AND (to_char(l_date,'DY','nls_date_language=ENGLISH') <> 'SAT')
325: ) THEN
326: hr_utility.set_location (l_proc,25);
327: l_working_days := l_working_days + 1;
328: END IF;
329: l_date := l_date + 1;
330: hr_utility.set_location (l_proc,30);
326: hr_utility.set_location (l_proc,25);
327: l_working_days := l_working_days + 1;
328: END IF;
329: l_date := l_date + 1;
330: hr_utility.set_location (l_proc,30);
331: END LOOP;
332:
333: hr_utility.set_location (l_proc,35);
334:
329: l_date := l_date + 1;
330: hr_utility.set_location (l_proc,30);
331: END LOOP;
332:
333: hr_utility.set_location (l_proc,35);
334:
335: RETURN l_working_days;
336:
337: END get_no_work_days;
364: l_entitlement NUMBER;
365: l_sole_count NUMBER;
366: l_proc VARCHAR2(100) := 'PAY_NO_ABS_VALIDATION.GET_CMS_ENTITLEMENT';
367: BEGIN
368: hr_utility.set_location (l_proc,5);
369: l_dep_child := 0;
370: l_dis_child := 0;
371: l_total_child := 0;
372: l_sole_count := 0;
375: -- Fetch the contact information for the person as of an effective date
376: -- with relation as 'Dependent Child(DC)'
377: FOR i IN csr_child_contact( p_person_id, 'DC', p_effective_date )
378: LOOP
379: hr_utility.set_location (l_proc,10);
380:
381: -- Count the Total number of contact with relation as 'Dependent Child(DC)'
382: l_total_child := l_total_child + 1;
383: i.cont_information2 := NVL(i.cont_information2,'N');
384: i.cont_information1 := NVL(i.cont_information1,'N');
385: -- Count the child as dependent only if Age is less than 13 years
386: -- or Age is less than 19 years with chronic flag as Yes
387: IF (i.age < 13) THEN
388: hr_utility.set_location (l_proc,15);
389: l_dep_child := l_dep_child + 1;
390: IF (i.cont_information2 = 'Y') THEN
391: hr_utility.set_location (l_proc,20);
392: l_dis_child := l_dis_child + 1;
387: IF (i.age < 13) THEN
388: hr_utility.set_location (l_proc,15);
389: l_dep_child := l_dep_child + 1;
390: IF (i.cont_information2 = 'Y') THEN
391: hr_utility.set_location (l_proc,20);
392: l_dis_child := l_dis_child + 1;
393: END IF;
394: IF (i.cont_information1 = 'Y') THEN
395: hr_utility.set_location (l_proc,25);
391: hr_utility.set_location (l_proc,20);
392: l_dis_child := l_dis_child + 1;
393: END IF;
394: IF (i.cont_information1 = 'Y') THEN
395: hr_utility.set_location (l_proc,25);
396: l_sole_count := l_sole_count + 1;
397: END IF;
398: ELSE
399: hr_utility.set_location (l_proc,30);
395: hr_utility.set_location (l_proc,25);
396: l_sole_count := l_sole_count + 1;
397: END IF;
398: ELSE
399: hr_utility.set_location (l_proc,30);
400: IF ( i.age < 19 AND i.cont_information2 = 'Y') THEN
401: hr_utility.set_location (l_proc,35);
402: l_dep_child := l_dep_child + 1;
403: l_dis_child := l_dis_child + 1;
397: END IF;
398: ELSE
399: hr_utility.set_location (l_proc,30);
400: IF ( i.age < 19 AND i.cont_information2 = 'Y') THEN
401: hr_utility.set_location (l_proc,35);
402: l_dep_child := l_dep_child + 1;
403: l_dis_child := l_dis_child + 1;
404: IF (i.cont_information1 = 'Y') THEN
405: hr_utility.set_location (l_proc,40);
401: hr_utility.set_location (l_proc,35);
402: l_dep_child := l_dep_child + 1;
403: l_dis_child := l_dis_child + 1;
404: IF (i.cont_information1 = 'Y') THEN
405: hr_utility.set_location (l_proc,40);
406: l_sole_count := l_sole_count + 1;
407: END IF;
408: END IF;
409: END IF;
406: l_sole_count := l_sole_count + 1;
407: END IF;
408: END IF;
409: END IF;
410: hr_utility.set_location (l_proc,45);
411: END LOOP;
412:
413: hr_utility.set_location (l_proc,50);
414:
409: END IF;
410: hr_utility.set_location (l_proc,45);
411: END LOOP;
412:
413: hr_utility.set_location (l_proc,50);
414:
415: -- If dependent child is more than 0 and less than 2
416: -- then entitlement is 10 . If it is more than 2 then
417: -- entitlement is 15.
415: -- If dependent child is more than 0 and less than 2
416: -- then entitlement is 10 . If it is more than 2 then
417: -- entitlement is 15.
418: IF ((l_dep_child > 0) AND (l_dep_child <= 2)) THEN
419: hr_utility.set_location (l_proc,55);
420: l_entitlement := 10;
421: ELSIF ((l_dep_child > 2)) THEN
422: hr_utility.set_location (l_proc,60);
423: l_entitlement := 15;
418: IF ((l_dep_child > 0) AND (l_dep_child <= 2)) THEN
419: hr_utility.set_location (l_proc,55);
420: l_entitlement := 10;
421: ELSIF ((l_dep_child > 2)) THEN
422: hr_utility.set_location (l_proc,60);
423: l_entitlement := 15;
424: END IF;
425:
426: -- If all the dependent child have sole guardian marked as yes
424: END IF;
425:
426: -- If all the dependent child have sole guardian marked as yes
427: -- then entitlement is doubled.
428: hr_utility.set_location (l_proc,65);
429: IF (l_sole_count = l_dep_child) THEN
430: hr_utility.set_location (l_proc,70);
431: l_entitlement := l_entitlement * 2;
432: END IF;
426: -- If all the dependent child have sole guardian marked as yes
427: -- then entitlement is doubled.
428: hr_utility.set_location (l_proc,65);
429: IF (l_sole_count = l_dep_child) THEN
430: hr_utility.set_location (l_proc,70);
431: l_entitlement := l_entitlement * 2;
432: END IF;
433:
434: -- For every disabled dependent child 10 days of entitlement is added
431: l_entitlement := l_entitlement * 2;
432: END IF;
433:
434: -- For every disabled dependent child 10 days of entitlement is added
435: hr_utility.set_location (l_proc,75);
436: IF (l_dis_child > 0) THEN
437: hr_utility.set_location (l_proc,80);
438: l_entitlement := l_entitlement + (l_dis_child * 10);
439: END IF;
433:
434: -- For every disabled dependent child 10 days of entitlement is added
435: hr_utility.set_location (l_proc,75);
436: IF (l_dis_child > 0) THEN
437: hr_utility.set_location (l_proc,80);
438: l_entitlement := l_entitlement + (l_dis_child * 10);
439: END IF;
440:
441: hr_utility.set_location (l_proc,85);
437: hr_utility.set_location (l_proc,80);
438: l_entitlement := l_entitlement + (l_dis_child * 10);
439: END IF;
440:
441: hr_utility.set_location (l_proc,85);
442: RETURN l_entitlement;
443:
444: END get_cms_entitlement;
445:
473: l_end_date DATE;
474: l_proc VARCHAR2(100) := 'PAY_NO_ABS_VALIDATION.GET_CMS_LEAVE_TAKEN';
475:
476: BEGIN
477: hr_utility.set_location (l_proc,5);
478: l_leave_taken := 0;
479:
480: l_year_st_date := trunc(p_effective_date,'YYYY');
481: hr_utility.set_location (l_proc,10);
477: hr_utility.set_location (l_proc,5);
478: l_leave_taken := 0;
479:
480: l_year_st_date := trunc(p_effective_date,'YYYY');
481: hr_utility.set_location (l_proc,10);
482:
483: -- Fetch all the leaves of the person between year start of the effective date
484: -- and effective date
485: FOR l_csr_leave IN csr_cms_leave_taken(p_person_id,l_year_st_date,p_effective_date)
484: -- and effective date
485: FOR l_csr_leave IN csr_cms_leave_taken(p_person_id,l_year_st_date,p_effective_date)
486: LOOP
487:
488: hr_utility.set_location (l_proc,15);
489: -- If the leave start and end dates are between the year start of the
490: -- effective date and effective date then added the absence days to the leave
491: -- taken and if days are not provided calculate number of days using func
492: -- get_no_work_days
490: -- effective date and effective date then added the absence days to the leave
491: -- taken and if days are not provided calculate number of days using func
492: -- get_no_work_days
493: IF ((l_csr_leave.date_start >= l_year_st_date ) AND (l_csr_leave.date_end <= p_effective_date)) THEN
494: hr_utility.set_location (l_proc,20);
495: IF NVL(l_csr_leave.absence_days,0) <> 0 THEN
496: l_leave_taken := l_leave_taken + l_csr_leave.absence_days;
497: ELSE
498: l_leave_taken := l_leave_taken + get_no_work_days(l_csr_leave.date_start,l_csr_leave.date_end);
497: ELSE
498: l_leave_taken := l_leave_taken + get_no_work_days(l_csr_leave.date_start,l_csr_leave.date_end);
499: END IF;
500: ELSE
501: hr_utility.set_location (l_proc,25);
502: -- if leave start date is less than year start date of the effective date
503: -- then calculate the leave from the year start date of the effective date
504: IF (l_csr_leave.date_start < l_year_st_date) THEN
505: hr_utility.set_location (l_proc,30);
501: hr_utility.set_location (l_proc,25);
502: -- if leave start date is less than year start date of the effective date
503: -- then calculate the leave from the year start date of the effective date
504: IF (l_csr_leave.date_start < l_year_st_date) THEN
505: hr_utility.set_location (l_proc,30);
506: l_start_date := l_year_st_date;
507: ELSE
508: hr_utility.set_location (l_proc,35);
509: l_start_date := l_csr_leave.date_start;
504: IF (l_csr_leave.date_start < l_year_st_date) THEN
505: hr_utility.set_location (l_proc,30);
506: l_start_date := l_year_st_date;
507: ELSE
508: hr_utility.set_location (l_proc,35);
509: l_start_date := l_csr_leave.date_start;
510: END IF;
511: hr_utility.set_location (l_proc,40);
512: -- if leave end date is greaten than effective date then calculate the
507: ELSE
508: hr_utility.set_location (l_proc,35);
509: l_start_date := l_csr_leave.date_start;
510: END IF;
511: hr_utility.set_location (l_proc,40);
512: -- if leave end date is greaten than effective date then calculate the
513: -- leave upto effective date
514: IF (NVL(l_csr_leave.date_end, TO_DATE('31-12-4712','DD-MM-YYYY')) > p_effective_date) THEN
515: hr_utility.set_location (l_proc,45);
511: hr_utility.set_location (l_proc,40);
512: -- if leave end date is greaten than effective date then calculate the
513: -- leave upto effective date
514: IF (NVL(l_csr_leave.date_end, TO_DATE('31-12-4712','DD-MM-YYYY')) > p_effective_date) THEN
515: hr_utility.set_location (l_proc,45);
516: l_end_date := p_effective_date;
517: ELSE
518: hr_utility.set_location (l_proc,50);
519: l_end_date := l_csr_leave.date_end;
514: IF (NVL(l_csr_leave.date_end, TO_DATE('31-12-4712','DD-MM-YYYY')) > p_effective_date) THEN
515: hr_utility.set_location (l_proc,45);
516: l_end_date := p_effective_date;
517: ELSE
518: hr_utility.set_location (l_proc,50);
519: l_end_date := l_csr_leave.date_end;
520: END IF;
521: hr_utility.set_location (l_proc,60);
522: l_leave_taken := l_leave_taken + get_no_work_days (l_start_date,l_end_date);
517: ELSE
518: hr_utility.set_location (l_proc,50);
519: l_end_date := l_csr_leave.date_end;
520: END IF;
521: hr_utility.set_location (l_proc,60);
522: l_leave_taken := l_leave_taken + get_no_work_days (l_start_date,l_end_date);
523: hr_utility.set_location (l_proc,65);
524: END IF;
525: END LOOP;
519: l_end_date := l_csr_leave.date_end;
520: END IF;
521: hr_utility.set_location (l_proc,60);
522: l_leave_taken := l_leave_taken + get_no_work_days (l_start_date,l_end_date);
523: hr_utility.set_location (l_proc,65);
524: END IF;
525: END LOOP;
526:
527: hr_utility.set_location (l_proc,70);
523: hr_utility.set_location (l_proc,65);
524: END IF;
525: END LOOP;
526:
527: hr_utility.set_location (l_proc,70);
528: RETURN l_leave_taken;
529:
530: END get_cms_leave_taken;
531: --
580: l_nav_no_warn VARCHAR2(1);
581: l_cms_max_sc_elig NUMBER;
582: l_proc VARCHAR2(100) := 'PAY_NO_ABS_VALIDATION.CMS_VALIDATION';
583: BEGIN
584: hr_utility.set_location (l_proc,5);
585: l_cms_eligible_flag := 'N' ;
586: l_cms_eligible_count := 0 ;
587: l_cms_contact_end_date := null ;
588: l_cms_child_count := 0;
589: l_warnings := '';
590: l_dis_child := 0;
591: l_nav_no_warn := 'N';
592:
593: hr_utility.set_location (l_proc,10);
594: -- Fetch the contact information for the person as of an effective date
595: -- with relation as 'Dependent Child(DC)'
596: FOR i IN child_contact ( p_person_id, 'DC', p_date_start )
597: LOOP
594: -- Fetch the contact information for the person as of an effective date
595: -- with relation as 'Dependent Child(DC)'
596: FOR i IN child_contact ( p_person_id, 'DC', p_date_start )
597: LOOP
598: hr_utility.set_location (l_proc,15);
599: l_cms_child_count := l_cms_child_count + 1;
600: i.cont_information2 := nvl(i.cont_information2,'N');
601: -- Age is less than 13 years or Age is less than 19 years with chronic flag as Yes
602: IF (i.age < 13) OR ( i.age < 19 AND i.cont_information2 = 'Y') THEN
599: l_cms_child_count := l_cms_child_count + 1;
600: i.cont_information2 := nvl(i.cont_information2,'N');
601: -- Age is less than 13 years or Age is less than 19 years with chronic flag as Yes
602: IF (i.age < 13) OR ( i.age < 19 AND i.cont_information2 = 'Y') THEN
603: hr_utility.set_location (l_proc,20);
604: l_cms_eligible_count := l_cms_eligible_count + 1 ;
605: l_cms_eligible_flag := 'Y' ;
606: l_cms_contact_end_date := i.date_end;
607: END IF;
604: l_cms_eligible_count := l_cms_eligible_count + 1 ;
605: l_cms_eligible_flag := 'Y' ;
606: l_cms_contact_end_date := i.date_end;
607: END IF;
608: hr_utility.set_location (l_proc,25);
609: IF (i.cont_information2 = 'Y') THEN
610: hr_utility.set_location (l_proc,30);
611: l_dis_child := l_dis_child + 1;
612: IF l_nav_no_warn <> 'Y' THEN
606: l_cms_contact_end_date := i.date_end;
607: END IF;
608: hr_utility.set_location (l_proc,25);
609: IF (i.cont_information2 = 'Y') THEN
610: hr_utility.set_location (l_proc,30);
611: l_dis_child := l_dis_child + 1;
612: IF l_nav_no_warn <> 'Y' THEN
613: hr_utility.set_location (l_proc,35);
614: FOR j in csr_contact_extra_info (i.contact_relationship_id)
609: IF (i.cont_information2 = 'Y') THEN
610: hr_utility.set_location (l_proc,30);
611: l_dis_child := l_dis_child + 1;
612: IF l_nav_no_warn <> 'Y' THEN
613: hr_utility.set_location (l_proc,35);
614: FOR j in csr_contact_extra_info (i.contact_relationship_id)
615: LOOP
616: hr_utility.set_location (l_proc,40);
617: IF ((j.start_date <= p_date_start) AND (j.end_date >= p_date_end)) THEN
612: IF l_nav_no_warn <> 'Y' THEN
613: hr_utility.set_location (l_proc,35);
614: FOR j in csr_contact_extra_info (i.contact_relationship_id)
615: LOOP
616: hr_utility.set_location (l_proc,40);
617: IF ((j.start_date <= p_date_start) AND (j.end_date >= p_date_end)) THEN
618: hr_utility.set_location (l_proc,45);
619: l_nav_no_warn := 'Y';
620: EXIT;
614: FOR j in csr_contact_extra_info (i.contact_relationship_id)
615: LOOP
616: hr_utility.set_location (l_proc,40);
617: IF ((j.start_date <= p_date_start) AND (j.end_date >= p_date_end)) THEN
618: hr_utility.set_location (l_proc,45);
619: l_nav_no_warn := 'Y';
620: EXIT;
621: END IF;
622: END LOOP;
624: END IF;
625: END LOOP;
626:
627: IF l_cms_child_count = 0 THEN
628: hr_utility.set_location (l_proc,50);
629: l_warnings := l_warnings || '1'; --No Registered Children
630: END IF;
631:
632: IF l_cms_eligible_flag = 'N' THEN
629: l_warnings := l_warnings || '1'; --No Registered Children
630: END IF;
631:
632: IF l_cms_eligible_flag = 'N' THEN
633: hr_utility.set_location (l_proc,55);
634: IF l_cms_child_count > 0 THEN
635: hr_utility.set_location (l_proc,60);
636: l_warnings := l_warnings || ',2'; --No Eligible Childen
637: END IF;
631:
632: IF l_cms_eligible_flag = 'N' THEN
633: hr_utility.set_location (l_proc,55);
634: IF l_cms_child_count > 0 THEN
635: hr_utility.set_location (l_proc,60);
636: l_warnings := l_warnings || ',2'; --No Eligible Childen
637: END IF;
638: ELSIF l_cms_eligible_count = 1 AND p_date_end > l_cms_contact_end_date THEN
639: hr_utility.set_location (l_proc,65);
635: hr_utility.set_location (l_proc,60);
636: l_warnings := l_warnings || ',2'; --No Eligible Childen
637: END IF;
638: ELSIF l_cms_eligible_count = 1 AND p_date_end > l_cms_contact_end_date THEN
639: hr_utility.set_location (l_proc,65);
640: l_warnings := l_warnings || ',3'; --Contact Relationship has been end date
641: END IF;
642:
643: IF p_date_start IS NOT NULL THEN
640: l_warnings := l_warnings || ',3'; --Contact Relationship has been end date
641: END IF;
642:
643: IF p_date_start IS NOT NULL THEN
644: hr_utility.set_location (l_proc,70);
645: l_cms_balance := (pay_no_abs_validation.get_cms_entitlement(p_person_id,p_date_start) - pay_no_abs_validation.get_cms_leave_taken(p_person_id,p_date_start));
646: IF ((NVL(p_absence_days,0) = 0) AND (p_date_end IS NOT NULL)) THEN
647: hr_utility.set_location (l_proc,75);
648: l_absence_days := get_no_work_days(p_date_start,p_date_end);
643: IF p_date_start IS NOT NULL THEN
644: hr_utility.set_location (l_proc,70);
645: l_cms_balance := (pay_no_abs_validation.get_cms_entitlement(p_person_id,p_date_start) - pay_no_abs_validation.get_cms_leave_taken(p_person_id,p_date_start));
646: IF ((NVL(p_absence_days,0) = 0) AND (p_date_end IS NOT NULL)) THEN
647: hr_utility.set_location (l_proc,75);
648: l_absence_days := get_no_work_days(p_date_start,p_date_end);
649: ELSE
650: hr_utility.set_location (l_proc,80);
651: l_absence_days := p_absence_days;
646: IF ((NVL(p_absence_days,0) = 0) AND (p_date_end IS NOT NULL)) THEN
647: hr_utility.set_location (l_proc,75);
648: l_absence_days := get_no_work_days(p_date_start,p_date_end);
649: ELSE
650: hr_utility.set_location (l_proc,80);
651: l_absence_days := p_absence_days;
652: END IF;
653:
654: hr_utility.set_location (l_proc,85);
650: hr_utility.set_location (l_proc,80);
651: l_absence_days := p_absence_days;
652: END IF;
653:
654: hr_utility.set_location (l_proc,85);
655: OPEN csr_get_glb_value('NO_MAX_CMS_SC_ELIGIBLE',p_date_start);
656: FETCH csr_get_glb_value INTO l_cms_max_sc_elig;
657: CLOSE csr_get_glb_value;
658:
655: OPEN csr_get_glb_value('NO_MAX_CMS_SC_ELIGIBLE',p_date_start);
656: FETCH csr_get_glb_value INTO l_cms_max_sc_elig;
657: CLOSE csr_get_glb_value;
658:
659: hr_utility.set_location (l_proc,90);
660: IF ((l_absence_days > l_cms_max_sc_elig) AND (p_cert_type = 'SC')) THEN
661: hr_utility.set_location (l_proc,95);
662: l_warnings := l_warnings || ',6'; -- Self Certification more than 3 days
663: END IF;
657: CLOSE csr_get_glb_value;
658:
659: hr_utility.set_location (l_proc,90);
660: IF ((l_absence_days > l_cms_max_sc_elig) AND (p_cert_type = 'SC')) THEN
661: hr_utility.set_location (l_proc,95);
662: l_warnings := l_warnings || ',6'; -- Self Certification more than 3 days
663: END IF;
664: IF (l_absence_days > l_cms_balance) THEN
665: hr_utility.set_location (l_proc,100);
661: hr_utility.set_location (l_proc,95);
662: l_warnings := l_warnings || ',6'; -- Self Certification more than 3 days
663: END IF;
664: IF (l_absence_days > l_cms_balance) THEN
665: hr_utility.set_location (l_proc,100);
666: l_warnings := l_warnings || ',4'; --Entitlement is less than leave days
667: END IF;
668: END IF;
669:
668: END IF;
669:
670:
671: IF NVL(p_dis_child_care,'N') = 'Y' THEN
672: hr_utility.set_location (l_proc,105);
673: IF l_dis_child = 0 THEN
674: hr_utility.set_location (l_proc,110);
675: l_warnings := l_warnings || ',5'; -- No Disabled Children Registered
676: ELSE
670:
671: IF NVL(p_dis_child_care,'N') = 'Y' THEN
672: hr_utility.set_location (l_proc,105);
673: IF l_dis_child = 0 THEN
674: hr_utility.set_location (l_proc,110);
675: l_warnings := l_warnings || ',5'; -- No Disabled Children Registered
676: ELSE
677: hr_utility.set_location (l_proc,115);
678: IF l_nav_no_warn = 'N' THEN
673: IF l_dis_child = 0 THEN
674: hr_utility.set_location (l_proc,110);
675: l_warnings := l_warnings || ',5'; -- No Disabled Children Registered
676: ELSE
677: hr_utility.set_location (l_proc,115);
678: IF l_nav_no_warn = 'N' THEN
679: hr_utility.set_location (l_proc,120);
680: l_warnings := l_warnings || ',5'; --NAV details doesn't exist
681: END IF;
675: l_warnings := l_warnings || ',5'; -- No Disabled Children Registered
676: ELSE
677: hr_utility.set_location (l_proc,115);
678: IF l_nav_no_warn = 'N' THEN
679: hr_utility.set_location (l_proc,120);
680: l_warnings := l_warnings || ',5'; --NAV details doesn't exist
681: END IF;
682: END IF;
683: END IF;
681: END IF;
682: END IF;
683: END IF;
684:
685: hr_utility.set_location (l_proc,125);
686: RETURN l_warnings;
687:
688: END cms_validation;
689: --
1031: ,p_dis_child_care => p_abs_information9
1032: ,p_absence_days => p_absence_days
1033: );
1034: IF (INSTR(l_cms_warnings,'6') > 0) THEN
1035: hr_utility.set_message(801, 'PAY_376907_NO_SC_NOT_ELIGIBLE');
1036: hr_multi_message.add
1037: (p_message_type => hr_multi_message.g_warning_msg
1038: );
1039: END IF;
1037: (p_message_type => hr_multi_message.g_warning_msg
1038: );
1039: END IF;
1040: IF (INSTR(l_cms_warnings,'1') > 0) THEN
1041: hr_utility.set_message(801, 'PAY_376934_NO_CHILD_REG');
1042: hr_multi_message.add
1043: (p_message_type => hr_multi_message.g_warning_msg
1044: );
1045: END IF;
1043: (p_message_type => hr_multi_message.g_warning_msg
1044: );
1045: END IF;
1046: IF (INSTR(l_cms_warnings,'2') > 0) THEN
1047: hr_utility.set_message(801, 'PAY_376935_NO_CHILD_MIN_AGE');
1048: hr_multi_message.add
1049: (p_message_type => hr_multi_message.g_warning_msg
1050: );
1051: END IF;
1049: (p_message_type => hr_multi_message.g_warning_msg
1050: );
1051: END IF;
1052: IF (INSTR(l_cms_warnings,'3') > 0) THEN
1053: hr_utility.set_message(801, 'PAY_376914_NO_CMS_CONT_CHECK');
1054: hr_multi_message.add
1055: (p_message_type => hr_multi_message.g_warning_msg
1056: );
1057: END IF;
1055: (p_message_type => hr_multi_message.g_warning_msg
1056: );
1057: END IF;
1058: IF (INSTR(l_cms_warnings,'4') > 0) THEN
1059: hr_utility.set_message(801, 'PAY_376936_NO_LIMIT_EXCEEED');
1060: hr_multi_message.add
1061: (p_message_type => hr_multi_message.g_warning_msg
1062: );
1063: END IF;
1061: (p_message_type => hr_multi_message.g_warning_msg
1062: );
1063: END IF;
1064: IF (INSTR(l_cms_warnings,'5') > 0) THEN
1065: hr_utility.set_message(801, 'PAY_376937_NO_NAV_REQ');
1066: hr_multi_message.add
1067: (p_message_type => hr_multi_message.g_warning_msg
1068: );
1069: END IF;