From 7826cf729dee89b2aae7bfa2868e7fca928a2b8d Mon Sep 17 00:00:00 2001 From: Henning Leutz <leutz@pcsg.de> Date: Wed, 13 Sep 2023 12:55:25 +0200 Subject: [PATCH] feat: guest invoicing setting --- ajax/frontend/submitCustomerData.php | 20 ++++++++++++++------ locale.xml | 15 +++++++++++++++ settings.xml | 14 ++++++++++++++ src/QUI/ERP/Order/Guest/EventHandler.php | 11 ++++++++++- 4 files changed, 53 insertions(+), 7 deletions(-) diff --git a/ajax/frontend/submitCustomerData.php b/ajax/frontend/submitCustomerData.php index 6747f11..fd313fc 100644 --- a/ajax/frontend/submitCustomerData.php +++ b/ajax/frontend/submitCustomerData.php @@ -104,13 +104,21 @@ function ($orderHash, $data) { $Order->setInvoiceAddress($Address); $Order->save(QUI::getUsers()->getSystemUser()); - if ($Order->hasInvoice()) { - $Invoice = $Order->getInvoice(); - } else { - $Invoice = $Order->createInvoice(QUI::getUsers()->getSystemUser()); - } - $Invoice->sendTo($email); + $guestInvoicing = QUI::getPackage('quiqqer/order-guestorder')->getConfig()->getValue( + 'guestorder', + 'invoicing_for_guests' + ); + + if ($guestInvoicing) { + if ($Order->hasInvoice()) { + $Invoice = $Order->getInvoice(); + } else { + $Invoice = $Order->createInvoice(QUI::getUsers()->getSystemUser()); + } + + $Invoice->sendTo($email); + } }, ['orderHash', 'data'] ); diff --git a/locale.xml b/locale.xml index 4c599e5..e43baed 100644 --- a/locale.xml +++ b/locale.xml @@ -79,6 +79,21 @@ ]]></en> </locale> + <locale name="settings.guest.invoicing_for_guests"> + <de><![CDATA[Rechnungserstellung für Gäste]]></de> + <en><![CDATA[Invoicing for guests]]></en> + </locale> + <locale name="settings.guest.invoicing_for_guests.description"> + <de><![CDATA[ + Wenn diese Option aktiviert ist, haben Gäste oder anonyme Besteller die Möglichkeit, eine Rechnung für ihre Bestellung anzufordern. + In diesem Fall werden Benutzerkonten erstellt oder aktiviert, um die Rechnungsausstellung für den Benutzer zu ermöglichen. + ]]></de> + <en><![CDATA[ + If this option is enabled, guests or anonymous orderers have the possibility, + request an invoice for their order. In this case, user accounts are created or activated, to enable invoicing for the user. + ]]></en> + </locale> + <locale name="mail.link.create.account" html="true"> <de><![CDATA[ Wir möchten dich darauf hinweisen, dass die Registrierung eines Benutzerkontos bei uns nach wie vor möglich ist diff --git a/settings.xml b/settings.xml index ba39a09..2627376 100644 --- a/settings.xml +++ b/settings.xml @@ -11,6 +11,10 @@ <conf name="anonymous_max_sum"> <type><![CDATA[string]]></type> </conf> + <conf name="invoicing_for_guests"> + <type><![CDATA[bool]]></type> + <defaultvalue>1></defaultvalue> + </conf> </section> </config> @@ -65,6 +69,16 @@ var="settings.guest.anonymous_max_sum.description"/> </description> </input> + + <input conf="guestorder.invoicing_for_guests" type="checkbox"> + <text> + <locale group="quiqqer/order-guestorder" var="settings.guest.invoicing_for_guests"/> + </text> + <description> + <locale group="quiqqer/order-guestorder" + var="settings.guest.invoicing_for_guests.description"/> + </description> + </input> </settings> </category> diff --git a/src/QUI/ERP/Order/Guest/EventHandler.php b/src/QUI/ERP/Order/Guest/EventHandler.php index 4d84d2c..64f7f16 100644 --- a/src/QUI/ERP/Order/Guest/EventHandler.php +++ b/src/QUI/ERP/Order/Guest/EventHandler.php @@ -476,7 +476,16 @@ public static function extendMail(Collector $Collector, AbstractOrder $Order, $A $invoiceLink = GuestOrder::getInvoiceCreationLink($Order); $createAccountLink = GuestOrder::getAccountCreationLink($Order); - if (GuestOrder::isAnonymousOrder() && QUI::getPackageManager()->isInstalled('quiqqer/invoice')) { + $guestInvoicing = QUI::getPackage('quiqqer/order-guestorder')->getConfig()->getValue( + 'guestorder', + 'invoicing_for_guests' + ); + + if ( + $guestInvoicing + && GuestOrder::isAnonymousOrder() + && QUI::getPackageManager()->isInstalled('quiqqer/invoice') + ) { // Anonyme Bestellung: Rechnungserzeugung oder Kundenkonto anlegen $html .= QUI::getLocale()->get('quiqqer/order-guestorder', 'mail.link.create.invoice', [ 'link' => $invoiceLink -- GitLab