diff --git a/Application/Model/Registries/registryOrdermanagerActions.php b/Application/Model/Registries/registryOrdermanagerActions.php index 3f8a156..4fa3caf 100644 --- a/Application/Model/Registries/registryOrdermanagerActions.php +++ b/Application/Model/Registries/registryOrdermanagerActions.php @@ -15,13 +15,16 @@ declare(strict_types=1); namespace D3\PdfDocuments\Application\Model\Registries; +use D3\PdfDocuments\Application\Model\Constants; use D3\PdfDocuments\Application\Model\Documents\deliverynotePdf; use D3\PdfDocuments\Application\Model\Documents\deliverynotewithoutlogoPdf; use D3\PdfDocuments\Application\Model\Documents\invoicePdf; use D3\PdfDocuments\Application\Model\Documents\invoicewithoutlogoPdf; use D3\PdfDocuments\Application\Model\Exceptions\wrongPdfGeneratorInterface; -use D3\PdfDocuments\Application\Model\Interfaces\pdfdocumentsGenericInterface; use D3\PdfDocuments\Application\Model\Interfaces\pdfdocumentsOrderInterface; +use OxidEsales\EshopCommunity\Internal\Container\ContainerFactory; +use OxidEsales\EshopCommunity\Internal\Framework\Module\Facade\ModuleSettingService; +use OxidEsales\EshopCommunity\Internal\Framework\Module\Facade\ModuleSettingServiceInterface; class registryOrdermanagerActions extends registryAbstract implements registryOrdermanagerActionsInterface { @@ -30,10 +33,16 @@ class registryOrdermanagerActions extends registryAbstract implements registryOr */ public function __construct() { - $this->addGenerator(invoicePdf::class); - $this->addGenerator(deliverynotePdf::class); - $this->addGenerator(invoicewithoutlogoPdf::class); - $this->addGenerator(deliverynotewithoutlogoPdf::class); + /** @var ModuleSettingService $settingsService */ + $settingsService = ContainerFactory::getInstance()->getContainer()->get(ModuleSettingServiceInterface::class); + if ($settingsService->getBoolean('d3PdfDocumentsDocInvoice', Constants::OXID_MODULE_ID)) + $this->addGenerator(invoicePdf::class); + if ($settingsService->getBoolean('d3PdfDocumentsDocDeliveryNote', Constants::OXID_MODULE_ID)) + $this->addGenerator(deliverynotePdf::class); + if ($settingsService->getBoolean('d3PdfDocumentsDocInvoiceNoLogo', Constants::OXID_MODULE_ID)) + $this->addGenerator(invoicewithoutlogoPdf::class); + if ($settingsService->getBoolean('d3PdfDocumentsDocDeliveryNoteNoLogo', Constants::OXID_MODULE_ID)) + $this->addGenerator(deliverynotewithoutlogoPdf::class); } public function getRequiredGeneratorInterfaceClassName(): string diff --git a/Application/Model/Registries/registryOrderoverview.php b/Application/Model/Registries/registryOrderoverview.php index ed3d2e8..6f90753 100644 --- a/Application/Model/Registries/registryOrderoverview.php +++ b/Application/Model/Registries/registryOrderoverview.php @@ -15,12 +15,16 @@ declare(strict_types=1); namespace D3\PdfDocuments\Application\Model\Registries; +use D3\PdfDocuments\Application\Model\Constants; use D3\PdfDocuments\Application\Model\Documents\deliverynotePdf; use D3\PdfDocuments\Application\Model\Documents\deliverynotewithoutlogoPdf; use D3\PdfDocuments\Application\Model\Documents\invoicePdf; use D3\PdfDocuments\Application\Model\Documents\invoicewithoutlogoPdf; use D3\PdfDocuments\Application\Model\Exceptions\wrongPdfGeneratorInterface; use D3\PdfDocuments\Application\Model\Interfaces\pdfdocumentsOrderInterface; +use OxidEsales\EshopCommunity\Internal\Container\ContainerFactory; +use OxidEsales\EshopCommunity\Internal\Framework\Module\Facade\ModuleSettingService; +use OxidEsales\EshopCommunity\Internal\Framework\Module\Facade\ModuleSettingServiceInterface; class registryOrderoverview extends registryAbstract implements registryOrderoverviewInterface { @@ -29,10 +33,16 @@ class registryOrderoverview extends registryAbstract implements registryOrderove */ public function __construct() { - $this->addGenerator(invoicePdf::class); - $this->addGenerator(deliverynotePdf::class); - $this->addGenerator(invoicewithoutlogoPdf::class); - $this->addGenerator(deliverynotewithoutlogoPdf::class); + /** @var ModuleSettingService $settingsService */ + $settingsService = ContainerFactory::getInstance()->getContainer()->get(ModuleSettingServiceInterface::class); + if ($settingsService->getBoolean('d3PdfDocumentsDocInvoice', Constants::OXID_MODULE_ID)) + $this->addGenerator( invoicePdf::class ); + if ($settingsService->getBoolean('d3PdfDocumentsDocDeliveryNote', Constants::OXID_MODULE_ID)) + $this->addGenerator(deliverynotePdf::class); + if ($settingsService->getBoolean('d3PdfDocumentsDocInvoiceNoLogo', Constants::OXID_MODULE_ID)) + $this->addGenerator(invoicewithoutlogoPdf::class); + if ($settingsService->getBoolean('d3PdfDocumentsDocDeliveryNoteNoLogo', Constants::OXID_MODULE_ID)) + $this->addGenerator(deliverynotewithoutlogoPdf::class); } public function getRequiredGeneratorInterfaceClassName(): string diff --git a/Application/views/de/translations.php b/Application/views/de/translations.php index 4e1e643..51231fd 100644 --- a/Application/views/de/translations.php +++ b/Application/views/de/translations.php @@ -35,6 +35,12 @@ return [ 'SHOP_MODULE_GROUP_'. Constants::OXID_MODULE_ID.'invoice' => 'Rechnung', 'SHOP_MODULE_invoicePaymentTerm' => 'Zahlungsziel (in Tagen)', + 'SHOP_MODULE_GROUP_d3PdfDocumentsdocuments' => 'Dokumente', + 'SHOP_MODULE_d3PdfDocumentsDocInvoice' => 'Rechnung', + 'SHOP_MODULE_d3PdfDocumentsDocInvoiceNoLogo' => 'Rechnung ohne Logo', + 'SHOP_MODULE_d3PdfDocumentsDocDeliveryNote' => 'Lieferschein', + 'SHOP_MODULE_d3PdfDocumentsDocDeliveryNoteNoLogo' => 'Lieferschein ohne Logo', + 'D3_PDFDOCUMENTS' => 'PDF-Dokumente', 'D3_PDFDOCUMENTS_INVOICE' => 'Rechnung', 'D3_PDFDOCUMENTS_INVOICE_WITHOUT_LOGO' => 'Rechnung ohne Logo', diff --git a/Application/views/en/translations.php b/Application/views/en/translations.php index a548663..97b8d3e 100644 --- a/Application/views/en/translations.php +++ b/Application/views/en/translations.php @@ -34,6 +34,13 @@ return [ 'SHOP_MODULE_GROUP_'. Constants::OXID_MODULE_ID.'invoice' => 'Invoice', 'SHOP_MODULE_invoicePaymentTerm' => 'Payment term (in days)', + + 'SHOP_MODULE_GROUP_d3PdfDocumentsdocuments' => 'Documents', + 'SHOP_MODULE_d3PdfDocumentsDocInvoice' => 'Invoice', + 'SHOP_MODULE_d3PdfDocumentsDocInvoiceNoLogo' => 'Invoice without logo', + 'SHOP_MODULE_d3PdfDocumentsDocDeliveryNote' => 'Delivery note', + 'SHOP_MODULE_d3PdfDocumentsDocDeliveryNoteNoLogo' => 'Delivery note without logo', + 'D3_PDFDOCUMENTS' => 'PDF Documents', 'D3_PDFDOCUMENTS_INVOICE' => 'Invoice', 'D3_PDFDOCUMENTS_INVOICE_WITHOUT_LOGO' => 'Invoice without logo', diff --git a/metadata.php b/metadata.php index 6e3791b..d154328 100644 --- a/metadata.php +++ b/metadata.php @@ -106,6 +106,30 @@ $aModule = [ 'type' => 'num', 'value' => 7, ], + [ + 'group' => $sModuleId.'documents', + 'name' => $sModuleId.'DocInvoice', + 'type' => 'bool', + 'value' => true + ], + [ + 'group' => $sModuleId.'documents', + 'name' => $sModuleId.'DocInvoiceNoLogo', + 'type' => 'bool', + 'value' => true + ], + [ + 'group' => $sModuleId.'documents', + 'name' => $sModuleId.'DocDeliveryNote', + 'type' => 'bool', + 'value' => true + ], + [ + 'group' => $sModuleId.'documents', + 'name' => $sModuleId.'DocDeliveryNoteNoLogo', + 'type' => 'bool', + 'value' => true + ], ], ]; // @codeCoverageIgnoreEnd \ No newline at end of file