src/Eccube/Doctrine/EventSubscriber/TaxRuleEventSubscriber.php line 65

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of EC-CUBE
  4.  *
  5.  * Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  6.  *
  7.  * http://www.ec-cube.co.jp/
  8.  *
  9.  * For the full copyright and license information, please view the LICENSE
  10.  * file that was distributed with this source code.
  11.  */
  12. namespace Eccube\Doctrine\EventSubscriber;
  13. use Doctrine\Common\EventSubscriber;
  14. use Doctrine\ORM\Event\LifecycleEventArgs;
  15. use Doctrine\ORM\Events;
  16. use Eccube\Entity\ProductClass;
  17. use Eccube\Service\TaxRuleService;
  18. use Symfony\Component\DependencyInjection\ContainerInterface;
  19. class TaxRuleEventSubscriber implements EventSubscriber
  20. {
  21.     /**
  22.      * @var TaxRuleService
  23.      */
  24.     protected $container;
  25.     /**
  26.      * TaxRuleEventSubscriber constructor.
  27.      */
  28.     public function __construct(ContainerInterface $container)
  29.     {
  30.         $this->container $container;
  31.     }
  32.     public function getTaxRuleService()
  33.     {
  34.         return $this->container->get(TaxRuleService::class);
  35.     }
  36.     public function getSubscribedEvents()
  37.     {
  38.         return [
  39.             Events::prePersist,
  40.             Events::postLoad,
  41.             Events::postPersist,
  42.             Events::postUpdate,
  43.         ];
  44.     }
  45.     public function prePersist(LifecycleEventArgs $args)
  46.     {
  47.         $entity $args->getObject();
  48.         if ($entity instanceof ProductClass) {
  49.             $entity->setPrice01IncTax($this->getTaxRuleService()->getPriceIncTax($entity->getPrice01(),
  50.                 $entity->getProduct(), $entity));
  51.             $entity->setPrice02IncTax($this->getTaxRuleService()->getPriceIncTax($entity->getPrice02(),
  52.                 $entity->getProduct(), $entity));
  53.         }
  54.     }
  55.     public function postLoad(LifecycleEventArgs $args)
  56.     {
  57.         $entity $args->getObject();
  58.         if ($entity instanceof ProductClass) {
  59.             $entity->setPrice01IncTax($this->getTaxRuleService()->getPriceIncTax($entity->getPrice01(),
  60.                 $entity->getProduct(), $entity));
  61.             $entity->setPrice02IncTax($this->getTaxRuleService()->getPriceIncTax($entity->getPrice02(),
  62.                 $entity->getProduct(), $entity));
  63.         }
  64.     }
  65.     public function postPersist(LifecycleEventArgs $args)
  66.     {
  67.         $entity $args->getObject();
  68.         if ($entity instanceof ProductClass) {
  69.             $entity->setPrice01IncTax($this->getTaxRuleService()->getPriceIncTax($entity->getPrice01(),
  70.                 $entity->getProduct(), $entity));
  71.             $entity->setPrice02IncTax($this->getTaxRuleService()->getPriceIncTax($entity->getPrice02(),
  72.                 $entity->getProduct(), $entity));
  73.         }
  74.     }
  75.     public function postUpdate(LifecycleEventArgs $args)
  76.     {
  77.         $entity $args->getObject();
  78.         if ($entity instanceof ProductClass) {
  79.             $entity->setPrice01IncTax($this->getTaxRuleService()->getPriceIncTax($entity->getPrice01(),
  80.                 $entity->getProduct(), $entity));
  81.             $entity->setPrice02IncTax($this->getTaxRuleService()->getPriceIncTax($entity->getPrice02(),
  82.                 $entity->getProduct(), $entity));
  83.         }
  84.     }
  85. }