/** * [getIssueCountInSprintByStatus Get issue count in sprint by issue status] * @param int $projectId * @param int $sprintId * @param string $issueStatusMachineName * @return array $count */ public static function getIssueCountInSprintByStatus($projectId, $sprintId, $issueStatusMachineName) { $issueStatusId = IssueStatus::where('machine_name', '=', $issueStatusMachineName)->first()->id; $count = ['count' => 0, 'percentage' => 0]; $count['count'] = DB::table('issues')->select(['id', 'sprint_id', 'status_id'])->where(['project_id' => $projectId, 'sprint_id' => $sprintId, 'status_id' => $issueStatusId])->count(); if ($count['count'] > 0) { $count['percentage'] = number_format($count['count'] / self::getIssueCountInSprint($sprintId) * 100, 0); } return $count; }
/** * Get issue statuses, except "archive" by sort_order */ public static function getBySortOrder() { return IssueStatus::where('machine_name', '!=', 'archive')->orderBy('sort_order', 'asc')->get(); }