- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/rooms/manager.php
- Класс: BitrixCalendarRoomsManager
- Вызов: Manager::cancelBooking
public function cancelBooking(array $params = []): Manager
{
$params = [
'recursion_mode' => $params['recursion_mode'] ?? null,
'parent_event_id' => $params['parent_event_id'] ?? null,
'section_id' => $params['section_id'] ?? null,
'current_event_date_from' => $params['current_event_date_from'] ?? null,
'current_event_date_to' => $params['current_event_date_to'] ?? null,
'owner_id' => $params['owner_id'] ?? null,
];
if($this->getError() !== null)
{
return $this;
}
if($params['recursion_mode'] === 'all' || $params['recursion_mode'] === 'next')
{
$event = CCalendarEvent::GetById($params['parent_event_id']);
$params['frequency'] = $event['RRULE']['FREQ'] ?? null;
if($params['recursion_mode'] === 'all')
{
$params['current_event_date_from'] = $event['DATE_FROM'] ?? null;
$params['current_event_date_to'] = $event['DATE_TO'] ?? null;
}
}
$result = CCalendar::SaveEventEx([
'recursionEditMode' => $params['recursion_mode'],
'currentEventDateFrom' => $params['current_event_date_from'],
'checkPermission' => false,
'sendInvitations' => false,
'userId' => $params['owner_id'],
'arFields' => [
'ID' => $params['parent_event_id'],
'DATE_FROM' => $params['current_event_date_from'],
'DATE_TO' => $params['current_event_date_to'],
'LOCATION' => '',
],
]);
$params['event_id'] = $result['recEventId'] ?? $result['id'] ?? null;
$this->sendCancelBookingNotification($params);
return $this;
}