diff options
Diffstat (limited to 'app/Model/ProjectAnalytic.php')
-rw-r--r-- | app/Model/ProjectAnalytic.php | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/app/Model/ProjectAnalytic.php b/app/Model/ProjectAnalytic.php index e77a0368..79277e79 100644 --- a/app/Model/ProjectAnalytic.php +++ b/app/Model/ProjectAnalytic.php @@ -179,4 +179,49 @@ class ProjectAnalytic extends Base return $stats; } + + /** + * Get the time spent and estimated into each status + * + * @access public + * @param integer $project_id + * @return array + */ + public function getHoursByStatus($project_id) + { + $stats = array(); + + // Get the times related to each task + $tasks = $this->db + ->table(Task::TABLE) + ->columns('id', 'time_estimated', 'time_spent', 'is_active') + ->eq('project_id', $project_id) + ->desc('id') + ->limit(1000) + ->findAll(); + + // Init values + $stats['closed'] = array( + 'time_spent' => 0, + 'time_estimated' => 0, + ); + $stats['open'] = array( + 'time_spent' => 0, + 'time_estimated' => 0, + ); + + + // Add times spent and estimated to each status + foreach ($tasks as &$task) { + if ($task['is_active']) { + $stats['open']['time_estimated'] += $task['time_estimated']; + $stats['open']['time_spent'] += $task['time_spent']; + } else { + $stats['closed']['time_estimated'] += $task['time_estimated']; + $stats['closed']['time_spent'] += $task['time_spent']; + } + } + + return $stats; + } } |