fix: drop status breakdown from applications-by-destination stats

This commit is contained in:
2026-09-01 09:46:01 +02:00
parent f6667dcfc7
commit 0d06bc4271
3 changed files with 13 additions and 36 deletions
+5 -15
View File
@@ -253,12 +253,15 @@ class ApplicationRepository extends ServiceEntityRepository
}
/**
* The raw tally grouped by normalized hotel code, split by application status.
* The raw application tally grouped by normalized hotel code.
*
* Mirrors DispositionRepository::getFeedbackStatisticsByNormalizedHotelCodeQuery() - the
* "Bewerbungen pro Destination" screen sits next to "Feedback pro Destination" and means the
* same thing by a destination and a season, so the normalization and the date filter are the
* shared ones.
*
* Status is deliberately not broken out: an application's status moves over its lifetime, so a
* snapshot of the current status is not a meaningful figure for a past period.
*/
public function getApplicationsByDestinationQuery(
?\DateTimeImmutable $dateFrom = null,
@@ -272,16 +275,10 @@ class ApplicationRepository extends ServiceEntityRepository
$qb
->select(
$normalizedHotelCode.' AS hotelCode',
'SUM(CASE WHEN application.status = :statusNew THEN 1 ELSE 0 END) AS newCount',
'SUM(CASE WHEN application.status = :statusPending THEN 1 ELSE 0 END) AS pendingCount',
'SUM(CASE WHEN application.status = :statusRejected THEN 1 ELSE 0 END) AS rejectedCount',
'COUNT(application.id) AS totalCount'
)
->innerJoin('application.assignment', 'assignment')
->innerJoin('assignment.destination', 'destination')
->setParameter('statusNew', Application::STATUS_NEW)
->setParameter('statusPending', Application::STATUS_PENDING)
->setParameter('statusRejected', Application::STATUS_REJECTED)
->groupBy('hotelCode')
->orderBy('totalCount', 'DESC')
->addOrderBy('hotelCode', 'ASC')
@@ -293,14 +290,10 @@ class ApplicationRepository extends ServiceEntityRepository
}
/**
* Returns application counts grouped by normalized hotel code (base 3-char code),
* split into the three application statuses plus a total.
* Returns the application count grouped by normalized hotel code (base 3-char code).
*
* @return array<int, array{
* hotelCode: string,
* new: int,
* pending: int,
* rejected: int,
* total: int
* }>
*/
@@ -310,9 +303,6 @@ class ApplicationRepository extends ServiceEntityRepository
): array {
return array_map(static fn (array $row): array => [
'hotelCode' => $row['hotelCode'],
'new' => (int) $row['newCount'],
'pending' => (int) $row['pendingCount'],
'rejected' => (int) $row['rejectedCount'],
'total' => (int) $row['totalCount'],
], $this->getApplicationsByDestinationQuery($dateFrom, $dateTo)->getResult());
}