OrderOverview controller show the PDF generator exception message

This commit is contained in:
2025-05-14 13:20:06 +02:00
bovenliggende e9987b5221
commit 1bcad628ec
2 gewijzigde bestanden met toevoegingen van 49 en 14 verwijderingen

8
IntelliSenseHelper.php Normal file
Bestand weergeven

@ -0,0 +1,8 @@
<?php
namespace D3\PdfDocuments\Modules\Application\Controller {
use OxidEsales\EshopCommunity\Application\Controller\Admin\OrderOverview;
class d3_overview_controller_pdfdocuments_parent extends OrderOverview{}
}

Bestand weergeven

@ -14,6 +14,7 @@ use D3\PdfDocuments\Application\Controller\orderOverviewPdfGenerator;
use D3\PdfDocuments\Application\Model\Exceptions\noPdfHandlerFoundException;
use D3\PdfDocuments\Application\Model\Exceptions\pdfGeneratorExceptionAbstract;
use D3\PdfDocuments\Application\Model\Registries\registryOrderoverview;
use Exception;
use OxidEsales\Eshop\Application\Controller\Admin\OrderOverview;
use OxidEsales\Eshop\Application\Model\Order;
use OxidEsales\Eshop\Core\DatabaseProvider;
@ -21,15 +22,36 @@ use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Registry;
use OxidEsales\Eshop\Core\TableViewNameGenerator;
if (false) {
class_alias(
d3_overview_controller_pdfdocuments_parent::class,
OrderOverview::class
);
}
class d3_overview_controller_pdfdocuments extends d3_overview_controller_pdfdocuments_parent
{
private $generatorError = false;
public function render()
{
if ($this->generatorError) {
echo <<<HTML
<html lang="de">
<body>
<script>
let form = top.basefrm.edit.document.getElementById("transfer");
let input = document.createElement("input");
input.setAttribute("type", "hidden");
input.setAttribute("name", "generatorError");
input.setAttribute("value", encodeURIComponent('{$this->generatorError}'));
form.appendChild(input);
form.submit();
</script>
</body>
</html>
HTML;
Registry::getUtils()->showMessageAndExit('PDF-Datei konnte nicht erstellt werden');
} elseif ($generatorError = Registry::getRequest()->getRequestParameter('generatorError')) {
Registry::getUtilsView()->addErrorToDisplay(urldecode($generatorError));
}
return parent::render();
}
/**
* @return bool
* @throws DatabaseConnectionException
@ -53,14 +75,19 @@ class d3_overview_controller_pdfdocuments extends d3_overview_controller_pdfdocu
*/
public function d3CreatePDF()
{
$soxId = $this->getEditObjectId();
if ($soxId != "-1" && isset($soxId)) {
/** @var Order $oOrder */
$oOrder = oxNew(Order::class);
if ($oOrder->load($soxId)) {
$generator = oxNew( orderOverviewPdfGenerator::class );
$generator->generatePdf($oOrder, Registry::getRequest()->getRequestEscapedParameter("pdflanguage"));
try {
$soxId = $this->getEditObjectId();
if ( $soxId != "-1" && isset( $soxId ) ) {
/** @var Order $oOrder */
$oOrder = oxNew( Order::class );
if ( $oOrder->load( $soxId ) ) {
$generator = oxNew( orderOverviewPdfGenerator::class );
$generator->generatePdf( $oOrder, Registry::getRequest()->getRequestEscapedParameter( "pdflanguage" ) );
}
}
} catch ( Exception $exception) {
Registry::getLogger()->error($exception->getMessage(), [ 'exception' => $exception ] );
$this->generatorError = 'PDF documents: ' . $exception->getMessage();
}
}