![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-tax/Model/TaxClass/Source/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Tax\Model\TaxClass\Source; use Magento\Framework\DB\Ddl\Table; use Magento\Tax\Api\TaxClassManagementInterface; use Magento\Tax\Model\ClassModel; /** * Product tax class source model. */ class Product extends \Magento\Eav\Model\Entity\Attribute\Source\AbstractSource { /** * @var \Magento\Tax\Api\TaxClassRepositoryInterface */ protected $_taxClassRepository; /** * @var \Magento\Framework\Api\SearchCriteriaBuilder */ protected $_searchCriteriaBuilder; /** * @var \Magento\Framework\Api\FilterBuilder */ protected $_filterBuilder; /** * @var \Magento\Eav\Model\ResourceModel\Entity\Attribute\OptionFactory */ protected $_optionFactory; /** * @var \Magento\Tax\Model\ResourceModel\TaxClass\CollectionFactory */ private $_classesFactory; /** * @param \Magento\Tax\Model\ResourceModel\TaxClass\CollectionFactory $classesFactory * @param \Magento\Eav\Model\ResourceModel\Entity\Attribute\OptionFactory $optionFactory * @param \Magento\Tax\Api\TaxClassRepositoryInterface $taxClassRepository * @param \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder * @param \Magento\Framework\Api\FilterBuilder $filterBuilder */ public function __construct( \Magento\Tax\Model\ResourceModel\TaxClass\CollectionFactory $classesFactory, \Magento\Eav\Model\ResourceModel\Entity\Attribute\OptionFactory $optionFactory, \Magento\Tax\Api\TaxClassRepositoryInterface $taxClassRepository, \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder, \Magento\Framework\Api\FilterBuilder $filterBuilder ) { $this->_classesFactory = $classesFactory; $this->_optionFactory = $optionFactory; $this->_taxClassRepository = $taxClassRepository; $this->_filterBuilder = $filterBuilder; $this->_searchCriteriaBuilder = $searchCriteriaBuilder; } /** * Retrieve all product tax class options. * * @param bool $withEmpty * @return array */ public function getAllOptions($withEmpty = true) { if (!$this->_options) { $filter = $this->_filterBuilder ->setField(ClassModel::KEY_TYPE) ->setValue(TaxClassManagementInterface::TYPE_PRODUCT) ->create(); $searchCriteria = $this->_searchCriteriaBuilder->addFilters([$filter])->create(); $searchResults = $this->_taxClassRepository->getList($searchCriteria); foreach ($searchResults->getItems() as $taxClass) { $this->_options[] = [ 'value' => $taxClass->getClassId(), 'label' => $taxClass->getClassName(), ]; } } if ($withEmpty) { if (!$this->_options) { return [['value' => '0', 'label' => __('None')]]; } else { return array_merge([['value' => '0', 'label' => __('None')]], $this->_options); } } return $this->_options; } /** * Get a text for option value * * @param string|integer $value * @return string */ public function getOptionText($value) { $options = $this->getAllOptions(); foreach ($options as $item) { if ($item['value'] == $value) { return $item['label']; } } return false; } /** * Retrieve flat column definition * * @return array */ public function getFlatColumns() { $attributeCode = $this->getAttribute()->getAttributeCode(); return [ $attributeCode => [ 'unsigned' => true, 'default' => null, 'extra' => null, 'type' => Table::TYPE_INTEGER, 'nullable' => true, 'comment' => $attributeCode . ' tax column', ], ]; } /** * Retrieve Select for update attribute value in flat table * * @param int $store * @return \Magento\Framework\DB\Select|null */ public function getFlatUpdateSelect($store) { /** @var $option \Magento\Eav\Model\ResourceModel\Entity\Attribute\Option */ $option = $this->_optionFactory->create(); return $option->getFlatUpdateSelect($this->getAttribute(), $store, false); } }