1447: where position_id = p_position_id;
1448:
1449: cursor c2 is
1450: select fnd_date.canonical_to_date(poei_information3), fnd_date.canonical_to_date(poei_information4)
1451: from per_position_extra_info
1452: where information_type = 'PER_OVERLAP'
1453: and position_id = p_position_id;
1454:
1455: begin
1488: select fnd_date.canonical_to_date(poei_information3) poei_information3,
1489: nvl(fnd_date.canonical_to_date(poei_information4),
1490: hr_general.end_of_time) poei_information4,
1491: poei_information5, poei_information6, poei_information7
1492: from per_position_extra_info
1493: where position_id = p_position_id
1494: and information_type = 'PER_RESERVED';
1495:
1496: begin
1628: l_position_family varchar2(100);
1629: l_chk boolean := false;
1630: cursor c1 is
1631: select poei_information3
1632: from per_position_extra_info
1633: where position_id = p_position_id
1634: and information_type = 'PER_FAMILY'
1635: and poei_information3 in ('ACADEMIC','FACULTY');
1636: begin
1654: l_chk boolean := false;
1655: l_position_extra_info_id number := nvl(p_rec.position_extra_info_id,-1);
1656: cursor c1 is
1657: select poei_information3
1658: from per_position_extra_info
1659: where position_id = p_rec.position_id
1660: and position_extra_info_id <> l_position_extra_info_id
1661: and information_type = 'PER_FAMILY'
1662: and poei_information3 in ('ACADEMIC','FACULTY');
1686: (p_position_id in number, p_overlap_period number, p_assignment_start_date date) return boolean is
1687: l_dummy varchar2(30);
1688: cursor c2 is
1689: select 'x'
1690: from per_position_extra_info
1691: where p_assignment_start_date
1692: between fnd_date.canonical_to_date(poei_information3)
1693: and fnd_date.canonical_to_date(poei_information4)
1694: and position_id = p_position_id
1719:
1720: cursor c1 is
1721: select poei_information3,
1722: poei_information4
1723: from per_position_extra_info
1724: where position_id = p_position_id
1725: and information_type = 'PER_SEASONAL';
1726:
1727: begin
1776: l_dummy varchar2(1);
1777: l_position_id number := nvl(p_position_id,-1);
1778: cursor c_seasonal is
1779: select 'X'
1780: from per_position_extra_info
1781: where position_id = l_position_id
1782: and information_type = 'PER_SEASONAL';
1783: begin
1784: open c_seasonal;
1795: l_dummy varchar2(1);
1796: l_position_id number := nvl(p_position_id,-1);
1797: cursor c_overlap is
1798: select 'X'
1799: from per_position_extra_info
1800: where position_id = l_position_id
1801: and information_type = 'PER_OVERLAP';
1802: begin
1803: open c_overlap;
2655: l_fte number:=0;
2656: l_status varchar2(150);
2657: cursor c1(p_person_id number, p_position_id number, p_effective_date date) is
2658: select to_number(poei_information6,'99999999.99') fte
2659: from per_position_extra_info
2660: where p_effective_date
2661: between fnd_date.canonical_to_date(poei_information3)
2662: and nvl(fnd_date.canonical_to_date(poei_information4),hr_general.end_of_time)
2663: and position_id = p_position_id
2690: l_fte number:=0;
2691: l_status varchar2(150);
2692: cursor c1(p_position_id number, p_effective_date date) is
2693: select sum(to_number(poei_information6,'99999999.99')) fte
2694: from per_position_extra_info
2695: where p_effective_date
2696: between fnd_date.canonical_to_date(poei_information3)
2697: and nvl(fnd_date.canonical_to_date(poei_information4),hr_general.end_of_time)
2698: and position_id = p_position_id
2736: l_reserved_overused number := 0;
2737: l_reserved_person_overused number := 0;
2738: cursor c1(p_position_id number, p_effective_date date) is
2739: select poei_information5 person_id
2740: from per_position_extra_info
2741: where p_effective_date
2742: between fnd_date.canonical_to_date(poei_information3)
2743: and nvl(fnd_date.canonical_to_date(poei_information4),hr_general.end_of_time)
2744: and position_id = p_position_id
3217: l_status varchar2(150);
3218: l_ex_position_extra_info_id number := nvl(p_ex_position_extra_info_id, -1);
3219: cursor c1(p_position_id number, p_effective_date date, p_ex_position_extra_info_id number) is
3220: select sum(poei_information6) fte
3221: from per_position_extra_info
3222: where p_effective_date
3223: between fnd_date.canonical_to_date(poei_information3)
3224: and nvl(fnd_date.canonical_to_date(poei_information4),hr_general.end_of_time)
3225: and position_id = p_position_id
3237: function poei_reserved_fte(p_position_extra_info_id number) return number is
3238: l_fte number;
3239: cursor c1(p_position_extra_info_id number) is
3240: select poei_information6
3241: from per_position_extra_info
3242: where position_extra_info_id = p_position_extra_info_id;
3243: begin
3244: if p_position_extra_info_id is not null then
3245: open c1(p_position_extra_info_id);
3278: and asn.assignment_status_type_id = ast.assignment_status_type_id
3279: and ast.per_system_status <> 'TERM_ASSIGN'
3280: and not exists (
3281: select null
3282: from per_position_extra_info
3283: where information_type= 'PER_RESERVED'
3284: and position_id = p_position_id
3285: and position_extra_info_id <> l_ex_position_extra_info_id
3286: and fnd_date.canonical_to_date(poei_information3) <= p_effective_date
3479: /*** index hint added in the select statement of the inner
3480: query of the cursor as a fix of bug 5963148 **/
3481: cursor c_pos_reserved(p_position_id number, p_effective_date date) is
3482: select 'x'
3483: from (select /*+ INDEX(PER_POSITION_EXTRA_INFO PER_POSITION_EXTRA_INFO_N3)*/
3484: fnd_date.canonical_to_date(poei_information3) poei_information3,
3485: nvl(fnd_date.canonical_to_date(poei_information4),
3486: hr_general.end_of_time) poei_information4
3487: from per_position_extra_info
3483: from (select /*+ INDEX(PER_POSITION_EXTRA_INFO PER_POSITION_EXTRA_INFO_N3)*/
3484: fnd_date.canonical_to_date(poei_information3) poei_information3,
3485: nvl(fnd_date.canonical_to_date(poei_information4),
3486: hr_general.end_of_time) poei_information4
3487: from per_position_extra_info
3488: where information_type = 'PER_RESERVED'
3489: and position_id = p_position_id)
3490: where p_effective_date between poei_information3 and poei_information4;
3491: --
3553: query of the cursor as a fix of bug 6409206 **/
3554: cursor c_pos_reserved(p_position_id number,
3555: p_effective_date date) is
3556: select 'x'
3557: from (select /*+ INDEX(PER_POSITION_EXTRA_INFO PER_POSITION_EXTRA_INFO_N3)*/
3558: fnd_date.canonical_to_date(poei_information3) poei_information3,
3559: nvl(fnd_date.canonical_to_date(poei_information4),
3560: hr_general.end_of_time) poei_information4
3561: from per_position_extra_info
3557: from (select /*+ INDEX(PER_POSITION_EXTRA_INFO PER_POSITION_EXTRA_INFO_N3)*/
3558: fnd_date.canonical_to_date(poei_information3) poei_information3,
3559: nvl(fnd_date.canonical_to_date(poei_information4),
3560: hr_general.end_of_time) poei_information4
3561: from per_position_extra_info
3562: where information_type = 'PER_RESERVED'
3563: and position_id = p_position_id)
3564: where p_effective_date <= poei_information4;
3565: --
3601: and asg.business_group_id = abv.business_group_id
3602: union
3603: select effective_start_date
3604: from (select fnd_date.canonical_to_date(poei_information3) effective_start_date
3605: from per_position_extra_info
3606: where position_id = p_position_id
3607: and information_type = 'PER_RESERVED')
3608: where effective_start_date >= p_validation_start_date
3609: union
3642: and asg.effective_start_date between p_validation_start_date and p_validation_end_date
3643: union
3644: select effective_start_date
3645: from (select fnd_date.canonical_to_date(poei_information3) effective_start_date
3646: from per_position_extra_info
3647: where position_id = p_position_id
3648: and information_type = 'PER_RESERVED')
3649: where effective_start_date >= p_validation_start_date
3650: union
4103: p_default_asg_fte number default 0) is
4104: --
4105: cursor c1 is
4106: select sum(to_number(poei_information6,'99999999.99'))
4107: from per_position_extra_info
4108: where information_type = 'PER_RESERVED'
4109: and position_id = p_position_id
4110: and p_effective_start_date
4111: between fnd_date.canonical_to_date(poei_information3)
4126: and asn.assignment_status_type_id = ast.assignment_status_type_id
4127: and ast.per_system_status <> 'TERM_ASSIGN'
4128: and not exists
4129: ( select null
4130: from per_position_extra_info poei
4131: where poei.information_type = 'PER_RESERVED'
4132: and poei.position_id = p_position_id
4133: and p_effective_start_date
4134: between fnd_date.canonical_to_date(poei.poei_information3)