src/AppBundle/EventListener/OrderPreTransitionListener.php line 31

Open in your IDE?
  1. <?php
  2. namespace AppBundle\EventListener;
  3. use AppBundle\Exception\NotAllowedException;
  4. use AppBundle\Workflow\OrderWorkflow;
  5. use AppBundle\XmlGenerator\OrderPrintRequestXmlGenerator;
  6. use Pimcore\Model\DataObject\Order;
  7. use Symfony\Component\Workflow\Event\TransitionEvent;
  8. use Symfony\Component\Workflow\Transition;
  9. class OrderPreTransitionListener
  10. {
  11.     /**
  12.      * @var OrderPrintRequestXmlGenerator
  13.      */
  14.     protected $orderPrintRequestXmlGenerator;
  15.     public function __construct(OrderPrintRequestXmlGenerator $orderPrintRequestXmlGenerator)
  16.     {
  17.         $this->orderPrintRequestXmlGenerator $orderPrintRequestXmlGenerator;
  18.     }
  19.     /**
  20.      * @param TransitionEvent $transitionEvent
  21.      * @throws NotAllowedException
  22.      */
  23.     public function onPreTransition(TransitionEvent $transitionEvent)
  24.     {
  25.         /** @var Transition $transition */
  26.         $transition $transitionEvent->getTransition();
  27.         /** @var Order $order */
  28.         $order $transitionEvent->getSubject();
  29.         switch ($transition->getName()) {
  30.             case OrderWorkflow::TRANSITION_TO_SEND_ORDER_TO_TWIST:
  31.             case OrderWorkflow::TRANSITION_TO_TWIST_PROCESS_FAILED:
  32.             case OrderWorkflow::TRANSITION_TO_PRINT_DONE:
  33.                 // those methods are to be dynamics only
  34.                 if (\Pimcore::$adminMode) {
  35.                     throw new NotAllowedException('Cette Methode n\'est pas rĂ©alisable depuis le back office');
  36.                 }
  37.                 break;
  38.             case OrderWorkflow::TRANSITION_TO_PRINT_IN_PROCESS:
  39. //                $this->orderPrintRequestXmlGenerator->setPrinter($order->getPrinter());
  40.                 break;
  41.             case OrderWorkflow::TRANSITION_TO_RETRY_ORDER:
  42.             case OrderWorkflow::TRANSITION_TO_REJECT_ORDER:
  43.             case OrderWorkflow::TRANSITION_TO_ACCEPT_ORDER:
  44.             case OrderWorkflow::TRANSITION_TO_ORDER_PRINT_READY:
  45.                 // nothing to do here, all is already done by status
  46.             default:
  47.                 break;
  48.         }
  49.     }
  50. }