IBlockMeetingRoom::checkMeetingRoom

  1. Bitrix24 API (v. 23.675.0)
  2. calendar
  3. IBlockMeetingRoom
  4. checkMeetingRoom
  • Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/rooms/iblockmeetingroom.php
  • Класс: BitrixCalendarRoomsIBlockMeetingRoom
  • Вызов: IBlockMeetingRoom::checkMeetingRoom
static function checkMeetingRoom($params)
{
	if (!Loader::includeModule('iblock'))
	{
		return false;
	}

	$fromDateTime = MakeTimeStamp($params['dateFrom']);
	$toDateTime = MakeTimeStamp($params['dateTo']);
	$filter = [
		'ACTIVE' => 'Y',
		'IBLOCK_ID' => $params['RMiblockId'],
		'SECTION_ID' => $params['mrid'],
		' $params['dateTo'],
		'>DATE_ACTIVE_TO' => $params['dateFrom'],
		'PROPERTY_PERIOD_TYPE' => 'NONE',
	];
	
	if ($params['mrevid_old'] > 0)
	{
		$filter['!=ID'] = $params['mrevid_old'];
	}

	$dbElements = CIBlockElement::GetList(
		['DATE_ACTIVE_FROM' => 'ASC'],
		$filter,
		false,
		false,
		['ID']
	);
	if ($elements = $dbElements->GetNext())
	{
		return 'reserved';
	}
	
	include_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/components/bitrix/intranet.reserve_meeting/init.php');
	$periodicElements = __IRM_SearchPeriodic($fromDateTime, $toDateTime, $params['RMiblockId'], $params['mrid']);

	foreach ($periodicElements as $element)
	{
		if (!$params['mrevid_old'] || (int)$element['ID'] !== (int)$params['mrevid_old'])
		{
			return 'reserved';
		}
	}

	return true;
}

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