![]() 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/cartforge.co/vendor/magento/module-customer/Block/Adminhtml/Group/Edit/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Customer\Block\Adminhtml\Group\Edit; use Magento\Customer\Api\GroupExcludedWebsiteRepositoryInterface; use Magento\Customer\Controller\RegistryConstants; use Magento\Framework\App\ObjectManager; use Magento\Store\Model\System\Store as SystemStore; /** * Adminhtml customer groups edit form */ class Form extends \Magento\Backend\Block\Widget\Form\Generic { /** * @var \Magento\Tax\Model\TaxClass\Source\Customer */ protected $_taxCustomer; /** * @var \Magento\Tax\Helper\Data */ protected $_taxHelper; /** * @var \Magento\Customer\Api\GroupRepositoryInterface */ protected $_groupRepository; /** * @var \Magento\Customer\Api\Data\GroupInterfaceFactory */ protected $groupDataFactory; /** * @var SystemStore */ private $systemStore; /** * @var GroupExcludedWebsiteRepositoryInterface */ private $groupExcludedWebsiteRepository; /** * @param \Magento\Backend\Block\Template\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\Data\FormFactory $formFactory * @param \Magento\Tax\Model\TaxClass\Source\Customer $taxCustomer * @param \Magento\Tax\Helper\Data $taxHelper * @param \Magento\Customer\Api\GroupRepositoryInterface $groupRepository * @param \Magento\Customer\Api\Data\GroupInterfaceFactory $groupDataFactory * @param array $data * @param SystemStore|null $systemStore * @param GroupExcludedWebsiteRepositoryInterface|null $groupExcludedWebsiteRepository */ public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\Data\FormFactory $formFactory, \Magento\Tax\Model\TaxClass\Source\Customer $taxCustomer, \Magento\Tax\Helper\Data $taxHelper, \Magento\Customer\Api\GroupRepositoryInterface $groupRepository, \Magento\Customer\Api\Data\GroupInterfaceFactory $groupDataFactory, array $data = [], SystemStore $systemStore = null, GroupExcludedWebsiteRepositoryInterface $groupExcludedWebsiteRepository = null ) { $this->_taxCustomer = $taxCustomer; $this->_taxHelper = $taxHelper; $this->_groupRepository = $groupRepository; $this->groupDataFactory = $groupDataFactory; $this->systemStore = $systemStore ?: ObjectManager::getInstance()->get(SystemStore::class); $this->groupExcludedWebsiteRepository = $groupExcludedWebsiteRepository ?: ObjectManager::getInstance()->get(GroupExcludedWebsiteRepositoryInterface::class); parent::__construct($context, $registry, $formFactory, $data); } /** * Prepare form for render * * @return void */ protected function _prepareLayout() { parent::_prepareLayout(); /** @var \Magento\Framework\Data\Form $form */ $form = $this->_formFactory->create(); $groupId = $this->_coreRegistry->registry(RegistryConstants::CURRENT_GROUP_ID); /** @var \Magento\Customer\Api\Data\GroupInterface $customerGroup */ $customerGroupExcludedWebsites = []; if ($groupId === null) { $customerGroup = $this->groupDataFactory->create(); $defaultCustomerTaxClass = $this->_taxHelper->getDefaultCustomerTaxClass(); } else { $customerGroup = $this->_groupRepository->getById($groupId); $defaultCustomerTaxClass = $customerGroup->getTaxClassId(); $customerGroupExcludedWebsites = $this->groupExcludedWebsiteRepository->getCustomerGroupExcludedWebsites( $groupId ); } $fieldset = $form->addFieldset('base_fieldset', ['legend' => __('Group Information')]); $validateClass = sprintf( 'required-entry validate-length maximum-length-%d', \Magento\Customer\Model\GroupManagement::GROUP_CODE_MAX_LENGTH ); $name = $fieldset->addField( 'customer_group_code', 'text', [ 'name' => 'code', 'label' => __('Group Name'), 'title' => __('Group Name'), 'note' => __( 'Maximum length must be less then %1 characters.', \Magento\Customer\Model\GroupManagement::GROUP_CODE_MAX_LENGTH ), 'class' => $validateClass, 'required' => true ] ); if ($customerGroup->getId() == 0 && $customerGroup->getCode()) { $name->setDisabled(true); } $fieldset->addField( 'tax_class_id', 'select', [ 'name' => 'tax_class', 'label' => __('Tax Class'), 'title' => __('Tax Class'), 'class' => 'required-entry', 'required' => true, 'values' => $this->_taxCustomer->toOptionArray(), ] ); $fieldset->addField( 'customer_group_excluded_website_ids', 'multiselect', [ 'name' => 'customer_group_excluded_websites', 'label' => __('Excluded Website(s)'), 'title' => __('Excluded Website(s)'), 'required' => false, 'can_be_empty' => true, 'values' => $this->systemStore->getWebsiteValuesForForm(), 'note' => __('Select websites you want to exclude from this customer group.') ] ); if ($customerGroup->getId() !== null) { // If edit add id $form->addField('id', 'hidden', ['name' => 'id', 'value' => $customerGroup->getId()]); } if ($this->_backendSession->getCustomerGroupData()) { $form->addValues($this->_backendSession->getCustomerGroupData()); $this->_backendSession->setCustomerGroupData(null); } else { // TODO: need to figure out how the DATA can work with forms $form->addValues( [ 'id' => $customerGroup->getId(), 'customer_group_code' => $customerGroup->getCode(), 'tax_class_id' => $defaultCustomerTaxClass, 'customer_group_excluded_website_ids' => $customerGroupExcludedWebsites ] ); } $form->setUseContainer(true); $form->setId('edit_form'); $form->setAction($this->getUrl('customer/*/save')); $form->setMethod('post'); $this->setForm($form); } }