- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/crm.php
- Класс: BitrixImOpenLinesCrm
- Вызов: Crm::updateUserConnector
public function updateUserConnector(): Result
{
$result = new Result();
$fields = $this->getFields();
$session = $fields->getSession();
if (!empty($session))
{
$entitys = array_merge($this->registeredEntites, $this->updateEntites);
if (
$session->getData('SOURCE') == Connector::TYPE_LIVECHAT
&& ImUser::getInstance($session->getData('USER_ID'))->isConnector()
&& ImUser::getInstance($session->getData('USER_ID'))->getName() == ''
&& !empty($entitys)
)
{
$entityID = 0;
$entityType = null;
foreach ($entitys as $entity)
{
if ($entity['ENTITY_TYPE'] != 'DEAL' &&
(empty($entityID) || empty($entityType) || $entity['IS_PRIMARY'] == 'Y')
)
{
$entityID = $entity['ENTITY_ID'];
$entityType = $entity['ENTITY_TYPE'];
}
}
if (!empty($entityID) && !empty($entityType))
{
$entityData = CrmCommon::get($entityType, $entityID, false);
if (!empty($entityData) && (!empty($entityData['NAME']) || !empty($entityData['LAST_NAME']) || !empty($entityData['SECOND_NAME'])))
{
$user = new CUser();
$user->Update($session->getData('USER_ID'), Array(
'NAME' => $entityData['NAME'],
'LAST_NAME' => $entityData['LAST_NAME'],
'SECOND_NAME' => $entityData['SECOND_NAME'],
));
$relations = CIMChat::GetRelationById($session->getData('CHAT_ID'), false, true, false);
BitrixPullEvent::add(array_keys($relations), Array(
'module_id' => 'im',
'command' => 'userUpdate',
'params' => Array(
'user' => ImUser::getInstance($session->getData('USER_ID'))->getFields()
),
'extra' => BitrixImCommon::getPullExtra()
));
}
}
}
}
else
{
$result->addError(new Error(Loc::getMessage('IMOL_CRM_ERROR_NO_SESSION'), self::ERROR_IMOL_NO_SESSION, __METHOD__));
}
return $result;
}