• Модуль: 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);
		}
	}
}