Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Pdfcreditmemos.php
Go to the documentation of this file.
1 <?php
7 
17 use Magento\Sales\Model\ResourceModel\Order\Creditmemo\CollectionFactory;
19 
24 class Pdfcreditmemos extends \Magento\Sales\Controller\Adminhtml\Order\PdfDocumentsMassAction
25 {
29  const ADMIN_RESOURCE = 'Magento_Sales::creditmemo';
30 
34  protected $fileFactory;
35 
39  protected $dateTime;
40 
44  protected $pdfCreditmemo;
45 
49  protected $collectionFactory;
50 
59  public function __construct(
60  Context $context,
66  ) {
67  $this->fileFactory = $fileFactory;
68  $this->dateTime = $dateTime;
69  $this->pdfCreditmemo = $pdfCreditmemo;
70  $this->collectionFactory = $collectionFactory;
71  parent::__construct($context, $filter);
72  }
73 
82  {
83 
84  $creditmemoCollection = $this->collectionFactory->create()->setOrderFilter(['in' => $collection->getAllIds()]);
85  if (!$creditmemoCollection->getSize()) {
86  $this->messageManager->addErrorMessage(__('There are no printable documents related to selected orders.'));
87  return $this->resultRedirectFactory->create()->setPath($this->getComponentRefererUrl());
88  }
89  $pdf = $this->pdfCreditmemo->getPdf($creditmemoCollection->getItems());
90  $fileContent = ['type' => 'string', 'value' => $pdf->render(), 'rm' => true];
91 
92  return $this->fileFactory->create(
93  sprintf('creditmemo%s.pdf', $this->dateTime->date('Y-m-d_H-i-s')),
94  $fileContent,
95  DirectoryList::VAR_DIR,
96  'application/pdf'
97  );
98  }
99 }
__construct(Context $context, Filter $filter, CollectionFactory $collectionFactory, DateTime $dateTime, FileFactory $fileFactory, Creditmemo $pdfCreditmemo)
__()
Definition: __.php:13