149: l_attributes_table r_att_ids;
150:
151: l_layout_id HXC_TIME_ATTRIBUTES.ATTRIBUTE1%TYPE;
152: l_attributes_table_index number;
153: l_building_block_id hxc_time_building_blocks.TIME_BUILDING_BLOCK_ID%TYPE;
154:
155: BEGIN
156:
157: --This procedure would simply build two temporary detail attributes
1703:
1704: FUNCTION app_to_block_attributes(
1705: p_app_attributes IN hxc_self_service_time_deposit.app_attributes_info
1706: ,p_process_id IN hxc_retrieval_processes.retrieval_process_id%TYPE
1707: ,p_resource_id IN hxc_time_building_blocks.resource_id%TYPE
1708: ,p_timecard_id IN hxc_time_building_blocks.time_building_block_id%TYPE
1709: ,p_template_type IN VARCHAR2
1710: )
1711: RETURN HXC_ATTRIBUTE_TABLE_TYPE
1704: FUNCTION app_to_block_attributes(
1705: p_app_attributes IN hxc_self_service_time_deposit.app_attributes_info
1706: ,p_process_id IN hxc_retrieval_processes.retrieval_process_id%TYPE
1707: ,p_resource_id IN hxc_time_building_blocks.resource_id%TYPE
1708: ,p_timecard_id IN hxc_time_building_blocks.time_building_block_id%TYPE
1709: ,p_template_type IN VARCHAR2
1710: )
1711: RETURN HXC_ATTRIBUTE_TABLE_TYPE
1712: IS
1836: ,p_blocks IN OUT NOCOPY HXC_BLOCK_TABLE_TYPE
1837: ,p_attributes IN OUT NOCOPY HXC_ATTRIBUTE_TABLE_TYPE
1838: )
1839: IS
1840: l_timecard_block_id hxc_time_building_blocks.time_building_block_id%TYPE := p_start_id;
1841: l_day_block_id hxc_time_building_blocks.time_building_block_id%TYPE
1842: := l_timecard_block_id;
1843: l_detail_block_id hxc_time_building_blocks.time_building_block_id%TYPE
1844: := p_start_id - p_blocks.count;
1837: ,p_attributes IN OUT NOCOPY HXC_ATTRIBUTE_TABLE_TYPE
1838: )
1839: IS
1840: l_timecard_block_id hxc_time_building_blocks.time_building_block_id%TYPE := p_start_id;
1841: l_day_block_id hxc_time_building_blocks.time_building_block_id%TYPE
1842: := l_timecard_block_id;
1843: l_detail_block_id hxc_time_building_blocks.time_building_block_id%TYPE
1844: := p_start_id - p_blocks.count;
1845: l_old_block_id hxc_time_building_blocks.time_building_block_id%TYPE;
1839: IS
1840: l_timecard_block_id hxc_time_building_blocks.time_building_block_id%TYPE := p_start_id;
1841: l_day_block_id hxc_time_building_blocks.time_building_block_id%TYPE
1842: := l_timecard_block_id;
1843: l_detail_block_id hxc_time_building_blocks.time_building_block_id%TYPE
1844: := p_start_id - p_blocks.count;
1845: l_old_block_id hxc_time_building_blocks.time_building_block_id%TYPE;
1846: l_block_index NUMBER;
1847: l_second_block_index NUMBER;
1841: l_day_block_id hxc_time_building_blocks.time_building_block_id%TYPE
1842: := l_timecard_block_id;
1843: l_detail_block_id hxc_time_building_blocks.time_building_block_id%TYPE
1844: := p_start_id - p_blocks.count;
1845: l_old_block_id hxc_time_building_blocks.time_building_block_id%TYPE;
1846: l_block_index NUMBER;
1847: l_second_block_index NUMBER;
1848: l_attribute_index NUMBER;
1849: BEGIN
1901: END assign_block_ids;
1902:
1903:
1904: FUNCTION get_pref_template(
1905: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
1906: )
1907: RETURN VARCHAR2
1908: IS
1909: l_template_code VARCHAR2(200) := NULL;
1985: -- if block count is 0, or if the structure of timecard data is wrong.
1986: -- ==================================================================
1987:
1988: PROCEDURE update_blocks(
1989: p_resource_id IN hxc_time_building_blocks.resource_id%TYPE
1990: ,p_approval_status IN hxc_time_building_blocks.approval_status%TYPE
1991: ,p_approval_style IN hxc_time_building_blocks.approval_style_id%TYPE
1992: ,p_blocks IN OUT NOCOPY HXC_BLOCK_TABLE_TYPE
1993: ,p_timecard_id OUT NOCOPY hxc_time_building_blocks.time_building_block_id%TYPE
1986: -- ==================================================================
1987:
1988: PROCEDURE update_blocks(
1989: p_resource_id IN hxc_time_building_blocks.resource_id%TYPE
1990: ,p_approval_status IN hxc_time_building_blocks.approval_status%TYPE
1991: ,p_approval_style IN hxc_time_building_blocks.approval_style_id%TYPE
1992: ,p_blocks IN OUT NOCOPY HXC_BLOCK_TABLE_TYPE
1993: ,p_timecard_id OUT NOCOPY hxc_time_building_blocks.time_building_block_id%TYPE
1994: ,p_timecard_found OUT NOCOPY BOOLEAN
1987:
1988: PROCEDURE update_blocks(
1989: p_resource_id IN hxc_time_building_blocks.resource_id%TYPE
1990: ,p_approval_status IN hxc_time_building_blocks.approval_status%TYPE
1991: ,p_approval_style IN hxc_time_building_blocks.approval_style_id%TYPE
1992: ,p_blocks IN OUT NOCOPY HXC_BLOCK_TABLE_TYPE
1993: ,p_timecard_id OUT NOCOPY hxc_time_building_blocks.time_building_block_id%TYPE
1994: ,p_timecard_found OUT NOCOPY BOOLEAN
1995: )
1989: p_resource_id IN hxc_time_building_blocks.resource_id%TYPE
1990: ,p_approval_status IN hxc_time_building_blocks.approval_status%TYPE
1991: ,p_approval_style IN hxc_time_building_blocks.approval_style_id%TYPE
1992: ,p_blocks IN OUT NOCOPY HXC_BLOCK_TABLE_TYPE
1993: ,p_timecard_id OUT NOCOPY hxc_time_building_blocks.time_building_block_id%TYPE
1994: ,p_timecard_found OUT NOCOPY BOOLEAN
1995: )
1996: IS
1997: l_block_index NUMBER;
1994: ,p_timecard_found OUT NOCOPY BOOLEAN
1995: )
1996: IS
1997: l_block_index NUMBER;
1998: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE := 0;
1999: l_approval_style_id hxc_time_building_blocks.approval_style_id%TYPE;
2000: BEGIN
2001: p_timecard_found := FALSE;
2002:
1995: )
1996: IS
1997: l_block_index NUMBER;
1998: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE := 0;
1999: l_approval_style_id hxc_time_building_blocks.approval_style_id%TYPE;
2000: BEGIN
2001: p_timecard_found := FALSE;
2002:
2003: l_approval_style_id := TO_NUMBER(p_approval_style);
2105: --------------------------------------------------------------------------------
2106: FUNCTION get_next_block_id(
2107: p_blocks IN HXC_BLOCK_TABLE_TYPE
2108: )
2109: RETURN hxc_time_building_blocks.time_building_block_id%TYPE
2110: IS
2111: l_min_id hxc_time_building_blocks.time_building_block_id%TYPE;
2112: l_block_index NUMBER;
2113: BEGIN
2107: p_blocks IN HXC_BLOCK_TABLE_TYPE
2108: )
2109: RETURN hxc_time_building_blocks.time_building_block_id%TYPE
2110: IS
2111: l_min_id hxc_time_building_blocks.time_building_block_id%TYPE;
2112: l_block_index NUMBER;
2113: BEGIN
2114: -- existing block structure is also generated by applying a template, we need
2115: -- to find the next available dummy block id for additional detail blocks
2431: l_complete_attributes HXC_ATTRIBUTE_TABLE_TYPE;
2432: l_new_blocks HXC_BLOCK_TABLE_TYPE;
2433: l_new_blocks_array HXC_BLOCK_TABLE_TYPE;
2434: l_new_attributes HXC_ATTRIBUTE_TABLE_TYPE;
2435: l_next_detail_id hxc_time_building_blocks.time_building_block_id%TYPE;
2436: l_complete_block_count NUMBER;
2437: l_complete_attribute_count NUMBER;
2438: l_new_block_index NUMBER;
2439: l_detail_index NUMBER;
3108: l_process_id HXC_RETRIEVAL_PROCESSES.RETRIEVAL_PROCESS_ID%TYPE;
3109: l_tp_resource_id NUMBER := TO_NUMBER(p_resource_id);
3110: l_tp_start_time DATE := TO_DATE(p_start_time, 'YYYY/MM/DD');
3111: l_tp_stop_time DATE := TO_DATE(p_stop_time, 'YYYY/MM/DD');
3112: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE;
3113: l_old_block_id hxc_time_building_blocks.time_building_block_id%TYPE;
3114: l_template_id hxc_time_building_blocks.time_building_block_id%TYPE;
3115: l_timecard_block_id NUMBER := -1;
3116: l_day_block_id NUMBER := -1;
3109: l_tp_resource_id NUMBER := TO_NUMBER(p_resource_id);
3110: l_tp_start_time DATE := TO_DATE(p_start_time, 'YYYY/MM/DD');
3111: l_tp_stop_time DATE := TO_DATE(p_stop_time, 'YYYY/MM/DD');
3112: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE;
3113: l_old_block_id hxc_time_building_blocks.time_building_block_id%TYPE;
3114: l_template_id hxc_time_building_blocks.time_building_block_id%TYPE;
3115: l_timecard_block_id NUMBER := -1;
3116: l_day_block_id NUMBER := -1;
3117: l_next_id NUMBER := -1;
3110: l_tp_start_time DATE := TO_DATE(p_start_time, 'YYYY/MM/DD');
3111: l_tp_stop_time DATE := TO_DATE(p_stop_time, 'YYYY/MM/DD');
3112: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE;
3113: l_old_block_id hxc_time_building_blocks.time_building_block_id%TYPE;
3114: l_template_id hxc_time_building_blocks.time_building_block_id%TYPE;
3115: l_timecard_block_id NUMBER := -1;
3116: l_day_block_id NUMBER := -1;
3117: l_next_id NUMBER := -1;
3118: l_detail_block_id NUMBER;
3142: where fa.application_short_name = p_dyn_template_app
3143: and htr.application_id = fa.application_id;
3144:
3145: CURSOR c_last_timecard(
3146: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
3147: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
3148: ,p_start_time IN VARCHAR2
3149: )
3150: IS
3143: and htr.application_id = fa.application_id;
3144:
3145: CURSOR c_last_timecard(
3146: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
3147: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
3148: ,p_start_time IN VARCHAR2
3149: )
3150: IS
3151: SELECT time_building_block_id
3150: IS
3151: SELECT time_building_block_id
3152: FROM (
3153: SELECT time_building_block_id
3154: FROM hxc_time_building_blocks tbb1
3155: WHERE tbb1.resource_id = p_resource_id
3156: AND tbb1.resource_type = p_resource_type
3157: AND tbb1.scope = 'TIMECARD'
3158: AND to_char(tbb1.stop_time,'YYYY/MM/DD') < p_start_time
3692:
3693:
3694: /*
3695: PROCEDURE get_attributes(
3696: p_block_id IN hxc_time_building_blocks.time_building_block_id%TYPE
3697: ,p_block_ovn IN hxc_time_building_blocks.object_version_number%TYPE
3698: ,p_attributes IN OUT NOCOPY hxc_self_service_time_deposit.building_block_attribute_info
3699: ,p_review IN VARCHAR2
3700: )
3693:
3694: /*
3695: PROCEDURE get_attributes(
3696: p_block_id IN hxc_time_building_blocks.time_building_block_id%TYPE
3697: ,p_block_ovn IN hxc_time_building_blocks.object_version_number%TYPE
3698: ,p_attributes IN OUT NOCOPY hxc_self_service_time_deposit.building_block_attribute_info
3699: ,p_review IN VARCHAR2
3700: )
3701: IS
3702: l_attribute_index NUMBER;
3703: l_temp_attribute hxc_self_service_time_deposit.attribute_info;
3704:
3705: CURSOR c_block_attributes(
3706: p_building_block_id IN HXC_TIME_BUILDING_BLOCKS.TIME_BUILDING_BLOCK_ID%TYPE
3707: ,p_ovn IN HXC_TIME_BUILDING_BLOCKS.OBJECT_VERSION_NUMBER%TYPE
3708: )
3709: IS
3710: select a.time_attribute_id
3703: l_temp_attribute hxc_self_service_time_deposit.attribute_info;
3704:
3705: CURSOR c_block_attributes(
3706: p_building_block_id IN HXC_TIME_BUILDING_BLOCKS.TIME_BUILDING_BLOCK_ID%TYPE
3707: ,p_ovn IN HXC_TIME_BUILDING_BLOCKS.OBJECT_VERSION_NUMBER%TYPE
3708: )
3709: IS
3710: select a.time_attribute_id
3711: ,au.time_building_block_id
3787: END get_attributes;
3788: */
3789:
3790: PROCEDURE get_attributes(
3791: p_block_id IN hxc_time_building_blocks.time_building_block_id%TYPE
3792: ,p_block_ovn IN hxc_time_building_blocks.object_version_number%TYPE
3793: ,p_attributes IN OUT NOCOPY hxc_self_service_time_deposit.building_block_attribute_info
3794: ,p_review IN VARCHAR2
3795: ,p_new_block_id IN hxc_time_building_blocks.time_building_block_id%TYPE DEFAULT NULL
3788: */
3789:
3790: PROCEDURE get_attributes(
3791: p_block_id IN hxc_time_building_blocks.time_building_block_id%TYPE
3792: ,p_block_ovn IN hxc_time_building_blocks.object_version_number%TYPE
3793: ,p_attributes IN OUT NOCOPY hxc_self_service_time_deposit.building_block_attribute_info
3794: ,p_review IN VARCHAR2
3795: ,p_new_block_id IN hxc_time_building_blocks.time_building_block_id%TYPE DEFAULT NULL
3796: )
3791: p_block_id IN hxc_time_building_blocks.time_building_block_id%TYPE
3792: ,p_block_ovn IN hxc_time_building_blocks.object_version_number%TYPE
3793: ,p_attributes IN OUT NOCOPY hxc_self_service_time_deposit.building_block_attribute_info
3794: ,p_review IN VARCHAR2
3795: ,p_new_block_id IN hxc_time_building_blocks.time_building_block_id%TYPE DEFAULT NULL
3796: )
3797: IS
3798: l_attribute_index NUMBER;
3799: l_temp_attribute hxc_self_service_time_deposit.attribute_info;
3798: l_attribute_index NUMBER;
3799: l_temp_attribute hxc_self_service_time_deposit.attribute_info;
3800:
3801: CURSOR c_block_attributes(
3802: p_building_block_id IN HXC_TIME_BUILDING_BLOCKS.TIME_BUILDING_BLOCK_ID%TYPE
3803: ,p_ovn IN HXC_TIME_BUILDING_BLOCKS.OBJECT_VERSION_NUMBER%TYPE
3804: )
3805: IS
3806: select a.time_attribute_id
3799: l_temp_attribute hxc_self_service_time_deposit.attribute_info;
3800:
3801: CURSOR c_block_attributes(
3802: p_building_block_id IN HXC_TIME_BUILDING_BLOCKS.TIME_BUILDING_BLOCK_ID%TYPE
3803: ,p_ovn IN HXC_TIME_BUILDING_BLOCKS.OBJECT_VERSION_NUMBER%TYPE
3804: )
3805: IS
3806: select a.time_attribute_id
3807: ,au.time_building_block_id
3956: IS
3957: l_attributes hxc_self_service_time_deposit.building_block_attribute_info;
3958: l_blocks hxc_self_service_time_deposit.timecard_info;
3959: l_block_index NUMBER;
3960: l_parent_id hxc_time_building_blocks.time_building_block_id%TYPE;
3961:
3962:
3963: CURSOR c_day_blocks(
3964: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
3960: l_parent_id hxc_time_building_blocks.time_building_block_id%TYPE;
3961:
3962:
3963: CURSOR c_day_blocks(
3964: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
3965: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
3966: ,p_start_time IN VARCHAR2
3967: ,p_stop_time IN VARCHAR2
3968: )
3961:
3962:
3963: CURSOR c_day_blocks(
3964: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
3965: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
3966: ,p_start_time IN VARCHAR2
3967: ,p_stop_time IN VARCHAR2
3968: )
3969: IS
3990: ,'N' CHANGED
3991: ,'N' PROCESS
3992: ,tbb1.application_set_id
3993: ,tbb1.translation_display_key
3994: from hxc_time_building_blocks tbb1
3995: ,hxc_time_building_blocks tc
3996: where tbb1.date_to = hr_general.end_of_time
3997: and tbb1.resource_id = p_resource_id
3998: and tbb1.resource_type = p_resource_type
3991: ,'N' PROCESS
3992: ,tbb1.application_set_id
3993: ,tbb1.translation_display_key
3994: from hxc_time_building_blocks tbb1
3995: ,hxc_time_building_blocks tc
3996: where tbb1.date_to = hr_general.end_of_time
3997: and tbb1.resource_id = p_resource_id
3998: and tbb1.resource_type = p_resource_type
3999: and tbb1.scope = 'DAY'
4006: and tbb1.date_to = hr_general.end_of_time
4007: order by tbb1.start_time asc;
4008:
4009: CURSOR c_detail_blocks(
4010: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4011: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4012: ,p_start_time IN VARCHAR2
4013: ,p_stop_time IN VARCHAR2
4014: )
4007: order by tbb1.start_time asc;
4008:
4009: CURSOR c_detail_blocks(
4010: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4011: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4012: ,p_start_time IN VARCHAR2
4013: ,p_stop_time IN VARCHAR2
4014: )
4015: IS
4036: ,'N' CHANGED
4037: ,'N' PROCESS
4038: ,tbb1.application_set_id
4039: ,tbb1.translation_display_key
4040: from hxc_time_building_blocks tbb1
4041: ,hxc_time_building_blocks tc
4042: ,hxc_time_building_blocks days
4043: where tbb1.date_to = hr_general.end_of_time
4044: and tbb1.resource_id = p_resource_id
4037: ,'N' PROCESS
4038: ,tbb1.application_set_id
4039: ,tbb1.translation_display_key
4040: from hxc_time_building_blocks tbb1
4041: ,hxc_time_building_blocks tc
4042: ,hxc_time_building_blocks days
4043: where tbb1.date_to = hr_general.end_of_time
4044: and tbb1.resource_id = p_resource_id
4045: and tbb1.resource_type = p_resource_type
4038: ,tbb1.application_set_id
4039: ,tbb1.translation_display_key
4040: from hxc_time_building_blocks tbb1
4041: ,hxc_time_building_blocks tc
4042: ,hxc_time_building_blocks days
4043: where tbb1.date_to = hr_general.end_of_time
4044: and tbb1.resource_id = p_resource_id
4045: and tbb1.resource_type = p_resource_type
4046: and tbb1.scope = 'DETAIL'
4056: and tc.scope = 'TIMECARD'
4057: order by tbb1.start_time asc;
4058:
4059: CURSOR c_timecard_block(
4060: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4061: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4062: ,p_start_time IN VARCHAR2
4063: ,p_stop_time IN VARCHAR2
4064: )
4057: order by tbb1.start_time asc;
4058:
4059: CURSOR c_timecard_block(
4060: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4061: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4062: ,p_start_time IN VARCHAR2
4063: ,p_stop_time IN VARCHAR2
4064: )
4065: IS
4086: ,'N' CHANGED
4087: ,'N' PROCESS
4088: ,tbb1.application_set_id
4089: ,tbb1.translation_display_key
4090: from hxc_time_building_blocks tbb1
4091: where tbb1.date_to = hr_general.end_of_time
4092: and tbb1.resource_id = p_resource_id
4093: and tbb1.resource_type = p_resource_type
4094: and tbb1.scope = 'TIMECARD'
4217: ,p_timecard_action in VARCHAR2
4218: ) is
4219:
4220: cursor c_find_timecard_ovn
4221: (p_timecard_id in hxc_time_building_blocks.time_building_block_id%type) is
4222: select object_version_number
4223: from hxc_time_building_blocks
4224: where time_building_block_id = p_timecard_id
4225: and date_to = hr_general.end_of_time;
4219:
4220: cursor c_find_timecard_ovn
4221: (p_timecard_id in hxc_time_building_blocks.time_building_block_id%type) is
4222: select object_version_number
4223: from hxc_time_building_blocks
4224: where time_building_block_id = p_timecard_id
4225: and date_to = hr_general.end_of_time;
4226:
4227: l_process_locker_type varchar2(80) := hxc_lock_util.c_ss_timecard_action;
4224: where time_building_block_id = p_timecard_id
4225: and date_to = hr_general.end_of_time;
4226:
4227: l_process_locker_type varchar2(80) := hxc_lock_util.c_ss_timecard_action;
4228: l_timecard_ovn hxc_time_building_blocks.object_version_number%type;
4229:
4230: Begin
4231:
4232: p_messages := HXC_MESSAGE_TABLE_TYPE();
4296:
4297: END get_name;
4298:
4299: FUNCTION get_timecard_comment(
4300: p_app_period_id IN hxc_time_building_blocks.time_building_block_id%TYPE
4301: )
4302: RETURN varchar2
4303: IS
4304: CURSOR c_timecards(
4301: )
4302: RETURN varchar2
4303: IS
4304: CURSOR c_timecards(
4305: p_app_period_id IN hxc_time_building_blocks.time_building_block_id%TYPE
4306: )
4307: IS
4308: SELECT timecards.comment_text
4309: FROM hxc_tc_ap_links links
4306: )
4307: IS
4308: SELECT timecards.comment_text
4309: FROM hxc_tc_ap_links links
4310: ,hxc_time_building_blocks timecards
4311: WHERE links.application_period_id = p_app_period_id
4312: AND links.timecard_id = timecards.time_building_block_id
4313: AND timecards.date_to = hr_general.end_of_time;
4314:
4311: WHERE links.application_period_id = p_app_period_id
4312: AND links.timecard_id = timecards.time_building_block_id
4313: AND timecards.date_to = hr_general.end_of_time;
4314:
4315: l_comment hxc_time_building_blocks.comment_text%TYPE := '';
4316: l_combined_comment hxc_time_building_blocks.comment_text%TYPE := '';
4317: l_extra number := 0;
4318: l_comment_len number := 0;
4319: BEGIN
4312: AND links.timecard_id = timecards.time_building_block_id
4313: AND timecards.date_to = hr_general.end_of_time;
4314:
4315: l_comment hxc_time_building_blocks.comment_text%TYPE := '';
4316: l_combined_comment hxc_time_building_blocks.comment_text%TYPE := '';
4317: l_extra number := 0;
4318: l_comment_len number := 0;
4319: BEGIN
4320: OPEN c_timecards(p_app_period_id);
4348: --
4349: -- New version, supporting the fragment page.
4350: --
4351: Procedure get_app_period_blocks_by_id
4352: (p_app_period_id in hxc_time_building_blocks.time_building_block_id%type,
4353: p_start_time in date,
4354: p_stop_time in date,
4355: p_blocks in out nocopy hxc_block_table_type,
4356: p_attributes in out nocopy hxc_attribute_table_type
4396: l_attributes hxc_self_service_time_deposit.building_block_attribute_info;
4397: l_blocks hxc_self_service_time_deposit.timecard_info;
4398: l_app_period hxc_self_service_time_deposit.building_block_info;
4399: l_block_index NUMBER;
4400: l_parent_id hxc_time_building_blocks.time_building_block_id%TYPE;
4401: l_parent_ovn hxc_time_building_blocks.object_version_number%TYPE;
4402: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE;
4403: l_timecard_ovn hxc_time_building_blocks.object_version_number%TYPE;
4404: l_app_status VARCHAR2(500);
4397: l_blocks hxc_self_service_time_deposit.timecard_info;
4398: l_app_period hxc_self_service_time_deposit.building_block_info;
4399: l_block_index NUMBER;
4400: l_parent_id hxc_time_building_blocks.time_building_block_id%TYPE;
4401: l_parent_ovn hxc_time_building_blocks.object_version_number%TYPE;
4402: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE;
4403: l_timecard_ovn hxc_time_building_blocks.object_version_number%TYPE;
4404: l_app_status VARCHAR2(500);
4405: l_app_recipient fnd_application_tl.application_name%TYPE;
4398: l_app_period hxc_self_service_time_deposit.building_block_info;
4399: l_block_index NUMBER;
4400: l_parent_id hxc_time_building_blocks.time_building_block_id%TYPE;
4401: l_parent_ovn hxc_time_building_blocks.object_version_number%TYPE;
4402: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE;
4403: l_timecard_ovn hxc_time_building_blocks.object_version_number%TYPE;
4404: l_app_status VARCHAR2(500);
4405: l_app_recipient fnd_application_tl.application_name%TYPE;
4406: l_approver_id per_all_people_f.person_id%TYPE;
4399: l_block_index NUMBER;
4400: l_parent_id hxc_time_building_blocks.time_building_block_id%TYPE;
4401: l_parent_ovn hxc_time_building_blocks.object_version_number%TYPE;
4402: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE;
4403: l_timecard_ovn hxc_time_building_blocks.object_version_number%TYPE;
4404: l_app_status VARCHAR2(500);
4405: l_app_recipient fnd_application_tl.application_name%TYPE;
4406: l_approver_id per_all_people_f.person_id%TYPE;
4407: l_attribute_index NUMBER;
4409: l_time_category_id number;
4410: l_row_data hxc_trans_display_key_utils.translation_row_used;
4411: l_same_app_time_period varchar2(1);
4412: CURSOR c_day_blocks(
4413: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4414: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4415: ,p_start_time IN hxc_time_building_blocks.start_time%TYPE
4416: ,p_stop_time IN hxc_time_building_blocks.stop_time%TYPE
4417: )
4410: l_row_data hxc_trans_display_key_utils.translation_row_used;
4411: l_same_app_time_period varchar2(1);
4412: CURSOR c_day_blocks(
4413: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4414: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4415: ,p_start_time IN hxc_time_building_blocks.start_time%TYPE
4416: ,p_stop_time IN hxc_time_building_blocks.stop_time%TYPE
4417: )
4418: IS
4411: l_same_app_time_period varchar2(1);
4412: CURSOR c_day_blocks(
4413: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4414: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4415: ,p_start_time IN hxc_time_building_blocks.start_time%TYPE
4416: ,p_stop_time IN hxc_time_building_blocks.stop_time%TYPE
4417: )
4418: IS
4419: select
4412: CURSOR c_day_blocks(
4413: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4414: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4415: ,p_start_time IN hxc_time_building_blocks.start_time%TYPE
4416: ,p_stop_time IN hxc_time_building_blocks.stop_time%TYPE
4417: )
4418: IS
4419: select
4420: tbb1.TIME_BUILDING_BLOCK_ID
4439: ,'N' CHANGED
4440: ,'N' PROCESS
4441: ,tbb1.application_set_id
4442: ,tbb1.translation_display_key
4443: from hxc_time_building_blocks tbb1
4444: ,hxc_time_building_blocks tc
4445: where tbb1.date_to = hr_general.end_of_time
4446: and tbb1.resource_id = p_resource_id
4447: and tbb1.resource_type = p_resource_type
4440: ,'N' PROCESS
4441: ,tbb1.application_set_id
4442: ,tbb1.translation_display_key
4443: from hxc_time_building_blocks tbb1
4444: ,hxc_time_building_blocks tc
4445: where tbb1.date_to = hr_general.end_of_time
4446: and tbb1.resource_id = p_resource_id
4447: and tbb1.resource_type = p_resource_type
4448: and tbb1.scope = 'DAY'
4454: and tc.date_to = hr_general.end_of_time
4455: order by tbb1.start_time asc;
4456:
4457: CURSOR c_app_period(
4458: p_app_period_id hxc_time_building_blocks.time_building_block_id%TYPE
4459: )
4460: IS
4461: select
4462: tbb1.TIME_BUILDING_BLOCK_ID
4481: ,'N' CHANGED
4482: ,'N' PROCESS
4483: ,tbb1.application_set_id
4484: ,tbb1.translation_display_key
4485: from hxc_time_building_blocks tbb1
4486: where tbb1.time_building_block_id = p_app_period_id
4487: and tbb1.date_to = hr_general.end_of_time;
4488:
4489: CURSOR c_timecard_block(
4486: where tbb1.time_building_block_id = p_app_period_id
4487: and tbb1.date_to = hr_general.end_of_time;
4488:
4489: CURSOR c_timecard_block(
4490: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4491: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4492: ,p_start_time IN HXC_TIME_BUILDING_BLOCKS.START_TIME%TYPE
4493: ,p_stop_time IN HXC_TIME_BUILDING_BLOCKS.STOP_TIME%TYPE
4494: )
4487: and tbb1.date_to = hr_general.end_of_time;
4488:
4489: CURSOR c_timecard_block(
4490: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4491: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4492: ,p_start_time IN HXC_TIME_BUILDING_BLOCKS.START_TIME%TYPE
4493: ,p_stop_time IN HXC_TIME_BUILDING_BLOCKS.STOP_TIME%TYPE
4494: )
4495: IS
4488:
4489: CURSOR c_timecard_block(
4490: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4491: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4492: ,p_start_time IN HXC_TIME_BUILDING_BLOCKS.START_TIME%TYPE
4493: ,p_stop_time IN HXC_TIME_BUILDING_BLOCKS.STOP_TIME%TYPE
4494: )
4495: IS
4496: select
4489: CURSOR c_timecard_block(
4490: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4491: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4492: ,p_start_time IN HXC_TIME_BUILDING_BLOCKS.START_TIME%TYPE
4493: ,p_stop_time IN HXC_TIME_BUILDING_BLOCKS.STOP_TIME%TYPE
4494: )
4495: IS
4496: select
4497: tbb1.TIME_BUILDING_BLOCK_ID
4516: ,'N' CHANGED
4517: ,'N' PROCESS
4518: ,tbb1.application_set_id
4519: ,tbb1.translation_display_key
4520: from hxc_time_building_blocks tbb1
4521: where tbb1.date_to = hr_general.end_of_time
4522: and tbb1.resource_id = p_resource_id
4523: and tbb1.resource_type = p_resource_type
4524: and tbb1.scope = 'TIMECARD'
4525: and p_start_time <= tbb1.stop_time
4526: and p_stop_time >= tbb1.start_time;
4527:
4528: CURSOR c_detail_blocks(
4529: p_app_period_id hxc_time_building_blocks.time_building_block_id%TYPE
4530: )
4531: IS
4532: SELECT
4533: tbb1.TIME_BUILDING_BLOCK_ID
4553: ,'N' PROCESS
4554: ,tbb1.application_set_id
4555: ,tbb1.translation_display_key
4556: FROM hxc_ap_detail_links adlinks
4557: ,hxc_time_building_blocks tbb1
4558: WHERE adlinks.application_period_id = p_app_period_id
4559: AND adlinks.time_building_block_id = tbb1.time_building_block_id
4560: AND adlinks.time_building_block_ovn = tbb1.object_version_number
4561: AND tbb1.date_to = hr_general.end_of_time;
4560: AND adlinks.time_building_block_ovn = tbb1.object_version_number
4561: AND tbb1.date_to = hr_general.end_of_time;
4562:
4563: CURSOR c_detail_blocks_sup(
4564: p_app_period_id hxc_time_building_blocks.time_building_block_id%TYPE,
4565: p_start_time date,
4566: p_stop_time date
4567: )
4568: IS
4589: ,'N' CHANGED
4590: ,'N' PROCESS
4591: ,details.application_set_id
4592: ,details.translation_display_key
4593: from hxc_time_building_blocks timecard,
4594: hxc_time_building_blocks details,
4595: hxc_time_building_blocks days,
4596: hxc_tc_ap_links hal
4597: where
4590: ,'N' PROCESS
4591: ,details.application_set_id
4592: ,details.translation_display_key
4593: from hxc_time_building_blocks timecard,
4594: hxc_time_building_blocks details,
4595: hxc_time_building_blocks days,
4596: hxc_tc_ap_links hal
4597: where
4598: days.time_building_block_id = details.parent_building_block_id
4591: ,details.application_set_id
4592: ,details.translation_display_key
4593: from hxc_time_building_blocks timecard,
4594: hxc_time_building_blocks details,
4595: hxc_time_building_blocks days,
4596: hxc_tc_ap_links hal
4597: where
4598: days.time_building_block_id = details.parent_building_block_id
4599: and days.object_version_number = details.parent_building_block_ovn
4607: order by details.translation_display_key;
4608:
4609:
4610: CURSOR c_app_attribute(
4611: p_app_period_id hxc_time_building_blocks.time_building_block_id%TYPE
4612: )
4613: IS
4614: SELECT hr_general.decode_lookup('HXC_APPROVAL_STATUS', apsum.approval_status)
4615: ,favtl.application_name
4857: END get_app_period_blocks_by_id;
4858:
4859:
4860: FUNCTION is_app_period(
4861: p_block_id IN hxc_time_building_blocks.time_building_block_id%TYPE
4862: )
4863: RETURN BOOLEAN
4864: IS
4865:
4863: RETURN BOOLEAN
4864: IS
4865:
4866: CURSOR c_app_period(
4867: p_block_id hxc_time_building_blocks.time_building_block_id%TYPE
4868: )
4869: IS
4870: SELECT 'Y'
4871: FROM hxc_app_period_summary
5011:
5012:
5013: l_blocks hxc_self_service_time_deposit.timecard_info;
5014: l_attributes hxc_self_service_time_deposit.building_block_attribute_info;
5015: l_block_id hxc_time_building_blocks.time_building_block_id%TYPE;
5016: l_block_index NUMBER := 1;
5017: l_attribute_index NUMBER := 1;
5018: l_block_string VARCHAR2(32767) := NULL;
5019: l_attribute_string VARCHAR2(32767) := NULL;
5520: )
5521: IS
5522:
5523: CURSOR c_app_periods(
5524: p_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE
5525: )
5526: IS
5527: SELECT tal.application_period_id,
5528: ts.start_time,
5530: FROM hxc_tc_ap_links tal, hxc_timecard_summary ts
5531: WHERE ts.timecard_id = p_timecard_id
5532: and ts.timecard_id = tal.timecard_id;
5533:
5534: l_app_period_id hxc_time_building_blocks.time_building_block_id%TYPE;
5535: l_start_time hxc_timecard_summary.start_time%type;
5536: l_stop_time hxc_timecard_summary.stop_time%type;
5537: l_block_array HXC_BLOCK_TABLE_TYPE;
5538: l_attribute_array HXC_ATTRIBUTE_TABLE_TYPE;
5624: l_process_id HXC_RETRIEVAL_PROCESSES.RETRIEVAL_PROCESS_ID%TYPE;
5625: l_tp_resource_id NUMBER := TO_NUMBER(p_resource_id);
5626: l_tp_start_time DATE := TO_DATE(p_start_time, 'YYYY/MM/DD');
5627: l_tp_stop_time DATE := TO_DATE(p_stop_time, 'YYYY/MM/DD');
5628: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE;
5629: l_block_count NUMBER;
5630: l_new_stop_time DATE;
5631: l_old_start_time DATE;
5632: l_old_stop_time DATE;
5808: SELECT /*+ ordered */
5809: lat.time_building_block_id,
5810: lat.object_version_number
5811: FROM hxc_timecard_summary sum,
5812: hxc_time_building_blocks day,
5813: hxc_time_building_blocks det,
5814: hxc_latest_details lat
5815: WHERE sum.timecard_id = l_timecard_id
5816: AND sum.timecard_ovn = l_timecard_ovn
5809: lat.time_building_block_id,
5810: lat.object_version_number
5811: FROM hxc_timecard_summary sum,
5812: hxc_time_building_blocks day,
5813: hxc_time_building_blocks det,
5814: hxc_latest_details lat
5815: WHERE sum.timecard_id = l_timecard_id
5816: AND sum.timecard_ovn = l_timecard_ovn
5817: AND day.parent_building_block_id = sum.timecard_id
5935: INTO l_time_recipient_name
5936: FROM hxc_application_set_comps_v
5937: WHERE application_set_id IN
5938: (SELECT application_set_id
5939: FROM hxc_time_building_blocks
5940: WHERE time_building_block_id = l_timecard_id
5941: and object_version_number = l_timecard_ovn
5942: )
5943: AND time_recipient_id IN