108: l_effective_end_date date;
109:
110: --
111: begin
112: hr_utility.set_location('Entering:'|| l_proc, 10);
113: --
114: -- Issue a savepoint
115: --
116: savepoint create_assignment_attribute;
426: p_effective_start_date := l_effective_start_date;
427: p_effective_end_date := l_effective_end_date;
428:
429: --
430: hr_utility.set_location(' Leaving:'||l_proc, 70);
431: exception
432: when hr_api.validate_enabled then
433: --
434: -- As the Validate_Enabled exception has been raised
444: p_object_version_number := null;
445: p_effective_start_date := null;
446: p_effective_end_date := null;
447:
448: hr_utility.set_location(' Leaving:'||l_proc, 80);
449: when others then
450: --
451: -- A validation or unexpected error has occured
452: --
454: p_assignment_attribute_id := null;
455: p_object_version_number := null;
456: p_effective_start_date := null;
457: p_effective_end_date := null;
458: hr_utility.set_location(' Leaving:'||l_proc, 90);
459: raise;
460: end create_assignment_attribute;
461: --
462: --
621: l_days_tobe_added NUMBER:=0;
622: l_calc_start_day number:=0;
623: --10129497 End
624: begin
625: hr_utility.set_location('Entering:'|| l_proc, 10);
626: --
627: -- Issue a savepoint
628: --
629: savepoint update_assignment_attribute;
637:
638: --10129497 begin
639: l_start_day := p_start_day;
640:
641: hr_utility.trace(' p_datetrack_mode '||p_datetrack_mode);
642: hr_utility.trace(' p_start_day ' ||p_start_day);
643:
644: open c_contract_workpattern;
645: fetch c_contract_workpattern into l_contract_workpattern;
638: --10129497 begin
639: l_start_day := p_start_day;
640:
641: hr_utility.trace(' p_datetrack_mode '||p_datetrack_mode);
642: hr_utility.trace(' p_start_day ' ||p_start_day);
643:
644: open c_contract_workpattern;
645: fetch c_contract_workpattern into l_contract_workpattern;
646: close c_contract_workpattern;
661: OPEN c_get_days(l_contract_workpattern.work_pattern);
662: FETCH c_get_days INTO l_wp_days;
663: CLOSE c_get_days;
664:
665: hr_utility.trace(' l_start_day '||l_start_day);
666: hr_utility.trace('substr(l_start_day,5) '||substr(l_start_day,5));
667:
668: l_no_days := p_effective_date - l_contract_workpattern.effective_start_date;
669: l_days_tobe_added := to_number(substr(l_start_day,5));
662: FETCH c_get_days INTO l_wp_days;
663: CLOSE c_get_days;
664:
665: hr_utility.trace(' l_start_day '||l_start_day);
666: hr_utility.trace('substr(l_start_day,5) '||substr(l_start_day,5));
667:
668: l_no_days := p_effective_date - l_contract_workpattern.effective_start_date;
669: l_days_tobe_added := to_number(substr(l_start_day,5));
670:
667:
668: l_no_days := p_effective_date - l_contract_workpattern.effective_start_date;
669: l_days_tobe_added := to_number(substr(l_start_day,5));
670:
671: hr_utility.trace(' Current start day '||l_days_tobe_added);
672: hr_utility.trace(' Number of days in work pattern '||l_wp_days);
673: hr_utility.trace(' Number of days between last eff start dt and session dt '||l_no_days);
674: hr_utility.trace(' Sum of l_days_tobe_added and l_no_days '|| (l_days_tobe_added + l_no_days));
675: hr_utility.trace(' mod(l_days_tobe_added + mod(l_no_days,l_wp_days),l_wp_days) '|| mod(l_days_tobe_added + mod(l_no_days,l_wp_days),l_wp_days));
668: l_no_days := p_effective_date - l_contract_workpattern.effective_start_date;
669: l_days_tobe_added := to_number(substr(l_start_day,5));
670:
671: hr_utility.trace(' Current start day '||l_days_tobe_added);
672: hr_utility.trace(' Number of days in work pattern '||l_wp_days);
673: hr_utility.trace(' Number of days between last eff start dt and session dt '||l_no_days);
674: hr_utility.trace(' Sum of l_days_tobe_added and l_no_days '|| (l_days_tobe_added + l_no_days));
675: hr_utility.trace(' mod(l_days_tobe_added + mod(l_no_days,l_wp_days),l_wp_days) '|| mod(l_days_tobe_added + mod(l_no_days,l_wp_days),l_wp_days));
676:
669: l_days_tobe_added := to_number(substr(l_start_day,5));
670:
671: hr_utility.trace(' Current start day '||l_days_tobe_added);
672: hr_utility.trace(' Number of days in work pattern '||l_wp_days);
673: hr_utility.trace(' Number of days between last eff start dt and session dt '||l_no_days);
674: hr_utility.trace(' Sum of l_days_tobe_added and l_no_days '|| (l_days_tobe_added + l_no_days));
675: hr_utility.trace(' mod(l_days_tobe_added + mod(l_no_days,l_wp_days),l_wp_days) '|| mod(l_days_tobe_added + mod(l_no_days,l_wp_days),l_wp_days));
676:
677: l_calc_start_day := mod(l_days_tobe_added + l_no_days,l_wp_days);
670:
671: hr_utility.trace(' Current start day '||l_days_tobe_added);
672: hr_utility.trace(' Number of days in work pattern '||l_wp_days);
673: hr_utility.trace(' Number of days between last eff start dt and session dt '||l_no_days);
674: hr_utility.trace(' Sum of l_days_tobe_added and l_no_days '|| (l_days_tobe_added + l_no_days));
675: hr_utility.trace(' mod(l_days_tobe_added + mod(l_no_days,l_wp_days),l_wp_days) '|| mod(l_days_tobe_added + mod(l_no_days,l_wp_days),l_wp_days));
676:
677: l_calc_start_day := mod(l_days_tobe_added + l_no_days,l_wp_days);
678: hr_utility.trace(' Calculated start day '||l_calc_start_day);
671: hr_utility.trace(' Current start day '||l_days_tobe_added);
672: hr_utility.trace(' Number of days in work pattern '||l_wp_days);
673: hr_utility.trace(' Number of days between last eff start dt and session dt '||l_no_days);
674: hr_utility.trace(' Sum of l_days_tobe_added and l_no_days '|| (l_days_tobe_added + l_no_days));
675: hr_utility.trace(' mod(l_days_tobe_added + mod(l_no_days,l_wp_days),l_wp_days) '|| mod(l_days_tobe_added + mod(l_no_days,l_wp_days),l_wp_days));
676:
677: l_calc_start_day := mod(l_days_tobe_added + l_no_days,l_wp_days);
678: hr_utility.trace(' Calculated start day '||l_calc_start_day);
679: if l_calc_start_day = 0 then
674: hr_utility.trace(' Sum of l_days_tobe_added and l_no_days '|| (l_days_tobe_added + l_no_days));
675: hr_utility.trace(' mod(l_days_tobe_added + mod(l_no_days,l_wp_days),l_wp_days) '|| mod(l_days_tobe_added + mod(l_no_days,l_wp_days),l_wp_days));
676:
677: l_calc_start_day := mod(l_days_tobe_added + l_no_days,l_wp_days);
678: hr_utility.trace(' Calculated start day '||l_calc_start_day);
679: if l_calc_start_day = 0 then
680: l_calc_start_day := l_wp_days;
681: end if;
682:
683: --l_start_day := substr(l_start_day,1,4)|| lpad( mod(l_days_tobe_added + mod(l_no_days,l_wp_days),l_wp_days),2,'0');
684:
685: l_start_day := substr(l_start_day,1,4)|| lpad(l_calc_start_day,2,'0');
686:
687: hr_utility.trace(' Modified l_start_day '||l_start_day);
688: if l_calc_start_day > l_wp_days then
689: hr_utility.trace('Error: The calculated Start day is greater than the number of days in Workpattern');
690: raise_application_error(-20001,' Error: The calculated Start day is greater than the number of days in Workpattern ');
691: end if;
685: l_start_day := substr(l_start_day,1,4)|| lpad(l_calc_start_day,2,'0');
686:
687: hr_utility.trace(' Modified l_start_day '||l_start_day);
688: if l_calc_start_day > l_wp_days then
689: hr_utility.trace('Error: The calculated Start day is greater than the number of days in Workpattern');
690: raise_application_error(-20001,' Error: The calculated Start day is greater than the number of days in Workpattern ');
691: end if;
692: end if;
693: end if;
1002: p_effective_start_date := l_effective_start_date;
1003: p_effective_end_date := l_effective_end_date;
1004:
1005: --
1006: hr_utility.set_location(' Leaving:'||l_proc, 70);
1007: exception
1008: when hr_api.validate_enabled then
1009: --
1010: -- As the Validate_Enabled exception has been raised
1019: p_object_version_number := null;
1020: p_effective_start_date := null;
1021: p_effective_end_date := null;
1022:
1023: hr_utility.set_location(' Leaving:'||l_proc, 80);
1024: when others then
1025: --
1026: -- A validation or unexpected error has occured
1027: --
1028: rollback to update_assignment_attribute;
1029: p_object_version_number := l_object_version_number;
1030: p_effective_start_date := null;
1031: p_effective_end_date := null;
1032: hr_utility.set_location(' Leaving:'||l_proc, 90);
1033: raise;
1034: end update_assignment_attribute;
1035: --
1036: --
1058: l_effective_end_date date;
1059: l_object_version_number number;
1060:
1061: begin
1062: hr_utility.set_location('Entering:'|| l_proc, 10);
1063: --
1064: -- Issue a savepoint
1065: --
1066: savepoint delete_assignment_attribute;
1143: p_object_version_number := l_object_version_number;
1144: p_effective_start_date := l_effective_start_date;
1145: p_effective_end_date := l_effective_end_date;
1146: --
1147: hr_utility.set_location(' Leaving:'||l_proc, 70);
1148: exception
1149: when hr_api.validate_enabled then
1150: --
1151: -- As the Validate_Enabled exception has been raised
1159: p_object_version_number := null;
1160: p_effective_start_date := null;
1161: p_effective_end_date := null;
1162: --
1163: hr_utility.set_location(' Leaving:'||l_proc, 80);
1164: when others then
1165: --
1166: -- A validation or unexpected error has occured
1167: --
1168: rollback to delete_assignment_attribute;
1169: p_object_version_number := l_object_version_number;
1170: p_effective_start_date := null;
1171: p_effective_end_date := null;
1172: hr_utility.set_location(' Leaving:'||l_proc, 90);
1173: raise;
1174: end delete_assignment_attribute;
1175:
1176: --