Ejemplo n.º 1
0
$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']) {
Ejemplo n.º 2
0
                $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'));