src/Controller/CustomerController.php line 43

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  8. use Doctrine\ORM\EntityManagerInterface;
  9. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  10. use Symfony\Component\HttpFoundation\JsonResponse;
  11. use Symfony\Component\HttpFoundation\File\Exception\FileException;
  12. use Symfony\Component\HttpFoundation\File\UploadedFile;
  13. use Symfony\Component\String\Slugger\SluggerInterface;
  14. use Symfony\Component\DependencyInjection\ContainerInterface;
  15. use Symfony\Contracts\Translation\TranslatorInterface;
  16. use App\Services\RoleService;
  17. use App\Services\FileUploader;
  18. use App\Services\Utils;
  19. use App\Form\UserType;
  20. use App\Entity\User;
  21. use App\Entity\FileSend;
  22. use App\Entity\Dic;
  23. use App\Entity\Ba;
  24. /**
  25.  * @Route("/customer")
  26.  */
  27. class CustomerController extends AbstractController
  28. {
  29.     protected $em;
  30.     protected $fileUploader;
  31.     protected $utils;
  32.     public function __construct(EntityManagerInterface $entityManager\Swift_Mailer $mailerFileUploader $fileUploaderUtils $utilsTranslatorInterface $translator\Knp\Snappy\Pdf $knpSnappyRoleService $roleService) {
  33.         $this->em $entityManager;
  34.         $this->mailer $mailer;
  35.         $this->fileUploader $fileUploader;
  36.         $this->utils $utils;
  37.         $this->translator $translator;
  38.         $this->knpSnappy $knpSnappy;
  39.         $this->roleService $roleService;
  40.     }
  41.     /**
  42.      * @Route("/list", name="customer_list")
  43.      */
  44.     public function list(): Response
  45.     {
  46.         return $this->render('customer/list.html.twig', [
  47.             'menu' => 'customer'
  48.         ]);
  49.     }
  50.     /**
  51.      * @Route("/list-ajax", name="customer_list_ajax")
  52.      */
  53.     public function listAjax(Request $request): Response
  54.     {
  55.         $userCurrent $this->get('security.token_storage')->getToken()->getUser();
  56.         //Load dataTable request
  57.         $limitStart $request->get("start");
  58.         $limitWidth $request->get("length");
  59.         $limitSearch $request->get("search");
  60.         $limitOrder $request->get("order");
  61.         $data['data'] = [];
  62.         $byUser $userCurrent->getId();
  63.         if($this->roleService->isGranted('ROLE_ADMIN'$userCurrent)){    
  64.             $customersResult $this->em
  65.                 ->getRepository(User::class)
  66.                 ->findByCustomerAdminAjax($limitStart$limitWidth$limitSearch$limitOrder, ["ACTIVE""SIGNINEND""CREATE"]);
  67.         }
  68.         else{
  69.             $customersResult $this->em
  70.                 ->getRepository(User::class)
  71.                 ->findByCustomerAjax($limitStart$limitWidth$limitSearch$limitOrder$byUser, ["ACTIVE""SIGNINEND""CREATE"]);
  72.         }
  73.         $nbSellerTotal $customersResult['lenght'];
  74.         $customers $customersResult['data'];
  75.         foreach ($customers as $customer) {
  76.             $urlView $this->generateUrl('customer_view'
  77.                 array(
  78.                     'userID' => $customer['userId']
  79.                 ), 
  80.             UrlGeneratorInterface::ABSOLUTE_URL);
  81.             $urlUpdate $this->generateUrl('customer_update'
  82.                 array(
  83.                     'userID' => $customer['userId']
  84.                 ), 
  85.             UrlGeneratorInterface::ABSOLUTE_URL);
  86.             $urlDelete $this->generateUrl('customer_delete'
  87.                 array(
  88.                     'userID' => $customer['userId']
  89.                 ), 
  90.             UrlGeneratorInterface::ABSOLUTE_URL);
  91.             $urlSendMail $this->generateUrl('customer_resend_mail_signin_end'
  92.                 array(
  93.                     'userID' => $customer['userId']
  94.                 ), 
  95.             UrlGeneratorInterface::ABSOLUTE_URL);
  96.             $status $this->utils->getStatusMembership($customer['userId']);
  97.             $membershipCurrent $this->utils->getMembershipByCustomer($customer['userId']);
  98.             $linkSendMail "";
  99.             if($membershipCurrent->getUser()->getStatus() == 'SIGNINEND'){
  100.                 $linkSendMail "<a class='dropdown-item' href='".$urlSendMail."'>Renvoyer mail d’inscription</a>";
  101.             }
  102.             $action 
  103.             "<div class='edit-btn'>
  104.                 <i class='far fa-ellipsis-h dropdown-toggle' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'></i>
  105.                 <div class='dropdown-menu'>
  106.                     <a class='dropdown-item' href='".$urlView."'>Fiche particulier</a>
  107.                     ".$linkSendMail."
  108.                     <a class='dropdown-item' href='".$urlUpdate."'><i class='fal fa-pencil'></i> Mettre à jour</a>
  109.                     <div class='dropdown-divider'></div>
  110.                     <a class='dropdown-item delete' href='".$urlDelete."'><i class='fal fa-trash'></i> Supprimer</a>
  111.                 </div>
  112.             </div>";
  113.             
  114.             if($membershipCurrent->getStatus() == "PAYBYCUSTOMER"){
  115.                 $type "Adhérent";
  116.             }
  117.             else{
  118.                 $type "Prospect";
  119.             }
  120.             if($this->roleService->isGranted('ROLE_ADMIN'$userCurrent)){    
  121.                 $mailSendCustomer "Non";
  122.                 if($membershipCurrent->getMailSendCustomer()){
  123.                     $mailSendCustomer "Oui";
  124.                 }
  125.                 $data['data'][] = Array(
  126.                     "lastName" => $customer['last_name'],
  127.                     "firstName" => $customer['first_name'],
  128.                     "phone" => $customer['phone'],
  129.                     "email" => $customer['email'],
  130.                     "seller" => $customer['seller_name'],
  131.                     "numeroAdherent" =>  $this->utils->getNumberMembership($customer['userId']),
  132.                     "mailSendCustomer" => $mailSendCustomer,
  133.                     "status" =>  "<span class='st-".$membershipCurrent->getStatus()."'>".$status."</span>",
  134.                 );
  135.             }
  136.             else{
  137.                 $data['data'][] = Array(
  138.                     "lastName" => "<a href='".$urlView."'>".$customer['last_name']."</a>",
  139.                     "firstName" => $customer['first_name'],
  140.                     "phone" => $customer['phone'],
  141.                     "type" => $type,
  142.                     "numeroAdherent" =>  $this->utils->getNumberMembership($customer['userId']),
  143.                     "status" =>  "<span class='st-".$membershipCurrent->getStatus()."'>".$status."</span>",
  144.                     "action" => $action,
  145.                 );
  146.             }
  147.         }
  148.         $data["draw"] = intval($request->get("draw")); 
  149.         $data["recordsTotal"] = $nbSellerTotal
  150.         $data["recordsFiltered"] = $nbSellerTotal;
  151.         return new JsonResponse($data); 
  152.     }
  153.     /**
  154.      * @Route("/{userID}/update", name="customer_update")
  155.      */
  156.     public function update(Request $request$userID){
  157.         //Load parameter
  158.         $userCurrent $this->get('security.token_storage')->getToken()->getUser();
  159.         $role 'CUSTOMER';
  160.         $menu 'customer';
  161.         $siretFilter $this->getParameter('siret_filter');
  162.         $mailTemp null;
  163.         if ( $userID == 'new-customer') {
  164.             $user = new User;
  165.             $typeForm "Ajouter";
  166.         } else {
  167.             $user $this->em
  168.                 ->getRepository(User::class)
  169.                 ->find($userID);
  170.             if ( !$user ) {
  171.                 $this->addFlash('danger''Cet utilisateur n\'existe pas.');
  172.                 return $this->redirectToRoute('customer_list');
  173.             }
  174.             if (!$user->getSeller()) {
  175.                 $this->addFlash('danger''Cette page n\'existe pas');
  176.                 return $this->redirectToRoute('customer_list');
  177.             }
  178.             if ($user->getSeller()->getId() != $userCurrent->getId()) {
  179.                 $this->addFlash('danger''Vous ne pouvez pas accéder à cette page');
  180.                 return $this->redirectToRoute('customer_list');
  181.             }
  182.             $mailTemp $user->getEmail();
  183.             $typeForm "Modifier";
  184.         }
  185.         //If email change in update
  186.         $lastEmail "";
  187.         if ( $typeForm == 'Ajouter' ) {
  188.             $form $this->createForm(UserType::class, $user, Array("validation_groups" => "update"));
  189.         } else {
  190.             $lastEmail $user->getEmail();
  191.             $form $this->createForm(UserType::class, $user, Array("validation_groups" => "update"));
  192.         }
  193.         $form->handleRequest($request);
  194.         if($form->isSubmitted() && $form->isValid()) {
  195.             $formValid true;
  196.             // Check user mail exists on creation
  197.             if ( $typeForm == 'Ajouter' ) {
  198.                 $userMailExist $this->em
  199.                     ->getRepository(User::class)
  200.                     ->findOneBy(['email' => $user->getEmail()]);
  201.                 if ( $userMailExist ) {
  202.                     $this->addFlash('danger''Cet email est déjà pris.');
  203.                     $formValid false;
  204.                 }
  205.                 $user->setUsername$user->getEmail() );
  206.                 //Create salt for end signin
  207.                 $tokenGenerator random_bytes(10);
  208.                 $user->setTokenReset(md5($tokenGenerator));
  209.                 $user->setPassword('null');
  210.                 $user->addRole('ROLE_CUSTOMER');
  211.                 $user->setSeller($userCurrent);
  212.                 if($user->getSeller()->getNumeroSiren() == $siretFilter){
  213.                     $user->setDicIsFile(true);
  214.                 }
  215.                 $user->setStatus('CREATE');
  216.             }
  217.             else{
  218.                 if($mailTemp != $user->getEmail()){
  219.                     $userMailExist $this->em
  220.                         ->getRepository(User::class)
  221.                         ->findOneBy(['email' => $user->getEmail()]);
  222.                     if ( $userMailExist ) {
  223.                         $this->addFlash('danger''Cet email est déjà pris.');
  224.                         $formValid false;
  225.                     }
  226.                 }
  227.                 $reSend $this->generateUrl('customer_resend_mail_signin_end'
  228.                     array(
  229.                         'userID' => $user->getId()
  230.                     ), 
  231.                 UrlGeneratorInterface::ABSOLUTE_URL);
  232.                 if($user->getStatus() == "SIGNINEND" && $user->getEmail() != $lastEmail && $formValid){
  233.                     $this->addFlash('warning''Attention ce client n\'a pas terminé son incription et son email a été modifié, son mail de fin d\'inscription doit être renvoyé : <a href="'.$reSend.'"><button class="button blue">Envoyer de nouveau</button></a>');
  234.                 }
  235.             }
  236.             if($formValid){
  237.                 if($user->getDateDeNaissance()){
  238.                     $dateDeNaissance str_replace("/""-"$user->getDateDeNaissance());
  239.                     $user->setDateDeNaissance(new \DateTime(date("Y-m-d"strtotime($dateDeNaissance))));
  240.                 } else{
  241.                     $user->setDateDeNaissance(null);
  242.                 }
  243.                 
  244.                 $this->em->persist($user);
  245.                 $this->em->flush();
  246.                 //If no membership
  247.                 $membershipCurrent $this->utils->getMembershipByCustomer($user);
  248.                 if($membershipCurrent->getFic()){
  249.                     $membershipCurrent->getFic()->setAcceptRecevoirDocumentGarantieEmail($user->isAcceptRecevoirDocumentGarantieEmail());
  250.                     $membershipCurrent->getFic()->setAcceptPropositionCommercialEmail($user->isAcceptPropositionCommercialEmail());
  251.                     $membershipCurrent->getFic()->setAcceptPropositionCommercialTelephone($user->isAcceptPropositionCommercialTelephone());
  252.                 }
  253.                 $membershipCurrent->getBa()->setAcceptRecevoirDocumentGarantieEmail($user->isAcceptRecevoirDocumentGarantieEmail());
  254.                 $membershipCurrent->getBa()->setAcceptPropositionCommercialEmail($user->isAcceptPropositionCommercialEmail());
  255.                 $membershipCurrent->getBa()->setAcceptPropositionCommercialTelephone($user->isAcceptPropositionCommercialTelephone());
  256.                 if ( $typeForm == 'Ajouter' ){
  257.                     //Create unique number for yousign, systempay
  258.                     $membershipCurrent->setNumberMembershipFolder(date("Ymd").$membershipCurrent->getId());
  259.                     $this->em->persist($membershipCurrent);
  260.                     $this->em->flush();
  261.                     $this->addFlash('success''L\'utilisateur a bien été ajouté.');
  262.                     
  263.                 } else {
  264.                     if($membershipCurrent->getStatus() == 'DRAFT' || $membershipCurrent->getStatus() == 'VALIDBYSELLER'){
  265.                         if($membershipCurrent->getPlatformVersion() == 1){
  266.                             //V1 PLATFORM
  267.                             //Update dic informations
  268.                             $dic $membershipCurrent->getDic();
  269.                             $dic->setSex($user->getSex());
  270.                             $dic->setPrenom($user->getFirstName());
  271.                             $dic->setNom($user->getLastName());
  272.                             $dic->setAdresseFiscale($user->getNumeroDeVoie());
  273.                             $dic->setAdresseFiscaleCodePostal($user->getCodePostal());
  274.                             $dic->setAdresseFiscaleVille($user->getVille());
  275.                             $dic->setAdresseFiscalePays($user->getPays());
  276.                             $dic->setDateDeNaissance($user->getDateDeNaissance());
  277.                             $this->em->persist($dic);
  278.                         } else {
  279.                             //V2 PLATFORM (FIC AND NOT DIC)
  280.                             //Update dic informations
  281.                             $fic $membershipCurrent->getFic();
  282.                             $fic->setSex($user->getSex());
  283.                             $fic->setPrenom($user->getFirstName());
  284.                             $fic->setNom($user->getLastName());
  285.                             $fic->setAdresseFiscale($user->getNumeroDeVoie());
  286.                             $fic->setAdresseFiscaleCodePostal($user->getCodePostal());
  287.                             $fic->setAdresseFiscaleVille($user->getVille());
  288.                             $fic->setAdresseFiscalePays($user->getPays());
  289.                             $fic->setDateDeNaissance($user->getDateDeNaissance());
  290.                             $this->em->persist($fic);
  291.                         }
  292.                         //Update ba informations
  293.                         $ba $membershipCurrent->getBa();
  294.                         $ba->setEmail($user->getEmail());
  295.                         $ba->setTelPhone($user->getPhonePrefix()." ".$user->getPhone());
  296.                         $ba->setSex($user->getSex());
  297.                         $ba->setPrenom($user->getFirstName());
  298.                         $ba->setNom($user->getLastName());
  299.                         $ba->setNumeroDeVoie($user->getNumeroDeVoie());
  300.                         $ba->setCodePostal($user->getCodePostal());
  301.                         $ba->setVille($user->getVille());
  302.                         $ba->setPays($user->getPays());
  303.                         $ba->setDateDeNaissance($user->getDateDeNaissance());
  304.                         $this->em->persist($ba);
  305.                         $this->em->flush();
  306.                         if($membershipCurrent->getPlatformVersion() == 1){
  307.                             //V1 PLATFORM
  308.                             //Generate dic file
  309.                             $dicName $this->utils->generateDic($user);
  310.                         } else {
  311.                             //V2 PLATFORM (FIC AND NOT DIC)
  312.                             //Generate fic file
  313.                             $ficName $this->utils->generateFic($user);
  314.                         }
  315.                         //Generate ba file
  316.                         $baName $this->utils->generateBA($user);
  317.                         if($membershipCurrent->getPlatformVersion() == 1){
  318.                             //V1 PLATFORM
  319.                             $dic->setUrlPdf($dicName);
  320.                         } else {
  321.                             //V2 PLATFORM (FIC AND NOT DIC)
  322.                             $fic->setUrlPdf($ficName);
  323.                         }
  324.                         $ba->setUrlPdf($baName);
  325.                         if($membershipCurrent->getPlatformVersion() == 1){
  326.                             //V1 PLATFORM
  327.                             $this->em->persist($dic);
  328.                         } else {
  329.                             //V2 PLATFORM (FIC AND NOT DIC)
  330.                             $this->em->persist($fic);
  331.                         }
  332.                         $this->em->persist($ba);
  333.                         $this->em->flush();
  334.                     }
  335.                     $this->addFlash('success''L\'utilisateur a bien été mis à jour.');
  336.                 }
  337.                 return $this->redirectToRoute('customer_list');
  338.             }
  339.         }
  340.         return $this->render('customer/update.html.twig', Array(
  341.             "user" => $user,
  342.             "userID" => $userID,
  343.             "form" => $form->createView(),
  344.             "typeForm" => $typeForm,
  345.             "role" => $role,
  346.             "menu" => $menu,
  347.             "siretFilter" => $siretFilter,
  348.             "seller" => $userCurrent
  349.         ));
  350.     }
  351.     /**
  352.      * @Route("/{userID}", name="customer_view")
  353.      */
  354.     public function view(Request $requestSluggerInterface $slugger$userID): Response
  355.     {
  356.         $userCurrent $this->get('security.token_storage')->getToken()->getUser();
  357.         if($userID == "me"){
  358.             $userID $userCurrent->getId();
  359.         }
  360.         $customer $this->em
  361.             ->getRepository(User::class)
  362.             ->findOneBy(['id' => $userID]);
  363.         if(!$customer){
  364.             $this->addFlash('danger''Le client n\'existe pas.');
  365.             return $this->redirectToRoute('customer_list');
  366.         }
  367.         if (!$customer->getSeller()) {
  368.             $this->addFlash('danger''Cette page n\'existe pas');
  369.             return $this->redirectToRoute('customer_list');
  370.         }
  371.         if(!$this->roleService->isGranted('ROLE_ADMIN'$userCurrent)){     
  372.             if($this->roleService->isGranted('ROLE_SELLER'$userCurrent)){     
  373.                 if ($customer->getSeller()->getId() != $userCurrent->getId()) {
  374.                     $this->addFlash('danger''Vous ne pouvez pas accéder à cette page');
  375.                     return $this->redirectToRoute('customer_list');
  376.                 }
  377.             } 
  378.             else if($this->roleService->isGranted('ROLE_CUSTOMER'$userCurrent)){
  379.                 if ($customer->getId() != $userCurrent->getId()) {
  380.                     $this->addFlash('danger''Vous ne pouvez pas accéder à cette page');
  381.                     return $this->redirectToRoute('app_login');
  382.                 }
  383.             }
  384.             else{
  385.                 $this->addFlash('danger''Vous ne pouvez pas accéder à cette page');
  386.                 return $this->redirectToRoute('app_login');
  387.             }
  388.         }
  389.         //If no membership
  390.         $membershipCurrent $this->utils->getMembershipByCustomer($customer);
  391.         //Configure BIC and BA
  392.         $baId "new-ba";
  393.         if($membershipCurrent->getPlatformVersion() == 1){
  394.             //V1 PLATFORM
  395.             $dicId "new-dic";
  396.         } else {
  397.             //V2 PLATFORM (FIC AND NOT DIC)
  398.             $ficId "new-fic";
  399.         }
  400.         
  401.         if($membershipCurrent){
  402.             if($membershipCurrent->getPlatformVersion() == 1){
  403.                 //V1 PLATFORM
  404.                 if($membershipCurrent->getDic()){
  405.                     $dicId $customer->getCurrentMemberships()->getDic()->getId();
  406.                 }
  407.             } else {
  408.                 //V2 PLATFORM (FIC AND NOT DIC)
  409.                 if($membershipCurrent->getFic()){
  410.                     $ficId $customer->getCurrentMemberships()->getFic()->getId();
  411.                 }
  412.             }
  413.             if($membershipCurrent->getBa()){
  414.                 $baId $customer->getCurrentMemberships()->getBa()->getId();
  415.             }
  416.         }
  417.         if($this->roleService->isGranted('ROLE_SELLER'$userCurrent) || $this->roleService->isGranted('ROLE_ADMIN'$userCurrent)){     
  418.             if($membershipCurrent->getPlatformVersion() == 1){
  419.                 //V1 PLATFORM
  420.                 return $this->render('customer/view.html.twig', [
  421.                     'menu' => 'customer',
  422.                     "customer" => $customer,
  423.                     "baId" => $baId,
  424.                     "dicId" => $dicId,
  425.                     "membership" => $membershipCurrent
  426.                 ]);
  427.             } else {
  428.                 //V2 PLATFORM (FIC AND NOT DIC)
  429.                 return $this->render('customer/view.html.twig', [
  430.                     'menu' => 'customer',
  431.                     "customer" => $customer,
  432.                     "baId" => $baId,
  433.                     "ficId" => $ficId,
  434.                     "membership" => $membershipCurrent
  435.                 ]);
  436.             }
  437.         }
  438.         else if($this->roleService->isGranted('ROLE_CUSTOMER'$userCurrent)){     
  439.             if($membershipCurrent->getPlatformVersion() == 1){
  440.                 //V1 PLATFORM
  441.                 return $this->render('customer/view-me.html.twig', [
  442.                     'menu' => 'customer',
  443.                     "customer" => $customer,
  444.                     "baId" => $baId,
  445.                     "dicId" => $dicId,
  446.                     "membership" => $membershipCurrent
  447.                 ]);
  448.             } else {
  449.                 //V2 PLATFORM (FIC AND NOT DIC)
  450.                 return $this->render('customer/view-me.html.twig', [
  451.                     'menu' => 'customer',
  452.                     "customer" => $customer,
  453.                     "baId" => $baId,
  454.                     "ficId" => $ficId,
  455.                     "membership" => $membershipCurrent
  456.                 ]);
  457.             }
  458.         }
  459.         else{
  460.             $this->addFlash('danger''Vous ne pouvez pas accéder à cette page');
  461.             return $this->redirectToRoute('app_login');
  462.         }
  463.     }
  464.     /**
  465.      * @Route("/{userID}/delete", name="customer_delete")
  466.      */
  467.     public function delete(Request $request$userID){
  468.         $userCurrent $this->get('security.token_storage')->getToken()->getUser();
  469.         $user $this->em
  470.             ->getRepository(User::class)
  471.             ->find($userID);
  472.         if ( !$user ) {
  473.             $this->addFlash('danger''Cet utilisateur n\'existe pas.');
  474.             return $this->redirectToRoute('customer_list');
  475.         }
  476.         if (!$user->getSeller()) {
  477.             $this->addFlash('danger''Cette page n\'existe pas');
  478.             return $this->redirectToRoute('customer_list');
  479.         }
  480.         if ($user->getSeller()->getId() != $userCurrent->getId()) {
  481.             $this->addFlash('danger''Vous ne pouvez pas accéder à cette page');
  482.             return $this->redirectToRoute('customer_list');
  483.         }
  484.         $date = new \DateTime();
  485.         //For RGPD
  486.         $user->setUsername$user->getEmail() . '_' $date->getTimestamp() );
  487.         $user->setEmail$user->getEmail() . '_' $date->getTimestamp() );
  488.         /*
  489.         $user->setEmailCanonical( $user->getEmail() . '_' . $date->getTimestamp() );
  490.         $user->setUsername( $user->getEmail() . '_' . $date->getTimestamp() );
  491.         $user->setUsernameCanonical( $user->getEmail() . '_' . $date->getTimestamp() );
  492.         */
  493.         $user->setStatus('DELETED');
  494.         $this->em->persist($user);
  495.         $this->em->flush();
  496.         $this->addFlash('success''Le compte a été supprimé');
  497.         return $this->redirectToRoute('customer_list');
  498.     }
  499.     /**
  500.      * @Route("/{userID}/resend-mail-signin-end", name="customer_resend_mail_signin_end")
  501.      */
  502.     public function reSendMailSigninEnd(Request $request$userID){
  503.         $userCurrent $this->get('security.token_storage')->getToken()->getUser();
  504.         $user $this->em
  505.             ->getRepository(User::class)
  506.             ->find($userID);
  507.         if ( !$user ) {
  508.             $this->addFlash('danger''Cet utilisateur n\'existe pas');
  509.             return $this->redirectToRoute('customer_list');
  510.         }
  511.         if ( $user->getStatus() != "SIGNINEND" ) {
  512.             $this->addFlash('danger''Cet utilisateur a déjà terminé son inscription');
  513.             return $this->redirectToRoute('customer_list');
  514.         }
  515.         $this->utils->sendEmailEndSigninCustomer($user);
  516.         $this->addFlash('success''Le mail de fin d\'inscription a bien été envoyé');
  517.         return $this->redirectToRoute('customer_list');
  518.     }
  519. }