From b03f6e377a52cb983970f457ff1279e38361d9e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Wed, 19 Jun 2024 09:14:45 +0200 Subject: [PATCH] feat: attach contract to notification email about new assignment --- .../EmailNotificationSubscriber.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/EventListener/EmailNotificationSubscriber.php b/src/EventListener/EmailNotificationSubscriber.php index 3ac5945..058b63e 100644 --- a/src/EventListener/EmailNotificationSubscriber.php +++ b/src/EventListener/EmailNotificationSubscriber.php @@ -9,14 +9,17 @@ use App\Event\ApplicationStatusEvent; use App\Event\DispositionCreatedEvent; use App\Event\DocumentRejectedEvent; use App\Event\DocumentUploadedEvent; +use App\Model\EmailAttachmentDto; use App\Repository\UserRepository; +use App\Service\Pdf\ContractRenderer; use Symfony\Component\EventDispatcher\EventSubscriberInterface; class EmailNotificationSubscriber implements EventSubscriberInterface { public function __construct( private readonly Mailer $mailer, - private readonly UserRepository $userRepository + private readonly UserRepository $userRepository, + private readonly ContractRenderer $contractRenderer ) { } @@ -37,6 +40,17 @@ class EmailNotificationSubscriber implements EventSubscriberInterface { $disposition = $event->getDisposition(); $teamer = $disposition->getTeamer(); + $assignment = $disposition->getAssignment(); + $destination = $assignment->getDestination(); + + $filename = sprintf('Honorarvertrag_%s_%s.pdf', $teamer, $destination); + + $contractPdf = $this->contractRenderer->render($disposition); + $attachment = new EmailAttachmentDto( + $filename, + $contractPdf->Output('S'), + 'application/pdf' + ); $this->mailer->createAndSendEmail([ 'disposition' => $disposition, @@ -44,6 +58,7 @@ class EmailNotificationSubscriber implements EventSubscriberInterface 'to' => $teamer->getCommunication()->getEmail(), 'subject' => 'Dein Einsatz wurde angenommen', 'template' => 'email/application_accepted.html.twig', + 'attachments' => [$attachment], ]); }