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
1405:
1406: FUNCTION app_to_block_attributes(
1407: p_app_attributes IN hxc_self_service_time_deposit.app_attributes_info
1408: ,p_process_id IN hxc_retrieval_processes.retrieval_process_id%TYPE
1409: ,p_resource_id IN hxc_time_building_blocks.resource_id%TYPE
1410: ,p_timecard_id IN hxc_time_building_blocks.time_building_block_id%TYPE
1411: ,p_template_type IN VARCHAR2
1412: )
1413: RETURN HXC_ATTRIBUTE_TABLE_TYPE
1406: FUNCTION app_to_block_attributes(
1407: p_app_attributes IN hxc_self_service_time_deposit.app_attributes_info
1408: ,p_process_id IN hxc_retrieval_processes.retrieval_process_id%TYPE
1409: ,p_resource_id IN hxc_time_building_blocks.resource_id%TYPE
1410: ,p_timecard_id IN hxc_time_building_blocks.time_building_block_id%TYPE
1411: ,p_template_type IN VARCHAR2
1412: )
1413: RETURN HXC_ATTRIBUTE_TABLE_TYPE
1414: IS
1538: ,p_blocks IN OUT NOCOPY HXC_BLOCK_TABLE_TYPE
1539: ,p_attributes IN OUT NOCOPY HXC_ATTRIBUTE_TABLE_TYPE
1540: )
1541: IS
1542: l_timecard_block_id hxc_time_building_blocks.time_building_block_id%TYPE := p_start_id;
1543: l_day_block_id hxc_time_building_blocks.time_building_block_id%TYPE
1544: := l_timecard_block_id;
1545: l_detail_block_id hxc_time_building_blocks.time_building_block_id%TYPE
1546: := p_start_id - p_blocks.count;
1539: ,p_attributes IN OUT NOCOPY HXC_ATTRIBUTE_TABLE_TYPE
1540: )
1541: IS
1542: l_timecard_block_id hxc_time_building_blocks.time_building_block_id%TYPE := p_start_id;
1543: l_day_block_id hxc_time_building_blocks.time_building_block_id%TYPE
1544: := l_timecard_block_id;
1545: l_detail_block_id hxc_time_building_blocks.time_building_block_id%TYPE
1546: := p_start_id - p_blocks.count;
1547: l_old_block_id hxc_time_building_blocks.time_building_block_id%TYPE;
1541: IS
1542: l_timecard_block_id hxc_time_building_blocks.time_building_block_id%TYPE := p_start_id;
1543: l_day_block_id hxc_time_building_blocks.time_building_block_id%TYPE
1544: := l_timecard_block_id;
1545: l_detail_block_id hxc_time_building_blocks.time_building_block_id%TYPE
1546: := p_start_id - p_blocks.count;
1547: l_old_block_id hxc_time_building_blocks.time_building_block_id%TYPE;
1548: l_block_index NUMBER;
1549: l_second_block_index NUMBER;
1543: l_day_block_id hxc_time_building_blocks.time_building_block_id%TYPE
1544: := l_timecard_block_id;
1545: l_detail_block_id hxc_time_building_blocks.time_building_block_id%TYPE
1546: := p_start_id - p_blocks.count;
1547: l_old_block_id hxc_time_building_blocks.time_building_block_id%TYPE;
1548: l_block_index NUMBER;
1549: l_second_block_index NUMBER;
1550: l_attribute_index NUMBER;
1551: BEGIN
1603: END assign_block_ids;
1604:
1605:
1606: FUNCTION get_pref_template(
1607: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
1608: )
1609: RETURN VARCHAR2
1610: IS
1611: l_template_code VARCHAR2(200) := NULL;
1687: -- if block count is 0, or if the structure of timecard data is wrong.
1688: -- ==================================================================
1689:
1690: PROCEDURE update_blocks(
1691: p_resource_id IN hxc_time_building_blocks.resource_id%TYPE
1692: ,p_approval_status IN hxc_time_building_blocks.approval_status%TYPE
1693: ,p_approval_style IN hxc_time_building_blocks.approval_style_id%TYPE
1694: ,p_blocks IN OUT NOCOPY HXC_BLOCK_TABLE_TYPE
1695: ,p_timecard_id OUT NOCOPY hxc_time_building_blocks.time_building_block_id%TYPE
1688: -- ==================================================================
1689:
1690: PROCEDURE update_blocks(
1691: p_resource_id IN hxc_time_building_blocks.resource_id%TYPE
1692: ,p_approval_status IN hxc_time_building_blocks.approval_status%TYPE
1693: ,p_approval_style IN hxc_time_building_blocks.approval_style_id%TYPE
1694: ,p_blocks IN OUT NOCOPY HXC_BLOCK_TABLE_TYPE
1695: ,p_timecard_id OUT NOCOPY hxc_time_building_blocks.time_building_block_id%TYPE
1696: ,p_timecard_found OUT NOCOPY BOOLEAN
1689:
1690: PROCEDURE update_blocks(
1691: p_resource_id IN hxc_time_building_blocks.resource_id%TYPE
1692: ,p_approval_status IN hxc_time_building_blocks.approval_status%TYPE
1693: ,p_approval_style IN hxc_time_building_blocks.approval_style_id%TYPE
1694: ,p_blocks IN OUT NOCOPY HXC_BLOCK_TABLE_TYPE
1695: ,p_timecard_id OUT NOCOPY hxc_time_building_blocks.time_building_block_id%TYPE
1696: ,p_timecard_found OUT NOCOPY BOOLEAN
1697: )
1691: p_resource_id IN hxc_time_building_blocks.resource_id%TYPE
1692: ,p_approval_status IN hxc_time_building_blocks.approval_status%TYPE
1693: ,p_approval_style IN hxc_time_building_blocks.approval_style_id%TYPE
1694: ,p_blocks IN OUT NOCOPY HXC_BLOCK_TABLE_TYPE
1695: ,p_timecard_id OUT NOCOPY hxc_time_building_blocks.time_building_block_id%TYPE
1696: ,p_timecard_found OUT NOCOPY BOOLEAN
1697: )
1698: IS
1699: l_block_index NUMBER;
1696: ,p_timecard_found OUT NOCOPY BOOLEAN
1697: )
1698: IS
1699: l_block_index NUMBER;
1700: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE := 0;
1701: l_approval_style_id hxc_time_building_blocks.approval_style_id%TYPE;
1702: BEGIN
1703: p_timecard_found := FALSE;
1704:
1697: )
1698: IS
1699: l_block_index NUMBER;
1700: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE := 0;
1701: l_approval_style_id hxc_time_building_blocks.approval_style_id%TYPE;
1702: BEGIN
1703: p_timecard_found := FALSE;
1704:
1705: l_approval_style_id := TO_NUMBER(p_approval_style);
1807: --------------------------------------------------------------------------------
1808: FUNCTION get_next_block_id(
1809: p_blocks IN HXC_BLOCK_TABLE_TYPE
1810: )
1811: RETURN hxc_time_building_blocks.time_building_block_id%TYPE
1812: IS
1813: l_min_id hxc_time_building_blocks.time_building_block_id%TYPE;
1814: l_block_index NUMBER;
1815: BEGIN
1809: p_blocks IN HXC_BLOCK_TABLE_TYPE
1810: )
1811: RETURN hxc_time_building_blocks.time_building_block_id%TYPE
1812: IS
1813: l_min_id hxc_time_building_blocks.time_building_block_id%TYPE;
1814: l_block_index NUMBER;
1815: BEGIN
1816: -- existing block structure is also generated by applying a template, we need
1817: -- to find the next available dummy block id for additional detail blocks
2133: l_complete_attributes HXC_ATTRIBUTE_TABLE_TYPE;
2134: l_new_blocks HXC_BLOCK_TABLE_TYPE;
2135: l_new_blocks_array HXC_BLOCK_TABLE_TYPE;
2136: l_new_attributes HXC_ATTRIBUTE_TABLE_TYPE;
2137: l_next_detail_id hxc_time_building_blocks.time_building_block_id%TYPE;
2138: l_complete_block_count NUMBER;
2139: l_complete_attribute_count NUMBER;
2140: l_new_block_index NUMBER;
2141: l_detail_index NUMBER;
2808: l_process_id HXC_RETRIEVAL_PROCESSES.RETRIEVAL_PROCESS_ID%TYPE;
2809: l_tp_resource_id NUMBER := TO_NUMBER(p_resource_id);
2810: l_tp_start_time DATE := TO_DATE(p_start_time, 'YYYY/MM/DD');
2811: l_tp_stop_time DATE := TO_DATE(p_stop_time, 'YYYY/MM/DD');
2812: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE;
2813: l_old_block_id hxc_time_building_blocks.time_building_block_id%TYPE;
2814: l_template_id hxc_time_building_blocks.time_building_block_id%TYPE;
2815: l_timecard_block_id NUMBER := -1;
2816: l_day_block_id NUMBER := -1;
2809: l_tp_resource_id NUMBER := TO_NUMBER(p_resource_id);
2810: l_tp_start_time DATE := TO_DATE(p_start_time, 'YYYY/MM/DD');
2811: l_tp_stop_time DATE := TO_DATE(p_stop_time, 'YYYY/MM/DD');
2812: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE;
2813: l_old_block_id hxc_time_building_blocks.time_building_block_id%TYPE;
2814: l_template_id hxc_time_building_blocks.time_building_block_id%TYPE;
2815: l_timecard_block_id NUMBER := -1;
2816: l_day_block_id NUMBER := -1;
2817: l_next_id NUMBER := -1;
2810: l_tp_start_time DATE := TO_DATE(p_start_time, 'YYYY/MM/DD');
2811: l_tp_stop_time DATE := TO_DATE(p_stop_time, 'YYYY/MM/DD');
2812: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE;
2813: l_old_block_id hxc_time_building_blocks.time_building_block_id%TYPE;
2814: l_template_id hxc_time_building_blocks.time_building_block_id%TYPE;
2815: l_timecard_block_id NUMBER := -1;
2816: l_day_block_id NUMBER := -1;
2817: l_next_id NUMBER := -1;
2818: l_detail_block_id NUMBER;
2842: where fa.application_short_name = p_dyn_template_app
2843: and htr.application_id = fa.application_id;
2844:
2845: CURSOR c_last_timecard(
2846: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
2847: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
2848: ,p_start_time IN VARCHAR2
2849: )
2850: IS
2843: and htr.application_id = fa.application_id;
2844:
2845: CURSOR c_last_timecard(
2846: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
2847: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
2848: ,p_start_time IN VARCHAR2
2849: )
2850: IS
2851: SELECT time_building_block_id
2850: IS
2851: SELECT time_building_block_id
2852: FROM (
2853: SELECT time_building_block_id
2854: FROM hxc_time_building_blocks tbb1
2855: WHERE tbb1.resource_id = p_resource_id
2856: AND tbb1.resource_type = p_resource_type
2857: AND tbb1.scope = 'TIMECARD'
2858: AND to_char(tbb1.stop_time,'YYYY/MM/DD') < p_start_time
3356:
3357:
3358: /*
3359: PROCEDURE get_attributes(
3360: p_block_id IN hxc_time_building_blocks.time_building_block_id%TYPE
3361: ,p_block_ovn IN hxc_time_building_blocks.object_version_number%TYPE
3362: ,p_attributes IN OUT NOCOPY hxc_self_service_time_deposit.building_block_attribute_info
3363: ,p_review IN VARCHAR2
3364: )
3357:
3358: /*
3359: PROCEDURE get_attributes(
3360: p_block_id IN hxc_time_building_blocks.time_building_block_id%TYPE
3361: ,p_block_ovn IN hxc_time_building_blocks.object_version_number%TYPE
3362: ,p_attributes IN OUT NOCOPY hxc_self_service_time_deposit.building_block_attribute_info
3363: ,p_review IN VARCHAR2
3364: )
3365: IS
3366: l_attribute_index NUMBER;
3367: l_temp_attribute hxc_self_service_time_deposit.attribute_info;
3368:
3369: CURSOR c_block_attributes(
3370: p_building_block_id IN HXC_TIME_BUILDING_BLOCKS.TIME_BUILDING_BLOCK_ID%TYPE
3371: ,p_ovn IN HXC_TIME_BUILDING_BLOCKS.OBJECT_VERSION_NUMBER%TYPE
3372: )
3373: IS
3374: select a.time_attribute_id
3367: l_temp_attribute hxc_self_service_time_deposit.attribute_info;
3368:
3369: CURSOR c_block_attributes(
3370: p_building_block_id IN HXC_TIME_BUILDING_BLOCKS.TIME_BUILDING_BLOCK_ID%TYPE
3371: ,p_ovn IN HXC_TIME_BUILDING_BLOCKS.OBJECT_VERSION_NUMBER%TYPE
3372: )
3373: IS
3374: select a.time_attribute_id
3375: ,au.time_building_block_id
3451: END get_attributes;
3452: */
3453:
3454: PROCEDURE get_attributes(
3455: p_block_id IN hxc_time_building_blocks.time_building_block_id%TYPE
3456: ,p_block_ovn IN hxc_time_building_blocks.object_version_number%TYPE
3457: ,p_attributes IN OUT NOCOPY hxc_self_service_time_deposit.building_block_attribute_info
3458: ,p_review IN VARCHAR2
3459: ,p_new_block_id IN hxc_time_building_blocks.time_building_block_id%TYPE DEFAULT NULL
3452: */
3453:
3454: PROCEDURE get_attributes(
3455: p_block_id IN hxc_time_building_blocks.time_building_block_id%TYPE
3456: ,p_block_ovn IN hxc_time_building_blocks.object_version_number%TYPE
3457: ,p_attributes IN OUT NOCOPY hxc_self_service_time_deposit.building_block_attribute_info
3458: ,p_review IN VARCHAR2
3459: ,p_new_block_id IN hxc_time_building_blocks.time_building_block_id%TYPE DEFAULT NULL
3460: )
3455: p_block_id IN hxc_time_building_blocks.time_building_block_id%TYPE
3456: ,p_block_ovn IN hxc_time_building_blocks.object_version_number%TYPE
3457: ,p_attributes IN OUT NOCOPY hxc_self_service_time_deposit.building_block_attribute_info
3458: ,p_review IN VARCHAR2
3459: ,p_new_block_id IN hxc_time_building_blocks.time_building_block_id%TYPE DEFAULT NULL
3460: )
3461: IS
3462: l_attribute_index NUMBER;
3463: l_temp_attribute hxc_self_service_time_deposit.attribute_info;
3462: l_attribute_index NUMBER;
3463: l_temp_attribute hxc_self_service_time_deposit.attribute_info;
3464:
3465: CURSOR c_block_attributes(
3466: p_building_block_id IN HXC_TIME_BUILDING_BLOCKS.TIME_BUILDING_BLOCK_ID%TYPE
3467: ,p_ovn IN HXC_TIME_BUILDING_BLOCKS.OBJECT_VERSION_NUMBER%TYPE
3468: )
3469: IS
3470: select a.time_attribute_id
3463: l_temp_attribute hxc_self_service_time_deposit.attribute_info;
3464:
3465: CURSOR c_block_attributes(
3466: p_building_block_id IN HXC_TIME_BUILDING_BLOCKS.TIME_BUILDING_BLOCK_ID%TYPE
3467: ,p_ovn IN HXC_TIME_BUILDING_BLOCKS.OBJECT_VERSION_NUMBER%TYPE
3468: )
3469: IS
3470: select a.time_attribute_id
3471: ,au.time_building_block_id
3620: IS
3621: l_attributes hxc_self_service_time_deposit.building_block_attribute_info;
3622: l_blocks hxc_self_service_time_deposit.timecard_info;
3623: l_block_index NUMBER;
3624: l_parent_id hxc_time_building_blocks.time_building_block_id%TYPE;
3625:
3626:
3627: CURSOR c_day_blocks(
3628: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
3624: l_parent_id hxc_time_building_blocks.time_building_block_id%TYPE;
3625:
3626:
3627: CURSOR c_day_blocks(
3628: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
3629: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
3630: ,p_start_time IN VARCHAR2
3631: ,p_stop_time IN VARCHAR2
3632: )
3625:
3626:
3627: CURSOR c_day_blocks(
3628: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
3629: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
3630: ,p_start_time IN VARCHAR2
3631: ,p_stop_time IN VARCHAR2
3632: )
3633: IS
3654: ,'N' CHANGED
3655: ,'N' PROCESS
3656: ,tbb1.application_set_id
3657: ,tbb1.translation_display_key
3658: from hxc_time_building_blocks tbb1
3659: ,hxc_time_building_blocks tc
3660: where tbb1.date_to = hr_general.end_of_time
3661: and tbb1.resource_id = p_resource_id
3662: and tbb1.resource_type = p_resource_type
3655: ,'N' PROCESS
3656: ,tbb1.application_set_id
3657: ,tbb1.translation_display_key
3658: from hxc_time_building_blocks tbb1
3659: ,hxc_time_building_blocks tc
3660: where tbb1.date_to = hr_general.end_of_time
3661: and tbb1.resource_id = p_resource_id
3662: and tbb1.resource_type = p_resource_type
3663: and tbb1.scope = 'DAY'
3670: and tbb1.date_to = hr_general.end_of_time
3671: order by tbb1.start_time asc;
3672:
3673: CURSOR c_detail_blocks(
3674: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
3675: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
3676: ,p_start_time IN VARCHAR2
3677: ,p_stop_time IN VARCHAR2
3678: )
3671: order by tbb1.start_time asc;
3672:
3673: CURSOR c_detail_blocks(
3674: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
3675: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
3676: ,p_start_time IN VARCHAR2
3677: ,p_stop_time IN VARCHAR2
3678: )
3679: IS
3700: ,'N' CHANGED
3701: ,'N' PROCESS
3702: ,tbb1.application_set_id
3703: ,tbb1.translation_display_key
3704: from hxc_time_building_blocks tbb1
3705: ,hxc_time_building_blocks tc
3706: ,hxc_time_building_blocks days
3707: where tbb1.date_to = hr_general.end_of_time
3708: and tbb1.resource_id = p_resource_id
3701: ,'N' PROCESS
3702: ,tbb1.application_set_id
3703: ,tbb1.translation_display_key
3704: from hxc_time_building_blocks tbb1
3705: ,hxc_time_building_blocks tc
3706: ,hxc_time_building_blocks days
3707: where tbb1.date_to = hr_general.end_of_time
3708: and tbb1.resource_id = p_resource_id
3709: and tbb1.resource_type = p_resource_type
3702: ,tbb1.application_set_id
3703: ,tbb1.translation_display_key
3704: from hxc_time_building_blocks tbb1
3705: ,hxc_time_building_blocks tc
3706: ,hxc_time_building_blocks days
3707: where tbb1.date_to = hr_general.end_of_time
3708: and tbb1.resource_id = p_resource_id
3709: and tbb1.resource_type = p_resource_type
3710: and tbb1.scope = 'DETAIL'
3720: and tc.scope = 'TIMECARD'
3721: order by tbb1.start_time asc;
3722:
3723: CURSOR c_timecard_block(
3724: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
3725: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
3726: ,p_start_time IN VARCHAR2
3727: ,p_stop_time IN VARCHAR2
3728: )
3721: order by tbb1.start_time asc;
3722:
3723: CURSOR c_timecard_block(
3724: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
3725: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
3726: ,p_start_time IN VARCHAR2
3727: ,p_stop_time IN VARCHAR2
3728: )
3729: IS
3750: ,'N' CHANGED
3751: ,'N' PROCESS
3752: ,tbb1.application_set_id
3753: ,tbb1.translation_display_key
3754: from hxc_time_building_blocks tbb1
3755: where tbb1.date_to = hr_general.end_of_time
3756: and tbb1.resource_id = p_resource_id
3757: and tbb1.resource_type = p_resource_type
3758: and tbb1.scope = 'TIMECARD'
3881: ,p_timecard_action in VARCHAR2
3882: ) is
3883:
3884: cursor c_find_timecard_ovn
3885: (p_timecard_id in hxc_time_building_blocks.time_building_block_id%type) is
3886: select object_version_number
3887: from hxc_time_building_blocks
3888: where time_building_block_id = p_timecard_id
3889: and date_to = hr_general.end_of_time;
3883:
3884: cursor c_find_timecard_ovn
3885: (p_timecard_id in hxc_time_building_blocks.time_building_block_id%type) is
3886: select object_version_number
3887: from hxc_time_building_blocks
3888: where time_building_block_id = p_timecard_id
3889: and date_to = hr_general.end_of_time;
3890:
3891: l_process_locker_type varchar2(80) := hxc_lock_util.c_ss_timecard_action;
3888: where time_building_block_id = p_timecard_id
3889: and date_to = hr_general.end_of_time;
3890:
3891: l_process_locker_type varchar2(80) := hxc_lock_util.c_ss_timecard_action;
3892: l_timecard_ovn hxc_time_building_blocks.object_version_number%type;
3893:
3894: Begin
3895:
3896: p_messages := HXC_MESSAGE_TABLE_TYPE();
3960:
3961: END get_name;
3962:
3963: FUNCTION get_timecard_comment(
3964: p_app_period_id IN hxc_time_building_blocks.time_building_block_id%TYPE
3965: )
3966: RETURN varchar2
3967: IS
3968: CURSOR c_timecards(
3965: )
3966: RETURN varchar2
3967: IS
3968: CURSOR c_timecards(
3969: p_app_period_id IN hxc_time_building_blocks.time_building_block_id%TYPE
3970: )
3971: IS
3972: SELECT timecards.comment_text
3973: FROM hxc_tc_ap_links links
3970: )
3971: IS
3972: SELECT timecards.comment_text
3973: FROM hxc_tc_ap_links links
3974: ,hxc_time_building_blocks timecards
3975: WHERE links.application_period_id = p_app_period_id
3976: AND links.timecard_id = timecards.time_building_block_id
3977: AND timecards.date_to = hr_general.end_of_time;
3978:
3975: WHERE links.application_period_id = p_app_period_id
3976: AND links.timecard_id = timecards.time_building_block_id
3977: AND timecards.date_to = hr_general.end_of_time;
3978:
3979: l_comment hxc_time_building_blocks.comment_text%TYPE := '';
3980: l_combined_comment hxc_time_building_blocks.comment_text%TYPE := '';
3981: l_extra number := 0;
3982: l_comment_len number := 0;
3983: BEGIN
3976: AND links.timecard_id = timecards.time_building_block_id
3977: AND timecards.date_to = hr_general.end_of_time;
3978:
3979: l_comment hxc_time_building_blocks.comment_text%TYPE := '';
3980: l_combined_comment hxc_time_building_blocks.comment_text%TYPE := '';
3981: l_extra number := 0;
3982: l_comment_len number := 0;
3983: BEGIN
3984: OPEN c_timecards(p_app_period_id);
4012: --
4013: -- New version, supporting the fragment page.
4014: --
4015: Procedure get_app_period_blocks_by_id
4016: (p_app_period_id in hxc_time_building_blocks.time_building_block_id%type,
4017: p_start_time in date,
4018: p_stop_time in date,
4019: p_blocks in out nocopy hxc_block_table_type,
4020: p_attributes in out nocopy hxc_attribute_table_type
4060: l_attributes hxc_self_service_time_deposit.building_block_attribute_info;
4061: l_blocks hxc_self_service_time_deposit.timecard_info;
4062: l_app_period hxc_self_service_time_deposit.building_block_info;
4063: l_block_index NUMBER;
4064: l_parent_id hxc_time_building_blocks.time_building_block_id%TYPE;
4065: l_parent_ovn hxc_time_building_blocks.object_version_number%TYPE;
4066: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE;
4067: l_timecard_ovn hxc_time_building_blocks.object_version_number%TYPE;
4068: l_app_status VARCHAR2(500);
4061: l_blocks hxc_self_service_time_deposit.timecard_info;
4062: l_app_period hxc_self_service_time_deposit.building_block_info;
4063: l_block_index NUMBER;
4064: l_parent_id hxc_time_building_blocks.time_building_block_id%TYPE;
4065: l_parent_ovn hxc_time_building_blocks.object_version_number%TYPE;
4066: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE;
4067: l_timecard_ovn hxc_time_building_blocks.object_version_number%TYPE;
4068: l_app_status VARCHAR2(500);
4069: l_app_recipient fnd_application_tl.application_name%TYPE;
4062: l_app_period hxc_self_service_time_deposit.building_block_info;
4063: l_block_index NUMBER;
4064: l_parent_id hxc_time_building_blocks.time_building_block_id%TYPE;
4065: l_parent_ovn hxc_time_building_blocks.object_version_number%TYPE;
4066: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE;
4067: l_timecard_ovn hxc_time_building_blocks.object_version_number%TYPE;
4068: l_app_status VARCHAR2(500);
4069: l_app_recipient fnd_application_tl.application_name%TYPE;
4070: l_approver_id per_all_people_f.person_id%TYPE;
4063: l_block_index NUMBER;
4064: l_parent_id hxc_time_building_blocks.time_building_block_id%TYPE;
4065: l_parent_ovn hxc_time_building_blocks.object_version_number%TYPE;
4066: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE;
4067: l_timecard_ovn hxc_time_building_blocks.object_version_number%TYPE;
4068: l_app_status VARCHAR2(500);
4069: l_app_recipient fnd_application_tl.application_name%TYPE;
4070: l_approver_id per_all_people_f.person_id%TYPE;
4071: l_attribute_index NUMBER;
4073: l_time_category_id number;
4074: l_row_data hxc_trans_display_key_utils.translation_row_used;
4075: l_same_app_time_period varchar2(1);
4076: CURSOR c_day_blocks(
4077: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4078: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4079: ,p_start_time IN hxc_time_building_blocks.start_time%TYPE
4080: ,p_stop_time IN hxc_time_building_blocks.stop_time%TYPE
4081: )
4074: l_row_data hxc_trans_display_key_utils.translation_row_used;
4075: l_same_app_time_period varchar2(1);
4076: CURSOR c_day_blocks(
4077: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4078: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4079: ,p_start_time IN hxc_time_building_blocks.start_time%TYPE
4080: ,p_stop_time IN hxc_time_building_blocks.stop_time%TYPE
4081: )
4082: IS
4075: l_same_app_time_period varchar2(1);
4076: CURSOR c_day_blocks(
4077: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4078: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4079: ,p_start_time IN hxc_time_building_blocks.start_time%TYPE
4080: ,p_stop_time IN hxc_time_building_blocks.stop_time%TYPE
4081: )
4082: IS
4083: select
4076: CURSOR c_day_blocks(
4077: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4078: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4079: ,p_start_time IN hxc_time_building_blocks.start_time%TYPE
4080: ,p_stop_time IN hxc_time_building_blocks.stop_time%TYPE
4081: )
4082: IS
4083: select
4084: tbb1.TIME_BUILDING_BLOCK_ID
4103: ,'N' CHANGED
4104: ,'N' PROCESS
4105: ,tbb1.application_set_id
4106: ,tbb1.translation_display_key
4107: from hxc_time_building_blocks tbb1
4108: ,hxc_time_building_blocks tc
4109: where tbb1.date_to = hr_general.end_of_time
4110: and tbb1.resource_id = p_resource_id
4111: and tbb1.resource_type = p_resource_type
4104: ,'N' PROCESS
4105: ,tbb1.application_set_id
4106: ,tbb1.translation_display_key
4107: from hxc_time_building_blocks tbb1
4108: ,hxc_time_building_blocks tc
4109: where tbb1.date_to = hr_general.end_of_time
4110: and tbb1.resource_id = p_resource_id
4111: and tbb1.resource_type = p_resource_type
4112: and tbb1.scope = 'DAY'
4118: and tc.date_to = hr_general.end_of_time
4119: order by tbb1.start_time asc;
4120:
4121: CURSOR c_app_period(
4122: p_app_period_id hxc_time_building_blocks.time_building_block_id%TYPE
4123: )
4124: IS
4125: select
4126: tbb1.TIME_BUILDING_BLOCK_ID
4145: ,'N' CHANGED
4146: ,'N' PROCESS
4147: ,tbb1.application_set_id
4148: ,tbb1.translation_display_key
4149: from hxc_time_building_blocks tbb1
4150: where tbb1.time_building_block_id = p_app_period_id
4151: and tbb1.date_to = hr_general.end_of_time;
4152:
4153: CURSOR c_timecard_block(
4150: where tbb1.time_building_block_id = p_app_period_id
4151: and tbb1.date_to = hr_general.end_of_time;
4152:
4153: CURSOR c_timecard_block(
4154: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4155: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4156: ,p_start_time IN HXC_TIME_BUILDING_BLOCKS.START_TIME%TYPE
4157: ,p_stop_time IN HXC_TIME_BUILDING_BLOCKS.STOP_TIME%TYPE
4158: )
4151: and tbb1.date_to = hr_general.end_of_time;
4152:
4153: CURSOR c_timecard_block(
4154: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4155: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4156: ,p_start_time IN HXC_TIME_BUILDING_BLOCKS.START_TIME%TYPE
4157: ,p_stop_time IN HXC_TIME_BUILDING_BLOCKS.STOP_TIME%TYPE
4158: )
4159: IS
4152:
4153: CURSOR c_timecard_block(
4154: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4155: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4156: ,p_start_time IN HXC_TIME_BUILDING_BLOCKS.START_TIME%TYPE
4157: ,p_stop_time IN HXC_TIME_BUILDING_BLOCKS.STOP_TIME%TYPE
4158: )
4159: IS
4160: select
4153: CURSOR c_timecard_block(
4154: p_resource_id IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_ID%TYPE
4155: ,p_resource_type IN HXC_TIME_BUILDING_BLOCKS.RESOURCE_TYPE%TYPE
4156: ,p_start_time IN HXC_TIME_BUILDING_BLOCKS.START_TIME%TYPE
4157: ,p_stop_time IN HXC_TIME_BUILDING_BLOCKS.STOP_TIME%TYPE
4158: )
4159: IS
4160: select
4161: tbb1.TIME_BUILDING_BLOCK_ID
4180: ,'N' CHANGED
4181: ,'N' PROCESS
4182: ,tbb1.application_set_id
4183: ,tbb1.translation_display_key
4184: from hxc_time_building_blocks tbb1
4185: where tbb1.date_to = hr_general.end_of_time
4186: and tbb1.resource_id = p_resource_id
4187: and tbb1.resource_type = p_resource_type
4188: and tbb1.scope = 'TIMECARD'
4189: and p_start_time <= tbb1.stop_time
4190: and p_stop_time >= tbb1.start_time;
4191:
4192: CURSOR c_detail_blocks(
4193: p_app_period_id hxc_time_building_blocks.time_building_block_id%TYPE
4194: )
4195: IS
4196: SELECT
4197: tbb1.TIME_BUILDING_BLOCK_ID
4217: ,'N' PROCESS
4218: ,tbb1.application_set_id
4219: ,tbb1.translation_display_key
4220: FROM hxc_ap_detail_links adlinks
4221: ,hxc_time_building_blocks tbb1
4222: WHERE adlinks.application_period_id = p_app_period_id
4223: AND adlinks.time_building_block_id = tbb1.time_building_block_id
4224: AND adlinks.time_building_block_ovn = tbb1.object_version_number
4225: AND tbb1.date_to = hr_general.end_of_time;
4224: AND adlinks.time_building_block_ovn = tbb1.object_version_number
4225: AND tbb1.date_to = hr_general.end_of_time;
4226:
4227: CURSOR c_detail_blocks_sup(
4228: p_app_period_id hxc_time_building_blocks.time_building_block_id%TYPE,
4229: p_start_time date,
4230: p_stop_time date
4231: )
4232: IS
4253: ,'N' CHANGED
4254: ,'N' PROCESS
4255: ,details.application_set_id
4256: ,details.translation_display_key
4257: from hxc_time_building_blocks timecard,
4258: hxc_time_building_blocks details,
4259: hxc_time_building_blocks days,
4260: hxc_tc_ap_links hal
4261: where
4254: ,'N' PROCESS
4255: ,details.application_set_id
4256: ,details.translation_display_key
4257: from hxc_time_building_blocks timecard,
4258: hxc_time_building_blocks details,
4259: hxc_time_building_blocks days,
4260: hxc_tc_ap_links hal
4261: where
4262: days.time_building_block_id = details.parent_building_block_id
4255: ,details.application_set_id
4256: ,details.translation_display_key
4257: from hxc_time_building_blocks timecard,
4258: hxc_time_building_blocks details,
4259: hxc_time_building_blocks days,
4260: hxc_tc_ap_links hal
4261: where
4262: days.time_building_block_id = details.parent_building_block_id
4263: and days.object_version_number = details.parent_building_block_ovn
4271: order by details.translation_display_key;
4272:
4273:
4274: CURSOR c_app_attribute(
4275: p_app_period_id hxc_time_building_blocks.time_building_block_id%TYPE
4276: )
4277: IS
4278: SELECT hr_general.decode_lookup('HXC_APPROVAL_STATUS', apsum.approval_status)
4279: ,favtl.application_name
4521: END get_app_period_blocks_by_id;
4522:
4523:
4524: FUNCTION is_app_period(
4525: p_block_id IN hxc_time_building_blocks.time_building_block_id%TYPE
4526: )
4527: RETURN BOOLEAN
4528: IS
4529:
4527: RETURN BOOLEAN
4528: IS
4529:
4530: CURSOR c_app_period(
4531: p_block_id hxc_time_building_blocks.time_building_block_id%TYPE
4532: )
4533: IS
4534: SELECT 'Y'
4535: FROM hxc_app_period_summary
4675:
4676:
4677: l_blocks hxc_self_service_time_deposit.timecard_info;
4678: l_attributes hxc_self_service_time_deposit.building_block_attribute_info;
4679: l_block_id hxc_time_building_blocks.time_building_block_id%TYPE;
4680: l_block_index NUMBER := 1;
4681: l_attribute_index NUMBER := 1;
4682: l_block_string VARCHAR2(32767) := NULL;
4683: l_attribute_string VARCHAR2(32767) := NULL;
5101: )
5102: IS
5103:
5104: CURSOR c_app_periods(
5105: p_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE
5106: )
5107: IS
5108: SELECT tal.application_period_id,
5109: ts.start_time,
5111: FROM hxc_tc_ap_links tal, hxc_timecard_summary ts
5112: WHERE ts.timecard_id = p_timecard_id
5113: and ts.timecard_id = tal.timecard_id;
5114:
5115: l_app_period_id hxc_time_building_blocks.time_building_block_id%TYPE;
5116: l_start_time hxc_timecard_summary.start_time%type;
5117: l_stop_time hxc_timecard_summary.stop_time%type;
5118: l_block_array HXC_BLOCK_TABLE_TYPE;
5119: l_attribute_array HXC_ATTRIBUTE_TABLE_TYPE;
5205: l_process_id HXC_RETRIEVAL_PROCESSES.RETRIEVAL_PROCESS_ID%TYPE;
5206: l_tp_resource_id NUMBER := TO_NUMBER(p_resource_id);
5207: l_tp_start_time DATE := TO_DATE(p_start_time, 'YYYY/MM/DD');
5208: l_tp_stop_time DATE := TO_DATE(p_stop_time, 'YYYY/MM/DD');
5209: l_timecard_id hxc_time_building_blocks.time_building_block_id%TYPE;
5210: l_block_count NUMBER;
5211: l_new_stop_time DATE;
5212: l_old_start_time DATE;
5213: l_old_stop_time DATE;
5389: SELECT /*+ ordered */
5390: lat.time_building_block_id,
5391: lat.object_version_number
5392: FROM hxc_timecard_summary sum,
5393: hxc_time_building_blocks day,
5394: hxc_time_building_blocks det,
5395: hxc_latest_details lat
5396: WHERE sum.timecard_id = l_timecard_id
5397: AND sum.timecard_ovn = l_timecard_ovn
5390: lat.time_building_block_id,
5391: lat.object_version_number
5392: FROM hxc_timecard_summary sum,
5393: hxc_time_building_blocks day,
5394: hxc_time_building_blocks det,
5395: hxc_latest_details lat
5396: WHERE sum.timecard_id = l_timecard_id
5397: AND sum.timecard_ovn = l_timecard_ovn
5398: AND day.parent_building_block_id = sum.timecard_id
5516: INTO l_time_recipient_name
5517: FROM hxc_application_set_comps_v
5518: WHERE application_set_id IN
5519: (SELECT application_set_id
5520: FROM hxc_time_building_blocks
5521: WHERE time_building_block_id = l_timecard_id
5522: and object_version_number = l_timecard_ovn
5523: )
5524: AND time_recipient_id IN