mailer = $mail; $this->translator = $translator; $this->router = $router; $this->eventRepository = $eventRepository; } /** * Send mail to a sponsor with a custom token to get tickets * * @param SponsorTicket $sponsorTicket * @param $lastCall boolean * @return bool */ public function sendNotification(SponsorTicket $sponsorTicket, $lastCall = false) { /** * @var $event Event */ $event = $this->eventRepository->get($sponsorTicket->getIdForum()); $textLabel = 'mail.sponsorTicket.text'; $subjectLabel = "mail.sponsorTicket.subject"; if ($lastCall === true) { $textLabel = 'mail.sponsorTicketLastCall.text'; $subjectLabel = "mail.sponsorTicketLastCall.subject"; } $text = $this->translator->transChoice( $textLabel, $sponsorTicket->getMaxInvitations(), [ '%token%' => $sponsorTicket->getToken(), '%places%' => $sponsorTicket->getMaxInvitations(), '%event%' => $event->getTitle(), '%link%' => $this->router->generate( 'sponsor_ticket_home', ['eventSlug' => $event->getPath()], UrlGeneratorInterface::ABSOLUTE_URL ), '%endDate%' => $event->getDateEndSales()->format('d/m/Y') ] ); return $this->mailer->sendTransactional(new Message( $this->translator->trans($subjectLabel, ['%event%' => $event->getTitle()]), MailUserFactory::afup(), new MailUser($sponsorTicket->getContactEmail(), $sponsorTicket->getCompany()) ), $text); } }