- Модуль: salescenter
- Путь к файлу: ~/bitrix/modules/salescenter/lib/integration/crmmanager.php
- Класс: BitrixSalesCenterIntegrationCrmManager
- Вызов: CrmManager::sendPaymentSlipBySms
public function sendPaymentSlipBySms(Payment $payment): bool
{
$paymentSlipManager = PaymentSlipManager::getManager();
if (!$paymentSlipManager)
{
return false;
}
$paymentSlipConfig = $paymentSlipManager->getConfig();
if (!$paymentSlipConfig->isSendingEnabled())
{
return false;
}
$messageBody = str_replace(
'#CHECK_URL#',
PaymentSlip::getFullPathToSlip($payment->getId()),
Loc::getMessage('SALESCENTER_CRMMANAGER_TERMINAL_PAYMENT_PAID_SMS_TEMPLATE')
);
$senders = [];
if ($paymentSlipConfig->isNotificationsEnabled())
{
$senders = [
CrmIntegrationNotificationsManager::getSenderCode() => [
'ACTIVITY_PROVIDER_TYPE_ID' => BaseMessage::PROVIDER_TYPE_SALESCENTER_TERMINAL_PAYMENT_PAID,
'TEMPLATE_CODE' => 'ORDER_PAYMENT_SLIP',
'PLACEHOLDERS' => [
'ORDER_PAYMENT' => PaymentSlip::getFullPathToSlip($payment->getId()),
],
],
];
}
else if ($senderId = $paymentSlipConfig->getSelectedSmsServiceId())
{
$senders = [
CrmIntegrationSmsManager::getSenderCode() => [
'ACTIVITY_PROVIDER_TYPE_ID' => BaseMessage::PROVIDER_TYPE_SALESCENTER_TERMINAL_PAYMENT_PAID,
'MESSAGE_BODY' => $messageBody,
'SENDER_ID' => $senderId,
],
];
}
else
{
return false;
}
$order = $payment->getOrder();
$entityCommunication = $order->getContactCompanyCollection()->getEntityCommunication();
if (!$entityCommunication)
{
return false;
}
$messageTo = CrmTerminalOrderProperty::getTerminalPhoneValue($order);
if (!$messageTo)
{
return false;
}
$result = CrmMessageSenderMessageSender::send(
$senders,
[
'COMMON_OPTIONS' => [
'PHONE_NUMBER' => $messageTo,
'USER_ID' => $order->getField('RESPONSIBLE_ID'),
'ADDITIONAL_FIELDS' => [
'ENTITY_TYPE' => $entityCommunication::getEntityTypeName(),
'ENTITY_TYPE_ID' => $entityCommunication::getEntityType(),
'ENTITY_ID' => $entityCommunication->getField('ENTITY_ID'),
'ENTITIES' => [
'ORDER' => $order,
'PAYMENT' => $payment,
],
'BINDINGS' => [
[
'OWNER_TYPE_ID' => $entityCommunication::getEntityType(),
'OWNER_ID' => $entityCommunication->getField('ENTITY_ID'),
],
],
'ACTIVITY_AUTHOR_ID' => $order->getField('RESPONSIBLE_ID'),
'ACTIVITY_DESCRIPTION' => $messageBody,
],
],
]
);
return $result->isSuccess();
}