ManageStockCondition.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\InventorySales\Model\ResourceModel\IsStockItemSalableCondition;
  8. use Magento\CatalogInventory\Api\StockConfigurationInterface;
  9. use Magento\Framework\DB\Select;
  10. /**
  11. * Condition for manage_stock configuration.
  12. */
  13. class ManageStockCondition implements GetIsStockItemSalableConditionInterface
  14. {
  15. /**
  16. * @var StockConfigurationInterface
  17. */
  18. private $configuration;
  19. /**
  20. * @param StockConfigurationInterface $configuration
  21. */
  22. public function __construct(StockConfigurationInterface $configuration)
  23. {
  24. $this->configuration = $configuration;
  25. }
  26. /**
  27. * @inheritdoc
  28. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  29. */
  30. public function execute(Select $select): string
  31. {
  32. $globalManageStock = (int)$this->configuration->getManageStock();
  33. $condition = '(legacy_stock_item.use_config_manage_stock = 0 AND legacy_stock_item.manage_stock = 0)';
  34. if (0 === $globalManageStock) {
  35. $condition .= ' OR legacy_stock_item.use_config_manage_stock = 1';
  36. }
  37. return $condition;
  38. }
  39. }