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