- Модуль: 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;
}