Spamworldpro Mini Shell
Spamworldpro


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/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/app/code/Cnc/PdfCustomiser/Controller/Adminhtml/Order/PdfExportInvoice.php
<?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);
    }
}

Spamworldpro Mini