diff --git a/bin/backend/download.php b/bin/backend/download.php index bf7c60107ef04e96144c2a1b2b8b6b32488947d2..408f23571e0d145ae6759f0e8dc5ca332003859f 100644 --- a/bin/backend/download.php +++ b/bin/backend/download.php @@ -3,7 +3,8 @@ use QUI\ERP\Accounting\Invoice\Handler; use QUI\ERP\Accounting\Invoice\Utils\Invoice as InvoiceUtils; use horstoeko\zugferd\ZugferdProfiles; -use QUI\ERP\Output\Output; +use QUI\ERP\Defaults; +use QUI\System\Log; use Symfony\Component\HttpFoundation\Response; define('QUIQQER_SYSTEM', true); @@ -43,25 +44,42 @@ ]; try { + $Invoice = Handler::getInstance()->getInvoiceByHash($invoiceHash); + $fileName = InvoiceUtils::getInvoiceFilename($Invoice); + if ($type === 'PDF') { - $OutputDocument = Output::getDocumentPdf( - $invoiceHash, - QUI\ERP\Accounting\Invoice\Output\OutputProviderInvoice::getEntityType() - ); + $defaultTemplates = Defaults::conf('output', 'default_templates'); + $defaultTemplates = json_decode($defaultTemplates, true); - $OutputDocument->download(); - exit; - } + $templateProvider = ''; + $templateId = ''; - $Invoice = Handler::getInstance()->getInvoiceByHash($invoiceHash); - $document = InvoiceUtils::getElectronicInvoice($Invoice, $profileMap[$type]); - $xmlContent = $document->getContent(); - $fileName = InvoiceUtils::getInvoiceFilename($Invoice); + if (!empty($defaultTemplates['Invoice'])) { + $templateProvider = $defaultTemplates['Invoice']['provider']; + $templateId = $defaultTemplates['Invoice']['id']; + } + + $Request = QUI::getRequest(); + + $Request->query->set('id', $invoiceHash); + $Request->query->set('t', 'Invoice'); + $Request->query->set('ep', 'quiqqer/invoice'); + $Request->query->set('tpl', $templateId); + $Request->query->set('tplpr', $templateProvider); - $response = new Response($xmlContent); - $response->headers->set('Content-Type', 'application/xml'); - $response->headers->set('Content-Disposition', 'attachment; filename="'. $fileName . '.xml"'); - $response->headers->set('Content-Length', strlen($xmlContent)); - $response->send(); + include dirname(__FILE__, 4) . '/erp/bin/output/backend/download.php'; + } else { + $document = InvoiceUtils::getElectronicInvoice($Invoice, $profileMap[$type]); + $content = $document->getContent(); + $contentType = 'application/xml'; + $fileName .= '.xml'; + + $response = new Response($content); + $response->headers->set('Content-Type', $contentType); + $response->headers->set('Content-Disposition', 'attachment; filename="' . $fileName . '"'); + $response->headers->set('Content-Length', strlen($content)); + $response->send(); + } } catch (Exception $e) { + Log::writeException($e); } diff --git a/bin/backend/utils/Dialogs.js b/bin/backend/utils/Dialogs.js index b6449c6a25ea194e643c2e34e73a7276b665934d..96e06de1eaca39ce707841adb896f95384e9d182 100644 --- a/bin/backend/utils/Dialogs.js +++ b/bin/backend/utils/Dialogs.js @@ -403,7 +403,7 @@ define('package/quiqqer/invoice/bin/backend/utils/Dialogs', [ }).inject(document.body); (function () { - document.getElements('#' + id).destroy(); + //document.getElements('#' + id).destroy(); }).delay(1000, this); }); });