From 68b20a107ddbca593b23e9f380a2151988b92551 Mon Sep 17 00:00:00 2001 From: Serreau Jovann Date: Sun, 23 Nov 2025 23:07:45 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(AdminController):=20Envoie=20l?= =?UTF-8?q?'URL=20de=20redirection=20compl=C3=A9t=C3=A9e=20=C3=A0=20Docuse?= =?UTF-8?q?al.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🐛 fix(AdController): Crée un MainMember après la validation du document. --- src/Controller/AdController.php | 24 +++++++++++++++++++++++- src/Controller/Admin/AdminController.php | 6 +++--- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/Controller/AdController.php b/src/Controller/AdController.php index 746ffe2..52eac6b 100644 --- a/src/Controller/AdController.php +++ b/src/Controller/AdController.php @@ -7,9 +7,13 @@ use App\Dto\Contact\DtoContact; use App\Entity\Account; use App\Entity\AccountResetPasswordRequest; use App\Entity\Ag\Main; +use App\Entity\Ag\MainMember; +use App\Entity\MembersCotisations; use App\Form\RequestPasswordConfirmType; use App\Form\RequestPasswordRequestType; +use App\Repository\Ag\MainMemberRepository; use App\Repository\Ag\MainRepository; +use App\Repository\Ag\MainSignedRepository; use App\Service\Mailer\Mailer; use App\Service\ResetPassword\Event\ResetPasswordConfirmEvent; use App\Service\ResetPassword\Event\ResetPasswordEvent; @@ -28,13 +32,31 @@ class AdController extends AbstractController { #[Route(path: '/adh/{id}', name: 'app_adh', options: ['sitemap' => false], methods: ['GET','POST'])] - public function adh(?Main $main,Request $request): Response + public function adh(?Main $main,Request $request,EntityManagerInterface $entityManager,MainMemberRepository $mainMemberRepository,MainSignedRepository $mainSignedRepository): Response { if(!$main instanceof Main){ return $this->redirectToRoute('app_home'); } if($request->query->has('validateResult')) { + + $vr = $mainSignedRepository->find($request->query->get('vr')); + $r = $mainMemberRepository->findOneBy(['main'=>$main,'member'=>$vr->getMembers()]); + if(!$r instanceof MainMember){ + $r = new MainMember(); + $r->setMain($main); + $r->setMember($vr->getMembers()); + $t = new \DateTime(); + $tz = new \DateTime(); + $tz->modify('+1 year'); + $isValid = $vr->getMembers()->getMembersCotisations()->filter(function (MembersCotisations $membersCotisations) use ($t,$tz) { + return ($membersCotisations->getStartdATE()->format('Y') == $t->format('Y')) && ($membersCotisations->getEndDate()->format('Y') == $tz->format('Y')); + })->first(); + + $r->setIsVotedAllow($isValid instanceof MembersCotisations); + $entityManager->persist($r); + $entityManager->flush(); + } return $this->render('adh_validate.twig',[ 'main' => $main, ]); diff --git a/src/Controller/Admin/AdminController.php b/src/Controller/Admin/AdminController.php index 104571e..4dc15e7 100644 --- a/src/Controller/Admin/AdminController.php +++ b/src/Controller/Admin/AdminController.php @@ -321,7 +321,7 @@ class AdminController extends AbstractController 'submitters' => [ [ 'role' => 'First Party', - 'email' => 'contact@e-cosplay.fr' + 'email' => 'contact@e-cosplay.fr', ] ] ]); @@ -372,10 +372,11 @@ class AdminController extends AbstractController $isSigned->setMain($main); $isSigned->setSubmiterId(0); $entityManager->persist($isSigned); - //$entityManager->flush(); + $entityManager->flush(); $submitters[] = [ 'role' => 'member_'.$member->getId(), 'email' => $member->getEmail(), + 'completed_redirect_url' =>$urlRoot.$this->generateUrl('app_adh',['id'=>$main->getId(),'validateResult'=>true,'vr'=>$isSigned->getId()]), ]; $rList[$member->getId()] = $isSigned; } @@ -400,7 +401,6 @@ class AdminController extends AbstractController 'file' => $url ] ], - 'completed_redirect_url' => $urlRoot.$this->generateUrl('app_adh',['id'=>$main->getId(),'validateResult'=>true]), 'submitters' => $submitters ]; $docuseal = new \Docuseal\Api('pgAU116mCFmeF7WQSezHqxtZW8V1fgo31u5d2FXoaKe', 'https://signature.esy-web.dev/api');