app/Plugin/EccubePaymentLite4/EventListener/EventSubscriber/Front/Mypage/Change/UpdateRegularOrder.php line 39

Open in your IDE?
  1. <?php
  2. namespace Plugin\EccubePaymentLite4\EventListener\EventSubscriber\Front\Mypage\Change;
  3. use Doctrine\ORM\EntityManagerInterface;
  4. use Eccube\Entity\Customer;
  5. use Eccube\Event\EccubeEvents;
  6. use Eccube\Event\EventArgs;
  7. use Plugin\EccubePaymentLite4\Entity\RegularOrder;
  8. use Plugin\EccubePaymentLite4\Repository\RegularOrderRepository;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. class UpdateRegularOrder implements EventSubscriberInterface
  11. {
  12.     /**
  13.      * @var RegularOrderRepository
  14.      */
  15.     private $regularOrderRepository;
  16.     /**
  17.      * @var EntityManagerInterface
  18.      */
  19.     private $entityManager;
  20.     public function __construct(
  21.         RegularOrderRepository $regularOrderRepository,
  22.         EntityManagerInterface $entityManager
  23.     ) {
  24.         $this->regularOrderRepository $regularOrderRepository;
  25.         $this->entityManager $entityManager;
  26.     }
  27.     public static function getSubscribedEvents()
  28.     {
  29.         return [
  30.             EccubeEvents::FRONT_MYPAGE_CHANGE_INDEX_COMPLETE => 'index',
  31.         ];
  32.     }
  33.     public function index(EventArgs $eventArgs)
  34.     {
  35.         /** @var Customer $Customer */
  36.         $Customer $eventArgs->getArgument('Customer');
  37.         /** @var RegularOrder[] $RegularOrders */
  38.         $RegularOrders $this->regularOrderRepository->findBy(['Customer' => $Customer]);
  39.         foreach ($RegularOrders as $RegularOrder) {
  40.             $RegularOrder
  41.                 ->setSex($Customer->getSex())
  42.                 ->setPref($Customer->getPref())
  43.                 ->setJob($Customer->getJob())
  44.                 ->setName01($Customer->getName01())
  45.                 ->setName02($Customer->getName02())
  46.                 ->setKana01($Customer->getKana01())
  47.                 ->setKana02($Customer->getKana02())
  48.                 ->setCompanyName($Customer->getCompanyName())
  49.                 ->setEmail($Customer->getEmail())
  50.                 ->setPhoneNumber($Customer->getPhoneNumber())
  51.                 ->setPostalCode($Customer->getPostalCode())
  52.                 ->setAddr01($Customer->getAddr01())
  53.                 ->setAddr02($Customer->getAddr02())
  54.                 ->setUpdateDate(new \DateTime())
  55.             ;
  56.             $this->entityManager->persist($RegularOrder);
  57.         }
  58.         $this->entityManager->flush();
  59.     }
  60. }