MassDelete.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace Dotdigitalgroup\Email\Controller\Adminhtml\Order;
  3. use Dotdigitalgroup\Email\Controller\Adminhtml\Order as OrderController;
  4. use Magento\Framework\Controller\ResultFactory;
  5. use Magento\Ui\Component\MassAction\Filter;
  6. class MassDelete extends OrderController
  7. {
  8. /**
  9. * Authorization level of a basic admin session
  10. *
  11. * @see _isAllowed()
  12. */
  13. const ADMIN_RESOURCE = 'Dotdigitalgroup_Email::order';
  14. /**
  15. * @var \Dotdigitalgroup\Email\Model\ResourceModel\Order\CollectionFactory
  16. */
  17. private $collectionFactory;
  18. /**
  19. * @var object
  20. */
  21. protected $messageManager;
  22. /**
  23. * @var Filter
  24. */
  25. private $filter;
  26. /**
  27. * @var \Dotdigitalgroup\Email\Model\ResourceModel\Order
  28. */
  29. private $orderResource;
  30. /**
  31. * MassDelete constructor.
  32. *
  33. * @param \Dotdigitalgroup\Email\Model\ResourceModel\Order $orderResource
  34. * @param \Magento\Backend\App\Action\Context $context
  35. * @param Filter $filter
  36. * @param \Dotdigitalgroup\Email\Model\ResourceModel\Order\CollectionFactory $collectionFactory
  37. */
  38. public function __construct(
  39. \Dotdigitalgroup\Email\Model\ResourceModel\Order $orderResource,
  40. \Magento\Backend\App\Action\Context $context,
  41. Filter $filter,
  42. \Dotdigitalgroup\Email\Model\ResourceModel\Order\CollectionFactory $collectionFactory
  43. ) {
  44. $this->filter = $filter;
  45. $this->collectionFactory = $collectionFactory;
  46. $this->orderResource = $orderResource;
  47. parent::__construct($context);
  48. }
  49. /**
  50. * @return \Magento\Backend\Model\View\Result\Redirect
  51. */
  52. public function execute()
  53. {
  54. $collection = $this->filter->getCollection($this->collectionFactory->create());
  55. $collectionSize = $collection->getSize();
  56. foreach ($collection as $item) {
  57. $this->orderResource->delete($item);
  58. }
  59. $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $collectionSize));
  60. /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
  61. $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
  62. return $resultRedirect->setPath('*/*/');
  63. }
  64. }