CalculationData.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Tax\Model\Api\SearchCriteria\JoinProcessor;
  7. use Magento\Framework\Api\SearchCriteria\CollectionProcessor\JoinProcessor\CustomJoinInterface;
  8. use Magento\Framework\Data\Collection\AbstractDb;
  9. /**
  10. * Class CalculationData
  11. * @package Magento\Tax\Model\Api\SearchCriteria\JoinProcessor
  12. */
  13. class CalculationData implements CustomJoinInterface
  14. {
  15. /** Alias of table, that will be joined */
  16. const CALCULATION_DATA_ALIAS = "cd";
  17. /**
  18. * @param \Magento\Tax\Model\ResourceModel\Calculation\Rule\Collection $collection
  19. * @return bool
  20. */
  21. public function apply(AbstractDb $collection)
  22. {
  23. $isNotApplied = !array_key_exists(
  24. self::CALCULATION_DATA_ALIAS,
  25. $collection->getSelect()->getPart(\Magento\Framework\Db\Select::FROM)
  26. );
  27. if ($isNotApplied) {
  28. $collection->joinCalculationData(self::CALCULATION_DATA_ALIAS);
  29. return true;
  30. }
  31. return false;
  32. }
  33. }