/** * 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 symbols', \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); }
/** * Identify default customer tax class ID. * * @return int|null */ public function getDefaultCustomerTaxClass() { $configValue = $this->taxHelper->getDefaultCustomerTaxClass(); if (!empty($configValue)) { return $configValue; } $taxClasses = $this->customerTaxClassSource->getAllOptions(false); if (!empty($taxClasses)) { $firstClass = array_shift($taxClasses); return isset($firstClass['value']) ? $firstClass['value'] : null; } else { return null; } }
/** * @magentoConfigFixture default_store tax/classes/default_customer_tax_class 1 */ public function testGetDefaultCustomerTaxClass() { $this->assertEquals(1, $this->helper->getDefaultCustomerTaxClass()); }