• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/crm.php
  • Класс: BitrixImOpenLinesCrm
  • Вызов: Crm::getResponsibleCrmId
public function getResponsibleCrmId()
{
	$result = 0;

	$session = $this->getFields()->getSession();

	if (!empty($session))
	{
		if (!empty($session->getData('OPERATOR_ID')) && $session->getData('OPERATOR_ID') > 0)
		{
			$result = $session->getData('OPERATOR_ID');
		}
		else
		{
			//TODO: fix
			$session->getConfig('ID');
			$res = Queue::getList([
				'select' => [
					'USER_ID'
				],
				'filter' => [
					'=CONFIG_ID' => $session->getConfig('ID')
				],
				'order' => [
					'SORT' => 'ASC',
					'ID' => 'ASC'
				],
			]);

			while ($queueUser = $res->fetch())
			{
				if (ImUser::getInstance($queueUser['USER_ID'])->isActive())
				{
					$queueUserList[] = $queueUser['USER_ID'];
				}
			}

			if (!empty($queueUserList) && is_array($queueUserList))
			{
				$result = current($queueUserList);
			}

			if (empty($result))
			{
				$adminList = Common::getAdministrators();

				if (
					!empty($adminList)
					&& is_array($adminList)
				)
				{
					$result = current($adminList);
				}
			}
			//TODO: END fix

			if (empty($result))
			{
				$result = $session->getData('USER_ID');
			}
		}
	}

	return $result;
}