← Back
Editing: ReportControlFactory.php
<?php namespace App\Report\Control; use App\Entity\Controle; use App\Report\Control\Role\RoleControlReportInterface; use App\Report\Control\Sender\ServiceProviderSender; use Symfony\Component\Mailer\Exception\TransportExceptionInterface; class ReportControlFactory { /** * @param iterable<RoleControlReportInterface> $roleReports */ public function __construct( private readonly iterable $roleReports, private readonly ReportEmailSender $emailSender, private readonly ServiceProviderSender $providerSender ) { } /** * @throws TransportExceptionInterface */ public function send(Controle $control): void { if (true === $control->getReceiveReport()) { $this->sendToCreator($control); } if (true === $control->isAlertePrestataire()) { ($this->providerSender)($control); } } /** * @throws TransportExceptionInterface */ private function sendToCreator(Controle $control): void { foreach ($this->roleReports as $roleReport) { if (!$roleReport->supports($control->getAgent())) { continue; } $recipients = $roleReport->getRecipients($control); foreach ($recipients as $recipient) { ($this->emailSender)( title: $recipient->getTypeControlReport()->getSubject($control), recipient: $recipient->getEmail(), htmlTemplate: $recipient->getTypeControlReport()::TEMPLATE, context: $recipient->getTypeControlReport()->getContextFromControl($control), cc: $recipient->getCCEmails() ); } } } }
Save File
Cancel