19 use Magento\Sales\Model\ResourceModel\Order\Shipment\CollectionFactory as ShipmentCollectionFactory;
20 use Magento\Sales\Model\ResourceModel\Order\Invoice\CollectionFactory as InvoiceCollectionFactory;
21 use Magento\Sales\Model\ResourceModel\Order\Creditmemo\CollectionFactory as CreditmemoCollectionFactory;
27 class Pdfdocs extends \Magento\Sales\Controller\Adminhtml\Order\AbstractMassAction
95 OrderCollectionFactory $orderCollectionFactory
105 $this->collectionFactory = $orderCollectionFactory;
106 parent::__construct($context,
$filter);
122 $shipments = $this->shipmentCollectionFactory->create()->setOrderFilter([
'in' =>
$orderIds]);
123 $invoices = $this->invoiceCollectionFactory->create()->setOrderFilter([
'in' =>
$orderIds]);
124 $creditmemos = $this->creditmemoCollectionFactory->create()->setOrderFilter([
'in' =>
$orderIds]);
128 $documents[] = $this->pdfInvoice->getPdf(
$invoices);
131 $documents[] = $this->pdfShipment->getPdf(
$shipments);
133 if ($creditmemos->getSize()) {
134 $documents[] = $this->pdfCreditmemo->getPdf($creditmemos);
137 if (empty($documents)) {
138 $this->messageManager->addErrorMessage(
__(
'There are no printable documents related to selected orders.'));
142 $pdf = array_shift($documents);
143 foreach ($documents as $document) {
144 $pdf->pages = array_merge($pdf->pages, $document->pages);
146 $fileContent = [
'type' =>
'string',
'value' => $pdf->render(),
'rm' =>
true];
148 return $this->fileFactory->create(
149 sprintf(
'docs%s.pdf', $this->dateTime->date(
'Y-m-d_H-i-s')),
151 DirectoryList::VAR_DIR,
$creditmemoCollectionFactory
massAction(AbstractCollection $collection)
$invoiceCollectionFactory
$shipmentCollectionFactory
__construct(Context $context, Filter $filter, FileFactory $fileFactory, Invoice $pdfInvoice, Shipment $pdfShipment, Creditmemo $pdfCreditmemo, DateTime $dateTime, ShipmentCollectionFactory $shipmentCollectionFactory, InvoiceCollectionFactory $invoiceCollectionFactory, CreditmemoCollectionFactory $creditmemoCollectionFactory, OrderCollectionFactory $orderCollectionFactory)