OrderOverview controller show the PDF generator exception message

Cette révision appartient à :
2025-05-14 13:20:06 +02:00
Parent e9987b5221
révision 1bcad628ec
2 fichiers modifiés avec 49 ajouts et 14 suppressions

8
IntelliSenseHelper.php Fichier normal
Voir le fichier

@ -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{}
}

Voir le fichier

@ -14,6 +14,7 @@ use D3\PdfDocuments\Application\Controller\orderOverviewPdfGenerator;
use D3\PdfDocuments\Application\Model\Exceptions\noPdfHandlerFoundException; use D3\PdfDocuments\Application\Model\Exceptions\noPdfHandlerFoundException;
use D3\PdfDocuments\Application\Model\Exceptions\pdfGeneratorExceptionAbstract; use D3\PdfDocuments\Application\Model\Exceptions\pdfGeneratorExceptionAbstract;
use D3\PdfDocuments\Application\Model\Registries\registryOrderoverview; use D3\PdfDocuments\Application\Model\Registries\registryOrderoverview;
use Exception;
use OxidEsales\Eshop\Application\Controller\Admin\OrderOverview; use OxidEsales\Eshop\Application\Controller\Admin\OrderOverview;
use OxidEsales\Eshop\Application\Model\Order; use OxidEsales\Eshop\Application\Model\Order;
use OxidEsales\Eshop\Core\DatabaseProvider; use OxidEsales\Eshop\Core\DatabaseProvider;
@ -21,15 +22,36 @@ use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Registry; use OxidEsales\Eshop\Core\Registry;
use OxidEsales\Eshop\Core\TableViewNameGenerator; 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 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 * @return bool
* @throws DatabaseConnectionException * @throws DatabaseConnectionException
@ -53,14 +75,19 @@ class d3_overview_controller_pdfdocuments extends d3_overview_controller_pdfdocu
*/ */
public function d3CreatePDF() public function d3CreatePDF()
{ {
$soxId = $this->getEditObjectId(); try {
if ($soxId != "-1" && isset($soxId)) { $soxId = $this->getEditObjectId();
/** @var Order $oOrder */ if ( $soxId != "-1" && isset( $soxId ) ) {
$oOrder = oxNew(Order::class); /** @var Order $oOrder */
if ($oOrder->load($soxId)) { $oOrder = oxNew( Order::class );
$generator = oxNew( orderOverviewPdfGenerator::class ); if ( $oOrder->load( $soxId ) ) {
$generator->generatePdf($oOrder, Registry::getRequest()->getRequestEscapedParameter("pdflanguage")); $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();
} }
} }