See the "Absences" report from http://wiki.civicrm.org/confluence/display/HR/Absence+-+Manager+Perspective
T1. Implement the Report template with a unit-test (similar to the unit-tests in hrreport). Some notes are in the mockup. Additional notes:
- The table is essentially displaying a list of activities.
- The "absence type" column is the activity-type column.
- The results should always be filtered based on ACLs (ie you can only activities for contacts if you permission to see the contact)
- The only activity-types that can ever be used or shown are the activity types mentioned in civicrm_absence_type.
- The Qty is the sum of durations of the "Absence" activities. (e.g. "select sum(duration) from civicrm_activity where source_record_id = %d" to lookup the qty for a particular absence-request. To get them en masse, maybe "select source_record_id, sum(duration) from civicrm_activity where ... group by source_record_id)
T2. Register the ReportTemplate and ReportInstance classes (*.mgd.php)
T3. Ensure that a menu item appears in the "Absences" menu (like in mockup).