Skip to content

Commit 341fdd0

Browse files
Sebastian80mam08ixo
authored andcommitted
DHLGW-1164: list only applicable orders in interactive form
1 parent d1d90aa commit 341fdd0

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

Controller/Adminhtml/Shipment/Interactive.php

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use Magento\Sales\Model\ResourceModel\Order\CollectionFactory;
1717
use Magento\Ui\Component\MassAction\Filter;
1818
use Netresearch\InteractiveBatchProcessing\Model\OrderProvider;
19+
use Netresearch\ShippingCore\Api\BulkShipment\OrderLoaderInterface;
1920

2021
/**
2122
* @method Http getRequest()
@@ -37,15 +38,22 @@ class Interactive extends Action implements HttpPostActionInterface
3738
*/
3839
private $orderProvider;
3940

41+
/**
42+
* @var OrderLoaderInterface
43+
*/
44+
private $orderLoader;
45+
4046
public function __construct(
4147
Context $context,
4248
CollectionFactory $collectionFactory,
4349
Filter $filter,
44-
OrderProvider $orderProvider
50+
OrderProvider $orderProvider,
51+
OrderLoaderInterface $orderLoader
4552
) {
4653
$this->collectionFactory = $collectionFactory;
4754
$this->filter = $filter;
4855
$this->orderProvider = $orderProvider;
56+
$this->orderLoader = $orderLoader;
4957

5058
parent::__construct($context);
5159
}
@@ -59,15 +67,21 @@ public function execute()
5967
$this->_setActiveMenu('Magento_Sales::sales_order');
6068
$this->_view->getPage()->getConfig()->getTitle()->prepend(__('Bulk Shipment'));
6169

62-
// todo(nr): filter applicable orders (label status, carrier code)
63-
// @see \Netresearch\ShippingCore\Model\BulkShipment\BulkShipmentManagement::createShipments
6470
$orderCollection = $this->filter->getCollection($this->collectionFactory->create());
71+
$orders = $this->orderLoader->load($orderCollection->getAllIds());
6572

6673
// the "Create New Order" UI button gets added by using the UI filter above…
6774
$this->_view->getLayout()->unsetElement('container-sales_order_grid-add');
6875

69-
// todo(nr): if order collection is empty, redirect to grid.
70-
$this->orderProvider->setOrders($orderCollection->getItems());
76+
if (empty($orders)) {
77+
$this->messageManager->addNoticeMessage(__('Selected orders cannot be processed.'));
78+
$resultRedirect = $this->resultRedirectFactory->create();
79+
$resultRedirect->setPath('sales/order');
80+
81+
return $resultRedirect;
82+
}
83+
84+
$this->orderProvider->setOrders($orders);
7185

7286
return $this->_view->getPage();
7387
}

i18n/de_DE.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
"Enable Interactive Mass Action","Interaktive Massenaktion aktivieren"
55
"If you want to select packaging or shipping product per order, then it is recommended to enable interactive mass action and to disable fully automated cron processing.","Falls Sie beim Versand Paketgröße oder Versandprodukt je Bestellung festlegen wollen, dann wird empfohlen, die interaktive Massenverarbeitung zu aktivieren und das vollautomatische Erzeugen von Versandetiketten via Cron zu deaktivieren."
66
"Items to Ship","Zu versendende Artikel"
7+
"Selected orders cannot be processed.","Die gewählten Bestellungen können nicht verarbeitet werden."

i18n/en_US.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
"Enable Interactive Mass Action","Enable Interactive Mass Action"
55
"If you want to select packaging or shipping product per order, then it is recommended to enable interactive mass action and to disable fully automated cron processing.","If you want to select packaging or shipping product per order, then it is recommended to enable interactive mass action and to disable fully automated cron processing."
66
"Items to Ship","Items to Ship"
7+
"Selected orders cannot be processed.","Selected orders cannot be processed."

0 commit comments

Comments
 (0)