| <?php |
|
|
| namespace Kanboard\Analytic; |
|
|
| use Kanboard\Core\Base; |
| use Kanboard\Model\TaskModel; |
|
|
| |
| |
| |
| |
| |
| |
| class EstimatedActualColumnAnalytic extends Base |
| { |
| |
| |
| |
| |
| |
| |
| |
| public function build($project_id) |
| { |
| $rows = $this->db->table(TaskModel::TABLE) |
| ->columns('SUM(time_estimated) AS hours_estimated', 'SUM(time_spent) AS hours_spent', 'column_id') |
| ->eq('project_id', $project_id) |
| ->groupBy('column_id') |
| ->findAll(); |
|
|
| $columns = $this->columnModel->getList($project_id); |
|
|
| $metrics = []; |
| foreach ($columns as $column_id => $column_title) { |
| $metrics[$column_id] = array( |
| 'hours_spent' => 0, |
| 'hours_estimated' => 0, |
| 'title' => $column_title, |
| ); |
| } |
|
|
| foreach ($rows as $row) { |
| $metrics[$row['column_id']]['hours_spent'] = (float) $row['hours_spent']; |
| $metrics[$row['column_id']]['hours_estimated'] = (float) $row['hours_estimated']; |
| } |
|
|
| return $metrics; |
| } |
| } |
|
|