Save.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\Tax\Controller\Adminhtml\Rate;
  8. use Magento\Framework\Exception\NoSuchEntityException;
  9. use Magento\Framework\Controller\ResultFactory;
  10. class Save extends \Magento\Tax\Controller\Adminhtml\Rate
  11. {
  12. /**
  13. * Save Rate and Data
  14. *
  15. * @return \Magento\Backend\Model\View\Result\Redirect
  16. */
  17. public function execute()
  18. {
  19. /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
  20. $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
  21. $ratePost = $this->getRequest()->getPostValue();
  22. if ($ratePost) {
  23. $rateId = $this->getRequest()->getParam('tax_calculation_rate_id');
  24. if ($rateId) {
  25. try {
  26. $this->_taxRateRepository->get($rateId);
  27. } catch (NoSuchEntityException $e) {
  28. unset($ratePost['tax_calculation_rate_id']);
  29. }
  30. }
  31. try {
  32. $taxData = $this->_taxRateConverter->populateTaxRateData($ratePost);
  33. $this->_taxRateRepository->save($taxData);
  34. $this->messageManager->addSuccess(__('You saved the tax rate.'));
  35. return $resultRedirect->setPath('*/*/');
  36. } catch (\Magento\Framework\Exception\LocalizedException $e) {
  37. $this->_objectManager->get(\Magento\Backend\Model\Session::class)->setFormData($ratePost);
  38. $this->messageManager->addError($e->getMessage());
  39. } catch (\Exception $e) {
  40. $this->messageManager->addError($e->getMessage());
  41. }
  42. return $resultRedirect->setUrl($this->_redirect->getRedirectUrl($this->getUrl('*')));
  43. }
  44. return $resultRedirect->setPath('tax/rate');
  45. }
  46. }