src/Controller/DonsController.php line 39
<?phpnamespace App\Controller;use App\Entity\Dons;use App\Entity\User;use App\Form\DonsType;use App\Net15\PaiementBundle\Entity\ModePaiement;use App\Repository\DonsRepository;use App\Repository\EditionRepository;use App\Repository\UserRepository;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\Routing\Annotation\Route;#[Route('/dons')]class DonsController extends AbstractController{#[Route('/liste', name: 'app_dons_index', methods: ['GET'])]public function index(DonsRepository $donsRepository): Response{if ($this->isGranted('ROLE_ADMIN')) {return $this->render('dons/index.html.twig', ['dons' => $donsRepository->findBy(['deletedAt' => null,'status' => Dons::STATUT_PAYE])]);}elseif($this->isGranted('ROLE_USER')){return $this->render('dons/index.html.twig', ['dons' => $donsRepository->findBy(['deletedAt' => null, 'user' => $this->getUser(),'status' => Dons::STATUT_PAYE])]);}else{return $this->redirectToRoute('app_don_new');}}#[Route('/', name: 'app_don_new', methods: ['GET', 'POST'])]public function new(Request $request, DonsRepository $donRepository, UserRepository $userRepository): Response{$don = new Dons(null, null, 0.00);$form = $this->createForm(DonsType::class, $don);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$user = $userRepository->findOneBy(['deletedAt' => null, 'email' => $request->get('dons')['email']]);if(null === $user && $request->get('dons')['lastname'] && $request->get('dons')['firstname'] && $request->get('dons')['email']) {$user = new User();$user->setLastname($request->get('dons')['lastname']);$user->setFirstname($request->get('dons')['firstname']);$user->setEmail($request->get('dons')['email']);$user->setPhone($request->get('dons')['phone']);$user->setAddress($request->get('dons')['address']);$user->setAddressComplement($request->get('dons')['address_complement']);$user->setZipCode($request->get('dons')['zip_code']);$user->setCity($request->get('dons')['city']);$user->setRoles(['ROLE_DONATEUR']);$userRepository->save($user);$don->setUser($user);$donRepository->save($don);$recapitulatif = ['type' => 'don','id' => $don->getId(),'name' => 'Don','quantity' => 1,'price' => $don->getDonationAmount(),'lastname' => $request->get('dons')['lastname'],'firstname' => $request->get('dons')['firstname'],'email' => $request->get('dons')['email'],'phone' => $request->get('dons')['phone'],'address' => $request->get('dons')['address'],'address_complement' => $request->get('dons')['address_complement'],'zip_code' => $request->get('dons')['zip_code'],'city' => $request->get('dons')['city']];} else {if( null === $user->getPhone() ) $user->setAddress($request->get('dons')['phone']);if( null === $user->getAddress() ) $user->setAddress($request->get('dons')['address']);if( null === $user->getAddressComplement() ) $user->setAddress($request->get('dons')['address_complement']);if( null === $user->getZipCode() ) $user->setAddress($request->get('dons')['zip_code']);if( null === $user->getCity() ) $user->setAddress($request->get('dons')['city']);$don->setUser($user);$donRepository->save($don);$recapitulatif = ['type' => 'don','id' => $don->getId(),'name' => 'Don','quantity' => 1,'price' => $don->getDonationAmount(),'lastname' => $user->getLastname(),'firstname' => $user->getFirstname(),'email' => $user->getEmail(),'phone' => $user->getPhone(),'address' => $user->getAddress(),'address_complement' => $user->getAddressComplement(),'zip_code' => $user->getZipCode(),'city' => $user->getCity(),];}return $this->redirectToRoute('paiement_payer', ['parent_entity_class' => null,'parent_entity_id' => null,'entity_class' => Dons::class,'entity_id' => $don->getId()->toRfc4122(),'libelle' => 'Motards du viaduc - Don','montant' => $don->getDonationAmount(),'recapitulatif' => $recapitulatif,'payement_method' => ($this->getUser()?->hasRole('ROLE_ADMIN') === true ? ModePaiement::AUTRE : ModePaiement::PAYBOX),'back_path' => 'home','prenom' => $user->getFirstname(),'nom' => $user->getLastname(),'adresse1' => $user->getAddress(),'adresse2' => $user->getAddressComplement(),'zipcode' => $user->getZipCode(),'city' => $user->getCity(),'country' => $user->getPays()->getId(),], Response::HTTP_SEE_OTHER);}return $this->render('dons/new.html.twig', ['don' => $don,'form' => $form,]);}#[Route('/voir/{id}', name: 'app_dons_show', methods: ['GET'])]public function show(Dons $don): Response{return $this->render('dons/show.html.twig', ['don' => $don,]);}}