• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/core/managers/accessibility.php
  • Класс: BitrixCalendarCoreManagersAccessibility
  • Вызов: Accessibility::getBusyUsersIds
public function getBusyUsersIds(array $userIds, int $timestampFromUTC, int $timestampToUTC): array
{
	$dateFromTs = CCalendar::TimestampUTC(Util::formatDateTimestampUTC($timestampFromUTC));
	$dateToTs = CCalendar::TimestampUTC(Util::formatDateTimestampUTC($timestampToUTC));
	$accessibility = $this
		->setCheckPermissions(false)
		->getAccessibility($userIds, $dateFromTs, $dateToTs)
	;

	$busyUsersList = [];
	$timezoneName = CCalendar::GetUserTimezoneName(CCalendar::GetUserId());
	$timezoneOffset = Util::getTimezoneOffsetUTC($timezoneName);
	foreach ($accessibility as $userId => $events)
	{
		foreach ($events as $accessibilityItem)
		{
			$itemFrom = CCalendar::TimestampUTC($accessibilityItem['from']);
			$itemTo = CCalendar::TimestampUTC($accessibilityItem['to']);

			if ($accessibilityItem['isFullDay'])
			{
				$itemFrom -= $timezoneOffset;
				$itemTo -= $timezoneOffset;
			}

			if ($this->doIntervalsIntersect($timestampFromUTC, $timestampToUTC, $itemFrom, $itemTo))
			{
				$busyUsersList[] = $userId;
			}
		}
	}

	return $busyUsersList;
}