Select Git revision
ReportsController.php
-
Tim Steiner authored
Daily, weekly, and monthly reporting on specific attendees implemented.
Tim Steiner authoredDaily, weekly, and monthly reporting on specific attendees implemented.
ReportsController.php 7.57 KiB
<?php
class Timeclock_ReportsController extends Unl_Controller_Action
{
protected $_tableNameTransform = array('count' => 'count',
'building_name' => 'Location',
'time' => 'time',
'sex' => 'Gender',
'college' => 'College',
'major_1' => 'Major',
'major_2' => 'Second-Major',
'minor_1' => 'Minor',
'minor_2' => 'Second-Minor',
'degree' => 'Degree',
'class_level' => 'Class',
'honors_program' => 'Honors',
'full_part' => 'Full-time',
'birth_dt' => 'Birthdate',
'ethnic_origin' => 'Ethnicity',
'advisor_name' => 'Advisor',
'pre_prof' => 'Pre-Prof',
'ug_cum_gpa' => 'GPA');
public function indexAction()
{
$this->_redirect('/timeclock/reports/demographics');
}
public function demographicsAction()
{
$userTable = new Auth_Model_Users();
$events = $userTable->fetchCurrentUser()->findDependentRowset('Timeclock_Model_Events');
$eventsArray = array();
foreach ($events as $event) {
$eventsArray[$event->eventId] = $event->name;
}
$this->view->events = $eventsArray;
$this->view->fields = $this->_tableNameTransform;
}
public function getDataAction()
{
$eventId = $this->_getParam('eventId');
$fields = $this->_getParam('fields');
$eventId = intval($eventId);
$peopleTable = new Timeclock_Model_People();
$demographics = $peopleTable->fetchCountBy($eventId, $fields);
$dom = new DOMDocument();
$root = $dom->createElement('result');
$dom->appendChild($root);
foreach ($demographics as $row) {
$recordNode = $dom->createElement('record');
$root->appendChild($recordNode);
foreach ($row as $key => $value) {
$node = $dom->createElement($this->_tableNameTransform[$key]);
$node->appendChild($dom->createTextNode($value));
$recordNode->appendChild($node);
}
}
header('Content-Type: text/xml');
echo $dom->saveXML();
exit;