Пример #1
0
 /**
  * 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);
     }
 }
Пример #2
0
 /**
  * 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();
 }