/**
  * Build the project object array from the given result set
  *
  * @param resource $result Result set from the database
  * @return array   Array of Project objects
  */
 public static function projectObjArr($result)
 {
     $objArr = null;
     while ($row = mysql_fetch_assoc($result)) {
         $tmpcusArr = new Projects();
         $tmpcusArr->setProjectId($row[self::PROJECT_DB_FIELD_PROJECT_ID]);
         $tmpcusArr->setCustomerId($row[self::PROJECT_DB_FIELD_CUSTOMER_ID]);
         $tmpcusArr->setProjectName($row[self::PROJECT_DB_FIELD_NAME]);
         $tmpcusArr->setProjectDescription($row[self::PROJECT_DB_FIELD_DESCRIPTION]);
         $tmpcusArr->setDeleted($row[self::PROJECT_DB_FIELD_DELETED]);
         $objArr[] = $tmpcusArr;
     }
     return $objArr;
 }
 public function editTimesheetGrid($messageType = null, $message = null, $showComments = 'No')
 {
     $timesheet = $this->objTime;
     /* Setting Grid array: Begins */
     $timeEventObj = new TimeEvent();
     $timeEventObj->setTimesheetId($timesheet->getTimesheetId());
     $timeEventObj->setEmployeeId($timesheet->getEmployeeId());
     $timeEventObj->setStartTime($timesheet->getStartDate());
     $timeEventObj->setEndTime($timesheet->getEndDate());
     $timeEvents = $timeEventObj->fetchTimeEvents();
     $eventsCount = count($timeEvents);
     $grid = array();
     $activityObj = new ProjectActivity();
     if ($eventsCount > 0) {
         for ($i = 0; $i < $eventsCount; $i++) {
             $projectId = $timeEvents[$i]->getProjectId();
             $activityId = $timeEvents[$i]->getActivityId();
             $gridKey = $timeEvents[$i]->getEmployeeId() . '-' . $projectId . '-' . $activityId;
             $dateKey = strtotime($timeEvents[$i]->getReportedDate());
             if (!isset($grid[$gridKey])) {
                 $activityObj->setId($activityId);
                 $activityObj->fetch();
                 $projectObj = new Projects();
                 $projectObj->setProjectId($projectId);
                 $projectObj->fetch();
                 $grid[$gridKey]['projectId'] = $projectId;
                 // TODO: Remove this and use project object in the template
                 $grid[$gridKey]['projectObj'] = $projectObj;
                 $grid[$gridKey]['activityId'] = $activityId;
                 // TODO: Remove this and use activity object in the template
                 $grid[$gridKey]['activityName'] = $activityObj->getName();
                 $grid[$gridKey]['isActivityDeleted'] = $activityObj->isDeleted();
                 $grid[$gridKey]['activityList'] = $activityObj->getActivityList($projectId);
             }
             $grid[$gridKey][$dateKey]['duration'] = round($timeEvents[$i]->getDuration() / 3600, 2);
             $grid[$gridKey][$dateKey]['eventId'] = $timeEvents[$i]->getTimeEventId();
             $grid[$gridKey][$dateKey]['comment'] = $timeEvents[$i]->getDescription();
         }
         $records['grid'] = $grid;
     } else {
         $records['grid'] = null;
     }
     /* Setting Grid array: Ends */
     /* Setting Projects List: Begins */
     $projectObj = new Projects();
     $projectObj->setDeleted(Projects::PROJECT_NOT_DELETED);
     $projects = $projectObj->fetchProjects(false);
     $projectsCount = count($projects);
     if ($projectsCount > 0) {
         for ($i = 0; $i < $projectsCount; $i++) {
             $projectId = $projects[$i]->getProjectId();
             $projectsList[$i]['name'] = $projects[$i]->retrieveCustomerName($projectId) . ' - ' . $projects[$i]->getProjectName();
             $projectsList[$i]['id'] = $projectId;
             $projectsList[$i]['deleted'] = $projects[$i]->getDeleted();
         }
         $records['projectsList'] = $projectsList;
     } else {
         $records['projectsList'] = null;
     }
     /* Setting Projects List: Ends */
     $records['employeeId'] = $timesheet->getEmployeeId();
     $records['timesheetId'] = $timesheet->getTimesheetId();
     $records['timesheetPeriodId'] = $timesheet->getTimesheetPeriodId();
     $records['startDateStamp'] = strtotime($timesheet->getStartDate());
     $records['endDateStamp'] = strtotime($timesheet->getEndDate());
     if (isset($messageType)) {
         $records['messageType'] = $messageType;
         $records['message'] = $message;
     }
     $records['showComments'] = $showComments;
     $path = '/templates/time/editTimesheetGrid.php';
     $template = new TemplateMerger($records, $path);
     $template->display();
 }