From 8bd179b94971a06dc5d6cf99c6361f2d0307cfc8 Mon Sep 17 00:00:00 2001 From: Serreau Jovann Date: Mon, 9 Mar 2026 11:08:57 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20envoyer=20le=20mail=20de=20signature=20?= =?UTF-8?q?devis=20directement=20=C3=A0=20la=20cr=C3=A9ation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fusionne le flow en deux étapes (redirect intermédiaire via ?idDevis) en une seule requête POST : génération PDF, soumission DocuSeal et envoi du mail de signature se font maintenant directement lors de la création du devis. Co-Authored-By: Claude Sonnet 4.6 --- src/Controller/Dashboard/DevisController.php | 26 +++++++------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/src/Controller/Dashboard/DevisController.php b/src/Controller/Dashboard/DevisController.php index c66b7c8..4a916f0 100644 --- a/src/Controller/Dashboard/DevisController.php +++ b/src/Controller/Dashboard/DevisController.php @@ -85,21 +85,6 @@ class DevisController extends AbstractController $form = $this->createForm(NewDevisType::class, $devis); $form->handleRequest($request); - if($request->query->has('idDevis')) { - $devisItem = $this->em->getRepository(Devis::class)->find($request->query->get('idDevis')); - $this->generateAndSavePdfs($devisItem); - $devisItem->setUpdateAt(new \DateTimeImmutable()); - $this->em->persist($devisItem); - $this->em->flush(); - sleep(5); - $this->signatureClient->createSubmissionDevis($devisItem); - $devisItem->setState("created_waitsign"); - $this->em->persist($devisItem); - $this->em->flush(); - $this->eventDispatcher->dispatch(new DevisSend($devisItem)); - - return $this->redirectToRoute('app_crm_devis'); - } if ($request->isMethod('POST')) { $this->processDevisForm($devis, $request->request->all()); @@ -111,9 +96,16 @@ class DevisController extends AbstractController $this->em->persist($devis); $this->em->flush(); + sleep(5); + $this->signatureClient->createSubmissionDevis($devis); + $devis->setState("created_waitsign"); + $devis->setUpdateAt(new \DateTimeImmutable()); + $this->em->persist($devis); + $this->em->flush(); + $this->eventDispatcher->dispatch(new DevisSend($devis)); - $this->addFlash('success', sprintf('Le devis %s a été créé.', $devis->getNum())); - return $this->redirectToRoute('app_crm_devis_add',['idDevis'=>$devis->getId()]); + $this->addFlash('success', sprintf('Le devis %s a été créé et le mail de signature a été envoyé.', $devis->getNum())); + return $this->redirectToRoute('app_crm_devis'); } return $this->render('dashboard/devis/add.twig', [