- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar_restservice.php
- Класс: CCalendarRestService
- Вызов: CCalendarRestService::ResourceBookingAdd
static function ResourceBookingAdd($params = array())
// {
// $userId = CCalendar::GetCurUserId();
// $methodName = "calendar.resource.booking.add";
//
// $necessaryParams = array('resourceType', 'resourceId', 'from', 'to');
//
// if (isset($params['from']))
// {
// $params['from'] = CRestUtil::unConvertDateTime($params['from']);
// }
//
// if (isset($params['to']))
// {
// $params['to'] = CRestUtil::unConvertDateTime($params['to']);
// }
//
// if (isset($params['resourceId']))
// {
// $params['resourceId'] = intval($params['resourceId']);
// }
//
// $params['bindingEntityType'] = isset($params['bindingEntityType']) ? $params['bindingEntityType'] : 'REST';
// $params['bindingEntityId'] = isset($params['bindingEntityId']) ? intval($params['bindingEntityId']) : 0;
//
// foreach ($necessaryParams as $param)
// {
// if (!isset($params[$param]) || empty($params[$param]))
// {
// throw new RestException(Loc::getMessage('CAL_REST_PARAM_EXCEPTION', array('#PARAM_NAME#' => $param,'#REST_METHOD#' => $methodName)));
// }
// }
//
// if (!in_array($params['resourceType'], ['user', 'resource']))
// {
// throw new RestException(Loc::getMessage('CAL_REST_RES_TYPE_ERROR', array('#ALLOWED_TYPES#' => 'user|resource')));
// }
//
// $entryFields = array(
// "DATE_FROM" => $params['from'],
// "DATE_TO" => $params['to'],
// "SKIP_TIME" => $params['skip_time'],
// "NAME" => !empty($params['bookingName']) ? $params['bookingName'] : Loc::getMessage('CAL_REST_RES_BOOKING_DEFAULT_VALUE')
// );
//
// if ($params['serviceName'] !== '')
// {
// $entryFields["DESCRIPTION"] = Loc::getMessage("CAL_REST_RES_BOOKING_SERVICE_LABEL").': '.$params['serviceName'];
// }
//
// if (strtoupper($params['skipTime']) !== 'Y')
// {
// $userTimezoneName = CCalendar::getUserTimezoneName($userId, true);
// if($userTimezoneName)
// {
// $entryFields['TZ_FROM'] = $userTimezoneName;
// $entryFields['TZ_TO'] = $userTimezoneName;
// }
// }
//
// $resourceBookingId = BitrixCalendarUserFieldResourceBooking::saveResource(
// false,
// $params['resourceType'],
// $params['resourceId'],
// $entryFields,
// [
// 'serviceName' => $params['serviceName'],
// 'bindingEntityType' => $params['bindingEntityType'],
// 'bindingEntityId' => $params['bindingEntityId'],
// 'bindingUserfieldId' => $params['bindingUserfieldId']
// ]
// );
//
// if (!$resourceBookingId)
// {
// throw new RestException(Loc::getMessage("CAL_REST_RESOURCE_BOOKING_ADD_ERROR"));
// }
//
// return $resourceBookingId;
// }