Skip to content
Code-Schnipsel Gruppen Projekte
Commit d3442907 erstellt von Patrick Müller's avatar Patrick Müller
Dateien durchsuchen

Merge branch 'dev' of https://dev.quiqqer.com/quiqqer/order into dev

Übergeordnete de070244 dbdda9a2
Keine zugehörigen Branchen gefunden
Keine zugehörigen Tags gefunden
Keine zugehörigen Merge Requests gefunden
......@@ -1775,13 +1775,33 @@
<de><![CDATA[
<p>Betreff der Bestellmail. Verfügbare Variablen:</p>
<ul>
<li>orderId</li>
<li><b>[orderId]:</b> Bestell-ID</li>
<li><b>[hash]:</b> Bestellungs-Hash</li>
<li><b>[date]:</b> Bestellungsdatum</li>
<li><b>[systemCompany]:</b> Company Name des QUIQQER Systems</li>
<li><b>[user]:</b> - Name des Kunden</li>
<li><b>[company]:</b> - Firma des Kunden</li>
<li><b>[companyOrName]:</b> - Firma des Kunden, falls diese leer ist wird [name] verwendet</li>
<li><b>[email]:</b> - E-Mail des Kunden</li>
<li><b>[salutation]:</b> - Anrede des Kunden</li>
<li><b>[firstname]:</b> - Vorname des Kunden</li>
<li><b>[lastname]:</b> - Nachname des Kunden</li>
</ul>
]]></de>
<en><![CDATA[
<p>Subject of the order E-mail. Available variables:</p>
<ul>
<li>orderId</li>
<li><b>[orderId]:</b> Order Id</li>
<li><b>[hash]:</b> Order hash</li>
<li><b>[date]:</b> Order date</li>
<li><b>[systemCompany]:</b> Company of the QUIQQER system</li>
<li><b>[user]:</b> - Name of the customer</li>
<li><b>[company]:</b> - Company of the customer</li>
<li><b>[companyOrName]:</b> - Company of the customer, if this is empty [name] is used</li>
<li><b>[email]:</b> - Customer email</li>
<li><b>[salutation]:</b> - Salutation of the customer</li>
<li><b>[firstname]:</b> - Firstname of the customer/li>
<li><b>[lastname]:</b> - Lastname of the customer</li>
</ul>
]]></en>
</locale>
......@@ -1789,17 +1809,33 @@
<de><![CDATA[
<p>Inhalt der Bestellmail. Verfügbare Variablen:</p>
<ul>
<li>orderId</li>
<li>user</li>
<li>username</li>
<li><b>[orderId]:</b> Bestell-ID</li>
<li><b>[hash]:</b> Bestellungs-Hash</li>
<li><b>[date]:</b> Bestellungsdatum</li>
<li><b>[systemCompany]:</b> Company Name des QUIQQER Systems</li>
<li><b>[user]:</b> - Name des Kunden</li>
<li><b>[company]:</b> - Firma des Kunden</li>
<li><b>[companyOrName]:</b> - Firma des Kunden, falls diese leer ist wird [name] verwendet</li>
<li><b>[email]:</b> - E-Mail des Kunden</li>
<li><b>[salutation]:</b> - Anrede des Kunden</li>
<li><b>[firstname]:</b> - Vorname des Kunden</li>
<li><b>[lastname]:</b> - Nachname des Kunden</li>
</ul>
]]></de>
<en><![CDATA[
<p>Content of the order E-mail. Available variables:</p>
<ul>
<li>orderId</li>
<li>user</li>
<li>username</li>
<li><b>[orderId]:</b> Order Id</li>
<li><b>[hash]:</b> Order hash</li>
<li><b>[date]:</b> Order date</li>
<li><b>[systemCompany]:</b> Company of the QUIQQER system</li>
<li><b>[user]:</b> - Name of the customer</li>
<li><b>[company]:</b> - Company of the customer</li>
<li><b>[companyOrName]:</b> - Company of the customer, if this is empty [name] is used</li>
<li><b>[email]:</b> - Customer email</li>
<li><b>[salutation]:</b> - Salutation of the customer</li>
<li><b>[firstname]:</b> - Firstname of the customer/li>
<li><b>[lastname]:</b> - Lastname of the customer</li>
</ul>
]]></en>
</locale>
......
......@@ -20,7 +20,7 @@ class Mail
* confirmation mail for the customer
*
* @param Order $Order
* @throws QUI\Exception
* @throws QUI\Exception|\PHPMailer\PHPMailer\Exception
*/
public static function sendOrderConfirmationMail(Order $Order)
{
......@@ -52,7 +52,6 @@ public static function sendOrderConfirmationMail(Order $Order)
if (empty($user)) {
$Address = $Customer->getAddress();
$user = $Address->getName();
}
// mail
......@@ -64,9 +63,11 @@ public static function sendOrderConfirmationMail(Order $Order)
}
$Mailer->setSubject(
QUI::getLocale()->get('quiqqer/order', 'order.confirmation.subject', [
'orderId' => $Order->getPrefixedId()
])
QUI::getLocale()->get(
'quiqqer/order',
'order.confirmation.subject',
self::getOrderLocaleVar($Order, $Customer)
)
);
self::addOrderMailAttachments($Mailer);
......@@ -120,11 +121,11 @@ public static function sendOrderConfirmationMail(Order $Order)
'Articles' => $Articles,
'Address' => $Address,
'message' => QUI::getLocale()->get('quiqqer/order', 'order.confirmation.body', [
'orderId' => $Order->getPrefixedId(),
'user' => $user,
'username' => $Customer->getUsername(),
])
'message' => QUI::getLocale()->get(
'quiqqer/order',
'order.confirmation.body',
self::getOrderLocaleVar($Order, $Customer)
)
]);
$Mailer->setBody(
......@@ -180,9 +181,11 @@ public static function sendAdminOrderConfirmationMail(Order $Order)
$Mailer->addRecipient($email);
$Mailer->setSubject(
QUI::getLocale()->get('quiqqer/order', 'order.confirmation.admin.subject', [
'orderId' => $Order->getPrefixedId()
])
QUI::getLocale()->get(
'quiqqer/order',
'order.confirmation.admin.subject',
self::getOrderLocaleVar($Order, $Customer)
)
);
self::addOrderMailAttachments($Mailer);
......@@ -381,4 +384,118 @@ protected static function addBCCMailAddress(QUI\Mail\Mailer $Mailer)
$Mailer->addBCC($orderMails);
}
}
//region mail helper
/**
* @param OrderInterface|Order|OrderInProcess $Order
* @param $Customer
* @return array
*/
protected static function getOrderLocaleVar(OrderInterface $Order, $Customer): array
{
$Address = $Customer->getAddress();
// customer name
$user = $Customer->getName();
$user = \trim($user);
if (empty($user)) {
$user = $Address->getName();
}
// email
$email = $Customer->getAttribute('email');
if (empty($email)) {
$mailList = $Address->getMailList();
if ($mailList[0]) {
$email = $mailList[0];
}
}
return [
'orderId' => $Order->getId(),
'hash' => $Order->getAttribute('hash'),
'date' => self::dateFormat($Order->getAttribute('date')),
'systemCompany' => self::getCompanyName(),
'user' => $user,
'name' => $user,
'company' => $Customer->getStandardAddress()->getAttribute('company'),
'companyOrName' => self::getCompanyOrName($Customer),
'address' => $Address->render(),
'email' => $email,
'salutation' => $Address->getAttribute('salutation'),
'firstname' => $Address->getAttribute('firstname'),
'lastname' => $Address->getAttribute('lastname')
];
}
/**
* @param $date
* @return false|string
*/
public static function dateFormat($date)
{
// date
$localeCode = QUI::getLocale()->getLocalesByLang(
QUI::getLocale()->getCurrent()
);
$Formatter = new \IntlDateFormatter(
$localeCode[0],
\IntlDateFormatter::SHORT,
\IntlDateFormatter::NONE
);
if (!$date) {
$date = \time();
} else {
$date = \strtotime($date);
}
return $Formatter->format($date);
}
/**
* @param QUI\ERP\User $Customer
* @return string
*/
protected static function getCompanyOrName(QUI\ERP\User $Customer): string
{
$Address = $Customer->getStandardAddress();
if (!empty($Address->getAttribute('company'))) {
return $Address->getAttribute('company');
}
return $Customer->getName();
}
/**
* Return the company name of the quiqqer system
*
* @return string
*/
protected static function getCompanyName(): string
{
try {
$Conf = QUI::getPackage('quiqqer/erp')->getConfig();
$company = $Conf->get('company', 'name');
} catch (\Exception $Exception) {
QUI\System\Log::writeException($Exception);
return '';
}
if (empty($company)) {
return '';
}
return $company;
}
//endregion
}
0% Lade oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren