12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- declare(strict_types=1);
- namespace Magento\InventoryLowQuantityNotificationAdminUi\Model\OptionSource;
- use Magento\Framework\Api\SearchCriteriaBuilder;
- use Magento\Framework\Data\OptionSourceInterface;
- use Magento\InventoryApi\Api\Data\SourceInterface;
- use Magento\InventoryApi\Api\SourceRepositoryInterface;
- /**
- * Provide option values for UI
- *
- * @api
- */
- class EnabledSourceCode implements OptionSourceInterface
- {
- /**
- * @var SourceRepositoryInterface
- */
- private $sourceRepository;
- /**
- * @var SearchCriteriaBuilder
- */
- private $searchCriteriaBuilder;
-
- /**
- * @param SourceRepositoryInterface $sourceRepository
- * @param SearchCriteriaBuilder $searchCriteriaBuilder
- */
- public function __construct(
- SourceRepositoryInterface $sourceRepository,
- SearchCriteriaBuilder $searchCriteriaBuilder
- ) {
- $this->sourceRepository = $sourceRepository;
- $this->searchCriteriaBuilder = $searchCriteriaBuilder;
- }
- /**
- * @inheritdoc
- */
- public function toOptionArray(): array
- {
- $searchCriteria = $this->searchCriteriaBuilder
- ->addFilter(SourceInterface::ENABLED, true)
- ->create();
- $sourcesSearchResult = $this->sourceRepository->getList($searchCriteria);
- $sourcesList = $sourcesSearchResult->getItems();
- $optionArray = [];
- foreach ($sourcesList as $source) {
- $optionArray[] = ['value' => $source->getSourceCode(), 'label' => $source->getSourceCode()];
- }
- return $optionArray;
- }
- }
|