DeleteGroupPost.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Backend\Controller\Adminhtml\System\Store;
  7. use Magento\Framework\App\Action\HttpPostActionInterface;
  8. use Magento\Framework\Controller\ResultFactory;
  9. /**
  10. * Delete store.
  11. */
  12. class DeleteGroupPost extends \Magento\Backend\Controller\Adminhtml\System\Store implements HttpPostActionInterface
  13. {
  14. /**
  15. * @inheritDoc
  16. * @return \Magento\Backend\Model\View\Result\Redirect
  17. */
  18. public function execute()
  19. {
  20. $itemId = $this->getRequest()->getParam('item_id');
  21. /** @var \Magento\Backend\Model\View\Result\Redirect $redirectResult */
  22. $redirectResult = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
  23. if (!($model = $this->_objectManager->create(\Magento\Store\Model\Group::class)->load($itemId))) {
  24. $this->messageManager->addErrorMessage(__('Something went wrong. Please try again.'));
  25. return $redirectResult->setPath('adminhtml/*/');
  26. }
  27. if (!$model->isCanDelete()) {
  28. $this->messageManager->addErrorMessage(__('This store cannot be deleted.'));
  29. return $redirectResult->setPath('adminhtml/*/editGroup', ['group_id' => $model->getId()]);
  30. }
  31. if (!$this->_backupDatabase()) {
  32. return $redirectResult->setPath('*/*/editGroup', ['group_id' => $itemId]);
  33. }
  34. try {
  35. $model->delete();
  36. $this->messageManager->addSuccessMessage(__('You deleted the store.'));
  37. return $redirectResult->setPath('adminhtml/*/');
  38. } catch (\Magento\Framework\Exception\LocalizedException $e) {
  39. $this->messageManager->addErrorMessage($e->getMessage());
  40. } catch (\Exception $e) {
  41. $this->messageManager->addExceptionMessage($e, __('Unable to delete the store. Please try again later.'));
  42. }
  43. return $redirectResult->setPath('adminhtml/*/editGroup', ['group_id' => $itemId]);
  44. }
  45. }