123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Customer\Block\Adminhtml\Group\Edit;
- use Magento\Customer\Controller\RegistryConstants;
- /**
- * 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;
- /**
- * @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
- */
- 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 = []
- ) {
- $this->_taxCustomer = $taxCustomer;
- $this->_taxHelper = $taxHelper;
- $this->_groupRepository = $groupRepository;
- $this->groupDataFactory = $groupDataFactory;
- 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 */
- if ($groupId === null) {
- $customerGroup = $this->groupDataFactory->create();
- $defaultCustomerTaxClass = $this->_taxHelper->getDefaultCustomerTaxClass();
- } else {
- $customerGroup = $this->_groupRepository->getById($groupId);
- $defaultCustomerTaxClass = $customerGroup->getTaxClassId();
- }
- $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(),
- ]
- );
- 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,
- ]
- );
- }
- $form->setUseContainer(true);
- $form->setId('edit_form');
- $form->setAction($this->getUrl('customer/*/save'));
- $form->setMethod('post');
- $this->setForm($form);
- }
- }
|