Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
MassHold.php
Go to the documentation of this file.
1 <?php
7 
14 
18 class MassHold extends \Magento\Sales\Controller\Adminhtml\Order\AbstractMassAction implements HttpPostActionInterface
19 {
23  const ADMIN_RESOURCE = 'Magento_Sales::hold';
24 
28  protected $orderManagement;
29 
36  public function __construct(
37  Context $context,
41  ) {
42  parent::__construct($context, $filter);
43  $this->collectionFactory = $collectionFactory;
44  $this->orderManagement = $orderManagement;
45  }
46 
54  {
55  $countHoldOrder = 0;
56  foreach ($collection->getItems() as $order) {
57  if (!$order->canHold()) {
58  continue;
59  }
60  $this->orderManagement->hold($order->getEntityId());
61  $countHoldOrder++;
62  }
63  $countNonHoldOrder = $collection->count() - $countHoldOrder;
64 
65  if ($countNonHoldOrder && $countHoldOrder) {
66  $this->messageManager->addErrorMessage(__('%1 order(s) were not put on hold.', $countNonHoldOrder));
67  } elseif ($countNonHoldOrder) {
68  $this->messageManager->addErrorMessage(__('No order(s) were put on hold.'));
69  }
70 
71  if ($countHoldOrder) {
72  $this->messageManager->addSuccessMessage(__('You have put %1 order(s) on hold.', $countHoldOrder));
73  }
74 
75  $resultRedirect = $this->resultRedirectFactory->create();
76  $resultRedirect->setPath($this->getComponentRefererUrl());
77  return $resultRedirect;
78  }
79 }
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17
$order
Definition: order.php:55
__()
Definition: __.php:13
__construct(Context $context, Filter $filter, CollectionFactory $collectionFactory, OrderManagementInterface $orderManagement)
Definition: MassHold.php:36
massAction(AbstractCollection $collection)
Definition: MassHold.php:53