vendor/shopware/core/Checkout/Cart/Price/ReferencePriceCalculator.php line 8

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Checkout\Cart\Price;
  3. use Shopware\Core\Checkout\Cart\Price\Struct\QuantityPriceDefinition;
  4. use Shopware\Core\Checkout\Cart\Price\Struct\ReferencePrice;
  5. class ReferencePriceCalculator
  6. {
  7.     /**
  8.      * @var PriceRoundingInterface
  9.      */
  10.     private $priceRounding;
  11.     public function __construct(PriceRoundingInterface $priceRounding)
  12.     {
  13.         $this->priceRounding $priceRounding;
  14.     }
  15.     public function calculate(float $priceQuantityPriceDefinition $quantityPriceDefinition): ?ReferencePrice
  16.     {
  17.         if (!$quantityPriceDefinition->getReferencePriceDefinition()) {
  18.             return null;
  19.         }
  20.         $price $price $quantityPriceDefinition->getReferencePriceDefinition()->getPurchaseUnit() * $quantityPriceDefinition->getReferencePriceDefinition()->getReferenceUnit();
  21.         $price $this->priceRounding->round($price$quantityPriceDefinition->getPrecision());
  22.         return new ReferencePrice(
  23.             $price,
  24.             $quantityPriceDefinition->getReferencePriceDefinition()->getPurchaseUnit(),
  25.             $quantityPriceDefinition->getReferencePriceDefinition()->getReferenceUnit(),
  26.             $quantityPriceDefinition->getReferencePriceDefinition()->getUnitName()
  27.         );
  28.     }
  29. }