src/EventSubscribers/Main/TransactionSubscriber.php line 68

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscribers\Main;
  3. use App\Entity\Main\AffiliateNotificationConfig;
  4. use App\Entity\Main\PackInterface;
  5. use App\Entity\Main\PackProductInterface;
  6. use App\Entity\Main\Product;
  7. use App\Entity\Main\Shipping;
  8. use App\Entity\Main\ShippingBatch;
  9. use App\Entity\Main\UpsellCart;
  10. use App\Entity\Main\User;
  11. use App\Entity\Main\UserCreditNote;
  12. use App\Events\Main\Cart\CartChargedBackEvent;
  13. use App\Events\Main\Cart\CartCreatedEvent;
  14. use App\Events\Main\Cart\CartCreditNoteUsedEvent;
  15. use App\Events\Main\Cart\CartItemAddedEvent;
  16. use App\Events\Main\Cart\CartItemQuantityUpdatedEvent;
  17. use App\Events\Main\Cart\CartItemRemovedEvent;
  18. use App\Events\Main\Cart\CartRefundedEvent;
  19. use App\Events\Main\Cart\TransactionRefundedEvent;
  20. use App\Events\Main\Coaching\CoachingClickedOffEvent;
  21. use App\Events\Main\Coaching\CoachingClickedOnEvent;
  22. use App\Services\CartManager;
  23. use App\Services\AffiliateNotificationManager;
  24. use App\Services\ReferralProgramManager;
  25. use App\Services\TransactionManager;
  26. use App\Services\UserCreditNoteManager;
  27. use App\Services\UserManager;
  28. use Doctrine\ORM\EntityManagerInterface;
  29. use Symfony\Component\EventDispatcher\EventDispatcherInterface;
  30. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  31. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  32. /**
  33.  * Class TransactionSubscriber
  34.  * @package App\EventSubscribers\Main
  35.  */
  36. class TransactionSubscriber implements EventSubscriberInterface
  37. {
  38.     const
  39.         TRANSACTION_REFUND 'transaction.refund'
  40.     ;
  41.     private EntityManagerInterface $entityManager;
  42.     private TransactionManager $transactionManager;
  43.     public function __construct(
  44.         EntityManagerInterface $entityManager,
  45.         TransactionManager $transactionManager
  46.     ) {
  47.         $this->entityManager $entityManager;
  48.         $this->transactionManager $transactionManager;
  49.     }
  50.     /**
  51.      * @return array
  52.      */
  53.     public static function getSubscribedEvents()
  54.     {
  55.         return array(
  56.             self::TRANSACTION_REFUND => "transactionRefund"
  57.         );
  58.     }
  59.     /**
  60.      * @param TransactionRefundedEvent $event
  61.      */
  62.     public function transactionRefund(TransactionRefundedEvent $event)
  63.     {
  64.         $transaction $event->getTransaction();
  65.         $this->transactionManager->cancelShippingFromRefundedTransaction($transaction);
  66.     }
  67. }