```
✨ feat(Product.php): Ajoute la relation avec ProductReserve. ✨ feat(DevisSubscriber.php): Crée un subscriber pour l'envoi de devis. ✨ feat(Devis.php): Ajoute la relation avec ProductReserve. ✨ feat: Crée le template de mail pour la notification de signature. ✨ feat(DevisSend.php): Crée l'événement DevisSend. ✨ feat(Customer.php): Ajoute la relation avec ProductReserve. 🐛 fix(SignatureController.php): Corrige la gestion de la signature complétée. ✨ feat(DevisController.php): Ajoute la relance de signature et pagination. ✨ feat: Crée le template de mail pour l'envoi du devis à signer. ✨ feat: Crée le template de mail pour la confirmation de signature. ✨ feat(Client.php): Gère la création et le suivi de la signature DocuSeal. ✨ feat(DevisPdfService.php): Intègre les champs Docuseal. ✨ feat(list.twig): Affiche la liste des devis avec actions et statuts. ✨ feat: Crée la page de succès de signature. ✨ feat(StripeExtension.php): Ajoute le filtre totalQuoto pour calculer le total HT. ```
This commit is contained in:
@@ -29,6 +29,7 @@ class Client
|
||||
// L'URL API est le point d'entrée pour le SDK Docuseal
|
||||
$apiUrl = rtrim("https://signature.esy-web.dev", '/') . '/api';
|
||||
$this->docuseal = new \Docuseal\Api($key, $apiUrl);
|
||||
$this->logo = $kernel->getProjectDir()."/public/provider/images/favicon.png";
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -64,11 +65,20 @@ class Client
|
||||
'role' => 'Ludikevent',
|
||||
'email' => 'contact@ludikevent.fr',
|
||||
'completed' => true,
|
||||
'fields' => [
|
||||
['name'=>'Sign','default_value'=>$this->logoBase64()]
|
||||
]
|
||||
],
|
||||
[
|
||||
'role' => 'Client',
|
||||
'email' => $devis->getCustomer()->getEmail(),
|
||||
'name' => $devis->getCustomer()->getSurname() . ' ' . $devis->getCustomer()->getName(),
|
||||
'fields' => [
|
||||
['name'=>'cgv','default_value'=>true],
|
||||
['name'=>'assurance','default_value'=>true],
|
||||
['name'=>'securite','default_value'=>true],
|
||||
['name'=>'arrhes','default_value'=>true],
|
||||
],
|
||||
'metadata' => [
|
||||
'id' => $devis->getId(),
|
||||
'type' => 'devis'
|
||||
@@ -77,8 +87,11 @@ class Client
|
||||
],
|
||||
]);
|
||||
|
||||
|
||||
// Stockage de l'ID submitter de Docuseal dans ton entité
|
||||
$devis->setSignatureId($submission['submitters'][1]['id']);
|
||||
|
||||
dd($this->getLinkSign($devis->getSignatureId()));
|
||||
$this->entityManager->flush();
|
||||
}
|
||||
|
||||
@@ -96,7 +109,7 @@ class Client
|
||||
|
||||
$submissionData = $this->docuseal->getSubmitter($submitterId);
|
||||
|
||||
return rtrim($this->baseUrl, '/') . "/s/" . $submissionData['slug'];
|
||||
return rtrim("https://signature.esy-web.dev", '/') . "/s/" . $submissionData['slug'];
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -116,4 +129,33 @@ class Client
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Récupère le fichier logo et le convertit en chaîne Base64
|
||||
* Utile pour l'intégration directe dans certains flux HTML ou API
|
||||
*/
|
||||
private function logoBase64(): ?string
|
||||
{
|
||||
// Vérifie si le fichier existe pour éviter une erreur
|
||||
if (!file_exists($this->logo)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Lecture du contenu du fichier
|
||||
$binaryData = file_get_contents($this->logo);
|
||||
|
||||
// Récupération de l'extension pour le type MIME (png, jpg, etc.)
|
||||
$extension = pathinfo($this->logo, PATHINFO_EXTENSION);
|
||||
|
||||
// Encodage en Base64
|
||||
$base64 = base64_encode($binaryData);
|
||||
|
||||
// Retourne le format complet data:image/...
|
||||
return 'data:image/' . $extension . ';base64,' . $base64;
|
||||
}
|
||||
|
||||
public function getSubmition(mixed $submission_id)
|
||||
{
|
||||
return $this->docuseal->getSubmission($submission_id);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user