Example #1
0
 /**
  * Parse time events and generate the information for timesheets
  *
  * @param Timesheet timesheet
  */
 private function _generateTimesheet($timesheet)
 {
     $timeEventObj = new TimeEvent();
     $timeEventObj->setTimesheetId($timesheet->getTimesheetId());
     $timeEventObj->setEmployeeId($timesheet->getEmployeeId());
     $timeEventObj->setStartTime($timesheet->getStartDate());
     $timeEventObj->setEndTime($timesheet->getEndDate());
     $timeEvents = $timeEventObj->fetchTimeEvents();
     $durationArr = null;
     $dailySum = null;
     $activitySum = null;
     $totalTime = 0;
     for ($i = 0; $i < count($timeEvents); $i++) {
         $projectId = $timeEvents[$i]->getProjectId();
         $activityId = $timeEvents[$i]->getActivityId();
         if ($timeEvents[$i]->getStartTime() != null) {
             $expenseDate = strtotime(date('Y-m-d', strtotime($timeEvents[$i]->getStartTime())));
         } else {
             $expenseDate = strtotime(date('Y-m-d', strtotime($timeEvents[$i]->getReportedDate())));
         }
         if (!isset($durationArr[$projectId][$activityId][$expenseDate])) {
             $durationArr[$projectId][$activityId][$expenseDate] = 0;
         }
         if (!isset($dailySum[$expenseDate])) {
             $dailySum[$expenseDate] = 0;
         }
         if (!isset($activitySum[$projectId][$activityId])) {
             $activitySum[$projectId][$activityId] = 0;
         }
         $durationArr[$projectId][$activityId][$expenseDate] += $timeEvents[$i]->getDuration();
         $dailySum[$expenseDate] += $timeEvents[$i]->getDuration();
         $activitySum[$projectId][$activityId] += $timeEvents[$i]->getDuration();
         $totalTime += $timeEvents[$i]->getDuration();
     }
     return array($durationArr, $dailySum, $activitySum, $totalTime);
 }