Delais detailles : - Relances : 15j, 10j, 5j, 3j, 1j avant echeance - Mise en demeure a l'echeance, 5j pour regulariser - Suspension apres 5j sans paiement - Resiliation + suppression donnees 24h apres 30j d'impaye - Recouvrement + commissaire de justice Penalites : - 3x taux d'interet legal - Indemnite forfaitaire 40 EUR (art. D.441-5 Ccom) References legales : - Art. 1219 Code civil, L.441-10 Code commerce - Suspension quelle que soit la situation de l'entreprise Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
446 lines
20 KiB
PHP
446 lines
20 KiB
PHP
<?php
|
|
|
|
namespace App\Service\Pdf;
|
|
|
|
use App\Entity\Contrat;
|
|
use setasign\Fpdi\Fpdi;
|
|
use Symfony\Component\HttpKernel\KernelInterface;
|
|
|
|
if (!\defined('EURO')) {
|
|
\define('EURO', \chr(128)); // @codeCoverageIgnore
|
|
}
|
|
|
|
class ContratMigrationSiteconseilPdf extends Fpdi
|
|
{
|
|
public function __construct(
|
|
private readonly KernelInterface $kernel,
|
|
private readonly Contrat $contrat,
|
|
) {
|
|
parent::__construct();
|
|
$this->SetTitle($this->enc('Contrat de Service '.$this->contrat->getReference().' - '.$this->contrat->getRaisonSociale()));
|
|
$this->SetAuthor($this->enc('Association E-Cosplay'));
|
|
}
|
|
|
|
public function generate(): void
|
|
{
|
|
$this->AliasNbPages();
|
|
$this->AddPage();
|
|
|
|
$this->writeHeader();
|
|
$this->writePreambule();
|
|
$this->writeServicesTable();
|
|
$this->writeArticles();
|
|
$this->writeSignatures();
|
|
}
|
|
|
|
/** @codeCoverageIgnore */
|
|
public function Header(): void
|
|
{
|
|
}
|
|
|
|
/** @codeCoverageIgnore */
|
|
public function Footer(): void
|
|
{
|
|
$this->SetY(-22);
|
|
$this->SetDrawColor(253, 140, 4);
|
|
$this->Line(15, $this->GetY(), 195, $this->GetY());
|
|
$this->Ln(3);
|
|
$this->SetFont('Arial', '', 7);
|
|
$this->SetTextColor(0, 0, 0);
|
|
$this->Cell(190, 3, $this->enc('42 rue de Saint-Quentin - 02800 BEAUTOR - Tel: 07 66 95 70 06 - client@e-cosplay.fr'), 0, 1, 'C');
|
|
$this->Cell(190, 3, $this->enc('Association E-Cosplay - N SIRET 943 121 517 00011 - CODE APE 9329Z - RNA W022006988'), 0, 1, 'C');
|
|
$this->SetFont('Arial', 'I', 7);
|
|
$this->SetTextColor(150, 150, 150);
|
|
$this->Cell(190, 3, $this->enc('Page ').$this->PageNo().' / {nb}', 0, 0, 'C');
|
|
}
|
|
|
|
/** @codeCoverageIgnore */
|
|
private function writeHeader(): void
|
|
{
|
|
$logo = $this->kernel->getProjectDir().'/public/logo.jpg';
|
|
if (file_exists($logo)) {
|
|
$this->Image($logo, 10, 8, 45);
|
|
}
|
|
|
|
$this->SetFont('Arial', 'B', 14);
|
|
$this->SetXY(60, 10);
|
|
$this->Cell(0, 7, $this->enc('CONTRAT DE SERVICE'), 0, 1, 'L');
|
|
|
|
$this->SetFont('Arial', 'B', 10);
|
|
$this->SetXY(60, 17);
|
|
$this->SetTextColor(253, 140, 4);
|
|
$this->Cell(0, 5, $this->enc('Migration SARL SITECONSEIL'), 0, 1, 'L');
|
|
$this->SetTextColor(0, 0, 0);
|
|
|
|
$this->SetFont('Arial', '', 9);
|
|
$this->SetXY(60, 23);
|
|
$this->SetTextColor(150, 150, 150);
|
|
$this->Cell(0, 5, $this->enc('Ref. : '.$this->contrat->getReference()), 0, 1, 'L');
|
|
$this->SetTextColor(0, 0, 0);
|
|
|
|
$formatter = new \IntlDateFormatter(
|
|
'fr_FR',
|
|
\IntlDateFormatter::FULL,
|
|
\IntlDateFormatter::NONE,
|
|
'Europe/Paris',
|
|
\IntlDateFormatter::GREGORIAN
|
|
);
|
|
|
|
$this->SetFont('Arial', '', 10);
|
|
$this->SetXY(60, 29);
|
|
$this->Cell(0, 5, $this->enc('Emis a Beautor, le '.$formatter->format($this->contrat->getCreatedAt())), 0, 1, 'L');
|
|
|
|
// Parties
|
|
$this->SetY(42);
|
|
|
|
// Partie 1 : Association
|
|
$this->SetFont('Arial', 'B', 9);
|
|
$this->Cell(0, 5, $this->enc('ENTRE LES SOUSSIGNES :'), 0, 1, 'L');
|
|
$this->Ln(2);
|
|
|
|
// Bloc info association (meme style ComptaPdf)
|
|
$this->SetDrawColor(200, 200, 200);
|
|
$this->Cell(0, 0.5, '', 'T', 1, 'L');
|
|
$this->Ln(2);
|
|
|
|
$labelW = 45;
|
|
|
|
$this->SetFont('Arial', '', 9);
|
|
$this->Cell($labelW, 5, $this->enc('Association :'), 0, 0, 'L');
|
|
$this->SetFont('Arial', 'B', 9);
|
|
$this->Cell(0, 5, $this->enc('E-Cosplay Association loi 1901 - RNA N W022006988'), 0, 1, 'L');
|
|
|
|
$this->SetFont('Arial', '', 9);
|
|
$this->Cell($labelW, 5, $this->enc('Siege social :'), 0, 0, 'L');
|
|
$this->Cell(0, 5, $this->enc('42 rue de Saint-Quentin 02800 Beautor'), 0, 1, 'L');
|
|
|
|
$this->Cell($labelW, 5, 'SIRET :', 0, 0, 'L');
|
|
$this->Cell(0, 5, '943 121 517 00011', 0, 1, 'L');
|
|
|
|
$this->Cell($labelW, 5, 'Code APE :', 0, 0, 'L');
|
|
$this->Cell(0, 5, '9329Z', 0, 1, 'L');
|
|
|
|
$this->Cell($labelW, 5, $this->enc('President :'), 0, 0, 'L');
|
|
$this->SetFont('Arial', 'B', 9);
|
|
$this->Cell(0, 5, $this->enc('Shoko Cosplay - Serreau Jovann'), 0, 1, 'L');
|
|
|
|
$this->SetFont('Arial', '', 9);
|
|
$this->Cell($labelW, 5, 'Email :', 0, 0, 'L');
|
|
$this->Cell(0, 5, 'client@e-cosplay.fr', 0, 1, 'L');
|
|
|
|
$this->Cell($labelW, 5, $this->enc('Telephone :'), 0, 0, 'L');
|
|
$this->Cell(0, 5, '07 66 95 70 06', 0, 1, 'L');
|
|
|
|
$this->Ln(2);
|
|
$this->Cell(0, 0.5, '', 'T', 1, 'L');
|
|
$this->Ln(2);
|
|
|
|
$this->SetFont('Arial', 'I', 9);
|
|
$this->Cell(0, 5, $this->enc('Ci-apres denommee "le Prestataire",'), 0, 1, 'L');
|
|
$this->Ln(3);
|
|
|
|
// Partie 2 : Client
|
|
$this->SetFont('Arial', 'B', 9);
|
|
$this->Cell(0, 5, $this->enc('ET :'), 0, 1, 'L');
|
|
$this->Ln(2);
|
|
|
|
$this->SetDrawColor(200, 200, 200);
|
|
$this->Cell(0, 0.5, '', 'T', 1, 'L');
|
|
$this->Ln(2);
|
|
|
|
$this->SetFont('Arial', '', 9);
|
|
$this->Cell($labelW, 5, $this->enc('Raison sociale :'), 0, 0, 'L');
|
|
$this->SetFont('Arial', 'B', 9);
|
|
$this->Cell(0, 5, '{{RaisonSociale;type=text;role=Customer}}', 0, 1, 'L');
|
|
|
|
$this->SetFont('Arial', '', 9);
|
|
$this->Cell($labelW, 5, 'SIRET :', 0, 0, 'L');
|
|
$this->Cell(0, 5, '{{SIRET;type=text;role=Customer}}', 0, 1, 'L');
|
|
|
|
$this->Cell($labelW, 5, $this->enc('Adresse :'), 0, 0, 'L');
|
|
$this->Cell(0, 5, '{{Adresse;type=text;role=Customer}}', 0, 1, 'L');
|
|
|
|
$this->Cell($labelW, 5, 'Email :', 0, 0, 'L');
|
|
$this->Cell(0, 5, '{{Email;type=text;role=Customer}}', 0, 1, 'L');
|
|
|
|
$this->Cell($labelW, 5, $this->enc('Telephone :'), 0, 0, 'L');
|
|
$this->Cell(0, 5, '{{Telephone;type=text;role=Customer}}', 0, 1, 'L');
|
|
|
|
$this->Cell($labelW, 5, $this->enc('Representant :'), 0, 0, 'L');
|
|
$this->Cell(0, 5, '{{Representant;type=text;role=Customer}}', 0, 1, 'L');
|
|
|
|
$this->Ln(2);
|
|
$this->Cell(0, 0.5, '', 'T', 1, 'L');
|
|
$this->Ln(2);
|
|
|
|
$this->SetFont('Arial', 'I', 9);
|
|
$this->Cell(0, 5, $this->enc('Ci-apres denomme(e) "le Client",'), 0, 1, 'L');
|
|
$this->Ln(5);
|
|
}
|
|
|
|
/** @codeCoverageIgnore */
|
|
private function writePreambule(): void
|
|
{
|
|
$this->SetFont('Arial', 'B', 11);
|
|
$this->SetFillColor(250, 191, 4);
|
|
$this->Cell(0, 8, $this->enc(' PREAMBULE'), 0, 1, 'L', true);
|
|
$this->Ln(4);
|
|
|
|
$this->SetFont('Arial', '', 9);
|
|
$paragraphs = [
|
|
'Le present contrat est conclu entre le Client et l\'Association E-Cosplay pour la reprise '
|
|
.'des services qui etaient precedemment assures par la SARL SITECONSEIL.',
|
|
];
|
|
|
|
foreach ($paragraphs as $p) {
|
|
$this->MultiCell(0, 5, $this->enc($p), 0, 'J');
|
|
$this->Ln(2);
|
|
}
|
|
|
|
$this->Ln(3);
|
|
}
|
|
|
|
/** @codeCoverageIgnore */
|
|
private function writeServicesTable(): void
|
|
{
|
|
$services = $this->contrat->getServices();
|
|
if ([] === $services) {
|
|
return;
|
|
}
|
|
|
|
if ($this->GetY() + 30 > $this->GetPageHeight() - 25) {
|
|
$this->AddPage();
|
|
}
|
|
|
|
$this->SetFont('Arial', 'B', 11);
|
|
$this->SetFillColor(250, 191, 4);
|
|
$this->Cell(0, 8, $this->enc(' SERVICES INCLUS DANS LE CONTRAT'), 0, 1, 'L', true);
|
|
$this->Ln(4);
|
|
|
|
// Header tableau
|
|
$this->SetFont('Arial', 'B', 9);
|
|
$this->SetFillColor(35, 35, 35);
|
|
$this->SetTextColor(255, 255, 255);
|
|
$this->Cell(80, 7, $this->enc(' Service'), 1, 0, 'L', true);
|
|
$this->Cell(20, 7, $this->enc('Qte'), 1, 0, 'C', true);
|
|
$this->Cell(40, 7, $this->enc('Prix unitaire HT'), 1, 0, 'R', true);
|
|
$this->Cell(40, 7, $this->enc('Sous-total HT'), 1, 1, 'R', true);
|
|
$this->SetTextColor(0, 0, 0);
|
|
|
|
$this->SetFont('Arial', '', 9);
|
|
$fill = false;
|
|
$catalog = \App\Entity\Contrat::SERVICE_CATALOG;
|
|
|
|
foreach ($services as $s) {
|
|
$this->SetFillColor(245, 245, 240);
|
|
$label = $catalog[$s['service']]['label'] ?? $s['service'];
|
|
$unit = $catalog[$s['service']]['unit'] ?? '';
|
|
$qty = $s['quantity'];
|
|
$price = (float) $s['priceHt'];
|
|
$subtotal = $price * $qty;
|
|
|
|
$this->Cell(80, 6, $this->enc(' '.$label), 'B', 0, 'L', $fill);
|
|
$this->Cell(20, 6, (string) $qty, 'B', 0, 'C', $fill);
|
|
$this->Cell(40, 6, number_format($price, 2, ',', ' ').' '.EURO.' '.$unit, 'B', 0, 'R', $fill);
|
|
$this->Cell(40, 6, number_format($subtotal, 2, ',', ' ').' '.EURO, 'B', 1, 'R', $fill);
|
|
|
|
$fill = !$fill;
|
|
}
|
|
|
|
// Total
|
|
$this->SetFont('Arial', 'B', 10);
|
|
$this->Cell(140, 8, $this->enc('TOTAL HT'), 0, 0, 'R');
|
|
$this->Cell(40, 8, number_format($this->contrat->getTotalHt(), 2, ',', ' ').' '.EURO, 0, 1, 'R');
|
|
|
|
$this->Ln(5);
|
|
}
|
|
|
|
/** @codeCoverageIgnore */
|
|
private function writeArticles(): void
|
|
{
|
|
$articles = [
|
|
'OBJET DU CONTRAT' => [
|
|
'Le present contrat a pour objet de definir les conditions dans lesquelles l\'Association '
|
|
.'E-Cosplay fournira au Client les services informatiques precedemment assures par la '
|
|
.'SARL SITECONSEIL, incluant sans s\'y limiter : l\'hebergement web, la gestion des noms '
|
|
.'de domaine, la messagerie electronique, et tout autre service technique associe.',
|
|
],
|
|
'TRANSFERT DES SERVICES' => [
|
|
'Le Client reconnait que les services qui lui etaient fournis par la SARL SITECONSEIL '
|
|
.'sont desormais operes par l\'Association E-Cosplay.',
|
|
'Le Client accepte que le transfert de ses services soit effectue dans les conditions '
|
|
.'du present contrat, sans garantie de reprise des conditions anterieures.',
|
|
'Les sites internet continuent d\'utiliser le CMS Esy-Web. Le code source du CMS est '
|
|
.'gere par l\'Association E-Cosplay, sous la responsabilite d\'un membre fondateur, '
|
|
.'ancien salarie de la SARL SITECONSEIL.',
|
|
],
|
|
'CONDITIONS TARIFAIRES' => [
|
|
'Les tarifs applicables seront ceux en vigueur au sein de l\'Association E-Cosplay '
|
|
.'au moment de la signature du present contrat. Ces tarifs sont non negociables.',
|
|
'Les tarifs precedemment appliques par la SARL SITECONSEIL ne sont pas opposables '
|
|
.'a l\'Association E-Cosplay.',
|
|
'Les devis et factures seront emis par l\'Association E-Cosplay selon sa propre grille tarifaire. '
|
|
.'La grille tarifaire complete est consultable sur https://crm.e-cosplay.fr/legal/tarif.',
|
|
],
|
|
'PAIEMENT' => [
|
|
'Les paiements par carte bancaire et prelevement SEPA sont operes par Stripe, '
|
|
.'plateforme de paiement securisee et certifiee PCI DSS.',
|
|
'Le compte bancaire de l\'association est domicilie chez SumUp en Irlande.',
|
|
'Le premier paiement devra obligatoirement etre effectue par carte bancaire ou '
|
|
.'prelevement automatique SEPA. Les virements ne sont pas acceptes pour le premier paiement.',
|
|
'Pour les paiements suivants, le Client pourra choisir entre le prelevement automatique '
|
|
.'SEPA, la carte bancaire ou le virement bancaire.',
|
|
],
|
|
'IMPAYES ET SUSPENSION' => [
|
|
'En cas de non-paiement, les services du Client seront automatiquement suspendus '
|
|
.'sans intervention humaine. Aucun renouvellement ne sera effectue sans paiement prealable.',
|
|
'Delais de relance : un premier rappel est envoye 15 jours avant l\'echeance, '
|
|
.'puis a 10 jours, 5 jours, 3 jours et 1 jour avant la date d\'echeance.',
|
|
'A defaut de paiement a l\'echeance, une mise en demeure est envoyee par email. '
|
|
.'Sans regularisation sous 5 jours apres la mise en demeure, les services sont suspendus.',
|
|
'Apres 30 jours d\'impaye sans regularisation, une procedure de resiliation definitive '
|
|
.'est engagee. Les donnees du Client seront supprimees sous 24 heures.',
|
|
'Un depot aupres d\'une societe de recouvrement sera effectue pour les factures restant dues. '
|
|
.'Une mise en demeure pourra etre deposee aupres d\'un commissaire de justice.',
|
|
'Des penalites de retard sont applicables de plein droit, au taux de 3 fois le taux '
|
|
.'d\'interet legal en vigueur, sans qu\'un rappel soit necessaire.',
|
|
'Une indemnite forfaitaire de recouvrement de 40 EUR est due pour chaque facture '
|
|
.'payee apres la date d\'echeance (article D.441-5 du Code de commerce).',
|
|
'Conformement a l\'article 1219 du Code civil (exception d\'inexecution), l\'Association '
|
|
.'est en droit de suspendre l\'execution de ses obligations lorsque le Client ne remplit pas les siennes.',
|
|
'Le non-paiement d\'une facture a son echeance entraine de plein droit la suspension '
|
|
.'immediate des services concernes (article L.441-10 du Code de commerce).',
|
|
'L\'association est libre de suspendre ou de cesser la fourniture de ses services en cas '
|
|
.'de non-paiement, quelle que soit la situation de l\'entreprise du Client (y compris en cas '
|
|
.'de difficultes financieres, de redressement ou de liquidation judiciaire, sous reserve '
|
|
.'des dispositions specifiques applicables aux procedures collectives).',
|
|
'S\'enerver, insulter ou appeler l\'association ne changera en aucun cas la situation. '
|
|
.'Sans paiement, les services restent suspendus. Aucun arrangement ne sera possible.',
|
|
],
|
|
'SYSTEME D\'AVERTISSEMENT' => [
|
|
'En cas de non-respect des CGV, CGU, de comportement inapproprie (insultes, menaces, '
|
|
.'harcelement) ou de tout autre manquement, un avertissement sera emis.',
|
|
'Au 3eme avertissement, le bureau de l\'association se reunira sous 24 heures pour '
|
|
.'decider de la resiliation definitive des services. Cette decision est non negociable.',
|
|
'Toutes les decisions relatives aux avertissements sont prises par le bureau de '
|
|
.'l\'association et les membres fondateurs, a huis clos.',
|
|
],
|
|
'HORAIRES DU SERVICE CLIENT' => [
|
|
'Le service client par telephone est disponible du lundi au vendredi de 10h a 12h '
|
|
.'et de 14h a 17h.',
|
|
'En dehors de ces horaires, le service ne repondra pas ou une facturation de '
|
|
.'35 EUR HT par heure (toute heure commencee est due) sera appliquee.',
|
|
'Exception : les appels lies a un probleme technique reel, verifie et verifiable '
|
|
.'par nos equipes, ne seront pas factures.',
|
|
],
|
|
'DUREE ET RESILIATION' => [
|
|
'Le present contrat prend effet a la date de sa signature et est conclu pour une duree indeterminee.',
|
|
'Chacune des parties peut resilier le contrat a tout moment, sous reserve d\'un preavis '
|
|
.'de 30 jours, notifie par email avec accuse de reception.',
|
|
],
|
|
'ANCIENNETE ET DROITS ANTERIEURS' => [
|
|
'Le Client reconnait expressement que l\'Association E-Cosplay ne reprend aucun '
|
|
.'engagement, garantie, condition particuliere ou anciennete lies aux relations '
|
|
.'commerciales entre le Client et la SARL SITECONSEIL.',
|
|
'Tout litige relatif aux prestations anterieures de la SARL SITECONSEIL devra etre '
|
|
.'dirige exclusivement vers cette derniere.',
|
|
],
|
|
'RESPONSABILITE' => [
|
|
'L\'Association E-Cosplay s\'engage a assurer la continuite des services dans la mesure '
|
|
.'du possible. Elle ne saurait etre tenue responsable des interruptions de service '
|
|
.'liees a la transition depuis la SARL SITECONSEIL.',
|
|
'L\'association ne saurait etre tenue responsable des dommages indirects, pertes '
|
|
.'de donnees, pertes d\'exploitation ou manque a gagner.',
|
|
],
|
|
'DONNEES PERSONNELLES' => [
|
|
'L\'Association E-Cosplay s\'engage a traiter les donnees personnelles du Client '
|
|
.'conformement au Reglement General sur la Protection des Donnees (RGPD) et a la '
|
|
.'loi Informatique et Libertes.',
|
|
'Le Client peut exercer ses droits d\'acces, de rectification et de suppression '
|
|
.'en contactant client@e-cosplay.fr.',
|
|
],
|
|
'CONDITIONS GENERALES DE VENTE' => [
|
|
'Le Client reconnait avoir pris connaissance des Conditions Generales de Vente (CGV) '
|
|
.'de l\'Association E-Cosplay, consultables a l\'adresse https://crm.e-cosplay.fr/legal/cgv, '
|
|
.'et les accepter sans reserve.',
|
|
'Les CGV font partie integrante du present contrat.',
|
|
],
|
|
'DROIT APPLICABLE ET JURIDICTION' => [
|
|
'Le present contrat est soumis au droit francais. En cas de litige, les parties '
|
|
.'s\'engagent a rechercher une solution amiable. A defaut, les tribunaux competents '
|
|
.'de Laon seront seuls competents.',
|
|
],
|
|
];
|
|
|
|
$articleNum = 1;
|
|
foreach ($articles as $title => $contents) {
|
|
if ($this->GetY() + 25 > $this->GetPageHeight() - 25) {
|
|
$this->AddPage();
|
|
}
|
|
|
|
$this->SetFont('Arial', 'B', 10);
|
|
$this->Cell(0, 6, $this->enc('Article '.$articleNum.' - '.$title), 0, 1, 'L');
|
|
$this->Ln(1);
|
|
|
|
$this->SetFont('Arial', '', 9);
|
|
foreach ($contents as $content) {
|
|
$this->MultiCell(0, 4, $this->enc($content), 0, 'J');
|
|
$this->Ln(2);
|
|
}
|
|
|
|
$this->Ln(2);
|
|
++$articleNum;
|
|
}
|
|
}
|
|
|
|
/** @codeCoverageIgnore */
|
|
private function writeSignatures(): void
|
|
{
|
|
if ($this->GetY() + 50 > $this->GetPageHeight() - 25) {
|
|
$this->AddPage();
|
|
}
|
|
|
|
$this->SetDrawColor(200, 200, 200);
|
|
$this->Cell(0, 0.5, '', 'T', 1, 'L');
|
|
$this->Ln(3);
|
|
|
|
$formatter = new \IntlDateFormatter(
|
|
'fr_FR',
|
|
\IntlDateFormatter::LONG,
|
|
\IntlDateFormatter::NONE,
|
|
'Europe/Paris',
|
|
\IntlDateFormatter::GREGORIAN
|
|
);
|
|
|
|
$this->SetFont('Arial', '', 9);
|
|
$this->Cell(0, 5, $this->enc('Fait a Beautor, le '.$formatter->format(new \DateTime()).', en deux exemplaires.'), 0, 1, 'L');
|
|
$this->Ln(5);
|
|
|
|
$colWidth = 85;
|
|
|
|
// Labels
|
|
$this->SetFont('Arial', 'B', 9);
|
|
$this->Cell($colWidth, 5, $this->enc('Pour l\'Association E-Cosplay :'), 0, 0, 'L');
|
|
$this->Cell(10, 5, '', 0, 0);
|
|
$this->Cell($colWidth, 5, $this->enc('Le Client ('.$this->contrat->getRaisonSociale().') :'), 0, 1, 'L');
|
|
$this->Ln(2);
|
|
|
|
// Signatures DocuSeal
|
|
$this->SetFont('Arial', '', 10);
|
|
$this->Cell($colWidth, 20, '{{Sign;type=signature;role=Company}}', 0, 0, 'L');
|
|
$this->Cell(10, 20, '', 0, 0);
|
|
$this->Cell($colWidth, 20, '{{SignClient;type=signature;role=Customer}}', 0, 1, 'L');
|
|
|
|
$this->Ln(5);
|
|
$this->SetFont('Arial', 'I', 8);
|
|
$this->SetTextColor(150, 150, 150);
|
|
$this->Cell(0, 4, $this->enc('Signature electronique via DocuSeal - Valeur juridique (reglement eIDAS, art. 1367 Code civil)'), 0, 1, 'C');
|
|
$this->SetTextColor(0, 0, 0);
|
|
}
|
|
|
|
private function enc(string $text): string
|
|
{
|
|
return mb_convert_encoding($text, 'Windows-1252', 'UTF-8');
|
|
}
|
|
}
|