des trucs

This commit is contained in:
mepiphana2023
2024-11-26 15:34:54 +01:00
parent bacd365306
commit 8c065dd886
5 changed files with 204 additions and 35 deletions

View File

@@ -2,6 +2,7 @@
namespace App\Controller;
use App\Entity\Etat;
use App\Entity\Sortie;
use App\Form\SortieType;
use App\Repository\EtatRepository;
@@ -202,4 +203,35 @@ class SortieController extends AbstractController
'profile' => $userConnect,
]);
}
#[Route('/cancel/{id}', name: 'cancel', methods: ['POST'])]
public function cancel(
string $id,
Request $request,
EntityManagerInterface $entityManager,
TokenStorageInterface $tokenStorage
): Response {
$user = $tokenStorage->getToken()?->getUser();
$sortie = $entityManager->getRepository(Sortie::class)->find($id);
if (!$sortie || $sortie->getOrganisateur()->getIdParticipant() !== $user->getIdParticipant()) {
$this->addFlash('error', 'Vous n\'avez pas l\'autorisation d\'annuler cette sortie.');
return $this->redirectToRoute('home');
}
$motif = $request->request->get('motif');
if (!$motif) {
$this->addFlash('error', 'Le motif d\'annulation est obligatoire.');
return $this->redirectToRoute('sortie_view', ['id' => $id]);
}
$sortie->setMotifAnnul($motif);
$sortie->setEtat($entityManager->getRepository(Etat::class)->findOneBy(['libelle' => 'Annulée']));
$entityManager->flush();
$this->addFlash('success', 'La sortie a été annulée avec succès.');
return $this->redirectToRoute('home');
}
}