feat: envoyer le mail de signature devis directement à la création

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 <noreply@anthropic.com>
This commit is contained in:
Serreau Jovann
2026-03-09 11:08:57 +01:00
parent 6b24f7bb0f
commit 8bd179b949

View File

@@ -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', [