/** * Test for countEmployeesInActivity() method. */ public function testCountEmployeesInActivity() { $report = new ProjectReport(); $activity = $this->activities[1]["Programming"]; $activityId = $activity->getId(); $this->assertEquals(0, $report->countEmployeesInActivity(1, $activityId, "2007-07-05", "2007-07-12")); $this->_addEvent(1, 1, "Programming", "2007-07-05 09:25", 80); $this->_addEvent(1, 1, "Programming", "2007-07-07 08:12", 70); $this->_addEvent(1, 1, "Programming", "2007-07-10 09:25", 210); $this->assertEquals(1, $report->countEmployeesInActivity(1, $activityId, "2007-07-05", "2007-07-06")); $this->assertEquals(1, $report->countEmployeesInActivity(1, $activityId, "2007-07-05", "2007-07-12")); $this->_addEvent(1, 2, "Programming", "2007-07-25 09:25", 80); $this->assertEquals(1, $report->countEmployeesInActivity(1, $activityId, "2007-07-05", "2007-07-20")); $this->assertEquals(2, $report->countEmployeesInActivity(2, $activityId, "2007-07-05", "2007-07-30")); // Add some extra employees for ($i = 1; $i <= 30; $i++) { $id = $i + 3; $empId = str_pad($id, 3, "0", STR_PAD_LEFT); $this->_addEmployee($id, $empId, "Test Employee {$id}", "First Name {$id}"); $this->_addEvent(1, $id, "Programming", "2007-07-05 05:50", $id * 10); $this->_addEvent(1, $id, "Programming", "2007-07-12 15:25", $id * 5); } $this->assertEquals(32, $report->countEmployeesInActivity(2, $activityId, "2007-07-05", "2007-07-30")); }
/** * 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(); }