summaryrefslogtreecommitdiff
path: root/app/Model/ProjectAnalytic.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/Model/ProjectAnalytic.php')
-rw-r--r--app/Model/ProjectAnalytic.php40
1 files changed, 40 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;
+ }
}