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