|
|
<?php |
|
|
|
|
|
namespace Kanboard\Analytic; |
|
|
|
|
|
use Kanboard\Core\Base; |
|
|
use Kanboard\Model\TaskModel; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EstimatedTimeComparisonAnalytic extends Base |
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function build($project_id) |
|
|
{ |
|
|
$rows = $this->db->table(TaskModel::TABLE) |
|
|
->columns('SUM(time_estimated) AS time_estimated', 'SUM(time_spent) AS time_spent', 'is_active') |
|
|
->eq('project_id', $project_id) |
|
|
->groupBy('is_active') |
|
|
->findAll(); |
|
|
|
|
|
$metrics = array( |
|
|
'open' => array( |
|
|
'time_spent' => 0, |
|
|
'time_estimated' => 0, |
|
|
), |
|
|
'closed' => array( |
|
|
'time_spent' => 0, |
|
|
'time_estimated' => 0, |
|
|
), |
|
|
); |
|
|
|
|
|
foreach ($rows as $row) { |
|
|
$key = $row['is_active'] == TaskModel::STATUS_OPEN ? 'open' : 'closed'; |
|
|
$metrics[$key]['time_spent'] = (float) $row['time_spent']; |
|
|
$metrics[$key]['time_estimated'] = (float) $row['time_estimated']; |
|
|
} |
|
|
|
|
|
return $metrics; |
|
|
} |
|
|
} |
|
|
|