コード例 #1
0
ファイル: Calculation.php プロジェクト: Atlis/docker-magento2
 /**
  * Create search templates for postcode
  *
  * @param string $postcode
  * @return string[]
  */
 protected function _createSearchPostCodeTemplates($postcode)
 {
     $len = $this->_taxData->getPostCodeSubStringLength();
     $strlen = strlen($postcode);
     if ($strlen > $len) {
         $postcode = substr($postcode, 0, $len);
         $strlen = $len;
     }
     $strArr = array((string) $postcode, $postcode . '*');
     if ($strlen > 1) {
         for ($i = 1; $i < $strlen; $i++) {
             $strArr[] = sprintf('%s*', substr($postcode, 0, -$i));
         }
     }
     return $strArr;
 }
コード例 #2
0
 /**
  * Create search templates for postcode
  *
  * @param string $postcode
  * @param string|null $exactPostcode
  * @return string[]
  */
 protected function _createSearchPostCodeTemplates($postcode, $exactPostcode = null)
 {
     // as needed, reduce the postcode to the correct length
     $len = $this->_taxData->getPostCodeSubStringLength();
     $postcode = substr($postcode, 0, $len);
     // begin creating the search template array
     $strArr = [$postcode, $postcode . '*'];
     // if supplied, use the exact postcode as the basis for the search templates
     if ($exactPostcode) {
         $postcode = substr($exactPostcode, 0, $len);
         $strArr[] = $postcode;
     }
     // finish building out the search template array
     $strlen = strlen($postcode);
     for ($i = 1; $i < $strlen; $i++) {
         $strArr[] = sprintf('%s*', substr($postcode, 0, -$i));
     }
     return $strArr;
 }
コード例 #3
0
ファイル: Form.php プロジェクト: shabbirvividads/magento2
 /**
  * @return $this
  * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  * @SuppressWarnings(PHPMD.NPathComplexity)
  * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  */
 protected function _prepareForm()
 {
     $taxRateId = $this->_coreRegistry->registry(RegistryConstants::CURRENT_TAX_RATE_ID);
     try {
         if ($taxRateId) {
             $taxRateDataObject = $this->_taxRateRepository->get($taxRateId);
         }
     } catch (NoSuchEntityException $e) {
         /* tax rate not found */
     }
     $sessionFormValues = (array) $this->_coreRegistry->registry(RegistryConstants::CURRENT_TAX_RATE_FORM_DATA);
     $formData = isset($taxRateDataObject) ? $this->extractTaxRateData($taxRateDataObject) : [];
     $formData = array_merge($formData, $sessionFormValues);
     if (isset($formData['zip_is_range']) && $formData['zip_is_range'] && !isset($formData['tax_postcode'])) {
         $formData['tax_postcode'] = $formData['zip_from'] . '-' . $formData['zip_to'];
     }
     /** @var \Magento\Framework\Data\Form $form */
     $form = $this->_formFactory->create();
     $countries = $this->_country->toOptionArray(false, 'US');
     unset($countries[0]);
     if (!isset($formData['tax_country_id'])) {
         $formData['tax_country_id'] = $this->_scopeConfig->getValue(\Magento\Tax\Model\Config::CONFIG_XML_PATH_DEFAULT_COUNTRY, \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
     }
     if (!isset($formData['tax_region_id'])) {
         $formData['tax_region_id'] = $this->_scopeConfig->getValue(\Magento\Tax\Model\Config::CONFIG_XML_PATH_DEFAULT_REGION, \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
     }
     $regionCollection = $this->_regionFactory->create()->getCollection()->addCountryFilter($formData['tax_country_id']);
     $regions = $regionCollection->toOptionArray();
     if ($regions) {
         $regions[0]['label'] = '*';
     } else {
         $regions = [['value' => '', 'label' => '*']];
     }
     $legend = $this->getShowLegend() ? __('Tax Rate Information') : '';
     $fieldset = $form->addFieldset('base_fieldset', ['legend' => $legend, 'class' => 'form-inline']);
     if (isset($formData['tax_calculation_rate_id']) && $formData['tax_calculation_rate_id'] > 0) {
         $fieldset->addField('tax_calculation_rate_id', 'hidden', ['name' => 'tax_calculation_rate_id', 'value' => $formData['tax_calculation_rate_id']]);
     }
     $fieldset->addField('code', 'text', ['name' => 'code', 'label' => __('Tax Identifier'), 'title' => __('Tax Identifier'), 'class' => 'required-entry', 'required' => true]);
     $fieldset->addField('zip_is_range', 'checkbox', ['name' => 'zip_is_range', 'label' => __('Zip/Post is Range'), 'value' => '1']);
     if (!isset($formData['tax_postcode'])) {
         $formData['tax_postcode'] = $this->_scopeConfig->getValue(\Magento\Tax\Model\Config::CONFIG_XML_PATH_DEFAULT_POSTCODE, \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
     }
     $fieldset->addField('tax_postcode', 'text', ['name' => 'tax_postcode', 'label' => __('Zip/Post Code'), 'note' => __("'*' - matches any; 'xyz*' - matches any that begins on 'xyz' and are not longer than %1.", $this->_taxData->getPostCodeSubStringLength())]);
     $fieldset->addField('zip_from', 'text', ['name' => 'zip_from', 'label' => __('Range From'), 'required' => true, 'maxlength' => 9, 'class' => 'validate-digits', 'css_class' => 'hidden']);
     $fieldset->addField('zip_to', 'text', ['name' => 'zip_to', 'label' => __('Range To'), 'required' => true, 'maxlength' => 9, 'class' => 'validate-digits', 'css_class' => 'hidden']);
     $fieldset->addField('tax_region_id', 'select', ['name' => 'tax_region_id', 'label' => __('State'), 'values' => $regions]);
     $fieldset->addField('tax_country_id', 'select', ['name' => 'tax_country_id', 'label' => __('Country'), 'required' => true, 'values' => $countries]);
     $fieldset->addField('rate', 'text', ['name' => 'rate', 'label' => __('Rate Percent'), 'title' => __('Rate Percent'), 'required' => true, 'class' => 'validate-not-negative-number']);
     $form->setAction($this->getUrl('tax/rate/save'));
     $form->setUseContainer(true);
     $form->setId(self::FORM_ELEMENT_ID);
     $form->setMethod('post');
     if (!$this->_storeManager->hasSingleStore()) {
         $form->addElement($this->_fieldsetFactory->create()->setLegend(__('Tax Titles')));
     }
     if (isset($formData['zip_is_range']) && $formData['zip_is_range']) {
         list($formData['zip_from'], $formData['zip_to']) = explode('-', $formData['tax_postcode']);
     }
     $form->setValues($formData);
     $this->setForm($form);
     $this->setChild('form_after', $this->getLayout()->createBlock('Magento\\Framework\\View\\Element\\Template')->setTemplate('Magento_Tax::rate/js.phtml'));
     return parent::_prepareForm();
 }