public function InvoiceFileManager::getInvoiceFile in Commerce Invoice 8.2
Download an invoice file.
Parameters
\Drupal\commerce_invoice\Entity\InvoiceInterface $invoice: The invoice.
Throws
\Symfony\Component\HttpKernel\Exception\NotFoundHttpException Thrown when the file was not found and could not be generated.
Overrides InvoiceFileManagerInterface::getInvoiceFile
File
- src/
InvoiceFileManager.php, line 61
Class
- InvoiceFileManager
- Default implementation of the invoice file manager.
Namespace
Drupal\commerce_invoiceCode
public function getInvoiceFile(InvoiceInterface $invoice) {
if ($invoice
->getFile()) {
return $invoice
->getFile();
}
// Check if an invoice was already generated for the given invoice,
// that is not referenced by the invoice.
$file = $this
->loadExistingFile($invoice);
// If the invoice file hasn't been generated yet, generate it.
if (!$file) {
$file = $this
->generateInvoiceFile($invoice);
}
if (!$file) {
throw new NotFoundHttpException();
}
// Sets the PDF file reference field on the invoice.
if (!$invoice
->getFile() || $invoice
->getFile()
->id() !== $file
->id()) {
$invoice
->setFile($file);
$invoice
->save();
}
return $file;
}