54: ) is
55: --
56: -- Declare cursors and local variables
57: --
58: l_person_type_usage_id per_person_type_usages_f.person_type_usage_id%TYPE;
59: l_effective_start_date per_person_type_usages_f.effective_start_date%TYPE;
60: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
61: l_proc varchar2(72);
62: l_object_version_number per_person_type_usages_f.object_version_number%TYPE;
55: --
56: -- Declare cursors and local variables
57: --
58: l_person_type_usage_id per_person_type_usages_f.person_type_usage_id%TYPE;
59: l_effective_start_date per_person_type_usages_f.effective_start_date%TYPE;
60: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
61: l_proc varchar2(72);
62: l_object_version_number per_person_type_usages_f.object_version_number%TYPE;
63: --
56: -- Declare cursors and local variables
57: --
58: l_person_type_usage_id per_person_type_usages_f.person_type_usage_id%TYPE;
59: l_effective_start_date per_person_type_usages_f.effective_start_date%TYPE;
60: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
61: l_proc varchar2(72);
62: l_object_version_number per_person_type_usages_f.object_version_number%TYPE;
63: --
64: -- BEGIN TCA_UNMERGE CHANGES
58: l_person_type_usage_id per_person_type_usages_f.person_type_usage_id%TYPE;
59: l_effective_start_date per_person_type_usages_f.effective_start_date%TYPE;
60: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
61: l_proc varchar2(72);
62: l_object_version_number per_person_type_usages_f.object_version_number%TYPE;
63: --
64: -- BEGIN TCA_UNMERGE CHANGES
65: cursor c_person is
66: select *
208: --
209: -- Declare cursors and local variables
210: --
211: l_proc varchar2(72);
212: l_object_version_number per_person_type_usages_f.object_version_number%TYPE;
213: l_effective_start_date per_person_type_usages_f.effective_start_date%TYPE;
214: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
215: --
216: begin
209: -- Declare cursors and local variables
210: --
211: l_proc varchar2(72);
212: l_object_version_number per_person_type_usages_f.object_version_number%TYPE;
213: l_effective_start_date per_person_type_usages_f.effective_start_date%TYPE;
214: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
215: --
216: begin
217: --
210: --
211: l_proc varchar2(72);
212: l_object_version_number per_person_type_usages_f.object_version_number%TYPE;
213: l_effective_start_date per_person_type_usages_f.effective_start_date%TYPE;
214: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
215: --
216: begin
217: --
218: if g_debug then
329: ) is
330: --
331: -- Declare cursors and local variables
332: --
333: l_effective_start_date per_person_type_usages_f.effective_start_date%TYPE;
334: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
335: l_proc varchar2(72);
336: l_object_version_number per_person_type_usages_f.object_version_number%TYPE := p_object_version_number;
337: --
330: --
331: -- Declare cursors and local variables
332: --
333: l_effective_start_date per_person_type_usages_f.effective_start_date%TYPE;
334: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
335: l_proc varchar2(72);
336: l_object_version_number per_person_type_usages_f.object_version_number%TYPE := p_object_version_number;
337: --
338: begin
332: --
333: l_effective_start_date per_person_type_usages_f.effective_start_date%TYPE;
334: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
335: l_proc varchar2(72);
336: l_object_version_number per_person_type_usages_f.object_version_number%TYPE := p_object_version_number;
337: --
338: begin
339: --
340: if g_debug then
454: ( p_effective_date in date
455: ,p_person_type_usage_id in number
456: ) is
457: select *
458: from per_person_type_usages_f ptu
459: where p_effective_date between ptu.effective_start_date and ptu.effective_end_date
460: and ptu.person_type_usage_id = p_person_type_usage_id;
461: l_person_type_usage csr_person_type_usages%rowtype;
462: --
557: ,p_person_type_id in number
558: ) is
559: select ptu.person_type_usage_id
560: ,ptu.object_version_number
561: from per_person_type_usages_f ptu
562: where p_effective_date between ptu.effective_start_date and ptu.effective_end_date
563: and ptu.person_id = p_person_id
564: and ptu.person_type_id = p_person_type_id;
565: l_delete_person_type_usage csr_delete_person_type_usages%rowtype;
588: ,p_system_person_type in varchar2
589: ) is
590: select ptu.person_type_usage_id
591: ,ptu.object_version_number
592: from per_person_type_usages_f ptu
593: where p_effective_date between ptu.effective_start_date and ptu.effective_end_date
594: and ptu.person_id = p_person_id
595: and ptu.person_type_id in
596: (select ppt.person_type_id
606:
607: l_update_person_type_usage csr_update_person_type_usages%rowtype;
608: l_update_person_type_usage1 csr_update_person_type_usages%rowtype;
609: --
610: l_effective_start_date per_person_type_usages_f.effective_start_date%TYPE;
611: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
612: l_proc varchar2(72) := g_package||'maintain_person_type_usage';
613: l_person_type_usage_id per_person_type_usages_f.person_type_usage_id%TYPE;
614: l_object_version_number per_person_type_usages_f.object_version_number%TYPE;
607: l_update_person_type_usage csr_update_person_type_usages%rowtype;
608: l_update_person_type_usage1 csr_update_person_type_usages%rowtype;
609: --
610: l_effective_start_date per_person_type_usages_f.effective_start_date%TYPE;
611: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
612: l_proc varchar2(72) := g_package||'maintain_person_type_usage';
613: l_person_type_usage_id per_person_type_usages_f.person_type_usage_id%TYPE;
614: l_object_version_number per_person_type_usages_f.object_version_number%TYPE;
615: l_no_other varchar2(1) := 'Y';
609: --
610: l_effective_start_date per_person_type_usages_f.effective_start_date%TYPE;
611: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
612: l_proc varchar2(72) := g_package||'maintain_person_type_usage';
613: l_person_type_usage_id per_person_type_usages_f.person_type_usage_id%TYPE;
614: l_object_version_number per_person_type_usages_f.object_version_number%TYPE;
615: l_no_other varchar2(1) := 'Y';
616: --
617: -- BEGIN TCA_UNMERGE CHANGES
610: l_effective_start_date per_person_type_usages_f.effective_start_date%TYPE;
611: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
612: l_proc varchar2(72) := g_package||'maintain_person_type_usage';
613: l_person_type_usage_id per_person_type_usages_f.person_type_usage_id%TYPE;
614: l_object_version_number per_person_type_usages_f.object_version_number%TYPE;
615: l_no_other varchar2(1) := 'Y';
616: --
617: -- BEGIN TCA_UNMERGE CHANGES
618: cursor c_person is
967: ,ppt.system_person_type
968: ,ptu.effective_start_date
969: ,ptu.effective_end_date
970: from per_person_types ppt
971: ,per_person_type_usages_f ptu
972: where ppt.person_type_id = ptu.person_type_id
973: and ptu.person_type_usage_id = c_person_type_usage_id
974: and ptu.person_id = p_person_id
975: and ( ( p_search_type = c_backwards
987: ,p_effective_start_date DATE)
988: is
989: --cursor update for bug 5706213
990: select ptu.person_type_usage_id,ptu.effective_start_date,ptu.effective_end_date,object_version_number
991: from per_person_type_usages_f ptu ,per_person_types ppt
992: where ptu.person_type_usage_id <> p_person_type_usage_id
993: and ptu.person_id = p_person_id
994: and ppt.PERSON_TYPE_ID = ptu.PERSON_TYPE_ID
995: and ppt.system_person_type = 'APL'
1010: --
1011: l_date_start date;
1012: --
1013: l_csr_person_type_usages csr_person_type_usages%ROWTYPE := NULL;
1014: l_person_type_usage_id per_person_type_usages_f.person_type_usage_id%TYPE;
1015: l_effective_start_date per_person_type_usages_f.effective_start_date%TYPE;
1016: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
1017: l_object_version_number per_person_type_usages_f.object_version_number%TYPE;
1018: l_system_person_type per_person_types.system_person_type%TYPE;
1011: l_date_start date;
1012: --
1013: l_csr_person_type_usages csr_person_type_usages%ROWTYPE := NULL;
1014: l_person_type_usage_id per_person_type_usages_f.person_type_usage_id%TYPE;
1015: l_effective_start_date per_person_type_usages_f.effective_start_date%TYPE;
1016: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
1017: l_object_version_number per_person_type_usages_f.object_version_number%TYPE;
1018: l_system_person_type per_person_types.system_person_type%TYPE;
1019: l_proc varchar2(72) := g_package||'cancel_person_type_usage';
1012: --
1013: l_csr_person_type_usages csr_person_type_usages%ROWTYPE := NULL;
1014: l_person_type_usage_id per_person_type_usages_f.person_type_usage_id%TYPE;
1015: l_effective_start_date per_person_type_usages_f.effective_start_date%TYPE;
1016: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
1017: l_object_version_number per_person_type_usages_f.object_version_number%TYPE;
1018: l_system_person_type per_person_types.system_person_type%TYPE;
1019: l_proc varchar2(72) := g_package||'cancel_person_type_usage';
1020: l_effective_start_date1 per_person_type_usages_f.effective_start_date%TYPE;
1013: l_csr_person_type_usages csr_person_type_usages%ROWTYPE := NULL;
1014: l_person_type_usage_id per_person_type_usages_f.person_type_usage_id%TYPE;
1015: l_effective_start_date per_person_type_usages_f.effective_start_date%TYPE;
1016: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
1017: l_object_version_number per_person_type_usages_f.object_version_number%TYPE;
1018: l_system_person_type per_person_types.system_person_type%TYPE;
1019: l_proc varchar2(72) := g_package||'cancel_person_type_usage';
1020: l_effective_start_date1 per_person_type_usages_f.effective_start_date%TYPE;
1021: l_effective_end_date1 per_person_type_usages_f.effective_end_date%TYPE;
1016: l_effective_end_date per_person_type_usages_f.effective_end_date%TYPE;
1017: l_object_version_number per_person_type_usages_f.object_version_number%TYPE;
1018: l_system_person_type per_person_types.system_person_type%TYPE;
1019: l_proc varchar2(72) := g_package||'cancel_person_type_usage';
1020: l_effective_start_date1 per_person_type_usages_f.effective_start_date%TYPE;
1021: l_effective_end_date1 per_person_type_usages_f.effective_end_date%TYPE;
1022: l_object_version_number1 per_person_type_usages_f.object_version_number%TYPE;
1023: --
1024: -- BEGIN TCA_UNMERGE CHANGES
1017: l_object_version_number per_person_type_usages_f.object_version_number%TYPE;
1018: l_system_person_type per_person_types.system_person_type%TYPE;
1019: l_proc varchar2(72) := g_package||'cancel_person_type_usage';
1020: l_effective_start_date1 per_person_type_usages_f.effective_start_date%TYPE;
1021: l_effective_end_date1 per_person_type_usages_f.effective_end_date%TYPE;
1022: l_object_version_number1 per_person_type_usages_f.object_version_number%TYPE;
1023: --
1024: -- BEGIN TCA_UNMERGE CHANGES
1025: cursor c_person is
1018: l_system_person_type per_person_types.system_person_type%TYPE;
1019: l_proc varchar2(72) := g_package||'cancel_person_type_usage';
1020: l_effective_start_date1 per_person_type_usages_f.effective_start_date%TYPE;
1021: l_effective_end_date1 per_person_type_usages_f.effective_end_date%TYPE;
1022: l_object_version_number1 per_person_type_usages_f.object_version_number%TYPE;
1023: --
1024: -- BEGIN TCA_UNMERGE CHANGES
1025: cursor c_person is
1026: select *
1045: --
1046: begin
1047: select ptu.person_type_usage_id into c_person_type_usage_id
1048: from per_person_types ppt
1049: ,per_person_type_usages_f ptu
1050: where ppt.person_type_id = ptu.person_type_id
1051: and ppt.system_person_type = p_system_person_type
1052: and p_effective_date between ptu.effective_start_date and ptu.effective_end_date
1053: and ptu.person_id = p_person_id;
1172: -- effect. Done through direct SQL as row handler does not allow this kind
1173: -- of manipulation.
1174: --
1175: delete
1176: from per_person_type_usages_f ptu
1177: where ptu.effective_start_date >= l_effective_start_date
1178: and ptu.effective_end_date <= l_effective_end_date
1179: and ptu.person_type_usage_id = l_person_type_usage_id;
1180: --
1182: -- Extend any previous record to cover the time that the cancelled system
1183: -- person type existed. Done through direct SQL as row handler does not
1184: -- allow this kind of manipulation.
1185: --
1186: update per_person_type_usages_f ptu
1187: set effective_end_date = l_effective_end_date
1188: where ptu.effective_end_date = (l_effective_start_date - 1)
1189: and ptu.person_type_usage_id = l_person_type_usage_id;
1190:
1285: select ptu.person_type_usage_id,
1286: ptu.object_version_number,
1287: effective_start_date,
1288: effective_end_date
1289: from per_person_type_usages_f ptu,
1290: per_person_types pt
1291: where ptu.person_id = c_person_id
1292: and (c_date between ptu.effective_start_date
1293: and ptu.effective_end_date
1299: and pt.system_person_type = c_system_person_type;
1300: --
1301: cursor c1 is
1302: select *
1303: from per_person_type_usages_f
1304: where person_type_usage_id = l_person_type_usages_id
1305: and object_version_number = l_object_version_number;
1306: --
1307: cursor csr_ptu_prev_row is
1305: and object_version_number = l_object_version_number;
1306: --
1307: cursor csr_ptu_prev_row is
1308: select *
1309: from per_person_type_usages_f
1310: where person_type_usage_id = l_person_type_usages_id
1311: and effective_end_date = l_ptu_effective_start_date-1;
1312: --
1313: cursor csr_ptu_exapl_row is
1314: select ptu.person_type_usage_id
1315: ,ptu.object_version_number
1316: ,ptu.effective_start_date
1317: ,ptu.effective_end_date
1318: from per_person_type_usages_f ptu
1319: ,per_person_types ppt
1320: where ptu.effective_start_date = l_ptu_effective_start_date
1321: and ptu.person_id = p_person_id
1322: and ptu.person_type_id = ppt.person_type_id
1326: select ptu.person_type_usage_id
1327: ,ptu.object_version_number
1328: ,ptu.effective_start_date
1329: ,ptu.effective_end_date
1330: from per_person_type_usages_f ptu
1331: ,per_person_types ppt
1332: where ptu.effective_end_date = l_ptu_effective_start_date-1
1333: and ptu.person_id = p_person_id
1334: and ptu.person_type_id = ppt.person_type_id
1338: select ptu.person_type_usage_id
1339: ,ptu.object_version_number
1340: ,ptu.effective_start_date
1341: ,ptu.effective_end_date
1342: from per_person_type_usages_f ptu
1343: ,per_person_types ppt
1344: where ptu.effective_end_date = l_ptu_effective_start_date-1
1345: and ptu.person_id = p_person_id
1346: and ptu.person_type_id = ppt.person_type_id
1404: --
1405: -- Bug 3905654 Start Here
1406: -- Desc: Modified the UPDATE statement to include the ESD and EED in the where clause
1407: -- So that its dependency on the OVN is overwritten.
1408: update PER_PERSON_TYPE_USAGES_F
1409: set effective_start_date = p_date_start,
1410: object_version_number = object_version_number+1
1411: where person_type_usage_id = l_person_type_usages_id
1412: and object_version_number = l_object_version_number
1423: if l_ptu_prev_row.effective_start_date > p_date_start-1 then
1424: fnd_message.set_name('PER','HR_289742_NO_CHG_DATE_PTU');
1425: fnd_message.raise_error;
1426: else
1427: update PER_PERSON_TYPE_USAGES_F
1428: set effective_end_date = p_date_start-1,
1429: object_version_number = object_version_number+1
1430: where person_type_usage_id = l_person_type_usages_id
1431: and object_version_number = l_ptu_prev_row.object_version_number;
1442: if l_prev_other_row.effective_start_date > p_date_start-1 then
1443: fnd_message.set_name('PER','HR_289742_NO_CHG_DATE_PTU');
1444: fnd_message.raise_error;
1445: else
1446: update PER_PERSON_TYPE_USAGES_F
1447: set effective_end_date = p_date_start-1,
1448: object_version_number = object_version_number+1
1449: where person_type_usage_id = l_prev_other_row.person_type_usage_id
1450: and object_version_number = l_prev_other_row.object_version_number;
1459: --else do no change
1460: open csr_ptu_exapl_row;
1461: fetch csr_ptu_exapl_row into l_prev_other_row;
1462: if csr_ptu_exapl_row%found then
1463: update PER_PERSON_TYPE_USAGES_F
1464: set effective_start_date = p_date_start,
1465: object_version_number = object_version_number+1
1466: where person_type_usage_id = l_prev_other_row.person_type_usage_id
1467: and object_version_number = l_prev_other_row.object_version_number;
1473: if l_prev_other_row.effective_start_date > p_date_start-1 then
1474: fnd_message.set_name('PER','HR_289742_NO_CHG_DATE_PTU');
1475: fnd_message.raise_error;
1476: else
1477: update PER_PERSON_TYPE_USAGES_F
1478: set effective_end_date = p_date_start-1,
1479: object_version_number = object_version_number+1
1480: where person_type_usage_id = l_prev_other_row.person_type_usage_id
1481: and object_version_number = l_prev_other_row.object_version_number;