From 45a9320d221b3bcfdecee7a2d5341980df5d23d7 Mon Sep 17 00:00:00 2001 From: Constantin Simonis Date: Fri, 28 Feb 2025 23:39:37 +0100 Subject: [PATCH] fix tickets getting cut in order pdf --- src/Service/TicketEmailService.php | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/Service/TicketEmailService.php b/src/Service/TicketEmailService.php index c9f5a57..6e0685c 100644 --- a/src/Service/TicketEmailService.php +++ b/src/Service/TicketEmailService.php @@ -12,6 +12,7 @@ use Symfony\Component\DependencyInjection\Attribute\Autowire; use Symfony\Component\Mailer\MailerInterface; use Symfony\Component\Mime\Address; use Symfony\Component\Mime\Part\DataPart; +use Symfony\Component\VarDumper\Cloner\Data; use Twig\Environment; class TicketEmailService @@ -33,14 +34,25 @@ class TicketEmailService ->to(new Address($payment->getCustomer()?->getEmail(), $payment->getCustomer()?->getFirstname() . ' ' . $payment->getCustomer()?->getLastname())) ->context([ 'payment' => $payment, - ]) - ->addPart(new DataPart($this->generateTicket($payment->getCustomer()?->getTickets()), 'tickets.pdf', 'application/pdf')); + ]); + + $acc = 0; + foreach ($this->generateTicket($payment->getCustomer()?->getTickets()) as $pdf) { + $mail->attach($pdf, 'tickets-'.++$acc.'.pdf', 'application/pdf'); + } $this->mailer->send($mail); } - private function generateTicket(Collection $tickets): string + private function generateTicket(Collection $tickets): array { - return (new DompdfWrapper(new DompdfFactory()))->getPdf($this->twig->render('email/pdf.html.twig', ['tickets' => $tickets])); + $ticketChunks = array_chunk($tickets->toArray(), 3); + + $pdfs = []; + foreach ($ticketChunks as $ticket) { + $pdfs[] = (new DompdfWrapper(new DompdfFactory()))->getPdf($this->twig->render('email/pdf.html.twig', ['tickets' => $ticket])); + } + + return $pdfs; } } \ No newline at end of file