AccessibilityManager::getLocationAccessibility

  1. Bitrix24 API (v. 23.675.0)
  2. calendar
  3. AccessibilityManager
  4. getLocationAccessibility
  • Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/rooms/accessibilitymanager.php
  • Класс: BitrixCalendarRoomsAccessibilityManager
  • Вызов: AccessibilityManager::getLocationAccessibility
public function getLocationAccessibility(): array
{
	$result = [];

	if (!is_array($this->datesRange) || !is_array($this->locationList))
	{
		return $result;
	}

	$datesLength = count($this->datesRange);
	if (!$datesLength)
	{
		return $result;
	}
	
	foreach ($this->datesRange as $date)
	{
		$result[$date] = [];
	}
	
	foreach ($this->locationList as $location)
	{
		$roomId = (int)$location['ID'];
		$entries = self::getRoomAccessibility(
			$roomId,
			$this->datesRange[0],
			$this->datesRange[$datesLength - 1]
		);

		foreach ($entries as $entry)
		{

			$dateStart = new DateTime($entry['DATE_FROM']);
			$dateEnd = new DateTime($entry['DATE_TO']);
			while ($dateStart->getTimestamp() <= $dateEnd->getTimestamp())
			{
				$date = $dateStart->format('d.m.Y');
				$dateStart->add('1 day');
				if (!isset($result[$date]))
				{
					continue;
				}
				if (!isset($result[$date][$roomId]))
				{
					$result[$date][$roomId] = [];
				}

				$result[$date][$roomId][] = $entry;
			}
		}
	}
	
	return $result;
}

Добавить комментарий