本文整理汇总了PHP中Sylius\Component\Core\Model\OrderInterface::hasPayments方法的典型用法代码示例。如果您正苦于以下问题:PHP OrderInterface::hasPayments方法的具体用法?PHP OrderInterface::hasPayments怎么用?PHP OrderInterface::hasPayments使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Sylius\Component\Core\Model\OrderInterface
的用法示例。
在下文中一共展示了OrderInterface::hasPayments方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: resolvePaymentState
/**
* {@inheritdoc}
*/
public function resolvePaymentState(OrderInterface $order)
{
$paymentState = PaymentInterface::STATE_NEW;
if ($order->hasPayments()) {
$payments = $order->getPayments();
$completedPaymentTotal = 0;
foreach ($payments as $payment) {
if (PaymentInterface::STATE_COMPLETED === $payment->getState()) {
$completedPaymentTotal += $payment->getAmount();
}
}
if ($completedPaymentTotal >= $order->getTotal()) {
// Payment is completed if we have received full amount.
$paymentState = PaymentInterface::STATE_COMPLETED;
} else {
// Payment is processing if one of the payment is.
if ($payments->exists(function ($key, $payment) {
return in_array($payment->getState(), [PaymentInterface::STATE_PROCESSING, PaymentInterface::STATE_PENDING]);
})) {
$paymentState = PaymentInterface::STATE_PROCESSING;
}
}
}
$order->setPaymentState($paymentState);
}
示例2: ArrayCollection
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);
}
示例3: Payment
function it_marks_order_as_new_if_no_payment_is_in_process(OrderInterface $order)
{
$payment1 = new Payment();
$payment1->setAmount(6000);
$payment1->setState(PaymentInterface::STATE_NEW);
$payment2 = new Payment();
$payment2->setAmount(4000);
$payment2->setState(PaymentInterface::STATE_NEW);
$payments = new ArrayCollection(array($payment1, $payment2));
$order->hasPayments()->willReturn(true);
$order->getPayments()->willReturn($payments);
$order->getTotal()->willReturn(10000);
$order->setPaymentState(PaymentInterface::STATE_NEW)->shouldBeCalled();
$this->resolvePaymentState($order);
}