_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); } }