```
✨ feat(customer): Ajoute la génération de PDF pour la liste des emails.
```
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Controller\Artemis\Intranet;
|
||||
|
||||
use App\Service\Pdf\EmailListPdf;
|
||||
use App\Entity\{
|
||||
Customer,
|
||||
CustomerAdvertPayment,
|
||||
@@ -51,6 +52,7 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\KernelInterface;
|
||||
use Symfony\Component\Routing\Attribute\Route;
|
||||
use Symfony\Component\Uid\Uuid;
|
||||
|
||||
@@ -177,6 +179,7 @@ class CustomerController extends AbstractController
|
||||
CustomerOrderRepository $customerOrderRepository,
|
||||
VaultClient $vaultClient,
|
||||
PaginatorInterface $paginator,
|
||||
KernelInterface $kernel,
|
||||
Client $client,
|
||||
?Customer $customer,
|
||||
CustomerDnsRepository $customerDnsRepository,
|
||||
@@ -386,7 +389,13 @@ class CustomerController extends AbstractController
|
||||
return $this->redirectToRoute('artemis_intranet_customer_view', ['id' => $customer->getId(), 'current' => 'email', 'idNdd' => $emailDelete->getDns()->getId()]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($request->query->has('idNdd') && $request->query->has('pdf')) {
|
||||
$idNdd = $request->query->getInt('idNdd');
|
||||
$ndd = $entityManager->getRepository(CustomerDns::class)->find($idNdd);
|
||||
$pdf = new EmailListPdf($kernel,$ndd);
|
||||
$pdf->AddPage();
|
||||
$pdf->Output('I');
|
||||
}
|
||||
if ($request->query->has('idEmailDelete')) {
|
||||
$idEmailDelete = $request->query->getInt('idEmailDelete');
|
||||
$emailDelete = $entityManager->getRepository(CustomerDnsEmail::class)->find($idEmailDelete);
|
||||
@@ -533,6 +542,7 @@ class CustomerController extends AbstractController
|
||||
'formNdd' => $formNdd->createView(),
|
||||
'formNddEmail' => $formNddEmail->createView(),
|
||||
'customer' => $customer,
|
||||
'ndd' => $customerNdd,
|
||||
'nddEmails' => $nddEmails,
|
||||
'orderDevis' => $paginator->paginate($orderDevis, $request->query->getInt('page', 1), 20),
|
||||
'orderOrders' => $paginator->paginate($orderOrder, $request->query->getInt('page', 1), 20),
|
||||
|
||||
23
src/Service/Pdf/EmailListPdf.php
Normal file
23
src/Service/Pdf/EmailListPdf.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Service\Pdf;
|
||||
|
||||
use App\Entity\CustomerDns;
|
||||
use Fpdf\Fpdf;
|
||||
use Symfony\Component\HttpKernel\KernelInterface;
|
||||
|
||||
class EmailListPdf extends FPDF
|
||||
{
|
||||
public function __construct(
|
||||
private readonly KernelInterface $kernel,
|
||||
private readonly CustomerDns $customerDevis
|
||||
) {
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function Header(): void
|
||||
{
|
||||
$this->Image($this->kernel->getProjectDir() . "/public/assets/logo_siteconseil.png", 90, 5, 25);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,9 @@
|
||||
<div class="grid grid-cols-1 md:grid-cols-4 gap-4 mb-6">
|
||||
<a target="_blank" href="{{ path('artemis_intranet_customer_view',{id:customer.id,current:'email',idNdd:ndd.id,pdf:true}) }}" class="bg-purple-600 hover:bg-purple-700 text-white px-3 py-1 rounded">Liste des mails (sans mot de passe)</a>
|
||||
<a href="{{ path('artemis_intranet_customer_view',{id:customer.id,current:'email',idNdd:ndd.id,pdfPassword:true}) }}" class="bg-purple-600 hover:bg-purple-700 text-white px-3 py-1 rounded">Liste des mails (avec mot de passe)</a>
|
||||
<a target="_blank" href="{{ path('artemis_intranet_customer_view',{id:customer.id,current:'email',idNdd:ndd.id,pdfSend:true}) }}" class="bg-purple-600 hover:bg-purple-700 text-white px-3 py-1 rounded">Envoie la liste des email (sans mot de passe)</a>
|
||||
<a href="{{ path('artemis_intranet_customer_view',{id:customer.id,current:'email',idNdd:ndd.id,pdfSendPassword:true}) }}" class="bg-purple-600 hover:bg-purple-700 text-white px-3 py-1 rounded">Envoie la liste des email (avec mot de passe)</a>
|
||||
</div>
|
||||
<div class="overflow-x-auto rounded-lg shadow-lg bg-white dark:bg-gray-800">
|
||||
<table class="min-w-full divide-y divide-gray-300 dark:divide-gray-700">
|
||||
<thead class="bg-gray-50 dark:bg-gray-700">
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
<div class="overflow-x-auto rounded-lg shadow-lg bg-white dark:bg-gray-800">
|
||||
<table class="min-w-full divide-y divide-gray-300 dark:divide-gray-700">
|
||||
<thead class="bg-gray-50 dark:bg-gray-700">
|
||||
|
||||
Reference in New Issue
Block a user