/** * Create an array with tax rate titles having tax rate model. * * @param TaxRateModel $rateModel * @return array */ public function createTitleArrayFromModel(TaxRateModel $rateModel) { $titlesData = $rateModel->getTitles(); $titles = []; if ($titlesData) { foreach ($titlesData as $title) { $titles[] = $this->taxRateTitleDataObjectBuilder->setStoreId($title->getStoreId())->setValue($title->getValue())->create(); } } return $titles; }
/** * {@inheritdoc} */ protected function _setDataValues(array $data) { if (array_key_exists(TaxRate::KEY_ZIP_RANGE, $data)) { $data[TaxRate::KEY_ZIP_RANGE] = $this->zipRangeBuilder->populateWithArray($data[TaxRate::KEY_ZIP_RANGE])->create(); } if (array_key_exists(TaxRate::KEY_TITLES, $data)) { $titles = array(); foreach ($data[TaxRate::KEY_TITLES] as $titleData) { $titles[] = $this->taxRateTitleBuilder->populateWithArray($titleData)->create(); } $data[TaxRate::KEY_TITLES] = $titles; } return parent::_setDataValues($data); }
/** * Populate a tax rate data object * * @param array $formData * @return \Magento\Tax\Service\V1\Data\TaxRate */ protected function populateTaxRateData($formData) { $this->_taxRateBuilder->setId($this->extractFormData($formData, 'tax_calculation_rate_id'))->setCountryId($this->extractFormData($formData, 'tax_country_id'))->setRegionId($this->extractFormData($formData, 'tax_region_id'))->setPostcode($this->extractFormData($formData, 'tax_postcode'))->setCode($this->extractFormData($formData, 'code'))->setPercentageRate($this->extractFormData($formData, 'rate')); if (isset($formData['zip_is_range']) && $formData['zip_is_range']) { $this->_zipRangeBuilder->setFrom($this->extractFormData($formData, 'zip_from'))->setTo($this->extractFormData($formData, 'zip_to')); $zipRange = $this->_zipRangeBuilder->create(); $this->_taxRateBuilder->setZipRange($zipRange); } if (isset($formData['title'])) { $titles = []; foreach ($formData['title'] as $storeId => $value) { $titles[] = $this->_taxRateTitleBuilder->setStoreId($storeId)->setValue($value)->create(); } $this->_taxRateBuilder->setTitles($titles); } return $this->_taxRateBuilder->create(); }