Skip to content
Code-Schnipsel Gruppen Projekte
Commit eb22505e erstellt von Henning Leutz's avatar Henning Leutz :martial_arts_uniform:
Dateien durchsuchen

feat: mail information about an incoming order

Übergeordneter e1ab64d6
No related branches found
No related tags found
Keine zugehörigen Merge Requests gefunden
......@@ -607,7 +607,7 @@
</locale>
<locale name="order.settings.order.sendOrderConfirmationToAdmin">
<de><![CDATA[Bestellbestätigung (Administrator)]]></de>
<en><![CDATA[Confirmation of order (Administrator)]]></en>
<en><![CDATA[Copy of order (Administrator)]]></en>
</locale>
<locale name="order.settings.order.sendOrderConfirmationToAdmin.description">
<de><![CDATA[
......@@ -619,6 +619,18 @@
The administrator is entered here as a BCC e-mail if an order confirmation has been sent.
]]></en>
</locale>
<locale name="order.settings.order.sendAdminOrderConfirmation">
<de><![CDATA[Bestellinformation für den Administrator]]></de>
<en><![CDATA[Order information for the administrator]]></en>
</locale>
<locale name="order.settings.order.sendAdminOrderConfirmation.description">
<de><![CDATA[
Diese Mail ist eine Information über eine eingehende Bestellung. Es ist keine Kopie der Bestellbestätigung.
]]></de>
<en><![CDATA[
This mail is an information about an incoming order. It is not a copy of the order confirmation.
]]></en>
</locale>
<locale name="order.settings.autoInvoicePost">
<de><![CDATA[Rechnung automatisch buchen]]></de>
......@@ -872,6 +884,55 @@
<de><![CDATA[]]></de>
<en><![CDATA[]]></en>
</locale>
<locale name="message.order.missing.customer.mail">
<de><![CDATA[
Der Kunde [customerId] hat keine E-Mail hinterlegt.
Es konnte keine Bestellbestätigung für [orderId] versendet werden.
]]></de>
<en><![CDATA[
The customer [customerId] has not set an e-mail.
No order confirmation could be sent for [orderId].
]]></en>
</locale>
<locale name="message.order.missing.admin.mail">
<de><![CDATA[
Es wurde keine Administrator E-Mail Adresse hinterlegt.
Es konnte keine Bestellbestätigungs Information versendet werden.
]]></de>
<en><![CDATA[
No administrator e-mail address has been set up.
No order confirmation information could be sent.
]]></en>
</locale>
<locale name="order.confirmation.admin.subject">
<de><![CDATA[Es wurde eine Bestellung aufgegeben: [orderId]]]></de>
<en><![CDATA[An order was placed: [orderId]]]></en>
</locale>
<locale name="order.confirmation.admin.body" html="true">
<de><![CDATA[
<h2>Bestelldetails</h2>
Bestellnummer: [orderId]<br />
Benutzer-ID: [userId]<br />
Benutzername: [username]<br />
]]></de>
<en><![CDATA[
<h2>Order details</h2>
Order ID: [orderId]<br />
User ID: [userId]<br />
Username: [username]<br />
]]></en>
</locale>
<locale name="exception.order.confirmation.admin">
<de><![CDATA[
Leider ist ein Fehler aufgetreten beim versenden einer Bestellstätigung für den Administrator.
Bestellung: [orderId]; Fehler: [message]
]]></de>
<en><![CDATA[
Unfortunately an error occurred when sending an order confirmation for the administrator.
Order: [orderId]; Error: [message]
]]></en>
</locale>
</groups>
<groups name="quiqqer/order" datatype="js">
......
......@@ -28,6 +28,10 @@
<type><![CDATA[bool]]></type>
<defaultvalue><![CDATA[1]]></defaultvalue>
</conf>
<conf name="sendAdminOrderConfirmation">
<type><![CDATA[bool]]></type>
<defaultvalue><![CDATA[1]]></defaultvalue>
</conf>
</section>
<section name="paymentsChangeable"/>
......@@ -113,6 +117,16 @@
</description>
</input>
<input type="checkbox" conf="order.sendAdminOrderConfirmation">
<text>
<locale group="quiqqer/order" var="order.settings.order.sendAdminOrderConfirmation"/>
</text>
<description>
<locale group="quiqqer/order"
var="order.settings.order.sendAdminOrderConfirmation.description"/>
</description>
</input>
<input type="text" conf="order.prefix">
<text>
<locale group="quiqqer/order" var="order.settings.order.prefix"/>
......
......@@ -261,6 +261,10 @@ public static function onQuiqqerInvoiceTemporaryInvoicePostEnd(
*/
public static function onQuiqqerOrderCreated(Order $Order)
{
if (Settings::getInstance()->get('order', 'sendAdminOrderConfirmation')) {
Mail::sendAdminOrderConfirmationMail($Order);
}
if (Settings::getInstance()->get('order', 'sendOrderConfirmation')) {
Mail::sendOrderConfirmationMail($Order);
}
......
......@@ -16,7 +16,7 @@
class Mail
{
/**
* confirmation of order mail
* confirmation mail for the customer
*
* @param Order $Order
* @throws QUI\Exception
......@@ -107,4 +107,109 @@ public static function sendOrderConfirmationMail(Order $Order)
$Mailer->send();
}
/**
* confirmation mail for the admin
*
* @param Order $Order
*/
public static function sendAdminOrderConfirmationMail(Order $Order)
{
$email = QUI::conf('mail', 'admin_mail');
if (empty($email)) {
QUI\System\Log::addAlert(
QUI::getLocale()->get('quiqqer/order', 'message.order.missing.admin.mail')
);
return;
}
// create order data
$OrderControl = new QUI\ERP\Order\Controls\Order\Order([
'orderHash' => $Order->getHash(),
'template' => 'OrderLikeBasket'
]);
$Address = null;
$Customer = $Order->getCustomer();
$user = $Customer->getName();
$user = \trim($user);
if (empty($user)) {
$Address = $Customer->getAddress();
$user = $Address->getName();
}
// mail
$Mailer = QUI::getMailManager()->getMailer();
$Mailer->addRecipient($email);
$Mailer->setSubject(
QUI::getLocale()->get('quiqqer/order', 'order.confirmation.admin.subject', [
'orderId' => $Order->getPrefixedId()
])
);
try {
$Engine = QUI::getTemplateManager()->getEngine();
$Order = $OrderControl->getOrder();
$Articles = $Order->getArticles()->toUniqueList();
$Articles->hideHeader();
} catch (QUI\Exception $Exception) {
QUI\System\Log::addAlert(
QUI::getLocale()->get('quiqqer/order', 'exception.order.confirmation.admin', [
'orderId' => $Order->getPrefixedId(),
'message' => $Exception->getMessage()
])
);
return;
}
$Shipping = null;
$DeliveryAddress = null;
if ($Order->getShipping()) {
$Shipping = QUI\ERP\Shipping\Shipping::getInstance()->getShippingByObject($Order);
$DeliveryAddress = $Shipping->getAddress();
}
$Engine->assign([
'Shipping' => $Shipping,
'DeliveryAddress' => $DeliveryAddress,
'InvoiceAddress' => $Order->getInvoiceAddress(),
'Payment' => $Order->getPayment(),
'Order' => $Order,
'Articles' => $Articles,
'Address' => $Address,
'message' => QUI::getLocale()->get('quiqqer/order', 'order.confirmation.admin.body', [
'orderId' => $Order->getPrefixedId(),
'userId' => $Customer->getId(),
'username' => $user
])
]);
$Mailer->setBody(
$Engine->fetch(\dirname(__FILE__).'/MailTemplates/orderConfirmationAdmin.html')
);
try {
$Mailer->send();
} catch (QUI\Exception $Exception) {
QUI\System\Log::addAlert(
QUI::getLocale()->get('quiqqer/order', 'exception.order.confirmation.admin', [
'orderId' => $Order->getPrefixedId(),
'message' => $Exception->getMessage()
])
);
return;
}
}
}
{$message}
{if $InvoiceAddress}
<div class="">
<h4>{locale group="quiqqer/order" var="mail.order.confirmation.invoice.title"}</h4>
{$InvoiceAddress->render()}
</div>
{/if}
{if $DeliveryAddress}
<div class="">
<h4>{locale group="quiqqer/order" var="mail.order.confirmation.delivery.title"}</h4>
{$DeliveryAddress->render()}
</div>
{/if}
<br/>
<br/>
{$Articles->renderForMail()}
<div style="clear: both; width: 100%"></div>
{if $Shipping}
<div style="clear: both;">
<h4>{locale group="quiqqer/order" var="mail.order.confirmation.shipping.title"}</h4>
{$Shipping->getTitle()}
</div>
{/if}
{if $Payment}
<div class="">
<h4>{locale group="quiqqer/order" var="mail.order.confirmation.payment.title"}</h4>
{$Payment->getTitle()}
</div>
{/if}
0% oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren