- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/crm.php
- Класс: BitrixImOpenLinesCrm
- Вызов: Crm::registerActivity
public function registerActivity(): Result
{
$result = new Result;
$fields = $this->getFields();
$session = $fields->getSession();
if (!Loader::includeModule('crm'))
{
$result->addError(new Error(Loc::getMessage('IMOL_CRM_ERROR_NOT_LOAD_CRM'), self::ERROR_IMOL_NOT_LOAD_CRM, __METHOD__));
}
if (empty($this->getEntityManageFacility()->getActivityBindings()))
{
$result->addError(new Error(Loc::getMessage('IMOL_CRM_ERROR_NO_CRM_BINDINGS'), self::ERROR_IMOL_NO_CRM_BINDINGS, __METHOD__));
}
if ($result->isSuccess() && !empty($session) && !empty($session->getData('ID')))
{
if ($session->getData('CRM_ACTIVITY_ID') > 0)
{
$result->setResult($session->getData('CRM_ACTIVITY_ID'));
}
else
{
$parsedUserCode = SessionCommon::parseUserCode($session->getData('USER_CODE'));
$connectorId = $parsedUserCode['CONNECTOR_ID'];
$lineId = $parsedUserCode['CONFIG_ID'];
$addFields = [
'LINE_ID' => $lineId,
'NAME' => Loc::getMessage('IMOL_CRM_CREATE_ACTIVITY_2', Array('#LEAD_NAME#' => $session->getChat()->getData('TITLE'), '#CONNECTOR_NAME#' => CrmCommon::getSourceName($session->getData('USER_CODE')))),
'SESSION_ID' => $session->getData('ID'),
'MODE' => $session->getData('MODE'),
'BINDINGS' => $this->getEntityManageFacility()->getActivityBindings(),
'OPERATOR_ID' => $this->getResponsibleCrmId(),
'USER_CODE' => $session->getData('USER_CODE'),
'CONNECTOR_ID' => $connectorId,
];
foreach (array_merge($this->updateEntites, $this->registeredEntites) as $item)
{
$addFields['ENTITES'][] = [
'ENTITY_ID' => $item['ENTITY_ID'],
'ENTITY_TYPE_ID' => CCrmOwnerType::ResolveId($item['ENTITY_TYPE'])
];
}
$resultAddActivity = Activity::add($addFields);
if ($resultAddActivity->isSuccess())
{
$result->setResult($resultAddActivity->getResult());
}
else
{
$result->addErrors($resultAddActivity->getErrors());
}
}
} else
{
$result->addError(new Error(Loc::getMessage('IMOL_CRM_ERROR_NO_SESSION'), self::ERROR_IMOL_NO_SESSION, __METHOD__));
}
return $result;
}