AjaxSave.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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\Tax;
  8. use Magento\Framework\Controller\ResultFactory;
  9. class AjaxSave extends \Magento\Tax\Controller\Adminhtml\Tax
  10. {
  11. /**
  12. * Save Tax Class via AJAX
  13. *
  14. * @return \Magento\Framework\Controller\Result\Json
  15. * @throws \InvalidArgumentException
  16. */
  17. public function execute()
  18. {
  19. try {
  20. $taxClassId = (int)$this->getRequest()->getPost('class_id') ?: null;
  21. $taxClass = $this->taxClassDataObjectFactory->create()
  22. ->setClassId($taxClassId)
  23. ->setClassType((string)$this->getRequest()->getPost('class_type'))
  24. ->setClassName($this->_processClassName((string)$this->getRequest()->getPost('class_name')));
  25. $taxClassId = $this->taxClassRepository->save($taxClass);
  26. $responseContent = [
  27. 'success' => true,
  28. 'error_message' => '',
  29. 'class_id' => $taxClassId,
  30. 'class_name' => $taxClass->getClassName(),
  31. ];
  32. } catch (\Magento\Framework\Exception\LocalizedException $e) {
  33. $responseContent = [
  34. 'success' => false,
  35. 'error_message' => $e->getMessage(),
  36. 'class_id' => '',
  37. 'class_name' => ''
  38. ];
  39. } catch (\Exception $e) {
  40. $responseContent = [
  41. 'success' => false,
  42. 'error_message' => __('We can\'t save this tax class right now.'),
  43. 'class_id' => '',
  44. 'class_name' => '',
  45. ];
  46. }
  47. /** @var \Magento\Framework\Controller\Result\Json $resultJson */
  48. $resultJson = $this->resultFactory->create(ResultFactory::TYPE_JSON);
  49. $resultJson->setData($responseContent);
  50. return $resultJson;
  51. }
  52. }