1: package body hxc_timecard_approval as
2: /* $Header: hxctimeapprove.pkb 120.8.12010000.5 2009/10/05 12:09:47 amakrish ship $ */
3:
4: g_package varchar2(30) := 'hxc_timecard_approval.';
5: g_debug boolean := hr_utility.debug_enabled;
1: package body hxc_timecard_approval as
2: /* $Header: hxctimeapprove.pkb 120.8.12010000.5 2009/10/05 12:09:47 amakrish ship $ */
3:
4: g_package varchar2(30) := 'hxc_timecard_approval.';
5: g_debug boolean := hr_utility.debug_enabled;
6:
7: TYPE application_period_table IS TABLE OF hxc_app_period_summary.APPLICATION_PERIOD_ID%TYPE;
8: TYPE tc_ap_links IS RECORD
118: p_timecard_info out nocopy timecard_info
119: ) is
120: l_timecard_index number;
121: Begin
122: l_timecard_index := hxc_timecard_block_utils.find_active_timecard_index(p_blocks);
123: p_timecard_id := p_blocks(l_timecard_index).time_building_block_id;
124: p_timecard_ovn := p_blocks(l_timecard_index).object_version_number;
125: p_new_blocks := hxc_timecard_block_utils.any_new_blocks(p_blocks);
126: p_timecard_info.time_building_block_id := p_blocks(l_timecard_index).time_building_block_id;
121: Begin
122: l_timecard_index := hxc_timecard_block_utils.find_active_timecard_index(p_blocks);
123: p_timecard_id := p_blocks(l_timecard_index).time_building_block_id;
124: p_timecard_ovn := p_blocks(l_timecard_index).object_version_number;
125: p_new_blocks := hxc_timecard_block_utils.any_new_blocks(p_blocks);
126: p_timecard_info.time_building_block_id := p_blocks(l_timecard_index).time_building_block_id;
127: p_timecard_info.object_version_number := p_blocks(l_timecard_index).object_version_number;
128: p_timecard_info.type := p_blocks(l_timecard_index).type;
129: p_timecard_info.start_time := to_date(p_blocks(l_timecard_index).start_time,'rrrr/mm/dd hh24:mi:ss');
199: l_period_start_date HXC_TIME_BUILDING_BLOCKS.START_TIME%TYPE ;
200: l_period_end_date HXC_TIME_BUILDING_BLOCKS.STOP_TIME%TYPE ;
201: l_tc_ap_links_table tc_ap_links_table;
202: l_index number ;
203: l_assignment_periods hxc_timecard_utilities.periods;
204: l_app_period_info application_period_table;
205: l_creation_date hxc_time_building_blocks.creation_date%TYPE := NULL;
206: l_dup_index number;
207: l_detail_array ap_detail_links_rec;
206: l_dup_index number;
207: l_detail_array ap_detail_links_rec;
208: l_index_1 number;
209: l_index_2 number;
210: l_timecard_blocks hxc_timecard.block_list;
211: l_day_blocks hxc_timecard.block_list;
212: l_detail_blocks hxc_timecard.block_list;
213: l_proc varchar2(70);
214:
207: l_detail_array ap_detail_links_rec;
208: l_index_1 number;
209: l_index_2 number;
210: l_timecard_blocks hxc_timecard.block_list;
211: l_day_blocks hxc_timecard.block_list;
212: l_detail_blocks hxc_timecard.block_list;
213: l_proc varchar2(70);
214:
215: Begin
208: l_index_1 number;
209: l_index_2 number;
210: l_timecard_blocks hxc_timecard.block_list;
211: l_day_blocks hxc_timecard.block_list;
212: l_detail_blocks hxc_timecard.block_list;
213: l_proc varchar2(70);
214:
215: Begin
216: if g_debug then
241: (p_timecard_id => p_tc_bb_id);
242:
243: /*Remove existing records from hxc_tc_ap_links
244: * Most probably there wont be any records as they would have
245: * been deleted in the hxc_timecard package */
246:
247: hxc_tc_ap_links_pkg.remove_timecard_links
248: (p_timecard_id => p_tc_bb_id );
249:
296:
297: /* For each of the recipient Application present in the Application set of the person*/
298: /* We get the detail blocks of the Timecard from p_blocks */
299:
300: hxc_timecard_block_utils.sort_blocks
301: (p_blocks => p_blocks,
302: p_timecard_blocks => l_timecard_blocks,
303: p_day_blocks => l_day_blocks,
304: p_detail_blocks => l_detail_blocks
413: if g_debug then
414: hr_utility.set_location('Processing '||l_proc, 120);
415: end if;
416:
417: update hxc_timecard_summary
418: set approval_status = hxc_timecard.c_approved_status
419: where timecard_id = p_tc_bb_id;
420:
421: if g_debug then
414: hr_utility.set_location('Processing '||l_proc, 120);
415: end if;
416:
417: update hxc_timecard_summary
418: set approval_status = hxc_timecard.c_approved_status
419: where timecard_id = p_tc_bb_id;
420:
421: if g_debug then
422: hr_utility.set_location('Processing '||l_proc, 130);
424:
425: -- OTL-Absences Integration (Bug 8779478)
426: IF (nvl(fnd_profile.value('HR_ABS_OTL_INTEGRATION'), 'N') = 'Y') THEN
427: IF g_debug THEN
428: hr_utility.trace('Initiated Online Retrieval from HXC_TIMECARD_APPROVAL.LIGHT_APPROVE_TIMECARDS');
429: END IF;
430:
431: HXC_ABS_RETRIEVAL_PKG.POST_ABSENCES(l_resource_id,
432: l_timecard_start_time,
430:
431: HXC_ABS_RETRIEVAL_PKG.POST_ABSENCES(l_resource_id,
432: l_timecard_start_time,
433: l_timecard_stop_time,
434: hxc_timecard.c_approved_status,
435: p_messages);
436:
437: END IF;
438:
439: end light_approve_timecards;
440:
441: Function active_assignment_over_period
442: (p_timecard_info timecard_info,
443: p_timecard_props hxc_timecard_prop_table_type)
444: return Boolean is
445:
446: l_return boolean := true;
447: l_types_done boolean := false;
481: (p_blocks in hxc_block_table_type,
482: p_item_type in wf_items.item_type%type,
483: p_process_name in wf_process_activities.process_name%type,
484: p_resubmitted in varchar2,
485: p_timecard_props in hxc_timecard_prop_table_type,
486: p_messages in out nocopy hxc_message_table_type
487: ) return VARCHAR2 is
488:
489: l_item_key number;
572: -- other non-active assignment, we should inform them
573: -- that the timecard has been auto-approved.
574: if(not l_active_asg) then
575: -- Add informational Message
576: hxc_timecard_message_helper.addErrorToCollection
577: (p_messages,
578: 'HXC_366547_INACTIVE_ASG_APPR',
579: hxc_timecard.c_business_message,
580: null,
575: -- Add informational Message
576: hxc_timecard_message_helper.addErrorToCollection
577: (p_messages,
578: 'HXC_366547_INACTIVE_ASG_APPR',
579: hxc_timecard.c_business_message,
580: null,
581: null,
582: hxc_timecard.c_hxc,
583: l_timecard_id,
578: 'HXC_366547_INACTIVE_ASG_APPR',
579: hxc_timecard.c_business_message,
580: null,
581: null,
582: hxc_timecard.c_hxc,
583: l_timecard_id,
584: l_timecard_ovn,
585: null,
586: null
594: return to_char(l_item_key);
595:
596: End begin_approval;
597:
598: end hxc_timecard_approval;