vendor/shopware/core/Content/Product/Aggregate/ProductPrice/ProductPriceCollection.php line 14

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Content\Product\Aggregate\ProductPrice;
  3. use Shopware\Core\Checkout\Cart\Price\Struct\CartPrice;
  4. use Shopware\Core\Framework\Context;
  5. use Shopware\Core\Framework\DataAbstractionLayer\EntityCollection;
  6. use Shopware\Core\Framework\Log\Package;
  7. /**
  8.  * @extends EntityCollection<ProductPriceEntity>
  9.  */
  10. #[Package('inventory')]
  11. class ProductPriceCollection extends EntityCollection
  12. {
  13.     public function getApiAlias(): string
  14.     {
  15.         return 'product_price_collection';
  16.     }
  17.     public function filterByRuleId(string $ruleId): self
  18.     {
  19.         return $this->filter(function (ProductPriceEntity $price) use ($ruleId) {
  20.             return $ruleId === $price->getRuleId();
  21.         });
  22.     }
  23.     public function sortByQuantity(): void
  24.     {
  25.         $this->sort(function (ProductPriceEntity $aProductPriceEntity $b) {
  26.             return $a->getQuantityStart() <=> $b->getQuantityStart();
  27.         });
  28.     }
  29.     public function sortByPrice(Context $context): void
  30.     {
  31.         $this->sort(function (ProductPriceEntity $aProductPriceEntity $b) use ($context) {
  32.             $a $a->getPrice()->first();
  33.             $b $b->getPrice()->first();
  34.             if ($context->getTaxState() === CartPrice::TAX_STATE_GROSS) {
  35.                 return ($a $a->getGross() : 0) <=> ($b $b->getGross() : 0);
  36.             }
  37.             return ($a $a->getNet() : 0) <=> ($b $b->getNet() : 0);
  38.         });
  39.     }
  40.     protected function getExpectedClass(): string
  41.     {
  42.         return ProductPriceEntity::class;
  43.     }
  44. }