- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/crm.php
- Класс: BitrixImOpenLinesCrm
- Вызов: Crm::getSourceId
public function getSourceId(): Result
{
$result = new Result;
$session = $this->getFields()->getSession();
if (!empty($session))
{
$statuses = CCrmStatus::GetStatusList("SOURCE");
if (
$session->getConfig('CRM_SOURCE') == Config::CRM_SOURCE_AUTO_CREATE ||
!isset($statuses[$session->getConfig('CRM_SOURCE')])
)
{
$crmSource = $session->getData('CONFIG_ID') . '|' .
CrmCommon::getCommunicationType(
$session->getData('USER_CODE'), true
);
$crmSource = mb_substr($crmSource, 0, 50);
if (!isset($statuses[$crmSource]))
{
$entity = new CCrmStatus("SOURCE");
$entity->Add(array(
'NAME' => CrmCommon::getSourceName($session->getData('USER_CODE'), $session->getConfig('LINE_NAME')),
'STATUS_ID' => $crmSource,
'SORT' => 115,
'SYSTEM' => 'N'
));
}
$result->setResult($crmSource);
}
else
{
$result->setResult($session->getConfig('CRM_SOURCE'));
}
}
else
{
$result->addError(new Error(Loc::getMessage('IMOL_CRM_ERROR_NO_SESSION'), self::ERROR_IMOL_NO_SESSION, __METHOD__));
}
return $result;
}