✨ feat(Docuseal): Ajoute la récupération du lien de signature Docuseal.
This commit is contained in:
@@ -6,11 +6,13 @@ use App\Entity\CustomerAdvertPayment;
|
||||
use App\Repository\CustomerAdvertPaymentRepository;
|
||||
use App\Repository\CustomerDevisRepository;
|
||||
use App\Repository\CustomerOrderRepository;
|
||||
use App\Service\Docuseal\SignClient;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\RequestStack;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Attribute\Route;
|
||||
use Vich\UploaderBundle\Templating\Helper\UploaderHelper;
|
||||
|
||||
class DashboardController extends AbstractController
|
||||
{
|
||||
@@ -18,7 +20,9 @@ class DashboardController extends AbstractController
|
||||
public function artemis(Request $request,
|
||||
CustomerOrderRepository $customerOrderRepository,
|
||||
CustomerAdvertPaymentRepository $customerAdvertPaymentRepository,
|
||||
CustomerDevisRepository $customerDevisRepository
|
||||
CustomerDevisRepository $customerDevisRepository,
|
||||
SignClient $signClient,
|
||||
UploaderHelper $uploaderHelper
|
||||
): Response
|
||||
{
|
||||
$invoiceList = [];
|
||||
@@ -37,6 +41,8 @@ class DashboardController extends AbstractController
|
||||
'date' => $order->getCreateAt()->format('Y-m-d'),
|
||||
'amount' => $amount,
|
||||
'status' => $order->getState(),
|
||||
'file' => ''
|
||||
|
||||
];
|
||||
}
|
||||
foreach ($customerAdvertPaymentRepository->findBy(['customer'=>$customer]) as $order) {
|
||||
@@ -52,6 +58,7 @@ class DashboardController extends AbstractController
|
||||
'date' => $order->getCreateAt()->format('Y-m-d'),
|
||||
'amount' => $amount,
|
||||
'status' => $order->getState(),
|
||||
'file' => ''
|
||||
];
|
||||
}
|
||||
foreach ($customerDevisRepository->findBy(['customer'=>$customer]) as $order) {
|
||||
@@ -59,11 +66,17 @@ class DashboardController extends AbstractController
|
||||
foreach ($order->getCustomerDevisLines() as $customerOrderLine) {
|
||||
$amount += (1.*20*$customerOrderLine->getPriceHt());
|
||||
}
|
||||
$signLink = "";
|
||||
if($order->getState() =="send") {
|
||||
$signLink = $signClient->getLinkSign($order->getDevisSubmiterId());
|
||||
}
|
||||
$devisList[] = [
|
||||
'reference' => $order->getNumDevis(),
|
||||
'date' => $order->getCreateAt()->format('Y-m-d'),
|
||||
'amount' => $amount,
|
||||
'status' => $order->getState(),
|
||||
'signLink' => $signLink,
|
||||
'file' => $uploaderHelper->asset($order,'devis')
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,6 +34,7 @@ class SignClient
|
||||
throw new \RuntimeException('No current request available');
|
||||
}
|
||||
|
||||
|
||||
$submissionId = $this->docuseal->createSubmissionFromPdf([
|
||||
'name' => 'Devis N°' . $devis->getNumDevis(),
|
||||
'completed_redirect_url' => $this->urlGenerator->generate(
|
||||
@@ -95,4 +96,10 @@ class SignClient
|
||||
return $path;
|
||||
|
||||
}
|
||||
|
||||
public function getLinkSign(?string $submittersId)
|
||||
{
|
||||
$submissionData = $this->docuseal->getSubmitter($submittersId);
|
||||
return "https://signature.esy-web.dev/s/" . $submissionData['slug'];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,18 +4,12 @@
|
||||
|
||||
{% block content %}
|
||||
{# Titre adapté au Dark Mode #}
|
||||
<h1 class="text-3xl font-bold text-gray-800 dark:text-gray-100 mb-8">Espace Client - Tableau de Bord</h1>
|
||||
|
||||
{% if is_granted('ROLE_CUSTOMER') %}
|
||||
|
||||
<h1 class="text-3xl font-bold text-gray-800 dark:text-gray-100 mb-8">Espace Client - Tableau de Bord</h1>
|
||||
{# Données Statiques simulant les informations de l'API/BDD #}
|
||||
|
||||
|
||||
{% set static_quotes = [
|
||||
{'reference': 'D-2024-0021', 'date': '2024-10-01', 'amount': 890.50, 'status': 'Accepté', 'id': 21},
|
||||
{'reference': 'D-2024-0020', 'date': '2024-09-10', 'amount': 120.00, 'status': 'En cours', 'id': 20},
|
||||
] %}
|
||||
|
||||
{% set payment_plan = {
|
||||
'next_due_date': '2025-10-20',
|
||||
'next_amount': 125.50,
|
||||
|
||||
@@ -36,7 +36,10 @@
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium">
|
||||
{# Bouton 'Voir' stylisé pour le Dark Mode #}
|
||||
<a href="#" class="text-indigo-400 hover:text-indigo-300 font-medium py-1 px-3 border border-indigo-600 rounded-md transition duration-150 ease-in-out hover:bg-indigo-700">Voir</a>
|
||||
<a target="_blank" href="{{ document.file }}" class="text-indigo-400 hover:text-indigo-300 font-medium py-1 px-3 border border-indigo-600 rounded-md transition duration-150 ease-in-out hover:bg-indigo-700">Voir</a>
|
||||
{% if type == "devis" and document.status == "send" %}
|
||||
<a target="_blank" href="{{ document.signLink }}" class="text-green-400 hover:text-green-300 font-medium py-1 px-3 border border-green-600 rounded-md transition duration-150 ease-in-out hover:bg-green-700">Signée le devis</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
||||
Reference in New Issue
Block a user