vendor/shopware/core/Checkout/Cart/Tax/Struct/TaxRuleCollection.php line 12

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Checkout\Cart\Tax\Struct;
  3. use Shopware\Core\Framework\Log\Package;
  4. use Shopware\Core\Framework\Struct\Collection;
  5. /**
  6.  * @extends Collection<TaxRule>
  7.  */
  8. #[Package('checkout')]
  9. class TaxRuleCollection extends Collection
  10. {
  11.     /**
  12.      * @param TaxRule $taxRule
  13.      */
  14.     public function add($taxRule): void
  15.     {
  16.         $this->set($this->getKey($taxRule), $taxRule);
  17.     }
  18.     /**
  19.      * @param string|int $key
  20.      * @param TaxRule    $taxRule
  21.      */
  22.     public function set($key$taxRule): void
  23.     {
  24.         parent::set($this->getKey($taxRule), $taxRule);
  25.     }
  26.     public function removeElement(TaxRule $taxRule): void
  27.     {
  28.         $this->remove($this->getKey($taxRule));
  29.     }
  30.     public function exists(TaxRule $taxRule): bool
  31.     {
  32.         return $this->has($this->getKey($taxRule));
  33.     }
  34.     public function get($taxRate): ?TaxRule
  35.     {
  36.         $key = (string) $taxRate;
  37.         if ($this->has($key)) {
  38.             return $this->elements[$key];
  39.         }
  40.         return null;
  41.     }
  42.     public function merge(self $rules): self
  43.     {
  44.         $new = new self($this->elements);
  45.         $rules->map(
  46.             function (TaxRule $rule) use ($new): void {
  47.                 if (!$new->exists($rule)) {
  48.                     $new->add($rule);
  49.                 }
  50.             }
  51.         );
  52.         return $new;
  53.     }
  54.     public function highestRate(): ?TaxRule
  55.     {
  56.         return $this->reduce(function ($result$item) {
  57.             return $result === null || $item->getTaxRate() > $result->getTaxRate() ? $item $result;
  58.         });
  59.     }
  60.     public function getApiAlias(): string
  61.     {
  62.         return 'cart_tax_rule_collection';
  63.     }
  64.     protected function getExpectedClass(): ?string
  65.     {
  66.         return TaxRule::class;
  67.     }
  68.     protected function getKey(TaxRule $element): string
  69.     {
  70.         return (string) $element->getTaxRate();
  71.     }
  72. }