• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar.php
  • Класс: CCalendar
  • Вызов: CCalendar::GetAccessibilityForUsers
static function GetAccessibilityForUsers($params)
{
	if (!isset($params['checkPermissions']))
	{
		$params['checkPermissions'] = true;
	}

	$res = CCalendarEvent::GetAccessibilityForUsers([
		'users' => $params['users'],
		'from' => $params['from'],
		'to' => $params['to'],
		'curEventId' => $params['curEventId'] ?? null,
		'checkPermissions' => $params['checkPermissions'],
	]);

	// Fetch absence from intranet
	if (isset($params['getFromHR']) && self::IsIntranetEnabled())
	{
		$resHR = CIntranetUtils::GetAbsenceData(
			array(
				'DATE_START' => $params['from'],
				'DATE_FINISH' => $params['to'],
				'USERS' => $params['users'],
				'PER_USER' => true,
				'SELECT' => array('ID', 'DATE_ACTIVE_FROM', 'DATE_ACTIVE_TO'),
			),
			BX_INTRANET_ABSENCE_HR
		);

		foreach($resHR as $userId => $forUser)
		{
			if (!isset($res[$userId]) || !is_array($res[$userId]))
			{
				$res[$userId] = [];
			}

			foreach($forUser as $event)
			{
				$res[$userId][] = [
					'FROM_HR' => true,
					'ID' => $event['ID'],
					'DT_FROM' => $event['DATE_ACTIVE_FROM'],
					'DT_TO' => $event['DATE_ACTIVE_TO'],
					'ACCESSIBILITY' => 'absent',
					'IMPORTANCE' => 'normal',
					"FROM" => self::Timestamp($event['DATE_ACTIVE_FROM']),
					"TO" => self::Timestamp($event['DATE_ACTIVE_TO']),
				];
			}
		}
	}

	return $res;
}