- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/notify.php
- Класс: BitrixSaleNotify
- Вызов: Notify::sendOrderPaid
static function sendOrderPaid(InternalsEntity $entity)
{
$result = new Result();
if (static::isNotifyDisabled())
{
return $result;
}
if (!$entity instanceof Order)
{
throw new MainArgumentTypeException('entity', 'BitrixSaleOrder');
}
if (static::hasSentEvent($entity->getId(), static::EVENT_ORDER_PAID_SEND_EMAIL_EVENT_NAME))
{
return $result;
}
if (!$entity->isPaid())
{
return $result;
}
$fields = Array(
"ORDER_ID" => $entity->getField("ACCOUNT_NUMBER"),
"ORDER_REAL_ID" => $entity->getField("ID"),
"ORDER_ACCOUNT_NUMBER_ENCODE" => urlencode(urlencode($entity->getField("ACCOUNT_NUMBER"))),
"ORDER_DATE" => '',
"EMAIL" => static::getUserEmail($entity),
"SALE_EMAIL" => MainConfigOption::get("sale", "order_email", "order@".$_SERVER["SERVER_NAME"]),
"ORDER_PUBLIC_URL" => HelpersOrder::isAllowGuestView($entity) ? HelpersOrder::getPublicLink($entity) : ""
);
$dateInsert = $entity->getDateInsert();
if (isset($dateInsert) && $dateInsert instanceof MainTypeDate)
{
$fields['ORDER_DATE'] = $dateInsert->toString();
}
$eventName = static::EVENT_ORDER_PAID_SEND_EMAIL_EVENT_NAME;
$send = true;
foreach(GetModuleEvents("sale", static::EVENT_ON_ORDER_PAID_SEND_EMAIL, true) as $oldEvent)
{
if (ExecuteModuleEventEx($oldEvent, array($entity->getId(), &$eventName, &$fields)) === false)
{
$send = false;
}
}
if($send)
{
$event = new CEvent;
$event->Send($eventName, $entity->getField('LID'), $fields, "Y", "", array(), static::getOrderLanguageId($entity));
}
CSaleMobileOrderPush::send(static::EVENT_MOBILE_PUSH_ORDER_PAID, array("ORDER" => static::getOrderFields($entity)));
static::addSentEvent($entity->getId(), static::EVENT_ORDER_PAID_SEND_EMAIL_EVENT_NAME);
return $result;
}