• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/integrations/report/handlers/base.php
  • Класс: BitrixImOpenLinesIntegrationsReportHandlersBase
  • Вызов: Base::getResponsible
protected function getResponsible()
{
	static $result = null;
	if ($result !== null)
	{
		return $result;
	}

	$operatorIds = [];
	$operatorsLines = [];
	$result = [
		'operatorsName' => [],
		'operatorsLines' => []
	];

	$queueResults = QueueTable::getList([
		'select' => [
			'ID',
			'USER_ID',
			'CONFIG_ID'
		],
		'order' => [
			'USER_ID' => 'ASC'
		]
	])->fetchAll();

	foreach ($queueResults as $resultRow)
	{
		$operatorIds[$resultRow['ID']] = (int)$resultRow['USER_ID'];
		$operatorsLines[$resultRow['CONFIG_ID']][(int)$resultRow['USER_ID']] = '';
	}

	if (!$operatorIds)
	{
		return $result;
	}

	$userQuery = new Query(UserTable::getEntity());
	$userQuery->addSelect('ID');
	$userQuery->addSelect('NAME');
	$userQuery->addSelect('LAST_NAME');
	$userQuery->whereIn('ID', $operatorIds);
	$users = $userQuery->exec()->fetchAll();

	foreach ($users as $user)
	{
		$name = CUser::FormatName(CSite::GetDefaultNameFormat(), [
			'NAME' => $user['NAME'],
			'LAST_NAME' => $user['LAST_NAME']
		]);

		$result['operatorsName'][$user['ID']] = $name;
	}
	foreach ($operatorsLines as $idLines => $operators)
	{
		foreach ($operators as $id => $name)
		{
			if(isset($result['operatorsName'][$id]))
			{
				$result['operatorsLines'][$idLines][$id] = $result['operatorsName'][$id];
			}
		}
	}

	return $result;
}