123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Tax\Model\Calculation;
- use Magento\Framework\Exception\NoSuchEntityException;
- use Magento\Tax\Model\Calculation\Rule as TaxRuleModel;
- use Magento\Tax\Model\Calculation\RuleFactory as TaxRuleModelFactory;
- class TaxRuleRegistry
- {
- /**
- * @var \Magento\Tax\Model\Calculation\RuleFactory
- */
- private $taxRuleModelFactory;
- /**
- * @var array taxRuleId => TaxRuleModel
- */
- private $registry = [];
- /**
- * Constructor
- *
- * @param TaxRuleModelFactory $taxRuleModelFactory
- */
- public function __construct(
- TaxRuleModelFactory $taxRuleModelFactory
- ) {
- $this->taxRuleModelFactory = $taxRuleModelFactory;
- }
- /**
- * Registers TaxRule Model to registry
- *
- * @param TaxRuleModel $taxRuleModel
- * @return void
- */
- public function registerTaxRule(TaxRuleModel $taxRuleModel)
- {
- $this->registry[$taxRuleModel->getId()] = $taxRuleModel;
- }
- /**
- * Retrieve TaxRule Model from registry given an id
- *
- * @param int $taxRuleId
- * @return TaxRuleModel
- * @throws NoSuchEntityException
- */
- public function retrieveTaxRule($taxRuleId)
- {
- if (isset($this->registry[$taxRuleId])) {
- return $this->registry[$taxRuleId];
- }
- $taxRuleModel = $this->taxRuleModelFactory->create()->load($taxRuleId);
- if (!$taxRuleModel->getId()) {
- // tax rule does not exist
- throw NoSuchEntityException::singleField('taxRuleId', $taxRuleId);
- }
- $this->registry[$taxRuleModel->getId()] = $taxRuleModel;
- return $taxRuleModel;
- }
- /**
- * Remove an instance of the TaxRule Model from the registry
- *
- * @param int $taxRuleId
- * @return void
- */
- public function removeTaxRule($taxRuleId)
- {
- unset($this->registry[$taxRuleId]);
- }
- }
|