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