des trucs
This commit is contained in:
@@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user