function it_does_nothing_if_order_has_no_shipping_adjustments(Collection $shippingAdjustments, OrderInterface $order, ShipmentInterface $shipment, ZoneInterface $zone) { $order->getLastShipment()->willReturn($shipment); $order->getAdjustments(AdjustmentInterface::SHIPPING_ADJUSTMENT)->willReturn($shippingAdjustments); $shippingAdjustments->isEmpty()->willReturn(true); $shippingAdjustments->last()->shouldNotBeCalled(); $this->apply($order, $zone); }
private function calculateNonNeutralTaxTotal(OrderInterface $order) { $nonNeutralTaxTotal = 0; foreach ($order->getAdjustments(AdjustmentInterface::TAX_ADJUSTMENT) as $taxAdjustment) { if (!$taxAdjustment->isNeutral()) { $nonNeutralTaxTotal = $taxAdjustment->getAmount(); } } return $nonNeutralTaxTotal; }
/** * @When I delete the order :order */ public function iDeleteTheOrder(OrderInterface $order) { $adjustmentsId = []; foreach ($order->getAdjustments() as $adjustment) { $adjustmentsId[] = $adjustment->getId(); } $this->sharedStorage->set('deleted_adjustments', $adjustmentsId); $this->sharedStorage->set('deleted_addresses', [$order->getShippingAddress()->getId(), $order->getBillingAddress()->getId()]); $this->sharedStorage->set('order_id', $order->getId()); $this->orderRepository->remove($order); }
/** * {@inheritdoc} */ public function apply(OrderInterface $order, ZoneInterface $zone) { $lastShipment = $order->getLastShipment(); if (!$lastShipment) { return; } $shippingAdjustments = $order->getAdjustments(AdjustmentInterface::SHIPPING_ADJUSTMENT); if ($shippingAdjustments->isEmpty()) { return; } $taxRate = $this->taxRateResolver->resolve($lastShipment->getMethod(), array('zone' => $zone)); if (null === $taxRate) { return; } $lastShippingAdjustment = $shippingAdjustments->last(); $taxAmount = $this->calculator->calculate($lastShippingAdjustment->getAmount(), $taxRate); $this->addAdjustment($order, $taxAmount, $taxRate->getLabel(), $taxRate->isIncludedInPrice()); }