SetTitle($this->enc('Levee d\'avertissement - '.$this->customer->getFullName())); $this->SetAuthor($this->enc('Association E-Cosplay')); } public function generate(): void { $this->AliasNbPages(); $this->AddPage(); $this->writeHeader(); $this->writeContent(); $this->writeSignature(); } /** @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: 06 79 34 88 02 - contact@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', 16); $this->SetXY(60, 10); $this->Cell(0, 8, $this->enc('LEVEE D\'AVERTISSEMENT'), 0, 1, 'L'); $formatter = new \IntlDateFormatter( 'fr_FR', \IntlDateFormatter::FULL, \IntlDateFormatter::NONE, 'Europe/Paris', \IntlDateFormatter::GREGORIAN ); $this->SetFont('Arial', '', 10); $this->SetXY(60, 19); $this->Cell(0, 5, $this->enc('Emise a Beautor, le '.$formatter->format(new \DateTime())), 0, 1, 'L'); // Destinataire $y = 32; $this->SetFont('Arial', 'B', 11); $this->SetXY(120, $y); $name = $this->customer->getRaisonSociale() ?: $this->customer->getFullName(); $this->Cell(0, 5, $this->enc($name), 0, 1, 'L'); if ($address = $this->customer->getAddress()) { $y += 5; $this->SetXY(120, $y); $this->SetFont('Arial', '', 10); $this->Cell(0, 5, $this->enc($address), 0, 1, 'L'); } $y += 5; $this->SetXY(120, $y); $this->SetFont('Arial', '', 10); $cityLine = ($this->customer->getZipCode() ?? '').' '.($this->customer->getCity() ?? ''); $this->Cell(0, 5, $this->enc(trim($cityLine)), 0, 1, 'L'); if ($this->customer->getEmail()) { $y += 5; $this->SetXY(120, $y); $this->Cell(0, 5, $this->enc($this->customer->getEmail()), 0, 1, 'L'); } $this->Ln(10); } /** @codeCoverageIgnore */ private function writeContent(): void { $this->SetY(60); // Bandeau vert $this->SetFillColor(22, 163, 74); $this->SetTextColor(255, 255, 255); $this->SetFont('Arial', 'B', 12); $this->Cell(0, 10, $this->enc(' SITUATION REGULARISEE'), 0, 1, 'L', true); $this->SetTextColor(0, 0, 0); $this->Ln(5); $greeting = $this->customer->getRaisonSociale() ? 'Chez '.$this->customer->getRaisonSociale() : $this->customer->getFirstName() ?? $this->customer->getFullName(); $this->SetFont('Arial', '', 10); $this->MultiCell(0, 5, $this->enc($greeting.','), 0, 'L'); $this->Ln(3); $this->MultiCell(0, 5, $this->enc('Nous vous confirmons que votre situation a ete regularisee. Les avertissements precedemment emis ont ete leves.'), 0, 'L'); $this->Ln(3); $this->MultiCell(0, 5, $this->enc('Vos services restent actifs et votre compte est en regle. Nous vous remercions pour votre regularisation.'), 0, 'L'); $this->Ln(5); $this->SetDrawColor(200, 200, 200); $this->Cell(0, 0.5, '', 'T', 1, 'L'); $this->Ln(3); $this->SetFont('Arial', 'I', 8); $this->SetTextColor(150, 150, 150); $this->MultiCell(0, 4, $this->enc( 'Le present document annule et remplace tout avertissement precedemment emis. ' .'Toutes les decisions sont prises par le bureau de l\'association a huis clos. ' .'Toute contestation devra etre adressee a direction@e-cosplay.fr' ), 0, 'L'); $this->SetTextColor(0, 0, 0); $this->Ln(5); } /** @codeCoverageIgnore */ private function writeSignature(): void { $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())), 0, 1, 'L'); $this->Ln(3); $this->SetFont('Arial', 'B', 9); $this->Cell(0, 5, $this->enc('Pour le bureau de l\'Association E-Cosplay :'), 0, 1, 'L'); $this->Ln(2); $this->SetFont('Arial', '', 10); $this->Cell(85, 20, '{{Sign;type=signature;role=First Party}}', 0, 1, 'L'); $this->Ln(3); $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'); } }