21: --
22: begin
23: if p_status = 'SUPERVISOR' then
24: begin
25: hr_utility.set_location(l_proc,10);
26: Select 'X'
27: into v_dummy
28: from sys.dual
29: where exists (select 'Assignments Exist'
65: return;
66: end;
67: elsif p_status = 'EVENT' then
68: begin
69: hr_utility.set_location(l_proc,30);
70: select 'X'
71: into v_dummy
72: from sys.dual
73: where exists ( select 'Events exist'
89: end;
90: end if;
91: if p_status = 'INTERVIEW' then
92: begin
93: hr_utility.set_location(l_proc,40);
94: select 'X'
95: into v_dummy
96: from sys.dual
97: where exists(select 'Interview rows exist'
121: end;
122: end if;
123: if p_status = 'REVIEW' then
124: begin
125: hr_utility.set_location(l_proc,50);
126: select 'X'
127: into v_dummy
128: from sys.dual
129: where exists ( select 'Perf Review rows exist'
139: end;
140: end if;
141: if p_status = 'RECRUITER' then
142: begin
143: hr_utility.set_location(l_proc,60);
144: select 'X'
145: into v_dummy
146: from sys.dual
147: where exists (select 'Recruiter for vacancy'
197: l_proc varchar2(100) := g_package||'.actual_termination_emp';
198:
199: begin
200:
201: hr_utility.set_location('Entering '||l_proc,10);
202:
203: if p_last_standard_process_date is null
204: then
205: /* No LSPD has been passed. To preserve the previous
235: ,p_alu_change_warning => l_alu_change_warning);
236:
237: p_last_standard_process_date := l_last_std_process_date_out;
238:
239: hr_utility.set_location('Leaving '||l_proc,40);
240:
241: end actual_termination_emp;
242: --
243: -- 120.2 (END)
288: l_proc varchar2(100) := g_package||'.actual_termination_emp';
289:
290: begin
291:
292: hr_utility.set_location('Entering '||l_proc,10);
293:
294: if p_last_standard_process_date is null
295: then
296: /* No LSPD has been passed. To preserve the previous
342: --
343:
344: p_last_standard_process_date := l_last_std_process_date_out;
345:
346: hr_utility.set_location('Leaving '||l_proc,40);
347:
348: end actual_termination_emp;
349:
350: --
846:
847: FOR csr_events IN csr_del_events
848: LOOP
849:
850: hr_utility.set_location(l_proc||':deleting EVENTS', 340);
851:
852: hr_utility.set_location('csr_events.event_id '||csr_events.event_id, 342);
853: hr_utility.set_location('csr_events.object_version_number '||csr_events.object_version_number, 342);
854:
848: LOOP
849:
850: hr_utility.set_location(l_proc||':deleting EVENTS', 340);
851:
852: hr_utility.set_location('csr_events.event_id '||csr_events.event_id, 342);
853: hr_utility.set_location('csr_events.object_version_number '||csr_events.object_version_number, 342);
854:
855: DELETE from per_bookings
856: WHERE event_id = csr_events.event_id;
849:
850: hr_utility.set_location(l_proc||':deleting EVENTS', 340);
851:
852: hr_utility.set_location('csr_events.event_id '||csr_events.event_id, 342);
853: hr_utility.set_location('csr_events.object_version_number '||csr_events.object_version_number, 342);
854:
855: DELETE from per_bookings
856: WHERE event_id = csr_events.event_id;
857:
854:
855: DELETE from per_bookings
856: WHERE event_id = csr_events.event_id;
857:
858: hr_utility.set_location(' after bookings ', 342);
859:
860: per_events_api.delete_event(
861: p_event_id => csr_events.event_id ,
862: p_object_version_number => csr_events.object_version_number);
862: p_object_version_number => csr_events.object_version_number);
863:
864:
865: END LOOP;
866: hr_utility.set_location(l_proc||': end deleting Events', 350);
867: END;
868:
869: PROCEDURE delete_perf(p_person_id IN NUMBER,p_term_date date) IS
870:
887:
888: FOR csr_perf IN csr_perfs(p_person_id, p_term_date )
889: LOOP
890:
891: hr_utility.set_location(l_proc||':deleting perfs events', 340);
892:
893: l_perf_obj_number:=csr_perf.object_version_number;
894:
895: hr_perf_review_api.delete_perf_review(
903: --
904: IF l_prev_event <> csr_perf.event_id THEN
905: IF l_prev_event <> -1 THEN
906: BEGIN
907: hr_utility.trace('Deleting the event :'||l_prev_event);
908: DELETE from per_bookings
909: WHERE event_id = l_prev_event;
910: per_events_api.delete_event(
911: p_event_id =>l_prev_event,
911: p_event_id =>l_prev_event,
912: p_object_version_number =>l_prev_ovn);
913: EXCEPTION
914: WHEN Others THEN
915: hr_utility.trace('Error deleting event');
916: hr_utility.trace(SUBSTR(sqlerrm,1,240));
917: END;
918: END IF;
919: l_prev_event := csr_perf.event_id;
912: p_object_version_number =>l_prev_ovn);
913: EXCEPTION
914: WHEN Others THEN
915: hr_utility.trace('Error deleting event');
916: hr_utility.trace(SUBSTR(sqlerrm,1,240));
917: END;
918: END IF;
919: l_prev_event := csr_perf.event_id;
920: l_prev_ovn := csr_perf.object_version_number;
921: END IF;
922: END LOOP;
923: IF l_prev_event <> -1 THEN
924: BEGIN
925: hr_utility.trace('Outside loop.. deleting:'||l_prev_event);
926: DELETE from per_bookings
927: WHERE event_id = l_prev_event;
928: per_events_api.delete_event(
929: p_event_id =>l_prev_event,
929: p_event_id =>l_prev_event,
930: p_object_version_number =>l_prev_ovn);
931: EXCEPTION
932: WHEN Others THEN
933: hr_utility.trace('Error deleting event');
934: hr_utility.trace('this can be ignored as the');
935: hr_utility.trace('same event may be referred in old performance review');
936: hr_utility.trace('checked with Krishna G on this');
937:
930: p_object_version_number =>l_prev_ovn);
931: EXCEPTION
932: WHEN Others THEN
933: hr_utility.trace('Error deleting event');
934: hr_utility.trace('this can be ignored as the');
935: hr_utility.trace('same event may be referred in old performance review');
936: hr_utility.trace('checked with Krishna G on this');
937:
938: hr_utility.trace(SUBSTR(sqlerrm,1,240));
931: EXCEPTION
932: WHEN Others THEN
933: hr_utility.trace('Error deleting event');
934: hr_utility.trace('this can be ignored as the');
935: hr_utility.trace('same event may be referred in old performance review');
936: hr_utility.trace('checked with Krishna G on this');
937:
938: hr_utility.trace(SUBSTR(sqlerrm,1,240));
939: END;
932: WHEN Others THEN
933: hr_utility.trace('Error deleting event');
934: hr_utility.trace('this can be ignored as the');
935: hr_utility.trace('same event may be referred in old performance review');
936: hr_utility.trace('checked with Krishna G on this');
937:
938: hr_utility.trace(SUBSTR(sqlerrm,1,240));
939: END;
940: END IF;
934: hr_utility.trace('this can be ignored as the');
935: hr_utility.trace('same event may be referred in old performance review');
936: hr_utility.trace('checked with Krishna G on this');
937:
938: hr_utility.trace(SUBSTR(sqlerrm,1,240));
939: END;
940: END IF;
941: hr_utility.set_location(l_proc||': end perfs events', 340);
942: END;
937:
938: hr_utility.trace(SUBSTR(sqlerrm,1,240));
939: END;
940: END IF;
941: hr_utility.set_location(l_proc||': end perfs events', 340);
942: END;
943: --9656031
944:
945: --
943: --9656031
944:
945: --
946: begin
947: hr_utility.set_location('Entering:'|| l_proc, 10);
948:
949: --dparthas
950: OPEN get_person_info;
951: FETCH get_person_info INTO l_person_id2;
966: l_actual_termination_date := trunc(p_actual_termination_date);
967: l_effective_date := trunc(p_effective_date);
968: l_applicant_number := hr_api.g_varchar2;
969: --
970: hr_utility.set_location(l_proc, 20);
971: --
972: -- Validation in addition to Table Handlers
973: --
974: -- Check period of service and get business group details for validation.
987: --
988: -- Bug number 4900409 - validating actual termination date cannot be future date
989: -- if leaving reason is 'D' Deceased
990:
991: hr_utility.set_location(' Check Actual termination date for Deceased Leaving Reason ' , 25);
992: hr_utility.set_location( ' p_leaving_reason ' ||p_leaving_reason , 25);
993: hr_utility.set_location( ' p_actual_termination_date' ||p_leaving_reason , 25);
994:
995: IF p_leaving_reason = 'D' THEN
988: -- Bug number 4900409 - validating actual termination date cannot be future date
989: -- if leaving reason is 'D' Deceased
990:
991: hr_utility.set_location(' Check Actual termination date for Deceased Leaving Reason ' , 25);
992: hr_utility.set_location( ' p_leaving_reason ' ||p_leaving_reason , 25);
993: hr_utility.set_location( ' p_actual_termination_date' ||p_leaving_reason , 25);
994:
995: IF p_leaving_reason = 'D' THEN
996: IF p_actual_termination_date > SYSDATE THEN
989: -- if leaving reason is 'D' Deceased
990:
991: hr_utility.set_location(' Check Actual termination date for Deceased Leaving Reason ' , 25);
992: hr_utility.set_location( ' p_leaving_reason ' ||p_leaving_reason , 25);
993: hr_utility.set_location( ' p_actual_termination_date' ||p_leaving_reason , 25);
994:
995: IF p_leaving_reason = 'D' THEN
996: IF p_actual_termination_date > SYSDATE THEN
997:
1000:
1001: END IF;
1002: END IF;
1003:
1004: hr_utility.set_location(l_proc, 30);
1005: --
1006: open csr_get_derived_details;
1007: fetch csr_get_derived_details
1008: into l_business_group_id
1018: --
1019: if csr_get_derived_details%NOTFOUND
1020: then
1021: --
1022: hr_utility.set_location(l_proc, 40);
1023: --
1024: close csr_get_derived_details;
1025: --
1026: hr_utility.set_message(801,'HR_6537_EMP_DATE_START'); --Bug 3929991.
1022: hr_utility.set_location(l_proc, 40);
1023: --
1024: close csr_get_derived_details;
1025: --
1026: hr_utility.set_message(801,'HR_6537_EMP_DATE_START'); --Bug 3929991.
1027: hr_utility.raise_error;
1028: end if;
1029: --
1030: close csr_get_derived_details;
1023: --
1024: close csr_get_derived_details;
1025: --
1026: hr_utility.set_message(801,'HR_6537_EMP_DATE_START'); --Bug 3929991.
1027: hr_utility.raise_error;
1028: end if;
1029: --
1030: close csr_get_derived_details;
1031:
1039: /* and (p_actual_termination_date between l_src_bg_rec.START_DATE
1040: and nvl(l_src_bg_rec.END_DATE,hr_api.g_eot))) */
1041: then
1042:
1043: hr_utility.set_message(800, 'HR_449770_GLD_SRC_BG');
1044: hr_utility.raise_error;
1045:
1046: end if;
1047: end LOOP;
1040: and nvl(l_src_bg_rec.END_DATE,hr_api.g_eot))) */
1041: then
1042:
1043: hr_utility.set_message(800, 'HR_449770_GLD_SRC_BG');
1044: hr_utility.raise_error;
1045:
1046: end if;
1047: end LOOP;
1048:
1055: /* and (p_actual_termination_date between l_dest_bg_rec.START_DATE
1056: and nvl(l_dest_bg_rec.END_DATE,hr_api.g_eot))) */
1057: then
1058:
1059: hr_utility.set_message(800, 'HR_449771_GLD_DEST_BG');
1060: hr_utility.raise_error;
1061:
1062: end if;
1063: end LOOP;
1056: and nvl(l_dest_bg_rec.END_DATE,hr_api.g_eot))) */
1057: then
1058:
1059: hr_utility.set_message(800, 'HR_449771_GLD_DEST_BG');
1060: hr_utility.raise_error;
1061:
1062: end if;
1063: end LOOP;
1064:
1152: end;
1153: --
1154: -- End of API User Hook for the before hook of actual_termination
1155: --
1156: hr_utility.set_location(l_proc, 50);
1157: hr_utility.set_location('Saved ATD: '||l_saved_atd, 51);
1158: hr_utility.set_location('Saved LSPD: '||l_saved_lspd, 51);
1159: hr_utility.set_location('Passed LSPD: '||l_last_standard_process_date, 51);
1160: --
1153: --
1154: -- End of API User Hook for the before hook of actual_termination
1155: --
1156: hr_utility.set_location(l_proc, 50);
1157: hr_utility.set_location('Saved ATD: '||l_saved_atd, 51);
1158: hr_utility.set_location('Saved LSPD: '||l_saved_lspd, 51);
1159: hr_utility.set_location('Passed LSPD: '||l_last_standard_process_date, 51);
1160: --
1161: -- Determine if we are setting LSPD as a separate call to the API. i.e. ATD
1154: -- End of API User Hook for the before hook of actual_termination
1155: --
1156: hr_utility.set_location(l_proc, 50);
1157: hr_utility.set_location('Saved ATD: '||l_saved_atd, 51);
1158: hr_utility.set_location('Saved LSPD: '||l_saved_lspd, 51);
1159: hr_utility.set_location('Passed LSPD: '||l_last_standard_process_date, 51);
1160: --
1161: -- Determine if we are setting LSPD as a separate call to the API. i.e. ATD
1162: -- has already been saved with a null LSPD,
1155: --
1156: hr_utility.set_location(l_proc, 50);
1157: hr_utility.set_location('Saved ATD: '||l_saved_atd, 51);
1158: hr_utility.set_location('Saved LSPD: '||l_saved_lspd, 51);
1159: hr_utility.set_location('Passed LSPD: '||l_last_standard_process_date, 51);
1160: --
1161: -- Determine if we are setting LSPD as a separate call to the API. i.e. ATD
1162: -- has already been saved with a null LSPD,
1163: --
1168: -- We are processing a save to LSPD as a separate call to this API.
1169: --
1170: if p_last_standard_process_date = hr_api.g_date
1171: then
1172: hr_utility.set_location(l_proc, 60);
1173: --
1174: -- Last standard process date is the default value i.e.
1175: -- it was not passed to the API => derive it.
1176: --
1182: --
1183: if csr_get_max_tpe_end_date%NOTFOUND
1184: then
1185: --
1186: hr_utility.set_location(l_proc, 70);
1187: --
1188: close csr_get_max_tpe_end_date;
1189: --
1190: -- As the cursor should always return at least a null value, this
1189: --
1190: -- As the cursor should always return at least a null value, this
1191: -- should never happen!
1192: --
1193: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
1194: hr_utility.set_message_token('PROCEDURE', l_proc);
1195: hr_utility.set_message_token('STEP','175');
1196: hr_utility.raise_error;
1197: end if;
1190: -- As the cursor should always return at least a null value, this
1191: -- should never happen!
1192: --
1193: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
1194: hr_utility.set_message_token('PROCEDURE', l_proc);
1195: hr_utility.set_message_token('STEP','175');
1196: hr_utility.raise_error;
1197: end if;
1198: --
1191: -- should never happen!
1192: --
1193: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
1194: hr_utility.set_message_token('PROCEDURE', l_proc);
1195: hr_utility.set_message_token('STEP','175');
1196: hr_utility.raise_error;
1197: end if;
1198: --
1199: close csr_get_max_tpe_end_date;
1192: --
1193: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
1194: hr_utility.set_message_token('PROCEDURE', l_proc);
1195: hr_utility.set_message_token('STEP','175');
1196: hr_utility.raise_error;
1197: end if;
1198: --
1199: close csr_get_max_tpe_end_date;
1200: --
1197: end if;
1198: --
1199: close csr_get_max_tpe_end_date;
1200: --
1201: hr_utility.set_location(l_proc, 80);
1202: --
1203: if l_max_tpe_end_date is not null
1204: then
1205: --
1202: --
1203: if l_max_tpe_end_date is not null
1204: then
1205: --
1206: hr_utility.set_location(l_proc, 90);
1207: --
1208: -- A time period end date has been found, so set the last standard
1209: -- process date to that.
1210: --
1210: --
1211: l_last_standard_process_date := l_max_tpe_end_date;
1212: else
1213: --
1214: hr_utility.set_location(l_proc, 100);
1215: --
1216: -- Either there was not an assignment assigned to a payroll, or
1217: -- there was no time period for that payroll as of the actual
1218: -- termination date. It doesn't matter which as we will default
1311: --
1312: if l_cr_entries_changed_warn = 'S' or
1313: l_entries_changed_warning = 'S' then
1314: --
1315: hr_utility.set_location(l_proc, 110);
1316: --
1317: l_entries_changed_warning := 'S';
1318: --
1319: elsif l_cr_entries_changed_warn = 'Y' or
1318: --
1319: elsif l_cr_entries_changed_warn = 'Y' or
1320: l_entries_changed_warning = 'Y' then
1321: --
1322: hr_utility.set_location(l_proc, 120);
1323: --
1324: l_entries_changed_warning := 'Y';
1325:
1326: else
1324: l_entries_changed_warning := 'Y';
1325:
1326: else
1327: --
1328: hr_utility.set_location(l_proc, 130);
1329: --
1330: l_entries_changed_warning := 'N';
1331:
1332: end if;
1343: if l_system_person_type <> 'EMP' and
1344: l_system_person_type <> 'EMP_APL'
1345: then
1346: --
1347: hr_utility.set_location(l_proc, 140);
1348: --
1349: hr_utility.set_message(801,'HR_51005_ASG_INV_PER_TYPE');
1350: hr_utility.raise_error;
1351: end if;
1345: then
1346: --
1347: hr_utility.set_location(l_proc, 140);
1348: --
1349: hr_utility.set_message(801,'HR_51005_ASG_INV_PER_TYPE');
1350: hr_utility.raise_error;
1351: end if;
1352: --
1353: -- PTU changes: must maintain default of correct "ex-emp" type on
1346: --
1347: hr_utility.set_location(l_proc, 140);
1348: --
1349: hr_utility.set_message(801,'HR_51005_ASG_INV_PER_TYPE');
1350: hr_utility.raise_error;
1351: end if;
1352: --
1353: -- PTU changes: must maintain default of correct "ex-emp" type on
1354: -- per_all_people_f
1364: l_system_person_type1);
1365: --
1366: -- PTU : End of Changes
1367: --
1368: hr_utility.set_location(l_proc, 150);
1369: --
1370: -- Check that there are not any future changes to the person.
1371: -- ER FPT
1372: open csr_future_per_changes;
1372: open csr_future_per_changes;
1373: fetch csr_future_per_changes into l_exists;
1374: if csr_future_per_changes%found then
1375: l_future_per_rows := 'Y';
1376: hr_utility.set_location(l_proc, 160);
1377: if (nvl(fnd_profile.value('HR_ALLOW_FPT_UPDATES'),'N') = 'Y') then
1378:
1379: hr_utility.set_location(l_proc, 170);
1380: open fpt_future_ptu_changes;
1375: l_future_per_rows := 'Y';
1376: hr_utility.set_location(l_proc, 160);
1377: if (nvl(fnd_profile.value('HR_ALLOW_FPT_UPDATES'),'N') = 'Y') then
1378:
1379: hr_utility.set_location(l_proc, 170);
1380: open fpt_future_ptu_changes;
1381: fetch fpt_future_ptu_changes into l_exists;
1382: if fpt_future_ptu_changes%found then
1383: hr_utility.set_location(l_proc, 175);
1379: hr_utility.set_location(l_proc, 170);
1380: open fpt_future_ptu_changes;
1381: fetch fpt_future_ptu_changes into l_exists;
1382: if fpt_future_ptu_changes%found then
1383: hr_utility.set_location(l_proc, 175);
1384: hr_utility.set_message(801,'HR_7957_PDS_INV_ATT_FUTURE');
1385: hr_utility.raise_error;
1386: end if;
1387: close fpt_future_ptu_changes;
1380: open fpt_future_ptu_changes;
1381: fetch fpt_future_ptu_changes into l_exists;
1382: if fpt_future_ptu_changes%found then
1383: hr_utility.set_location(l_proc, 175);
1384: hr_utility.set_message(801,'HR_7957_PDS_INV_ATT_FUTURE');
1385: hr_utility.raise_error;
1386: end if;
1387: close fpt_future_ptu_changes;
1388: else
1381: fetch fpt_future_ptu_changes into l_exists;
1382: if fpt_future_ptu_changes%found then
1383: hr_utility.set_location(l_proc, 175);
1384: hr_utility.set_message(801,'HR_7957_PDS_INV_ATT_FUTURE');
1385: hr_utility.raise_error;
1386: end if;
1387: close fpt_future_ptu_changes;
1388: else
1389: hr_utility.set_location(l_proc, 177);
1385: hr_utility.raise_error;
1386: end if;
1387: close fpt_future_ptu_changes;
1388: else
1389: hr_utility.set_location(l_proc, 177);
1390: hr_utility.set_message(801,'HR_7957_PDS_INV_ATT_FUTURE');
1391: hr_utility.raise_error;
1392: end if;
1393: end if;
1386: end if;
1387: close fpt_future_ptu_changes;
1388: else
1389: hr_utility.set_location(l_proc, 177);
1390: hr_utility.set_message(801,'HR_7957_PDS_INV_ATT_FUTURE');
1391: hr_utility.raise_error;
1392: end if;
1393: end if;
1394: close csr_future_per_changes;
1387: close fpt_future_ptu_changes;
1388: else
1389: hr_utility.set_location(l_proc, 177);
1390: hr_utility.set_message(801,'HR_7957_PDS_INV_ATT_FUTURE');
1391: hr_utility.raise_error;
1392: end if;
1393: end if;
1394: close csr_future_per_changes;
1395:
1403: ,p_business_group_id => l_business_group_id
1404: ,p_expected_sys_type => 'EX_EMP'
1405: );
1406: --
1407: hr_utility.set_location(l_proc, 180);
1408: --
1409: -- If p_assignment_status_type_id is g_number then derive it's default value,
1410: -- otherwise validate it.
1411: --
1408: --
1409: -- If p_assignment_status_type_id is g_number then derive it's default value,
1410: -- otherwise validate it.
1411: --
1412: hr_utility.set_location(l_proc||' asg stat type : '||l_assignment_status_type_id||' per bg id '||l_business_group_id||' leg code '||l_legislation_code,900);
1413: --
1414: per_asg_bus1.chk_assignment_status_type
1415: (p_assignment_status_type_id => l_assignment_status_type_id
1416: ,p_business_group_id => l_business_group_id
1417: ,p_legislation_code => l_legislation_code
1418: ,p_expected_system_status => 'TERM_ASSIGN'
1419: );
1420: --
1421: hr_utility.set_location(l_proc, 190);
1422: --
1423: -- Validate/derive the last standard process date.
1424: --
1425: --
1422: --
1423: -- Validate/derive the last standard process date.
1424: --
1425: --
1426: hr_utility.set_location(l_proc, 200);
1427: --
1428: -- At the end of the following code we will either have a valid date
1429: -- for l_last_standard_process_date or it will be NULL. It can only be
1430: -- NULL if explicitly passed as such to the API.
1432: if l_last_standard_process_date is not null and
1433: l_last_standard_process_date <> hr_api.g_date
1434: then
1435: --
1436: hr_utility.set_location(l_proc, 210);
1437: --
1438: -- Check that the last standard process date is on or after the actual
1439: -- termination date.
1440: --
1440: --
1441: if not l_last_standard_process_date >= l_actual_termination_date
1442: then
1443: --
1444: hr_utility.set_location(l_proc, 220);
1445: --
1446: hr_utility.set_message(801,'HR_7505_PDS_INV_LSP_ATT_DT');
1447: hr_utility.raise_error;
1448: end if;
1442: then
1443: --
1444: hr_utility.set_location(l_proc, 220);
1445: --
1446: hr_utility.set_message(801,'HR_7505_PDS_INV_LSP_ATT_DT');
1447: hr_utility.raise_error;
1448: end if;
1449: elsif l_last_standard_process_date = hr_api.g_date then
1450: --
1443: --
1444: hr_utility.set_location(l_proc, 220);
1445: --
1446: hr_utility.set_message(801,'HR_7505_PDS_INV_LSP_ATT_DT');
1447: hr_utility.raise_error;
1448: end if;
1449: elsif l_last_standard_process_date = hr_api.g_date then
1450: --
1451: hr_utility.set_location(l_proc, 230);
1447: hr_utility.raise_error;
1448: end if;
1449: elsif l_last_standard_process_date = hr_api.g_date then
1450: --
1451: hr_utility.set_location(l_proc, 230);
1452: --
1453: -- Last standard process date is the default value i.e.
1454: -- it was not passed to the API => derive it.
1455: --
1461: --
1462: if csr_get_max_tpe_end_date%NOTFOUND
1463: then
1464: --
1465: hr_utility.set_location(l_proc, 240);
1466: --
1467: close csr_get_max_tpe_end_date;
1468: --
1469: -- As the cursor should always return at least a null value, this
1468: --
1469: -- As the cursor should always return at least a null value, this
1470: -- should never happen!
1471: --
1472: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
1473: hr_utility.set_message_token('PROCEDURE', l_proc);
1474: hr_utility.set_message_token('STEP','175');
1475: hr_utility.raise_error;
1476: end if;
1469: -- As the cursor should always return at least a null value, this
1470: -- should never happen!
1471: --
1472: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
1473: hr_utility.set_message_token('PROCEDURE', l_proc);
1474: hr_utility.set_message_token('STEP','175');
1475: hr_utility.raise_error;
1476: end if;
1477: --
1470: -- should never happen!
1471: --
1472: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
1473: hr_utility.set_message_token('PROCEDURE', l_proc);
1474: hr_utility.set_message_token('STEP','175');
1475: hr_utility.raise_error;
1476: end if;
1477: --
1478: close csr_get_max_tpe_end_date;
1471: --
1472: hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
1473: hr_utility.set_message_token('PROCEDURE', l_proc);
1474: hr_utility.set_message_token('STEP','175');
1475: hr_utility.raise_error;
1476: end if;
1477: --
1478: close csr_get_max_tpe_end_date;
1479: --
1476: end if;
1477: --
1478: close csr_get_max_tpe_end_date;
1479: --
1480: hr_utility.set_location(l_proc, 250);
1481: --
1482: if l_max_tpe_end_date is not null
1483: then
1484: --
1481: --
1482: if l_max_tpe_end_date is not null
1483: then
1484: --
1485: hr_utility.set_location(l_proc, 260);
1486: --
1487: -- A time period end date has been found, so set the last standard
1488: -- process date to that.
1489: --
1489: --
1490: l_last_standard_process_date := l_max_tpe_end_date;
1491: else
1492: --
1493: hr_utility.set_location(l_proc, 270);
1494: --
1495: -- Either there was not an assignment assigned to a payroll, or
1496: -- there was no time period for that payroll as of the actual
1497: -- termination date. It doesn't matter which as we will default
1516: -- Bug# 3086210 Modified the Warning message.
1517: --
1518: --
1519: IF l_action_chk = 'W' THEN
1520: hr_utility.set_message(800,'PER_449053_EMP_TERM_FUT_ERROR'); -- Modified from PER_289973 TO PER_449053
1521: hr_utility.set_warning;
1522: END IF;
1523: --
1524: --
1517: --
1518: --
1519: IF l_action_chk = 'W' THEN
1520: hr_utility.set_message(800,'PER_449053_EMP_TERM_FUT_ERROR'); -- Modified from PER_289973 TO PER_449053
1521: hr_utility.set_warning;
1522: END IF;
1523: --
1524: --
1525: --Bug# 2958006 End Here
1524: --
1525: --Bug# 2958006 End Here
1526: --
1527: if l_action_chk = 'Y' then
1528: hr_utility.set_message(801,'HR_6516_EMP_TERM_ACTIONS_EXIST');
1529: hr_utility.raise_error;
1530: end if;
1531: --
1532: hr_utility.set_location(l_proc, 280);
1525: --Bug# 2958006 End Here
1526: --
1527: if l_action_chk = 'Y' then
1528: hr_utility.set_message(801,'HR_6516_EMP_TERM_ACTIONS_EXIST');
1529: hr_utility.raise_error;
1530: end if;
1531: --
1532: hr_utility.set_location(l_proc, 280);
1533: --
1528: hr_utility.set_message(801,'HR_6516_EMP_TERM_ACTIONS_EXIST');
1529: hr_utility.raise_error;
1530: end if;
1531: --
1532: hr_utility.set_location(l_proc, 280);
1533: --
1534: -- ER FPT
1535: -- if there are future rows in PER table, datetrack mode is modified
1536: -- to CORRECTION or UPDATE_CHANGE_INSERT
1537: -- based on the effective_start_date of the first future record
1538:
1539: if l_future_per_rows = 'Y' then
1540:
1541: hr_utility.set_location(l_proc, 282);
1542: open min_start_date;
1543: fetch min_start_date into l_start_date,l_person_type_id2;
1544: close min_start_date;
1545:
1545:
1546: if l_start_date = l_actual_termination_date + 1 then
1547: l_datetrack_mode := hr_api.g_correction;
1548:
1549: hr_utility.set_location(l_proc, 283);
1550: if hr_person_type_usage_info.GetSystemPersonType(l_person_type_id2) = 'EMP_APL' then
1551: hr_utility.set_location(l_proc, 285);
1552: l_system_person_type1 := 'EX_EMP_APL';
1553: l_person_type_id1 := hr_person_type_usage_info.get_default_person_type_id
1547: l_datetrack_mode := hr_api.g_correction;
1548:
1549: hr_utility.set_location(l_proc, 283);
1550: if hr_person_type_usage_info.GetSystemPersonType(l_person_type_id2) = 'EMP_APL' then
1551: hr_utility.set_location(l_proc, 285);
1552: l_system_person_type1 := 'EX_EMP_APL';
1553: l_person_type_id1 := hr_person_type_usage_info.get_default_person_type_id
1554: (l_business_group_id,l_system_person_type1);
1555:
1553: l_person_type_id1 := hr_person_type_usage_info.get_default_person_type_id
1554: (l_business_group_id,l_system_person_type1);
1555:
1556: elsif hr_person_type_usage_info.GetSystemPersonType(l_person_type_id2) = 'EMP' then
1557: hr_utility.set_location(l_proc, 286);
1558: l_system_person_type1 := 'EX_EMP';
1559: l_person_type_id1 := hr_person_type_usage_info.get_default_person_type_id
1560: (l_business_group_id,l_system_person_type1);
1561: end if;
1559: l_person_type_id1 := hr_person_type_usage_info.get_default_person_type_id
1560: (l_business_group_id,l_system_person_type1);
1561: end if;
1562: else
1563: hr_utility.set_location(l_proc, 287);
1564: g_fpt_termination := 'Y';
1565: l_datetrack_mode := hr_api.g_update_change_insert;
1566: end if;
1567: else
1564: g_fpt_termination := 'Y';
1565: l_datetrack_mode := hr_api.g_update_change_insert;
1566: end if;
1567: else
1568: hr_utility.set_location(l_proc, 288);
1569: l_datetrack_mode := 'UPDATE';
1570: end if;
1571:
1572:
1584: ,p_validation_start_date => l_validation_start_date
1585: ,p_validation_end_date => l_validation_end_date
1586: );
1587:
1588: hr_utility.set_location(l_proc, 290);
1589: --
1590: -- Update actual termination date and last standard process date in
1591: -- periods of service table.
1592:
1664: close csr_date_of_death;
1665: end if;
1666: --
1667: if l_dod_warning = TRUE then
1668: hr_utility.set_location(l_proc, 300);
1669: else
1670: hr_utility.set_location(l_proc,310);
1671: end if;
1672: --
1666: --
1667: if l_dod_warning = TRUE then
1668: hr_utility.set_location(l_proc, 300);
1669: else
1670: hr_utility.set_location(l_proc,310);
1671: end if;
1672: --
1673: -- Update person type in person table.
1674: --
1671: end if;
1672: --
1673: -- Update person type in person table.
1674: --
1675: hr_utility.set_location(l_proc, 320);
1676: per_per_upd.upd
1677: (p_person_id => l_person_id
1678: ,p_effective_start_date => l_effective_start_date
1679: ,p_effective_end_date => l_effective_end_date
1695: ,p_orig_hire_warning => l_orig_hire_warning
1696: ,p_npw_number => l_npw_number
1697: );
1698: --
1699: hr_utility.set_location(l_proc, 330);
1700:
1701: -- ER FPT
1702: -- Updating all the future records in PER table if exists
1703: -- All updates are done in correction mode on the start date of the row
1706:
1707: for per in fut_person_rec
1708: loop
1709:
1710: hr_utility.set_location('Updating PER table data starting - '||per.effective_start_date,333);
1711:
1712: if per.person_type_id = hr_person_type_usage_info.get_default_person_type_id (l_business_group_id,'EMP') then
1713: l_person_type_id1 := hr_person_type_usage_info.get_default_person_type_id
1714: (l_business_group_id,'EX_EMP');
1773: ,p_object_version_number => l_ctc_ovn
1774: ,p_datetrack_mode => 'UPDATE'
1775: );
1776: end loop;*/
1777: hr_utility.set_location(l_proc, 335);
1778: --
1779: -- end of contracts termination
1780: --
1781: --
1792: --
1793: for csr_rec in csr_get_asgs_to_terminate
1794: loop
1795: --
1796: hr_utility.set_location(l_proc, 340);
1797: --
1798: hr_assignment_internal.actual_term_emp_asg_sup
1799: (p_assignment_id => csr_rec.assignment_id
1800: ,p_object_version_number => csr_rec.object_version_number
1814: -- 120.2 (END)
1815: --
1816: );
1817: --
1818: hr_utility.set_location(l_proc, 350);
1819: --
1820: -- Set entries changed warning using the precedence of 'S', then 'Y', then
1821: -- 'N'.
1822: --
1822: --
1823: if l_cr_entries_changed_warn = 'S' or
1824: l_entries_changed_warning = 'S' then
1825: --
1826: hr_utility.set_location(l_proc, 360);
1827: --
1828: l_entries_changed_warning := 'S';
1829: --
1830: elsif l_cr_entries_changed_warn = 'Y' or
1829: --
1830: elsif l_cr_entries_changed_warn = 'Y' or
1831: l_entries_changed_warning = 'Y' then
1832: --
1833: hr_utility.set_location(l_proc, 370);
1834: --
1835: l_entries_changed_warning := 'Y';
1836:
1837: else
1835: l_entries_changed_warning := 'Y';
1836:
1837: else
1838: --
1839: hr_utility.set_location(l_proc, 380);
1840: --
1841: l_entries_changed_warning := 'N';
1842:
1843: end if;
1841: l_entries_changed_warning := 'N';
1842:
1843: end if;
1844: --
1845: hr_utility.set_location(l_proc, 390);
1846: --
1847: -- Set future changes warning.
1848: --
1849: if l_cr_asg_future_changes_warn or l_asg_future_changes_warning
1848: --
1849: if l_cr_asg_future_changes_warn or l_asg_future_changes_warning
1850: then
1851: --
1852: hr_utility.set_location(l_proc, 400);
1853: --
1854: l_asg_future_changes_warning := TRUE;
1855:
1856: end if;
1856: end if;
1857:
1858: end loop;
1859: --
1860: hr_utility.set_location(l_proc, 410);
1861: --
1862: -- Added code to support the following Out warning parameters.
1863: --
1864: l_status := 'SUPERVISOR';
1933: --
1934: if p_leaving_reason = 'R'
1935: then
1936:
1937: hr_utility.set_location('actual_termination_emp',420);
1938:
1939: hr_per_type_usage_internal.create_person_type_usage
1940: (p_person_id => l_person_id
1941: ,p_person_type_id =>
1947: ,p_object_version_number=> l_ptu_object_version_number
1948: ,p_effective_start_date => l_effective_start_date
1949: ,p_effective_end_date => l_effective_end_date);
1950:
1951: hr_utility.set_location('actual_termination_emp',430);
1952:
1953: end if;
1954:
1955: end if;
1955: end if;
1956: --
1957: -- Fix for bug 3829474 starts here.
1958: --
1959: hr_utility.set_location('actual_termination_emp',435);
1960: --
1961:
1962: /* Bug 5504659
1963: open l_pds_cur;
1969: p_action => 'TERMINATION');
1970: Note : added p_date_start to test, earlier code does not work*/
1971:
1972: --
1973: hr_utility.set_location('actual_termination_emp',440);
1974: --
1975: -- Fix for bug 3829474 ends here.
1976: --
1977: -- Start of API User Hook for the after hook of actual_termination
2086: p_last_std_process_date_out := l_last_standard_process_date;
2087: p_object_version_number := l_pds_object_version_number;
2088: --
2089: --
2090: hr_utility.set_location(' Leaving:'||l_proc, 440);
2091: exception
2092: when hr_api.validate_enabled then
2093: --
2094: -- As the Validate_Enabled exception has been raised
2234: --
2235: -- Fix for bug 3829474 ends here.
2236: --
2237: begin
2238: hr_utility.set_location('Entering:'|| l_proc, 1);
2239: --
2240: -- l_pds_object_version_number := p_object_version_number;
2241: l_final_process_date := trunc(p_final_process_date);
2242: --
2259: p_hook_type => 'BP'
2260: );
2261: end;
2262: --
2263: hr_utility.set_location(l_proc, 10);
2264: --
2265: -- Validation in addition to Table Handlers
2266: --
2267: -- Check period of service.
2279: ,p_argument => 'object_version_number'
2280: ,p_argument_value => p_object_version_number
2281: );
2282: --
2283: hr_utility.set_location(l_proc, 20);
2284: --
2285: open csr_get_derived_details;
2286: fetch csr_get_derived_details
2287: into l_legislation_code
2292: --
2293: if csr_get_derived_details%NOTFOUND
2294: then
2295: --
2296: hr_utility.set_location(l_proc, 30);
2297: --
2298: close csr_get_derived_details;
2299: --
2300: hr_utility.set_message(801,'HR_7391_ASG_INV_PERIOD_OF_SERV');
2296: hr_utility.set_location(l_proc, 30);
2297: --
2298: close csr_get_derived_details;
2299: --
2300: hr_utility.set_message(801,'HR_7391_ASG_INV_PERIOD_OF_SERV');
2301: hr_utility.raise_error;
2302: end if;
2303: --
2304: close csr_get_derived_details;
2297: --
2298: close csr_get_derived_details;
2299: --
2300: hr_utility.set_message(801,'HR_7391_ASG_INV_PERIOD_OF_SERV');
2301: hr_utility.raise_error;
2302: end if;
2303: --
2304: close csr_get_derived_details;
2305: --
2307:
2308: if l_object_version_number <> p_object_version_number
2309: then
2310:
2311: hr_utility.set_message(801,'HR_7155_OBJECT_INVALID');
2312: hr_utility.raise_error;
2313: end if;
2314:
2315: hr_utility.set_location(l_proc, 40);
2308: if l_object_version_number <> p_object_version_number
2309: then
2310:
2311: hr_utility.set_message(801,'HR_7155_OBJECT_INVALID');
2312: hr_utility.raise_error;
2313: end if;
2314:
2315: hr_utility.set_location(l_proc, 40);
2316: --
2311: hr_utility.set_message(801,'HR_7155_OBJECT_INVALID');
2312: hr_utility.raise_error;
2313: end if;
2314:
2315: hr_utility.set_location(l_proc, 40);
2316: --
2317: -- Check that the actual termination date has already been set.
2318: --
2319: if l_actual_termination_date is null
2318: --
2319: if l_actual_termination_date is null
2320: then
2321: --
2322: hr_utility.set_location(l_proc, 50);
2323: --
2324: hr_utility.set_message(801,'HR_51007_ASG_INV_NOT_ACT_TERM');
2325: hr_utility.raise_error;
2326: end if;
2320: then
2321: --
2322: hr_utility.set_location(l_proc, 50);
2323: --
2324: hr_utility.set_message(801,'HR_51007_ASG_INV_NOT_ACT_TERM');
2325: hr_utility.raise_error;
2326: end if;
2327: --
2328: -- Check if the final process date is set
2321: --
2322: hr_utility.set_location(l_proc, 50);
2323: --
2324: hr_utility.set_message(801,'HR_51007_ASG_INV_NOT_ACT_TERM');
2325: hr_utility.raise_error;
2326: end if;
2327: --
2328: -- Check if the final process date is set
2329: --
2380: l_exemppet_eff_date := p_final_process_date;
2381: --
2382: end if;
2383: --
2384: hr_utility.set_location(l_proc, 90);
2385: --
2386: -- Check that the corresponding person is of EX_EMP system person type.
2387: --
2388: open csr_valid_ex_emp;
2391: --
2392: if csr_valid_ex_emp%NOTFOUND
2393: then
2394: --
2395: hr_utility.set_location(l_proc, 100);
2396: --
2397: close csr_valid_ex_emp;
2398: --
2399: hr_utility.set_message(801,'HR_51008_ASG_INV_EX_EMP_TYPE');
2395: hr_utility.set_location(l_proc, 100);
2396: --
2397: close csr_valid_ex_emp;
2398: --
2399: hr_utility.set_message(801,'HR_51008_ASG_INV_EX_EMP_TYPE');
2400: hr_utility.raise_error;
2401: --
2402: end if;
2403: --
2396: --
2397: close csr_valid_ex_emp;
2398: --
2399: hr_utility.set_message(801,'HR_51008_ASG_INV_EX_EMP_TYPE');
2400: hr_utility.raise_error;
2401: --
2402: end if;
2403: --
2404: hr_utility.set_location(l_proc, 110);
2400: hr_utility.raise_error;
2401: --
2402: end if;
2403: --
2404: hr_utility.set_location(l_proc, 110);
2405: --
2406: close csr_valid_ex_emp;
2407: --
2408: --2478758 implement check for payroll actions
2415: );
2416: --
2417: IF l_action_chk = 'N' THEN
2418: --if this check suceeds, erase any possible warning from ATD check.
2419: hr_utility.clear_warning;
2420: END IF;
2421: IF l_action_chk = 'W' THEN
2422: --
2423: -- Fix for bug 3100620 starts here. changed the warning message.
2421: IF l_action_chk = 'W' THEN
2422: --
2423: -- Fix for bug 3100620 starts here. changed the warning message.
2424: --
2425: --hr_utility.set_message(801,'HR_6516_EMP_TERM_ACTIONS_EXIST');
2426: hr_utility.set_message(800,'PER_449053_EMP_TERM_FUT_ERROR');
2427: --
2428: -- Fix for bug 3100620 ends here.
2429: --
2422: --
2423: -- Fix for bug 3100620 starts here. changed the warning message.
2424: --
2425: --hr_utility.set_message(801,'HR_6516_EMP_TERM_ACTIONS_EXIST');
2426: hr_utility.set_message(800,'PER_449053_EMP_TERM_FUT_ERROR');
2427: --
2428: -- Fix for bug 3100620 ends here.
2429: --
2430: hr_utility.set_warning;
2426: hr_utility.set_message(800,'PER_449053_EMP_TERM_FUT_ERROR');
2427: --
2428: -- Fix for bug 3100620 ends here.
2429: --
2430: hr_utility.set_warning;
2431: END IF;
2432: --
2433: if l_action_chk = 'Y' then
2434: hr_utility.set_message(801,'HR_6517_EMP_FPD_ACTIONS_EXIST');
2430: hr_utility.set_warning;
2431: END IF;
2432: --
2433: if l_action_chk = 'Y' then
2434: hr_utility.set_message(801,'HR_6517_EMP_FPD_ACTIONS_EXIST');
2435: hr_utility.raise_error;
2436: end if;
2437: --
2438: -- Check that there are no COBRA benefits after the final process date.
2431: END IF;
2432: --
2433: if l_action_chk = 'Y' then
2434: hr_utility.set_message(801,'HR_6517_EMP_FPD_ACTIONS_EXIST');
2435: hr_utility.raise_error;
2436: end if;
2437: --
2438: -- Check that there are no COBRA benefits after the final process date.
2439: --
2449: ,p_validate => p_validate
2450: );
2451:
2452: --
2453: hr_utility.set_location(l_proc, 120);
2454: --
2455: -- Final process the assignments, ensuring that the non-primaries are
2456: -- processed before the primary (implemented via 'order by primary_flag'
2457: -- clause in cursor declaration).
2462:
2463: for csr_rec in csr_get_asgs_to_final_proc
2464: loop
2465: --
2466: hr_utility.set_location(l_proc, 130);
2467: hr_utility.set_location('assignment_id '||to_char(csr_rec.assignment_id),131);
2468: --
2469: hr_assignment_internal.final_process_emp_asg_sup
2470: (p_assignment_id => csr_rec.assignment_id
2463: for csr_rec in csr_get_asgs_to_final_proc
2464: loop
2465: --
2466: hr_utility.set_location(l_proc, 130);
2467: hr_utility.set_location('assignment_id '||to_char(csr_rec.assignment_id),131);
2468: --
2469: hr_assignment_internal.final_process_emp_asg_sup
2470: (p_assignment_id => csr_rec.assignment_id
2471: ,p_object_version_number => csr_rec.object_version_number
2477: ,p_asg_future_changes_warning => l_cr_asg_future_changes_warn
2478: ,p_entries_changed_warning => l_cr_entries_changed_warn
2479: );
2480: --
2481: hr_utility.set_location(l_proc, 140);
2482: --
2483: -- Set entries changed warning using the precedence of 'S', then 'Y', then
2484: -- 'N'.
2485: --
2486: if l_cr_entries_changed_warn = 'S'
2487: or l_entries_changed_warning = 'S'
2488: then
2489: --
2490: hr_utility.set_location(l_proc, 150);
2491: --
2492: l_entries_changed_warning := 'S';
2493: --
2494: elsif l_cr_entries_changed_warn = 'Y'
2494: elsif l_cr_entries_changed_warn = 'Y'
2495: or l_entries_changed_warning = 'Y'
2496: then
2497: --
2498: hr_utility.set_location(l_proc, 160);
2499: --
2500: l_entries_changed_warning := 'Y';
2501: --
2502: else
2500: l_entries_changed_warning := 'Y';
2501: --
2502: else
2503: --
2504: hr_utility.set_location(l_proc, 165);
2505: --
2506: l_entries_changed_warning := 'N';
2507: --
2508: end if;
2506: l_entries_changed_warning := 'N';
2507: --
2508: end if;
2509: --
2510: hr_utility.set_location(l_proc, 170);
2511: --
2512: -- Set future changes warning.
2513: --
2514: if l_cr_asg_future_changes_warn
2513: --
2514: if l_cr_asg_future_changes_warn
2515: then
2516: --
2517: hr_utility.set_location(l_proc, 180);
2518: --
2519: l_asg_future_changes_warning := TRUE;
2520: end if;
2521: --
2523: --
2524: if l_cr_org_now_no_manager_warn
2525: then
2526: --
2527: hr_utility.set_location(l_proc, 190);
2528: --
2529: l_org_now_no_manager_warning := TRUE;
2530: end if;
2531: end loop;
2529: l_org_now_no_manager_warning := TRUE;
2530: end if;
2531: end loop;
2532: --
2533: hr_utility.set_location(l_proc, 195);
2534: --
2535: -- Fix for bug 3829474 starts here.
2536: --
2537:
2548:
2549: --
2550: -- Fix for bug 3829474 ends here.
2551: --
2552: hr_utility.set_location(l_proc, 200);
2553: --
2554: -- Start of API User Hook for the after hook of final_process_emp.
2555: --
2556: begin
2586: p_entries_changed_warning := l_entries_changed_warning;
2587: p_object_version_number := l_object_version_number;
2588: p_org_now_no_manager_warning := l_org_now_no_manager_warning;
2589: --
2590: hr_utility.set_location(' Leaving:'||l_proc, 400);
2591: exception
2592: when hr_api.validate_enabled then
2593: --
2594: -- As the Validate_Enabled exception has been raised
2652: number := p_object_version_number;
2653: l_ovn number := p_object_version_number;
2654: l_validate boolean := false;
2655: begin
2656: hr_utility.set_location('Entering:'|| l_proc, 5);
2657: --
2658: -- Issue a savepoint.
2659: --
2660: savepoint update_term_details_emp;
2657: --
2658: -- Issue a savepoint.
2659: --
2660: savepoint update_term_details_emp;
2661: hr_utility.set_location(l_proc, 6);
2662: --
2663: --
2664: -- Start of API User Hook for the before hook of final_process_emp.
2665: --
2697: ,p_effective_date => p_effective_date
2698: ,p_validate => l_validate
2699: );
2700: --
2701: hr_utility.set_location(l_proc, 7);
2702: --
2703: -- When in validation only mode raise the Validate_Enabled exception
2704: --
2705: --
2728: if p_validate then
2729: raise hr_api.validate_enabled;
2730: end if;
2731: --
2732: hr_utility.set_location(' Leaving:'||l_proc, 8);
2733: --
2734: exception
2735: when hr_api.validate_enabled then
2736: --
2775: l_action_date DATE;
2776: --
2777: l_proc varchar2(72):=g_package||'check_for_compl_actions';
2778: begin
2779: hr_utility.trace('Entered check_for_compl_actions for '||p_person_id);
2780: hr_utility.trace('ATD: '||p_act_date);
2781: hr_utility.trace('LSP: '||p_lsp_date);
2782: hr_utility.trace('FPD: '||p_fpr_date);
2783: --
2776: --
2777: l_proc varchar2(72):=g_package||'check_for_compl_actions';
2778: begin
2779: hr_utility.trace('Entered check_for_compl_actions for '||p_person_id);
2780: hr_utility.trace('ATD: '||p_act_date);
2781: hr_utility.trace('LSP: '||p_lsp_date);
2782: hr_utility.trace('FPD: '||p_fpr_date);
2783: --
2784: IF p_lsp_date IS NOT NULL THEN
2777: l_proc varchar2(72):=g_package||'check_for_compl_actions';
2778: begin
2779: hr_utility.trace('Entered check_for_compl_actions for '||p_person_id);
2780: hr_utility.trace('ATD: '||p_act_date);
2781: hr_utility.trace('LSP: '||p_lsp_date);
2782: hr_utility.trace('FPD: '||p_fpr_date);
2783: --
2784: IF p_lsp_date IS NOT NULL THEN
2785: IF p_act_date IS NOT NULL AND p_lsp_date >= p_act_date THEN
2778: begin
2779: hr_utility.trace('Entered check_for_compl_actions for '||p_person_id);
2780: hr_utility.trace('ATD: '||p_act_date);
2781: hr_utility.trace('LSP: '||p_lsp_date);
2782: hr_utility.trace('FPD: '||p_fpr_date);
2783: --
2784: IF p_lsp_date IS NOT NULL THEN
2785: IF p_act_date IS NOT NULL AND p_lsp_date >= p_act_date THEN
2786: l_action_date := p_lsp_date;
2789: END IF;
2790: ELSE
2791: l_action_date := p_act_date;
2792: END IF;
2793: hr_utility.set_location(l_proc,1);
2794: BEGIN
2795: SELECT 'Y'
2796: INTO l_action_chk
2797: FROM dual
2808: EXCEPTION
2809: when NO_DATA_FOUND then null;
2810: END;
2811: --
2812: hr_utility.set_location(l_proc,5);
2813: IF l_action_chk = 'N' THEN
2814: BEGIN
2815: SELECT 'W'
2816: INTO l_action_chk
2830: OR (p_fpr_date is not null
2831: AND (pac.effective_date >= l_action_date
2832: AND pac.effective_date <= p_fpr_date))));
2833: --
2834: hr_utility.set_location(l_proc,7);
2835: EXCEPTION
2836: when NO_DATA_FOUND then null;
2837: END;
2838: END IF;
2853: --
2854:
2855: l_proc varchar2(72) := g_package||'reverse_terminate_employee';
2856: begin
2857: hr_utility.set_location('Entering:'|| l_proc, 5);
2858: --
2859: -- Issue a savepoint.
2860: --
2861: savepoint reverse_terminate_employee;
2879: end;
2880: --
2881: -- Process Logic
2882: --
2883: hr_utility.set_location('Before:hr_ex_employee_internal.reverse_terminate_employee'|| l_proc, 10);
2884: hr_ex_employee_internal.reverse_terminate_employee
2885: (p_person_id
2886: ,p_actual_termination_date
2887: ,p_clear_details);
2885: (p_person_id
2886: ,p_actual_termination_date
2887: ,p_clear_details);
2888: --
2889: hr_utility.set_location('After:hr_ex_employee_internal.reverse_terminate_employee'|| l_proc, 15);
2890: -- When in validation only mode raise the Validate_Enabled exception
2891: --
2892: --
2893: -- Start of API User Hook for the after hook of reverse_terminate_employee.
2909: if p_validate then
2910: raise hr_api.validate_enabled;
2911: end if;
2912: --
2913: hr_utility.set_location(' Leaving:'||l_proc, 20);
2914: --
2915: exception
2916: when hr_api.validate_enabled then
2917: --