/** * test getEmployeeActivityTime() method */ public function testGetEmployeeActivityTimePaging() { $report = new ProjectReport(); // Add some extra employees for ($i = 4; $i < 30; $i++) { $empId = str_pad($i, 3, "0", STR_PAD_LEFT); $this->_addEmployee($i, $empId, "Test Employee {$i}", "First Name {$i}"); } $times = array(); $empIds = array(); // Add events for all employees for ($i = 1; $i < 30; $i++) { $this->_addEvent(1, $i, "Programming", "2007-07-05 05:50", $i * 10); $this->_addEvent(1, $i, "Programming", "2007-07-12 15:25", $i * 5); $times[$i] = $i * 10 + $i * 5; } $activity = $this->activities[1]["Programming"]; $activityId = $activity->getId(); $sysConf = new sysConf(); $pageSize = $sysConf->itemsPerPage; $timeValues = array_chunk($times, $pageSize); $empIds = array_chunk(range(1, 29), $pageSize); for ($page = 0; $page < count($timeValues); $page++) { $results = $report->getEmployeeActivityTime(1, $activityId, "2007-07-05", "2007-07-12", $page + 1); $res = $this->_verifyEmployeeTime($results, 1, $activityId, $empIds[$page], $timeValues[$page]); $this->assertTrue($res); } }
/** * View activity report */ public function viewActivityReport() { $path = "/templates/time/activityReport.php"; $timeEventObj = $this->objTime[0]; $startDate = $this->objTime[1]; $endDate = $this->objTime[2]; $pageNo = $this->objTime[3]; $projectId = $timeEventObj->getProjectId(); $activityId = $timeEventObj->getActivityId(); $time = $timeEventObj->getDuration(); $returnUrl = '?timecode=Time&action=Project_Report_Define'; if (!$this->authorizeObj->isAdmin() && !$this->authorizeObj->isProjectAdminOf($projectId)) { $this->redirect('UNAUTHORIZED_FAILURE', $returnUrl); } $projectObj = new Projects(); $project = $projectObj->fetchProject($projectId); if (empty($project)) { $this->redirect('PROJECT_NOT_FOUND_FAILURE', $returnUrl); } $activity = ProjectActivity::getActivity($activityId); if (empty($activity)) { $this->redirect('ACTIVITY_NOT_FOUND_FAILURE', $returnUrl); } if ($projectId != $activity->getProjectId()) { $this->redirect('UNAUTHORIZED_FAILURE', $returnUrl); } $report = new ProjectReport(); $count = $report->countEmployeesInActivity($projectId, $activityId, $startDate, $endDate); $empTimeArray = $report->getEmployeeActivityTime($projectId, $activityId, $startDate, $endDate, $pageNo); $dataArr[0] = $project; $dataArr[1] = $activity; $dataArr[2] = $startDate; $dataArr[3] = $endDate; $dataArr[4] = $empTimeArray; $dataArr[5] = $count; $dataArr[6] = $time; $dataArr[7] = $pageNo; $template = new TemplateMerger($dataArr, $path); $template->display(); }