From c11737df7129fd4c9628cc3270953a2989601929 Mon Sep 17 00:00:00 2001 From: Markus Scherg Date: Wed, 7 Aug 2024 12:27:57 +0200 Subject: [PATCH] Dialog: Auswahl des Schuljahres angepasst --- src/Form/StartType.php | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/Form/StartType.php b/src/Form/StartType.php index 804b927..aabb6ec 100644 --- a/src/Form/StartType.php +++ b/src/Form/StartType.php @@ -39,10 +39,30 @@ class StartType extends AbstractType 'label' => 'Schuljahr', 'placeholder' => 'Auswählen...', 'choices' => [ - 'für das kommende Schuljahr (ab 01.08.' . (intval(date("m")) < 8 ? date("Y") : (date("Y")+1)) . ')' => (intval(date("m")) < 8 ? date("Y") . "_" . (date("Y")+1) : (date("Y")+1) . "_" . (date("Y")+2)), - 'für das laufende Schuljahr (bis 31.07.' . (intval(date("m")) < 8 ? date("Y") : (date("Y")+1)) . ')' => (intval(date("m")) < 8 ? (date("Y") - 1) . "_" . date("Y") : date("Y") . "_" . (date("Y")+1)) + 'für das laufende Schuljahr (' . (intval(date("m")) < 8 ? (date("Y") - 1) . "/" . date("Y") : date("Y") . "/" . (date("Y") + 1)) . ')' => (intval(date("m")) < 8 ? (date("Y") - 1) . "_" . date("Y") : date("Y") . "_" . (date("Y")+1)), + 'für das kommende Schuljahr (' . (intval(date("m")) < 8 ? date("Y") . "/" . (date("Y") + 1) : (date("Y") + 1) . "/" . (date("Y") + 2)) . ')' => (intval(date("m")) < 8 ? date("Y") . "_" . (date("Y") + 1) : (date("Y") + 1) . "_" . (date("Y") + 2)), ], - 'expanded' => true + 'expanded' => true, + 'choice_attr' => function($choice, $key, $value) { + $currentDate = new \DateTime(); + $currentYear = (int)$currentDate->format('Y'); + $currentMonth = (int)$currentDate->format('m'); + $currentDay = (int)$currentDate->format('d'); + + // Determine the start year of the upcoming school year + $startYear = $currentMonth < 8 ? $currentYear : $currentYear + 1; + $upcomingStartYear = $startYear + 1; + + // Check if the current date is before 1st February of the start year + if ($value === $startYear . "_" . $upcomingStartYear) { + $februaryFirst = new \DateTime("$startYear-02-01"); + if ($currentDate < $februaryFirst) { + return ['disabled' => 'disabled']; + } + } + + return []; + } ]); }