Example #1
0
        $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'));
        if ($dbElements->Fetch()) {
            $bReserved = true;
        } else {
            // copy-paste sucks!
            include_once $_SERVER['DOCUMENT_ROOT'] . "/bitrix/components/bitrix/intranet.reserve_meeting/init.php";
            $arPeriodicElements = __IRM_SearchPeriodic($eventStart, $eventFinish, $arPlace['ROOM_IBLOCK'], $arPlace['ROOM_ID']);
            for ($i = 0, $l = count($arPeriodicElements); $i < $l; $i++) {
                if (!$reservationId || $arPeriodicElements[$i]['ID'] != $reservationId) {
                    $bReserved = true;
                    break;
                }
            }
        }
        Header('Content-Type: application/json');
        echo "{result:'" . ($bReserved ? 'reserved' : 'ok') . "'}";
    } else {
        Header('Content-Type: application/json');
        echo "{result:'error',error:'wrong_place_id'}";
    }
}
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_after.php";
Example #2
0
 public static function CheckMeetingRoom($Params)
 {
     $fromDateTime = MakeTimeStamp($Params['dateFrom']);
     $toDateTime = MakeTimeStamp($Params['dateTo']);
     $arFilter = array("ACTIVE" => "Y", "IBLOCK_ID" => $Params['RMiblockId'], "SECTION_ID" => $Params['mrid'], "<DATE_ACTIVE_FROM" => self::Date($toDateTime), ">DATE_ACTIVE_TO" => self::Date($fromDateTime), "PROPERTY_PERIOD_TYPE" => "NONE");
     if ($Params['mrevid_old'] > 0) {
         $arFilter["!=ID"] = $Params['mrevid_old'];
     }
     $dbElements = CIBlockElement::GetList(array("DATE_ACTIVE_FROM" => "ASC"), $arFilter, false, false, array('ID'));
     if ($arElements = $dbElements->GetNext()) {
         return 'reserved';
     }
     include_once $_SERVER['DOCUMENT_ROOT'] . "/bitrix/components/bitrix/intranet.reserve_meeting/init.php";
     $arPeriodicElements = __IRM_SearchPeriodic($fromDateTime, $toDateTime, $Params['RMiblockId'], $Params['mrid']);
     for ($i = 0, $l = count($arPeriodicElements); $i < $l; $i++) {
         if (!$Params['mrevid_old'] || $arPeriodicElements[$i]['ID'] != $Params['mrevid_old']) {
             return 'reserved';
         }
     }
     return true;
 }
Example #3
0
 if (StrLen($errorMessage) <= 0) {
     if ($regularityV == "NONE") {
         $t = MakeTimeStamp($startDateV, FORMAT_DATE);
         $fromDateTime = MkTime($arStartTimeVTmp[0], $arStartTimeVTmp[1], 0, Date("m", $t), Date("d", $t), Date("Y", $t));
         $toDateTime = MkTime($arStartTimeVTmp[0] + $arTimeoutTimeVTmp[0], $arStartTimeVTmp[1] + ($arTimeoutTimeVTmp[1] == "5" ? 30 : 0), 0, Date("m", $t), Date("d", $t), Date("Y", $t));
         $arFilter = array("ACTIVE" => "Y", "IBLOCK_ID" => $arMeeting["IBLOCK_ID"], "SECTION_ID" => $arMeeting["ID"], "<DATE_ACTIVE_FROM" => Date($GLOBALS["DB"]->DateFormatToPHP(FORMAT_DATETIME), $toDateTime), ">DATE_ACTIVE_TO" => Date($GLOBALS["DB"]->DateFormatToPHP(FORMAT_DATETIME), $fromDateTime), "PROPERTY_PERIOD_TYPE" => "NONE");
         if ($arItem) {
             $arFilter["!ID"] = $arItem["ID"];
         }
         $dbElements = CIBlockElement::GetList(array("DATE_ACTIVE_FROM" => "ASC"), $arFilter, false, false, array());
         while ($arElements = $dbElements->GetNext()) {
             $ft1 = MakeTimeStamp($arElements["DATE_ACTIVE_FROM"], FORMAT_DATETIME);
             $ft2 = MakeTimeStamp($arElements["DATE_ACTIVE_TO"], FORMAT_DATETIME);
             $errorMessage .= Str_Replace(array("#TIME1#", "#TIME2#", "#RES#"), array("<b>" . Date("H:i", $ft1) . "</b> " . Date("d.m", $ft1), "<b>" . Date("H:i", $ft2) . "</b> " . Date("d.m", $ft2), $arElements["NAME"]), GetMessage("INTASK_C29_CONFLICT") . ". ");
         }
         $arPeriodicElements = __IRM_SearchPeriodic($fromDateTime, $toDateTime, $arMeeting["IBLOCK_ID"], $arMeeting["ID"], $arItem ? $arItem["ID"] : 0);
         foreach ($arPeriodicElements as $pe) {
             $errorMessage .= Str_Replace(array("#TIME1#", "#TIME2#", "#RES#"), array("<b>" . Date("H:i", $pe["DATE_ACTIVE_FROM_TIME"]) . "</b> " . Date("d.m", $pe["DATE_ACTIVE_FROM_TIME"]), "<b>" . Date("H:i", $pe["DATE_ACTIVE_TO_TIME"]) . "</b> " . Date("d.m", $pe["DATE_ACTIVE_TO_TIME"]), $pe["NAME"]), GetMessage("INTASK_C29_CONFLICT") . ". ");
         }
     } else {
         $t = MakeTimeStamp($startDateV, FORMAT_DATE);
         $fromDateTime = MkTime($arStartTimeVTmp[0], $arStartTimeVTmp[1], 0, Date("m", $t), Date("d", $t), Date("Y", $t));
         $toDateTime = MkTime($arStartTimeVTmp[0] + $arTimeoutTimeVTmp[0], $arStartTimeVTmp[1] + ($arTimeoutTimeVTmp[1] == "5" ? 30 : 0), 0, Date("m", $t), Date("d", $t), Date("Y", $t));
         $regularityLength = $toDateTime - $fromDateTime;
         $toDateTime = MakeTimeStamp($regularityEndV, FORMAT_DATE);
     }
 }
 if (StrLen($errorMessage) <= 0) {
     $arFields = array("NAME" => $nameV, "DATE_ACTIVE_FROM" => Date($GLOBALS["DB"]->DateFormatToPHP(FORMAT_DATETIME), $fromDateTime), "DATE_ACTIVE_TO" => Date($GLOBALS["DB"]->DateFormatToPHP(FORMAT_DATETIME), $toDateTime), "CREATED_BY" => $GLOBALS["USER"]->GetID(), "DETAIL_TEXT" => $descriptionV, "PROPERTY_VALUES" => array($arResult["ALLOWED_ITEM_PROPERTIES"]["UF_PERSONS"]["ID"] => array($personsV), $arResult["ALLOWED_ITEM_PROPERTIES"]["UF_RES_TYPE"]["ID"] => array($resTypeV), $arResult["ALLOWED_ITEM_PROPERTIES"]["UF_PREPARE_ROOM"]["ID"] => array($prepareRoomV), $arResult["ALLOWED_ITEM_PROPERTIES"]["PERIOD_TYPE"]["ID"] => array($regularityV), $arResult["ALLOWED_ITEM_PROPERTIES"]["PERIOD_COUNT"]["ID"] => array($regularityCountV), $arResult["ALLOWED_ITEM_PROPERTIES"]["EVENT_LENGTH"]["ID"] => array($regularityLength), $arResult["ALLOWED_ITEM_PROPERTIES"]["PERIOD_ADDITIONAL"]["ID"] => array($regularityAdditionalVString)), "ACTIVE" => "Y");
     $iblockElementObject = new CIBlockElement();
     if ($arItem) {