![]() 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/app/code/Cnc/Catalog/ViewModel/ |
<?php /** * Copyright (c) 2020 Kaliop Digital Commerce (https://digitalcommerce.kaliop.com) All Rights Reserved. * https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * Cnc * Radosław Stępień <[email protected]> <[email protected]> */ namespace Cnc\Catalog\ViewModel; use Magento\Catalog\Model\Product; use Magento\Framework\Pricing\Adjustment\CalculatorInterface; use Magento\Framework\Pricing\Amount\AmountInterface; use Magento\Framework\Pricing\PriceCurrencyInterface; use Magento\Framework\View\Element\Block\ArgumentInterface; class FinalPriceRender implements ArgumentInterface { /** * @var CalculatorInterface */ protected $calculator; /** * @var PriceCurrencyInterface */ protected $priceCurrency; /** * FinalPrice constructor. * @param CalculatorInterface $calculator * @param PriceCurrencyInterface $priceCurrency */ public function __construct( CalculatorInterface $calculator, PriceCurrencyInterface $priceCurrency ) { $this->calculator = $calculator; $this->priceCurrency = $priceCurrency; } /** * @param Product $product * @param bool $includeTax * @return AmountInterface */ public function getLowestPriceProductData($product, $includeTax = false) { $exclude = $includeTax ? '' : 'tax'; $minPrice = $product->getFinalPrice(); $qty = false; if ($product->getTierPrices()) { foreach ($product->getTierPrices() as $tierPrice) { if ($tierPrice->getValue() < $minPrice) { $minPrice = $tierPrice->getValue(); $qty = $tierPrice->getQty(); } } } $minPriceValue = $this->calculator->getAmount($minPrice, $product, $exclude)->getValue(); $result['price'] = $this->priceCurrency->convertAndFormat($minPriceValue); $result['qty'] = $qty; return $result; } }