custom/plugins/CioMasterdata/src/Subscriber/MasterdataLoadedSubscriber.php line 29

Open in your IDE?
  1. <?php
  2. namespace CioMasterdata\Subscriber;
  3. use CioMasterdata\Definition\Masterdata\MasterdataEntity;
  4. use CioMasterdata\Service\MasterdataService;
  5. use Shopware\Core\Framework\DataAbstractionLayer\Event\EntityLoadedEvent;
  6. use Symfony\Component\EventDispatcher\EventDispatcherInterface;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. class MasterdataLoadedSubscriber implements EventSubscriberInterface
  9. {
  10.     private EventDispatcherInterface $eventDispatcher;
  11.     private MasterdataService $masterdataService;
  12.     public function __construct(EventDispatcherInterface $eventDispatcherMasterdataService $masterdataService)
  13.     {
  14.         $this->eventDispatcher $eventDispatcher;
  15.         $this->masterdataService $masterdataService;
  16.     }
  17.     public static function getSubscribedEvents(): array
  18.     {
  19.         return [
  20.             'cio_masterdata.loaded' => 'onMasterdataLoaded'
  21.         ];
  22.     }
  23.     public function onMasterdataLoaded(EntityLoadedEvent $event): void
  24.     {
  25.         $this->eventDispatcher->removeSubscriber($this);
  26.         /** @var MasterdataEntity $entity */
  27.         foreach ($event->getEntities() as $entity) {
  28.             $entity->openinghours_week $this->masterdataService->getOpeningHoursPerWeek($entity->getId());
  29.             $entity->openinghours_weekend $this->masterdataService->getOpeningHoursPerWeekend($entity->getId());
  30.         }
  31.     }
  32. }