Ejemplo n.º 1
0
 /**
  * Get a summary of task timing for a given period
  *
  * @param RegisteredUser $user
  * @param int $taskid
  * @param int $projectid
  * @param int $clientid
  * @param time $start
  * @param time $end
  * @return ArrayObject
  */
 public function getSummaryTimesheet($user = null, $taskid = null, $projectid = null, $clientid = null, $timesheet = -1, $start = null, $end = null)
 {
     $select = $this->dbService->select()->from('task', array(new Zend_Db_Expr('task.title as title'), 'id'))->joinLeft('crmuser', 'task.userid=crmuser.username', 'username')->joinLeft('timesheetrecord', 'task.id=timesheetrecord.taskid', new Zend_Db_Expr('SUM(endtime - starttime) as timespent'));
     $select = $this->filterBaseTimesheetQuery($select, $taskid, $projectid, $clientid, $start, $end);
     // If we weren't passed a user, just load
     // one from the request
     if ($user != null) {
         $select->where('task.userid = ?', $user->getUsername());
     }
     if ($timesheet >= 0) {
         $select->where('timesheetrecord.timesheetid = ?', $timesheet);
     }
     $select->group(new Zend_Db_Expr('task.id'));
     $select->order('endtime DESC');
     $tasks = $this->dbService->fetchObjects('task', $select);
     return $tasks;
 }