![]() 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/app/code/Cnc/PdfCustomiser/Controller/Adminhtml/Order/ |
<?php /** * Copyright (c) 2021 Kaliop Digital Commerce (https://digitalcommerce.kaliop.com) All Rights Reserved. * https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * Krzysztof Majkowski <[email protected]> <[email protected]> */ namespace Cnc\PdfCustomiser\Controller\Adminhtml\Order; use Magento\Framework\App\ResourceConnection; use Magento\Framework\App\ResponseInterface; class PdfExportInvoice extends \Magento\Backend\App\Action { const ADMIN_RESOURCE = 'Magento_Sales::sales_order'; /** * @var \Magento\Framework\App\Response\Http\FileFactory */ protected $fileFactory; /** * @var \Magento\Framework\Controller\Result\RedirectFactory */ protected $resultRedirectFactory; /** * @var \Magento\Sales\Api\OrderRepositoryInterface */ protected $orderRepository; /** * @var \Magento\Framework\Stdlib\DateTime\DateTime */ protected $date; /** * @var \Fooman\PrintOrderPdf\Model\Pdf\OrderFactory */ protected $orderPdfFactory; /** * @var \Fooman\PdfCore\Model\PdfRenderer */ private $pdfRenderer; /** * @var \Fooman\PdfCore\Model\PdfFileHandling */ private $pdfFileHandling; /** * @var \Fooman\PdfCustomiser\Block\OrderFactory */ private $orderDocumentFactory; /** * @var \Cnc\PdfCustomiser\Block\ExportInvoiceFactory */ private $exportInvoiceFactory; /** * @var ResourceConnection */ private $resource; /** * @param \Magento\Backend\App\Action\Context $context * @param \Magento\Framework\App\Response\Http\FileFactory $fileFactory * @param \Magento\Sales\Api\OrderRepositoryInterface $orderRepository * @param \Magento\Framework\Stdlib\DateTime\DateTime $date */ public function __construct( \Magento\Backend\App\Action\Context $context, \Magento\Framework\App\Response\Http\FileFactory $fileFactory, \Magento\Sales\Api\OrderRepositoryInterface $orderRepository, \Fooman\PrintOrderPdf\Model\Pdf\OrderFactory $orderPdfFactory, \Magento\Framework\Stdlib\DateTime\DateTime $date, \Fooman\PdfCore\Model\PdfRenderer $pdfRenderer, \Fooman\PdfCore\Model\PdfFileHandling $pdfFileHandling, \Fooman\PdfCustomiser\Block\OrderFactory $orderDocumentFactory, \Cnc\PdfCustomiser\Block\ExportInvoiceFactory $exportInvoiceFactory, ResourceConnection $resource ) { parent::__construct($context); $this->fileFactory = $fileFactory; $this->resultRedirectFactory = $context->getResultRedirectFactory(); $this->orderRepository = $orderRepository; $this->orderPdfFactory = $orderPdfFactory; $this->date = $date; $this->pdfRenderer = $pdfRenderer; $this->pdfFileHandling = $pdfFileHandling; $this->orderDocumentFactory = $orderDocumentFactory; $this->exportInvoiceFactory = $exportInvoiceFactory; $this->resource = $resource; } /** * @return \Magento\Backend\Model\View\Result\Redirect|ResponseInterface|\Magento\Framework\Controller\Result\Redirect|\Magento\Framework\Controller\ResultInterface * @throws \Exception */ public function execute() { $params = $this->getRequest()->getParams(); $orderId = isset($params['general']) && isset($params['general']['entity_id']) ? $params['general']['entity_id'] : false; if ($orderId) { $contentBlock1 = isset($params['general']) && isset($params['general']['content_block_1']) ? $params['general']['content_block_1'] : null; $contentBlock2 = isset($params['general']) && isset($params['general']['content_block_2']) ? $params['general']['content_block_2'] : null; $save = [ 'entity_id' => $orderId, 'content_block_1' => $contentBlock1, 'content_block_2' => $contentBlock2, ]; $this->saveData($save); $order = $this->orderRepository->get($orderId); if ($order) { $document = $this->exportInvoiceFactory->create( [ 'data' => [ 'order' => $order, 'content_block_1' => $contentBlock1, 'content_block_2' => $contentBlock2, ] ] ); $this->pdfRenderer->addDocument($document); return $this->sendPdfFile(); } } return $this->resultRedirectFactory->create()->setPath('sales/*/view'); } /** * @return ResponseInterface */ public function sendPdfFile() { return $this->pdfFileHandling->sendPdfFile($this->pdfRenderer); } /** * @param $data * @return false */ protected function saveData($data) { if (!isset($data['entity_id']) || empty($data['entity_id'])) { return false; } $toInsert = [ 'entity_id' => $data['entity_id'], 'entity_type' => 'export_invoice', 'content_block_1' => isset($data['content_block_1']) ? $data['content_block_1'] : null, 'content_block_2' => isset($data['content_block_2']) ? $data['content_block_2'] : null, ]; $this->resource->getConnection()->insertOnDuplicate('cnc_invoice_details', $toInsert); } }