From 68ffa216f849396ed5a300b31a3554e77329481e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Wed, 18 Dec 2024 09:59:07 +0100 Subject: [PATCH] feat: overdue feedbacks on admin dashboard --- src/Controller/Admin/IndexController.php | 2 ++ src/Repository/DispositionRepository.php | 13 +++++--- src/Service/Cron/FeedbackReminderService.php | 2 +- templates/admin/index.html.twig | 31 ++++++++++++++++++++ 4 files changed, 43 insertions(+), 5 deletions(-) diff --git a/src/Controller/Admin/IndexController.php b/src/Controller/Admin/IndexController.php index ad8fa7e..d010f6f 100644 --- a/src/Controller/Admin/IndexController.php +++ b/src/Controller/Admin/IndexController.php @@ -45,6 +45,7 @@ class IndexController extends AbstractController $dispositionRepository = $this->entityManager->getRepository(Disposition::class); $overdueContracts = $dispositionRepository->findOverdueContracts(); $newDispositions = $dispositionRepository->getNew(); + $overdueFeedbacks = $dispositionRepository->findDispositionsWithOverdueFeedback(7); return $this->render('admin/index.html.twig', [ 'applications' => $applications, @@ -59,6 +60,7 @@ class IndexController extends AbstractController 'pendingDocumentsCount' => $pendingDocumentsCount, 'overdueContracts' => $overdueContracts, 'newDispositions' => $newDispositions, + 'overdueFeedbacks' => $overdueFeedbacks, ]); } } \ No newline at end of file diff --git a/src/Repository/DispositionRepository.php b/src/Repository/DispositionRepository.php index 9893e40..98e0ee2 100644 --- a/src/Repository/DispositionRepository.php +++ b/src/Repository/DispositionRepository.php @@ -170,7 +170,7 @@ class DispositionRepository extends ServiceEntityRepository ; } - public function getDispositionsWithPendingFeedbackQuery(?string $hotelCode = null): Query + public function getDispositionsWithPendingFeedbackQuery(?string $hotelCode = null, ?int $offsetDays = null): Query { $qb = $this->createQueryBuilder('disposition'); @@ -191,9 +191,14 @@ class DispositionRepository extends ServiceEntityRepository $qb->expr()->isNull('feedback') )) ->setParameter('status', [Assignment::STATUS_CALLED_OFF, Assignment::STATUS_DELETED]) - ->setParameter('dateTo', new \DateTimeImmutable()) ; + $dateTo = new \DateTimeImmutable(); + if (null !== $offsetDays) { + $dateTo = $dateTo->modify('-'.$offsetDays.' days'); + } + $qb->setParameter('dateTo', $dateTo); + if (null !== $hotelCode) { $qb ->andWhere($qb->expr()->like('destination.hotelCode', ':hotelCode')) @@ -204,10 +209,10 @@ class DispositionRepository extends ServiceEntityRepository return $qb->getQuery(); } - public function findDispositionsWithPendingFeedback(): array + public function findDispositionsWithOverdueFeedback(?int $offsetDays = null): array { return $this - ->getDispositionsWithPendingFeedbackQuery() + ->getDispositionsWithPendingFeedbackQuery(null, $offsetDays) ->getResult() ; } diff --git a/src/Service/Cron/FeedbackReminderService.php b/src/Service/Cron/FeedbackReminderService.php index 7953fe2..cfa815f 100644 --- a/src/Service/Cron/FeedbackReminderService.php +++ b/src/Service/Cron/FeedbackReminderService.php @@ -24,7 +24,7 @@ class FeedbackReminderService public function sendFeedbackReminders(): string { /** @var Disposition[] $dispositionsWithPendingFeedbacks */ - $dispositionsWithPendingFeedbacks = $this->dispositionRepository->findDispositionsWithPendingFeedback(); + $dispositionsWithPendingFeedbacks = $this->dispositionRepository->findDispositionsWithOverdueFeedback(); $sortedFeedbacks = []; diff --git a/templates/admin/index.html.twig b/templates/admin/index.html.twig index 388137e..b9469e8 100644 --- a/templates/admin/index.html.twig +++ b/templates/admin/index.html.twig @@ -171,6 +171,37 @@ {% endfor %} +
+

+ überfällige Feedbacks +

+ +

Überfällige Honorarverträge