- Модуль: salescenter
- Путь к файлу: ~/bitrix/modules/salescenter/lib/integration/crmmanager.php
- Класс: BitrixSalesCenterIntegrationCrmManager
- Вызов: CrmManager::onSendPayment
static function onSendPayment(string $destination, MainEvent $event)
{
/** @var array $messageFields */
$additionalFields = $event->getParameter('ADDITIONAL_FIELDS');
if (!$additionalFields)
{
return;
}
/** @var OrderPayment $payment */
$payment = $additionalFields['ENTITIES']['PAYMENT'] ?? null;
if ($payment)
{
$shipment = $additionalFields['ENTITIES']['SHIPMENT'] ?? null;
if (static::needAddTimelineEntryOnPaymentSendSms($payment, $destination))
{
static::addTimelineEntryOnPaymentSend(
$payment,
[
'DESTINATION' => $destination,
'PAYMENT_ID' => $payment->getId(),
'SHIPMENT_ID' => $shipment ? $shipment->getId() : 0,
]
);
}
PaymentWorkflow::createFrom($payment)->setStage(PaymentStage::SENT_NO_VIEWED);
$order = $additionalFields['ENTITIES']['ORDER'] ?? null;
$provider = $additionalFields['SENDER_ID'] ?? null;
if ($order && $provider)
{
$channel = new OrderSendingChannelsSms($provider);
$manager = new OrderSendingChannelsManager();
$manager->bindChannelToOrder($order, $channel);
static::addAnalyticsOnSendOrderBySms($order);
}
}
}