![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/Ecombricks/InventoryTax/Model/Sales/Total/Quote/Shipping/ |
<?php /** * Copyright © eComBricks. All rights reserved. * See LICENSE.txt for license details. */ namespace Ecombricks\InventoryTax\Model\Sales\Total\Quote\Shipping; /** * Shipping total trait */ trait SourceTrait { /** * Get shipping tax details item * * @param \Magento\Quote\Model\Quote $quote * @param \Magento\Quote\Api\Data\ShippingAssignmentInterface $shippingAssignment * @param \Magento\Quote\Model\Quote\Address\Total $total * @param bool $useBaseCurrency * @return \Magento\Tax\Api\Data\TaxDetailsItemInterface|null */ protected function getShippingTaxDetailsItem( \Magento\Quote\Model\Quote $quote, \Magento\Quote\Api\Data\ShippingAssignmentInterface $shippingAssignment, \Magento\Quote\Model\Quote\Address\Total $total, $useBaseCurrency ) { $shippingDataObject = $this->getShippingDataObject($shippingAssignment, $total, $useBaseCurrency); if ($shippingDataObject === null) { return null; } $quoteDetails = $this->prepareQuoteDetails($shippingAssignment, [$shippingDataObject]); $taxDetails = $this->taxCalculationService->calculateTax($quoteDetails, $quote->getStoreId()); $taxDetailsItems = $taxDetails->getItems(); return $taxDetailsItems[self::ITEM_CODE_SHIPPING] ?? null; } /** * Collect * * @param \Magento\Quote\Model\Quote $quote * @param \Magento\Quote\Api\Data\ShippingAssignmentInterface $shippingAssignment * @param \Magento\Quote\Model\Quote\Address\Total $total * @return $this */ public function inventoryCollect( \Magento\Quote\Model\Quote $quote, \Magento\Quote\Api\Data\ShippingAssignmentInterface $shippingAssignment, \Magento\Quote\Model\Quote\Address\Total $total ) { $storeId = $quote->getStoreId(); $items = $shippingAssignment->getItems(); if (!$items) { return $this; } $shippingTaxDetailsItem = $this->getShippingTaxDetailsItem($quote, $shippingAssignment, $total, false); $baseShippingTaxDetailsItem = $this->getShippingTaxDetailsItem($quote, $shippingAssignment, $total, true); if ($shippingTaxDetailsItem === null || $baseShippingTaxDetailsItem === null) { return $this; } $shipping = $shippingAssignment->getShipping(); $address = $shipping->getAddress(); $address->setShippingAmount($shippingTaxDetailsItem->getRowTotal()); $address->setBaseShippingAmount($baseShippingTaxDetailsItem->getRowTotal()); $this->processShippingTaxInfo($shippingAssignment, $total, $shippingTaxDetailsItem, $baseShippingTaxDetailsItem); return $this; } }