/** * 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); }