feat(AdminController): Envoie l'URL de redirection complétée à Docuseal.

🐛 fix(AdController): Crée un MainMember après la validation du document.
This commit is contained in:
Serreau Jovann
2025-11-23 23:07:45 +01:00
parent 5b4c06b470
commit 68b20a107d
2 changed files with 26 additions and 4 deletions

View File

@@ -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,
]);

View File

@@ -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');