/**
  * Completes the payment process when the payment.order.success event is raised.
  *
  * This means that we can change the order state to ACCEPTED
  *
  * @param AbstractPaymentEvent $event
  */
 public function setOrderToPaid(AbstractPaymentEvent $event)
 {
     $order = $event->getPaymentBridge()->getOrder();
     if (!$order instanceof OrderInterface) {
         throw new \LogicException('Cannot retrieve Order from PaymentBridge');
     }
     /**
      * We create the new entry in the payment state machine
      */
     $stateLineStack = $this->paymentMachineManager->transition($order, $order->getPaymentStateLineStack(), 'pay', 'Order paid using ' . $event->getPaymentMethod()->getPaymentName());
     $order->setPaymentStateLineStack($stateLineStack);
     /**
      * We save all the data
      */
     $this->stateLineObjectManager->persist($stateLineStack->getLastStateLine());
     $this->stateLineObjectManager->flush($stateLineStack->getLastStateLine());
     $this->stateLineObjectManager->flush($order);
 }
Example #2
0
 /**
  * Create order given current cart. This event is only for pushing the new
  * Order to the payment infrastructure
  *
  * @param AbstractPaymentEvent $event Event
  */
 public function transformCartToOrder(AbstractPaymentEvent $event)
 {
     $cart = $this->cartWrapper->get();
     $order = $this->cartOrderTransformer->createOrderFromCart($cart);
     $event->getPaymentBridge()->setOrder($order);
 }