diff --git a/src/Mealz/MealBundle/Controller/MealAdminController.php b/src/Mealz/MealBundle/Controller/MealAdminController.php index daf3ad34d..eaca69968 100644 --- a/src/Mealz/MealBundle/Controller/MealAdminController.php +++ b/src/Mealz/MealBundle/Controller/MealAdminController.php @@ -206,6 +206,11 @@ private function handleDay(array $day): void $this->setLockParticipationForDay($dayEntity, $day); $eventCollection = $day['events']; + foreach ($dayEntity->getEvents() as $event) { + $this->em->remove($event); // Hier wird sichergestellt, dass die Events tatsächlich aus der Datenbank gelöscht werden. + } + $dayEntity->removeEvents(); + $this->em->flush(); // Alle Änderungen in die Datenbank schreiben. foreach ($eventCollection as $event) { $this->logger->info('Event '. implode($event)); $this->handleEventArr($event, $dayEntity); @@ -240,9 +245,13 @@ private function handleNewDay($dayData, Day $day): void $day->setEnabled($dayData['enabled']); } - $this->setLockParticipationForDay($day, $dayData); - $eventCollection = $dayData['events']; + $this->setLockParticipationForDay($day, $dayData); + foreach ($day->getEvents() as $event) { + $this->em->remove($event); // Hier wird sichergestellt, dass die Events tatsächlich aus der Datenbank gelöscht werden. + } + $day->removeEvents(); + $this->em->flush(); // Alle Änderungen in die Datenbank schreiben. foreach($eventCollection as $eventArr){ $this->handleEventArr($eventArr, $day); } @@ -290,7 +299,7 @@ private function handleMealArray(array $mealArr, Day $dayEntity): void } } private function handleEventArr(array $eventArr, Day $day): void{ - $this->addEvent($eventArr, $day); + $this->addEvent($eventArr, $day); } private function addEvent(array $event, Day $dayEntity){ diff --git a/src/Mealz/MealBundle/Entity/Day.php b/src/Mealz/MealBundle/Entity/Day.php index ae28785ba..97c6cbdfd 100644 --- a/src/Mealz/MealBundle/Entity/Day.php +++ b/src/Mealz/MealBundle/Entity/Day.php @@ -108,6 +108,10 @@ public function removeEvent(EventParticipation $event){ } } + public function removeEvents(){ + $this->events->clear(); + } + public function setEvents(EventCollection $events): void { $this->events = $events;