OrderOverview controller show the PDF generator exception message
Cette révision appartient à :
8
IntelliSenseHelper.php
Fichier normal
8
IntelliSenseHelper.php
Fichier normal
@ -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{}
|
||||||
|
}
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Référencer dans un nouveau ticket
Bloquer un utilisateur