app/Plugin/OrderStatusEx/EventSubscriber/SearchEventSubscriber.php line 51

Open in your IDE?
  1. <?php
  2. /**
  3.  * Copyright(c) 2022 SYSTEM_KD
  4.  * Date: 2022/11/26
  5.  */
  6. namespace Plugin\OrderStatusEx\EventSubscriber;
  7. use Eccube\Event\EccubeEvents;
  8. use Eccube\Event\EventArgs;
  9. use Plugin\OrderStatusEx\Entity\OrderStatusEvent;
  10. use Plugin\OrderStatusEx\Repository\OrderStatusEventRepository;
  11. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  12. class SearchEventSubscriber implements EventSubscriberInterface
  13. {
  14.     /** @var OrderStatusEventRepository */
  15.     protected $orderStatusEventRepository;
  16.     public function __construct(
  17.         OrderStatusEventRepository $orderStatusEventRepository
  18.     )
  19.     {
  20.         $this->orderStatusEventRepository $orderStatusEventRepository;
  21.     }
  22.     public function onAdminAdminIndexOrder(EventArgs $event)
  23.     {
  24.         $excludes $event->getArgument('excludes');
  25.         $status = [
  26.             OrderStatusEvent::EVENT_GROUP_CANCEL,
  27.             OrderStatusEvent::EVENT_GROUP_RETURN,
  28.             OrderStatusEvent::EVENT_GROUP_DELIVERY,
  29.         ];
  30.         $orderStatusExEvents $this->orderStatusEventRepository->findOrderStatusEvents($status);
  31.         /** @var OrderStatusEvent $orderStatusExEvent */
  32.         foreach ($orderStatusExEvents as $orderStatusExEvent) {
  33.             $targetOrderStatusId $orderStatusExEvent->getOrderStatusId();
  34.             $excludes[] = $targetOrderStatusId;
  35.         }
  36.         $event->setArgument('excludes'$excludes);
  37.     }
  38.     public function onAdminAdminIndexSales(EventArgs $event)
  39.     {
  40.         $excludes $event->getArgument('excludes');
  41.         // 取消・返品相当のステータス追加
  42.         $orderStatusExEvents $this->orderStatusEventRepository->getNoOrderStatusEvents();
  43.         /** @var OrderStatusEvent $orderStatusExEvent */
  44.         foreach ($orderStatusExEvents as $orderStatusExEvent) {
  45.             $targetOrderStatusId $orderStatusExEvent->getOrderStatusId();
  46.             $excludes[] = $targetOrderStatusId;
  47.         }
  48.         $event->setArgument('excludes'$excludes);
  49.     }
  50.     public static function getSubscribedEvents()
  51.     {
  52.         return [
  53.             // ホーム 件数一覧
  54.             EccubeEvents::ADMIN_ADMIM_INDEX_ORDER => 'onAdminAdminIndexOrder',
  55.             // ホーム 売上状況
  56.             EccubeEvents::ADMIN_ADMIM_INDEX_SALES => 'onAdminAdminIndexSales',
  57.         ];
  58.     }
  59. }