![]() 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/old/vendor/magento/module-tax/Model/Sales/Total/Quote/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Tax\Model\Sales\Total\Quote; use Magento\Quote\Model\Quote\Address; use Magento\Quote\Api\Data\ShippingAssignmentInterface; class Shipping extends CommonTaxCollector { /** * Collect tax totals for shipping. The result can be used to calculate discount on shipping * * @param \Magento\Quote\Model\Quote $quote * @param ShippingAssignmentInterface $shippingAssignment * @param Address\Total $total * @return $this */ public function collect( \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; } //Add shipping $shippingDataObject = $this->getShippingDataObject($shippingAssignment, $total, false); $baseShippingDataObject = $this->getShippingDataObject($shippingAssignment, $total, true); if ($shippingDataObject == null || $baseShippingDataObject == null) { return $this; } $quoteDetails = $this->prepareQuoteDetails($shippingAssignment, [$shippingDataObject]); $taxDetails = $this->taxCalculationService ->calculateTax($quoteDetails, $storeId); $taxDetailsItems = $taxDetails->getItems()[self::ITEM_CODE_SHIPPING]; $baseQuoteDetails = $this->prepareQuoteDetails($shippingAssignment, [$baseShippingDataObject]); $baseTaxDetails = $this->taxCalculationService ->calculateTax($baseQuoteDetails, $storeId); $baseTaxDetailsItems = $baseTaxDetails->getItems()[self::ITEM_CODE_SHIPPING]; $quote->getShippingAddress() ->setShippingAmount($taxDetailsItems->getRowTotal()); $quote->getShippingAddress() ->setBaseShippingAmount($baseTaxDetailsItems->getRowTotal()); $this->processShippingTaxInfo( $shippingAssignment, $total, $taxDetailsItems, $baseTaxDetailsItems ); return $this; } /** * @param \Magento\Quote\Model\Quote $quote * @param Address\Total $total * @return array|null * * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function fetch(\Magento\Quote\Model\Quote $quote, \Magento\Quote\Model\Quote\Address\Total $total) { if ($total->getShippingInclTax()) { return [ 'code' => 'shipping', 'shipping_incl_tax' => $total->getShippingInclTax() ]; } return null; } }