• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_history.php
  • Класс: CVoxImplantHistory
  • Вызов: CVoxImplantHistory::detectResponsible
static function detectResponsible(VICall $call)
{
	CVoxImplantHistory::WriteToLog($call->toArray(), "detectResponsible");
	$config = $call->getConfig();
	if($call->getQueueId() > 0)
	{
		$queue = VIQueue::createWithId($call->getQueueId());
		if($queue instanceof VIQueue)
		{
			$queueUser = $queue->getFirstUserId();
			if ($queueUser > 0)
			{
				$queue->touchUser($queueUser);
				return $queueUser;
			}
		}
	}

	if(is_array($config) && $config['CRM'] == 'Y' && $config['CRM_FORWARD'] == 'Y')
	{
		if($call->getPrimaryEntityType() != '' && $call->getPrimaryEntityId() > 0)
		{
			$responsibleId = CVoxImplantCrmHelper::getResponsible($call->getPrimaryEntityType(), $call->getPrimaryEntityId());
			if($responsibleId > 0)
			{
				return $responsibleId;
			}
		}
		else
		{
			$responsibleInfo = CVoxImplantIncoming::getCrmResponsible($call, false);
			if($responsibleInfo)
			{
				return $responsibleInfo['USER_ID'];
			}
		}
	}

	if(is_array($config) && $config['QUEUE_ID'] > 0)
	{
		$queue = VIQueue::createWithId($config['QUEUE_ID']);
		if($queue instanceof VIQueue)
		{
			$queueUser = $queue->getFirstUserId();
			if ($queueUser > 0)
			{
				$queue->touchUser($queueUser);
				return $queueUser;
			}
		}
	}

	return false;
}