コード例 #1
0
 /**
  * {@inheritdoc}
  */
 public function cancel(OrderInterface $order)
 {
     if (OrderPaymentStates::STATE_PAID === $order->getPaymentState()) {
         $this->giveBack($order);
         return;
     }
     $this->release($order);
 }
コード例 #2
0
 function it_does_not_mark_order_as_fulfilled_when_it_has_been_shipped_but_not_paid(FactoryInterface $stateMachineFactory, OrderInterface $order, StateMachineInterface $stateMachine)
 {
     $order->getShippingState()->willReturn(OrderShippingStates::STATE_SHIPPED);
     $order->getPaymentState()->willReturn(Argument::not(OrderPaymentStates::STATE_PAID));
     $stateMachineFactory->get($order, OrderTransitions::GRAPH)->willReturn($stateMachine);
     $stateMachine->can(OrderTransitions::TRANSITION_FULFILL)->willReturn(true);
     $stateMachine->apply(OrderTransitions::TRANSITION_FULFILL)->shouldNotBeCalled();
     $this->resolve($order);
 }
コード例 #3
0
 function it_marks_order_as_partially_paid_if_one_of_the_payment_is_processing(FactoryInterface $stateMachineFactory, StateMachineInterface $stateMachine, OrderInterface $order, PaymentInterface $payment1, PaymentInterface $payment2)
 {
     $payment1->getAmount()->willReturn(6000);
     $payment1->getState()->willReturn(PaymentInterface::STATE_PROCESSING);
     $payment2->getAmount()->willReturn(4000);
     $payment2->getState()->willReturn(PaymentInterface::STATE_COMPLETED);
     $payments = new ArrayCollection([$payment1->getWrappedObject(), $payment2->getWrappedObject()]);
     $order->hasPayments()->willReturn(true);
     $order->getPayments()->willReturn($payments);
     $order->getPaymentState()->willReturn(OrderPaymentStates::STATE_AWAITING_PAYMENT);
     $order->getTotal()->willReturn(10000);
     $stateMachineFactory->get($order, OrderPaymentTransitions::GRAPH)->willReturn($stateMachine);
     $stateMachine->can(OrderPaymentTransitions::TRANSITION_PARTIALLY_PAY)->willReturn(true);
     $stateMachine->apply(OrderPaymentTransitions::TRANSITION_PARTIALLY_PAY)->shouldBeCalled();
     $this->resolve($order);
 }
コード例 #4
0
 function it_does_nothing_if_variant_is_not_tracked_and_order_is_paid_during_cancelling(OrderInterface $order, OrderItemInterface $orderItem, ProductVariantInterface $variant)
 {
     $order->getPaymentState()->willReturn(OrderPaymentStates::STATE_PAID);
     $order->getItems()->willReturn([$orderItem]);
     $orderItem->getVariant()->willReturn($variant);
     $variant->isTracked()->willReturn(false);
     $variant->setOnHand(Argument::any())->shouldNotBeCalled();
     $this->cancel($order);
 }