Your IP : 3.17.162.17
<?php
namespace OnlinePaid;
use CComponentUtil,
CEvent,
CSaleBasket;
/**
* Class MailerController
* @package OnlinePaid
*/
class MailerController
{
/**
* this .parameters.php
* @var array|bool
*/
private $config = array();
/**
* MailerController constructor.
*/
public function __construct()
{
$this->config = CComponentUtil::GetComponentProps('online_paid:fsk')['PARAMETERS'];
}
/**
* Шлем юзеру инфу об оплаченном заказе
*
* @param $orderInfo
* @param $userInfo
*/
public function prepareMailToUser($orderInfo, $userInfo)
{
$orderItems = CSaleBasket::GetList(
array(
"NAME" => "ASC",
"ID" => "ASC"
),
array(
"USER_ID" => $orderInfo['USER_ID'],
"LID" => $orderInfo['LID'],
"DELAY" => "N",
"CAN_BUY" => "Y",
"ORDER_ID" => $orderInfo['ID']
),
false,
false,
array()
);
$oItems = '';
while ($item = $orderItems->Fetch()) {
$itemAmount = number_format(($item['PRICE'] * $item['QUANTITY']), 0, '.', ' ');
$PRICE = number_format($item['PRICE'], 0, '.', ' ');
$tpl = "<p>Название: {$item['NAME']}" .
"<br />Количество: {$item['QUANTITY']}" .
"<br />Цена за единицу: {$PRICE}" .
"<br /> Сумма: {$itemAmount} руб.</p>";
$oItems .= $tpl;
}
$mailData = array(
"SALE_EMAIL" => $this->config['MAILER']['SALE_EMAIL'],
"SITE_NAME" => $this->config['MAILER']['SITE_NAME'],
"EMAIL" => $userInfo['EMAIL'], // Мыло клиента
"ORDER_ID" => $orderInfo['ID'],
"ORDER_DATE" => $orderInfo['DATE_UPDATE_FORMAT'], // Дата заказа
"PAY_SYSTEM_NAME" => $this->config['PAID_TYPES'][$orderInfo['PAY_SYSTEM_ID']], // Тип оплаты
"PRICE_FULL" => number_format($orderInfo['PRICE'], 0, '.', ' '), // Полная стоимость заказа
"ORDER_LIST_FULL" => $oItems, // Состав заказа
"ORDER_DESCRIPTION" => $orderInfo['COMMENTS'], // Комментарий к заказу
);
$this->sender($this->config['MAILER']['USER_EVENT_TYPE'], $orderInfo['LID'], $mailData);
}
/**
* Шлем админу.
* - Если заказ оплачен
* - Если банк вернул ошибку
*
* @param $orderInfo
* @param $userInfo
* @param $TO_CITY_EMAIL
* @param string $ErrorMessage
*/
public function prepareMailToAdmin($orderInfo, $userInfo, $ErrorMessage = '', $TO_CITY_EMAIL)
{
$ADMIN_EVENT_TYPE = (empty($ErrorMessage) ? $this->config['MAILER']['ADMIN_EVENT_TYPE'] : $this->config['MAILER']['ADMIN_ERROR_EVENT_TYPE']);
$mailData = array(
"SALE_EMAIL" => $this->config['MAILER']['SALE_EMAIL'],
"SITE_NAME" => $this->config['MAILER']['SITE_NAME'],
"ORDER_ID" => $orderInfo['ID'],
"ORDER_DATE" => $orderInfo['DATE_UPDATE_FORMAT'], // Дата заказа
"USER_NAME" => "{$userInfo['LAST_NAME']} {$userInfo['NAME']} {$userInfo['SECOND_NAME']}",
"USER_PHONE" => $userInfo['PERSONAL_PHONE'],
"PRICE_FULL" => number_format($orderInfo['PRICE'], 0, '.', ' '), // Полная стоимость заказа
"ERROR_MSG" => $ErrorMessage, // Описание ошибки
"TO_CITY_EMAIL" => $TO_CITY_EMAIL, // мыло админа кому упадет письмо
);
$this->sender($ADMIN_EVENT_TYPE, $orderInfo['LID'], $mailData);
}
/**
* @param $event
* @param $lid
* @param $data
*/
private function sender($event, $lid, $data)
{
CEvent::Send($event, $lid, $data, "N", '');
}
}