Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
MassCancel.php
Go to the documentation of this file.
1 <?php
7 
8 use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface;
14 
15 class MassCancel extends \Magento\Sales\Controller\Adminhtml\Order\AbstractMassAction implements HttpPostActionInterface
16 {
20  const ADMIN_RESOURCE = 'Magento_Sales::cancel';
21 
25  private $orderManagement;
26 
33  public function __construct(
34  Context $context,
37  OrderManagementInterface $orderManagement = null
38  ) {
39  parent::__construct($context, $filter);
40  $this->collectionFactory = $collectionFactory;
41  $this->orderManagement = $orderManagement ?: \Magento\Framework\App\ObjectManager::getInstance()->get(
42  \Magento\Sales\Api\OrderManagementInterface::class
43  );
44  }
45 
53  {
54  $countCancelOrder = 0;
55  foreach ($collection->getItems() as $order) {
56  $isCanceled = $this->orderManagement->cancel($order->getEntityId());
57  if ($isCanceled === false) {
58  continue;
59  }
60  $countCancelOrder++;
61  }
62  $countNonCancelOrder = $collection->count() - $countCancelOrder;
63 
64  if ($countNonCancelOrder && $countCancelOrder) {
65  $this->messageManager->addErrorMessage(__('%1 order(s) cannot be canceled.', $countNonCancelOrder));
66  } elseif ($countNonCancelOrder) {
67  $this->messageManager->addErrorMessage(__('You cannot cancel the order(s).'));
68  }
69 
70  if ($countCancelOrder) {
71  $this->messageManager->addSuccessMessage(__('We canceled %1 order(s).', $countCancelOrder));
72  }
73  $resultRedirect = $this->resultRedirectFactory->create();
74  $resultRedirect->setPath($this->getComponentRefererUrl());
75  return $resultRedirect;
76  }
77 }
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17
$order
Definition: order.php:55
massAction(AbstractCollection $collection)
Definition: MassCancel.php:52
__construct(Context $context, Filter $filter, CollectionFactory $collectionFactory, OrderManagementInterface $orderManagement=null)
Definition: MassCancel.php:33
__()
Definition: __.php:13