vendor/shopware/core/Checkout/Cart/Price/Struct/CartPrice.php line 12

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Checkout\Cart\Price\Struct;
  3. use Shopware\Core\Checkout\Cart\Tax\Struct\CalculatedTaxCollection;
  4. use Shopware\Core\Checkout\Cart\Tax\Struct\TaxRuleCollection;
  5. use Shopware\Core\Framework\Log\Package;
  6. use Shopware\Core\Framework\Struct\Struct;
  7. use Shopware\Core\Framework\Util\FloatComparator;
  8. #[Package('checkout')]
  9. class CartPrice extends Struct
  10. {
  11.     public const TAX_STATE_GROSS 'gross';
  12.     public const TAX_STATE_NET 'net';
  13.     public const TAX_STATE_FREE 'tax-free';
  14.     /**
  15.      * @var float
  16.      */
  17.     protected $netPrice;
  18.     /**
  19.      * @var float
  20.      */
  21.     protected $totalPrice;
  22.     /**
  23.      * @var CalculatedTaxCollection
  24.      */
  25.     protected $calculatedTaxes;
  26.     /**
  27.      * @var TaxRuleCollection
  28.      */
  29.     protected $taxRules;
  30.     /**
  31.      * @var float
  32.      */
  33.     protected $positionPrice;
  34.     /**
  35.      * @var string
  36.      */
  37.     protected $taxStatus;
  38.     /**
  39.      * @var float
  40.      */
  41.     protected $rawTotal;
  42.     public function __construct(
  43.         float $netPrice,
  44.         float $totalPrice,
  45.         float $positionPrice,
  46.         CalculatedTaxCollection $calculatedTaxes,
  47.         TaxRuleCollection $taxRules,
  48.         string $taxStatus,
  49.         ?float $rawTotal null
  50.     ) {
  51.         $this->netPrice FloatComparator::cast($netPrice);
  52.         $this->totalPrice FloatComparator::cast($totalPrice);
  53.         $this->calculatedTaxes $calculatedTaxes;
  54.         $this->taxRules $taxRules;
  55.         $this->positionPrice FloatComparator::cast($positionPrice);
  56.         $this->taxStatus $taxStatus;
  57.         $rawTotal $rawTotal ?? $totalPrice;
  58.         $this->rawTotal FloatComparator::cast($rawTotal);
  59.     }
  60.     public function getNetPrice(): float
  61.     {
  62.         return $this->netPrice;
  63.     }
  64.     public function getTotalPrice(): float
  65.     {
  66.         return $this->totalPrice;
  67.     }
  68.     public function getCalculatedTaxes(): CalculatedTaxCollection
  69.     {
  70.         return $this->calculatedTaxes;
  71.     }
  72.     public function getTaxRules(): TaxRuleCollection
  73.     {
  74.         return $this->taxRules;
  75.     }
  76.     public function getPositionPrice(): float
  77.     {
  78.         return $this->positionPrice;
  79.     }
  80.     public function getTaxStatus(): string
  81.     {
  82.         return $this->taxStatus;
  83.     }
  84.     public function hasNetPrices(): bool
  85.     {
  86.         return \in_array($this->taxStatus, [self::TAX_STATE_NETself::TAX_STATE_FREE], true);
  87.     }
  88.     public function isTaxFree(): bool
  89.     {
  90.         return $this->taxStatus === self::TAX_STATE_FREE;
  91.     }
  92.     public static function createEmpty(string $taxState self::TAX_STATE_GROSS): CartPrice
  93.     {
  94.         return new self(000, new CalculatedTaxCollection(), new TaxRuleCollection(), $taxState);
  95.     }
  96.     public function getApiAlias(): string
  97.     {
  98.         return 'cart_price';
  99.     }
  100.     public function getRawTotal(): float
  101.     {
  102.         return $this->rawTotal;
  103.     }
  104. }