![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/extmag/shiplab/Controller/Adminhtml/Pickup/ |
<?php /** * Copyright © Extmag. All rights reserved. */ namespace Extmag\Shiplab\Controller\Adminhtml\Pickup; use Extmag\Shiplab\Controller\Adminhtml\Pickup; use Extmag\Shiplab\Model\ResourceModel\Label\Collection; class Create extends Pickup { /** * Authorization level of a basic admin session * * @see _isAllowed() */ public const ADMIN_RESOURCE = 'Extmag_Shiplab::shiplab_pickup_save'; public function execute() { $selectedIds = $this->getRequest()->getParam('selected'); $namespace = $this->getRequest()->getParam('namespace'); $carrierCode = $this->getRequest()->getParam('carrier_code'); /** * @var Collection $collection */ $collection = $this->labelCollectionFactory->create(); $collection->addFieldToFilter('status', 1) ->addFieldToFilter('type_direction', 'shipment'); if (!empty($carrierCode)) { $collection->addFieldToFilter('carrier_code', $carrierCode); } if (!empty($selectedIds)) { if ($namespace == 'extmag_shiplab_label_listing') { $collection->addFieldToFilter('entity_id', ['in' => $selectedIds]); } else { if ($namespace == 'sales_order_grid') { $collection->addFieldToFilter('order_id', ['in' => $selectedIds]); } else { if ($namespace == 'sales_order_shipment_grid') { $collection->addFieldToFilter('order_sub_type', 'shipment'); $collection->addFieldToFilter('order_sub_id', ['in' => $selectedIds]); } } } } if ($collection->count() > 0) { $labelItems = []; foreach ($collection as $item) { $labelItems[$item->getCarrierCode()][] = $item; } foreach ($labelItems as $carrierCode => $labels) { $result = $this->pickup->makeDataAndSavePickup($carrierCode, $labels); if (empty($result['error'])) { $this->messageManager->addSuccessMessage(__('Pickup was created for ' . strtoupper($carrierCode))); } else { $this->messageManager->addErrorMessage( __('Pickup was not created for ' . strtoupper($carrierCode)) ); } } } else { $this->messageManager->addErrorMessage(__('No suitable labels for pickup')); } return $this->resultRedirectFactory->create()->setRefererOrBaseUrl(); } }