vendor/pimcore/pimcore/bundles/EcommerceFrameworkBundle/PriceSystem/TaxManagement/TaxEntry.php line 139

Open in your IDE?
  1. <?php
  2. /**
  3.  * Pimcore
  4.  *
  5.  * This source file is available under two different licenses:
  6.  * - GNU General Public License version 3 (GPLv3)
  7.  * - Pimcore Commercial License (PCL)
  8.  * Full copyright and license information is available in
  9.  * LICENSE.md which is distributed with this source code.
  10.  *
  11.  *  @copyright  Copyright (c) Pimcore GmbH (http://www.pimcore.org)
  12.  *  @license    http://www.pimcore.org/license     GPLv3 and PCL
  13.  */
  14. namespace Pimcore\Bundle\EcommerceFrameworkBundle\PriceSystem\TaxManagement;
  15. use Pimcore\Bundle\EcommerceFrameworkBundle\Type\Decimal;
  16. use Pimcore\Model\DataObject\Fieldcollection\Data\TaxEntry as TaxEntryFieldcollection;
  17. use Pimcore\Model\DataObject\OnlineShopTaxClass;
  18. class TaxEntry
  19. {
  20.     const CALCULATION_MODE_COMBINE 'combine';
  21.     const CALCULATION_MODE_ONE_AFTER_ANOTHER 'oneAfterAnother';
  22.     const CALCULATION_MODE_FIXED 'fixed';
  23.     /**
  24.      * @var TaxEntryFieldcollection|null
  25.      */
  26.     protected $entry;
  27.     /**
  28.      * @var float
  29.      */
  30.     protected $percent;
  31.     /**
  32.      * @var Decimal
  33.      */
  34.     protected $amount;
  35.     /**
  36.      * @var string|null
  37.      */
  38.     protected $taxId;
  39.     /**
  40.      * @param float $percent
  41.      * @param Decimal $amount
  42.      * @param string|null $taxId
  43.      * @param TaxEntryFieldcollection|null $entry
  44.      */
  45.     public function __construct($percentDecimal $amountstring $taxId nullTaxEntryFieldcollection $entry null)
  46.     {
  47.         $this->percent $percent;
  48.         $this->amount $amount;
  49.         $this->taxId $taxId;
  50.         $this->entry $entry;
  51.     }
  52.     /**
  53.      * @return float
  54.      */
  55.     public function getPercent()
  56.     {
  57.         return $this->percent;
  58.     }
  59.     /**
  60.      * @param float $percent
  61.      */
  62.     public function setPercent($percent)
  63.     {
  64.         $this->percent $percent;
  65.     }
  66.     /**
  67.      * @param TaxEntryFieldcollection $entry
  68.      */
  69.     public function setEntry(TaxEntryFieldcollection $entry)
  70.     {
  71.         $this->entry $entry;
  72.     }
  73.     /**
  74.      * @return TaxEntryFieldcollection
  75.      */
  76.     public function getEntry(): TaxEntryFieldcollection
  77.     {
  78.         return $this->entry;
  79.     }
  80.     /**
  81.      * @return Decimal
  82.      */
  83.     public function getAmount(): Decimal
  84.     {
  85.         return $this->amount;
  86.     }
  87.     /**
  88.      * @param Decimal $amount
  89.      */
  90.     public function setAmount(Decimal $amount)
  91.     {
  92.         $this->amount $amount;
  93.     }
  94.     /**
  95.      * @return string|null
  96.      */
  97.     public function getTaxId()
  98.     {
  99.         return $this->taxId;
  100.     }
  101.     /**
  102.      * @param string|null $taxId
  103.      */
  104.     public function setTaxId(string $taxId null)
  105.     {
  106.         $this->taxId $taxId;
  107.     }
  108.     /**
  109.      * Converts tax rate configuration of given OnlineShopTaxClass to TaxEntries that can be used for
  110.      * tax calculation.
  111.      *
  112.      * @param OnlineShopTaxClass $taxClass
  113.      *
  114.      * @return TaxEntry[]
  115.      */
  116.     public static function convertTaxEntries(OnlineShopTaxClass $taxClass)
  117.     {
  118.         $convertedTaxEntries = [];
  119.         if ($taxEntries $taxClass->getTaxEntries()) {
  120.             /** @var TaxEntryFieldcollection $entry */
  121.             foreach ($taxEntries as $entry) {
  122.                 $convertedTaxEntries[] = new static(
  123.                     $entry->getPercent(),
  124.                     Decimal::create(0),
  125.                     $entry->getName() . '-' $entry->getPercent(),
  126.                     $entry
  127.                 );
  128.             }
  129.         }
  130.         return $convertedTaxEntries;
  131.     }
  132. }