src/EventListener/OrderListener.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Component\Configuration\Util\Config;
  4. use App\Entity\Order;
  5. use App\Event\SubmitOrderEvent;
  6. use App\Sendgrid\MailerInterface;
  7. use App\Util\StringToEntityUtil;
  8. use Gedmo\Translatable\TranslatableListener;
  9. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  10. class OrderListener extends FormSubmitEventListener
  11. {
  12.     /**
  13.      * OrderListener constructor.
  14.      */
  15.     public function __construct(
  16.         MailerInterface $mailer,
  17.         ParameterBagInterface $parameterBag,
  18.         StringToEntityUtil $stringToEntityUtil,
  19.         ?TranslatableListener $translatableListener,
  20.         Config $config
  21.     ) {
  22.         parent::__construct($mailer$parameterBag$stringToEntityUtil$translatableListener$config);
  23.     }
  24.     public function postOrderSubmit(SubmitOrderEvent $event)
  25.     {
  26.         $order $event->getOrder();
  27.         switch ($order->getType()) {
  28.             case Order::ORDER_TYPE_SAMPLE:
  29.                 $mail $this->getMail('site_order_sample_mail');
  30.                 break;
  31.             default:
  32.                 $mail $this->getMail('site_order_invoice_mail');
  33.                 break;
  34.         }
  35.         if (!$mail) {
  36.             return;
  37.         }
  38.         $this->mailer->mail(
  39.             $mail,
  40.             $this->getCompanyEmailSender(),
  41.             [$order->getEmail()],
  42.             ['order' => $order]
  43.         );
  44.         $this->mailer->mail(
  45.             $mail,
  46.             $this->getCompanyEmailSender(),
  47.             [$this->getCompanyEmailaddress()],
  48.             ['order' => $order]
  49.         );
  50.     }
  51. }