Пример #1
0
 /**
  * @param \ActiveCollab\Payments\Gateway\GatewayInterface     $gateway
  * @param OrderInterface                                      $order
  * @param \ActiveCollab\Payments\Order\Refund\RefundInterface $refund
  */
 public function triggerOrderPartiallyRefunded(GatewayInterface $gateway, OrderInterface $order, RefundInterface $refund)
 {
     if ($order->getTotal() <= $refund->getTotal()) {
         throw new LogicException("Refunded amount needs to be less than order's total amount");
     }
     $this->trigger(self::ON_ORDER_PARTIALLY_REFUNDED, $gateway, $order, $refund);
 }
 /**
  * Trigger order has been fully refunded.
  *
  * @param OrderInterface              $order
  * @param DateTimeValueInterface|null $timestamp
  */
 public function triggerOrderRefunded(OrderInterface $order, DateTimeValueInterface $timestamp = null)
 {
     $this->orders[$order->getReference()] = $order;
     if (empty($timestamp)) {
         $timestamp = new DateTimeValue();
     }
     $refund = new Refund($order->getReference() . '-X', $order->getReference(), $timestamp, $order->getTotal());
     $refund->setGateway($this);
     $this->refunds[$refund->getReference()] = $refund;
     $this->getDispatcher()->triggerOrderRefunded($this, $order, $refund);
 }