• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/order/tradingplatform/telegram/eventhandler.php
  • Класс: Bitrix\Crm\Order\TradingPlatform\Telegram\EventHandler
  • Вызов: EventHandler::saveTelegramUserCodeToContact
static function saveTelegramUserCodeToContact(Crm\Order\Order $order): void
{
	$telegramUserCode = self::getTelegramUserCode();
	if ($telegramUserCode)
	{
		$contactCompanyCollection = $order->getContactCompanyCollection();

		/** @var Crm\Order\Contact $contact */
		$contact = $contactCompanyCollection->getPrimaryContact();
		if ($contact)
		{
			$crmEntityType = Crm\Order\Contact::getEntityTypeName();
			$crmEntityId = $contact->getField('ENTITY_ID');

			$value = 'imol|' . $telegramUserCode;

			$dbRes = \CCrmFieldMulti::GetListEx(
				['ID' => 'asc'],
				[
					'ENTITY_ID' => $crmEntityType,
					'ELEMENT_ID' => $crmEntityId,
					'VALUE_TYPE' => Crm\Communication\Type::TELEGRAM_NAME,
					'VALUE' => $value,
				]
			);
			if (!$dbRes->Fetch())
			{
				$arFields = [
					'ID' => $crmEntityId,
					'FM' => [
						'IM' => [
							'n0' => [
								'VALUE_TYPE' => Crm\Communication\Type::TELEGRAM_NAME,
								'VALUE' => $value,
							],
						],
					]
				];
				$crmContact = new \CCrmContact(false);
				$crmContact->Update($crmEntityId, $arFields);
			}
		}
	}
}