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:
@@ -85,21 +85,6 @@ class DevisController extends AbstractController
|
|||||||
$form = $this->createForm(NewDevisType::class, $devis);
|
$form = $this->createForm(NewDevisType::class, $devis);
|
||||||
$form->handleRequest($request);
|
$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')) {
|
if ($request->isMethod('POST')) {
|
||||||
$this->processDevisForm($devis, $request->request->all());
|
$this->processDevisForm($devis, $request->request->all());
|
||||||
|
|
||||||
@@ -111,9 +96,16 @@ class DevisController extends AbstractController
|
|||||||
$this->em->persist($devis);
|
$this->em->persist($devis);
|
||||||
$this->em->flush();
|
$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()));
|
$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_add',['idDevis'=>$devis->getId()]);
|
return $this->redirectToRoute('app_crm_devis');
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->render('dashboard/devis/add.twig', [
|
return $this->render('dashboard/devis/add.twig', [
|
||||||
|
|||||||
Reference in New Issue
Block a user