![]() 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/Printer/ |
<?php /** * Copyright © Extmag. All rights reserved. */ namespace Extmag\Shiplab\Controller\Adminhtml\Printer; use Extmag\Shiplab\Controller\Adminhtml\Printer; use Extmag\Shiplab\Model\Label; use Exception; use Magento\Framework\App\ResponseInterface; use Magento\Framework\Controller\Result\Redirect; use Magento\Framework\Controller\ResultInterface; use Magento\Framework\Filesystem\DirectoryList; class Download extends Printer { /** * Authorization level of a basic admin session * * @see _isAllowed() */ public const ADMIN_RESOURCE = 'Extmag_Shiplab::shiplab_labels_index'; /** * @return ResponseInterface|Redirect|ResultInterface */ public function execute() { $documentType = $this->getRequest()->getParam('document_type', ''); $trackingNumber = $this->getRequest()->getParam('tracking_number'); $carrierCode = $this->getRequest()->getParam('carrier_code'); $labelIds = $this->getRequest()->getParam('label_ids', []); try { if (!is_array($labelIds)) { $labelIds = explode(',', $labelIds); } $fileName = 'extmag' . (!empty($carrierCode) ? ('-' . $carrierCode) : '') . '-' . $documentType . '.pdf'; $collection = $this->collectionFactory->create(); $collection->addFieldToFilter('entity_id', ['in' => $labelIds]); $fileData = null; /** * @var Label $model */ foreach ($collection as $model) { if ($documentType !== 'hvr') { $fileData = $this->pdf->getPdfPages($model, $documentType, $fileData, $trackingNumber); } else { $fileData = $this->pdf->getFileData( $model->getCarrierCode(), $model->getMasterId(), 'html', $documentType ); break; } } if ($documentType !== 'hvr') { return $this->fileFactory->create( $fileName, $fileData->Output('', 'S'), DirectoryList::SYS_TMP, 'application/pdf' ); } else { return $this->resultRawFactory->create()->setContents($fileData); } } catch (Exception $e) { $this->messageManager->addErrorMessage($e->getMessage()); return $this->resultRedirectFactory->create()->setRefererOrBaseUrl(); } } }