$arParams['EDIT'] = $arParams['EDIT'] == 'Y' || $arParams['MEETING_ID'] <= 0 || $arParams['COPY']; $arResult['IS_NEW_CALENDAR'] = CMeeting::IsNewCalendar(); $arResult['START_INDEX'] = 0; if ($arParams['MEETING_ID'] > 0) { $arResult['ACCESS'] = CMeeting::GetUserRole($arParams['MEETING_ID']); if ($arResult['ACCESS']) { if ($_REQUEST['DELETE'] == 'Y' && $arResult['ACCESS'] == CMeeting::ROLE_OWNER && check_bitrix_sessid()) { CMeeting::Delete($arParams['MEETING_ID']); $APPLICATION->RestartBuffer(); die; } $dbRes = CMeeting::GetList(array(), array('ID' => $arParams['MEETING_ID']), false, false, array('*')); if (!($arResult['MEETING'] = $dbRes->GetNext())) { return ShowError(GetMessage("ME_MEETING_NOT_FOUND")); } if (CMeeting::CheckPlace($arResult["MEETING"]["PLACE"])) { $arResult["MEETING"]["PLACE_ID"] = $arResult["MEETING"]["PLACE"]; } $arResult['MEETING']['USERS'] = CMeeting::GetUsers($arParams['MEETING_ID']); $arResult['MEETING']['CURRENT_RIGHTS'] = $arResult['ACCESS']; //$arResult['MEETING']['USERS'][$USER->GetID()]; // not arParams[USER_ID]! if (!$arResult['MEETING']['CURRENT_RIGHTS']) { return ShowError(GetMessage("ME_MEETING_ACCESS_DENIED")); } $arResult['MEETING']['FILES'] = array(); $dbFiles = CMeeting::GetFiles($arParams['MEETING_ID']); while ($arFile = $dbFiles->Fetch()) { $arResult['MEETING']['FILES'][$arFile['FILE_ID']] = $arFile; } if (!$arParams['COPY'] && $arResult['MEETING']['EVENT_ID'] > 0) { if ($arResult['IS_NEW_CALENDAR']) {
$arMeeting['USERS'] = CMeeting::GetUsers($MEETING_ID); foreach ($arMeeting['USERS'] as $userId => $userRole) { if ($userRole == CMeeting::ROLE_OWNER) { $ownerId = $userId; } } $arMeeting['OWNER_ID'] = $ownerId; $arMeeting['REINVITE'] = false; CMeeting::AddEvent($MEETING_ID, $arMeeting); } Header('Content-Type: application/json'); echo "{id: '" . $MEETING_ID . "', state: '" . $arMeeting['CURRENT_STATE'] . "', date_start: '" . MakeTimeStamp($arMeeting['DATE_START']) . "000'}"; } } } elseif (isset($_REQUEST['PLACE_ID'])) { $arPlace = CMeeting::CheckPlace($_REQUEST['PLACE_ID']); if (is_array($arPlace) && $arPlace['ROOM_IBLOCK'] > 0 && $arPlace['ROOM_ID'] > 0) { $eventId = intval($_REQUEST['EVENT_ID']); $eventStart = CMeeting::MakeDateTime($_REQUEST['DATE_START_DATE'], $_REQUEST['DATE_START_TIME']); $eventFinish = CMeeting::MakeDateTime($_REQUEST['DATE_START_DATE'], $_REQUEST['DATE_START_TIME'], $_REQUEST['DURATION']); $arFilter = array("ACTIVE" => "Y", "IBLOCK_ID" => $arPlace['ROOM_IBLOCK'], "SECTION_ID" => $arPlace['ROOM_ID'], "<DATE_ACTIVE_FROM" => $eventFinish, ">DATE_ACTIVE_TO" => $eventStart, "PROPERTY_PERIOD_TYPE" => "NONE"); $reservationId = 0; if ($eventId > 0) { $arEvent = CMeeting::GetEvent($eventId); if (is_array($arEvent) && is_array($arEvent['LOCATION']) && $arEvent['LOCATION']['mrevid'] > 0) { $reservationId = $arEvent['LOCATION']['mrevid']; $arFilter["!=ID"] = $reservationId; } } $bReserved = false; $dbElements = CIBlockElement::GetList(array("DATE_ACTIVE_FROM" => "ASC"), $arFilter, false, false, array('ID'));