Detailed Timecard with Element Names

Post date: Jan 15, 2013 10:31:45 PM

/********************************************************************************************************
*** QUERY              : OTL - Detailed Timecard with Element Names
*** MODULE             : OTL/PAYROLL
*** DESCRIPTION        : Extracts details of the employees' timecards along with the Element Names for a 
***                       given Payroll_name, start_date and stop_date
*** PARAMETERS         :
***                       A. p_payroll_name
***                       B. p_start_date
***                       C. p_stop_date
********************************************************************************************************/
SELECT 

papf.employee_number,

papf.full_name,

hrttv.start_date,

hrttv.stop_date,

petf.element_name,

SUM(hrttv.hours_worked)

FROM  

hxc_resource_total_time_v hrttv,

hxc_timecard_details_v htdv,

per_all_people_f papf,

per_all_assignments_f paaf,

pay_payrolls_f ppf,

pay_element_types_f petf

WHERE  

hrttv.resource_id = papf.person_id

AND hrttv.detail_id = htdv.detail_timecard_id

AND hrttv.resource_id = htdv.detail_resource_id

AND htdv.detail_bld_blk_info_type_id = 1

AND petf.element_type_id = SUBSTR(htdv.detail_attribute_category,11,LENGTH(htdv.detail_attribute_category))

AND papf.person_id = paaf.person_id

AND paaf.payroll_id = ppf.payroll_id

AND ppf.payroll_name = :p_payroll_name

AND hrttv.stop_date BETWEEN papf.effective_start_date AND papf.effective_end_date

AND hrttv.stop_date BETWEEN paaf.effective_start_date AND paaf.effective_end_date

AND hrttv.stop_date BETWEEN ppf.effective_start_date AND ppf.effective_end_date

AND hrttv.stop_date BETWEEN petf.effective_start_date AND petf.effective_end_date

AND TRUNC(hrttv.start_date) >= :p_start_date

AND TRUNC(hrttv.stop_date) <= :p_stop_date

GROUP BY 

papf.employee_number,papf.full_name,hrttv.start_date,hrttv.stop_date,petf.element_name

ORDER BY 

papf.employee_number,hrttv.start_date,hrttv.stop_date,petf.element_name;