diff options
Diffstat (limited to 'app/Model')
| -rw-r--r-- | app/Model/ProjectAnalytic.php | 40 | ||||
| -rw-r--r-- | app/Model/TaskFinder.php | 1 | 
2 files changed, 41 insertions, 0 deletions
| diff --git a/app/Model/ProjectAnalytic.php b/app/Model/ProjectAnalytic.php index e77a0368..8a982bd7 100644 --- a/app/Model/ProjectAnalytic.php +++ b/app/Model/ProjectAnalytic.php @@ -179,4 +179,44 @@ class ProjectAnalytic extends Base          return $stats;      } + + +    public function getHoursByStatus($project_id) +    { +        $stats = array(); +        $columns = $this->board->getColumnsList($project_id); + +        // Get the time spent of the last move for each tasks +        $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, +            ); + + +        // Get time spent foreach task/column and take into account the last move +        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; +    }  } diff --git a/app/Model/TaskFinder.php b/app/Model/TaskFinder.php index 9514fe4a..836fbe46 100644 --- a/app/Model/TaskFinder.php +++ b/app/Model/TaskFinder.php @@ -122,6 +122,7 @@ class TaskFinder extends Base                  'tasks.recurrence_parent',                  'tasks.recurrence_child',                  'tasks.time_estimated', +                'tasks.time_spent',                  User::TABLE.'.username AS assignee_username',                  User::TABLE.'.name AS assignee_name',                  Category::TABLE.'.name AS category_name', | 
