<?php
namespace ProxaOrderManagement\Subscribers;
use ProxaOrderManagement\Events\Product\UpdateFromFileCommandFinishedEvent;
use ProxaOrderManagement\Services\Config\ConfigService;
use Shopware\Core\Content\Mail\Service\MailService;
use Shopware\Core\Framework\Context;
use Shopware\Core\Framework\Validation\DataBag\DataBag;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class UpdateFromFileCommandSubscriber implements EventSubscriberInterface
{
private MailService $mailService;
private ConfigService $configService;
public function __construct(
MailService $mailService,
ConfigService $configService
)
{
$this->mailService = $mailService;
$this->configService = $configService;
}
public static function getSubscribedEvents(): array
{
return [
UpdateFromFileCommandFinishedEvent::class => 'onUpdateFromFileCommandFinishedEvent'
];
}
public function onUpdateFromFileCommandFinishedEvent(UpdateFromFileCommandFinishedEvent $event)
{
$recipients = $this->configService->getCronEventsRecipientsMail();
if (!$recipients) {
return;
}
$data = new DataBag();
$data->set('recipients', $recipients);
$data->set('senderName', "Daimler");
$data->set('salesChannelId', null);
if ($event->getProcessCount() !== null) {
$content = 'Die Aktualisierung hat begonnen und hat ' . $event->getItemsCount() . ' Artikel zu verarbeiten.';
$subject = 'Artikel-Update erfolgreich gestartet';
} else {
$content = 'Das Update konnte nicht gestartet werden, weil es ein Problem mit einer Datei gibt';
$subject = 'Fehler bei der Artikelaktualisierung';
}
$data->set('contentHtml', $content);
$data->set('contentPlain', $content);
$data->set('subject', $subject);
$this->mailService->send($data->all(), Context::createDefaultContext());
}
}