3namespace Bitrix\Calendar\Controller;
5use Bitrix\Calendar\Access\ActionDictionary;
6use Bitrix\Calendar\Access\Model\SectionModel;
7use Bitrix\Calendar\Access\Model\TypeModel;
8use Bitrix\Calendar\Access\SectionAccessController;
9use Bitrix\Calendar\Access\TypeAccessController;
10use Bitrix\Calendar\Core\Event\Tools\Dictionary;
11use Bitrix\Calendar\Integration\Pull\PushCommand;
12use Bitrix\Calendar\Rooms;
14use Bitrix\Main\Loader;
15use Bitrix\Main\Localization\Loc;
16use Bitrix\Main\Engine\Controller;
19Loc::loadMessages(__FILE__);
23 public const TYPE =
'location';
34 if (Loader::includeModule(
'intranet') && !\
Bitrix\Intranet\Util::isIntranetUser())
39 $typeModel = TypeModel::createFromXmlId(Dictionary::CALENDAR_TYPE[
'location']);
46 $this->
addError(
new Error(Loc::getMessage(
'EC_ACCESS_DENIED')));
50 $builder = new \Bitrix\Calendar\Core\Builders\Rooms\RoomBuilderFromRequest($this->
getRequest());
56 ->eventHandler(
'OnAfterCalendarRoomCreate')
57 ->addPullEvent(PushCommand::CreateRoom)
67 return $manager->prepareResponseData();
79 if (Loader::includeModule(
'intranet') && !\
Bitrix\Intranet\Util::isIntranetUser())
84 $sectionId = (int)$this->
getRequest()->getPost(
'id');
85 $section = \CCalendarSect::GetById($sectionId);
89 $this->
addError(
new Error(Loc::getMessage(
'EC_ROOM_DELETE_ERROR')));
94 $sectionModel = SectionModel::createFromArray($section);
97 !
$accessController->check(ActionDictionary::ACTION_SECTION_EDIT, $sectionModel, [])
101 $this->
addError(
new Error(Loc::getMessage(
'EC_ACCESS_DENIED')));
105 $builder = new \Bitrix\Calendar\Core\Builders\Rooms\RoomBuilderFromRequest($this->
getRequest());
111 ->eventHandler(
'OnAfterCalendarRoomUpdate')
112 ->addPullEvent(PushCommand::UpdateRoom)
122 return $manager->prepareResponseData();
134 if (Loader::includeModule(
'intranet') && !\
Bitrix\Intranet\Util::isIntranetUser())
139 $sectionId = (int)$this->
getRequest()->getPost(
'id');
140 $section = \CCalendarSect::GetById($sectionId);
144 $this->
addError(
new Error(Loc::getMessage(
'EC_ROOM_DELETE_ERROR')));
149 $sectionModel = SectionModel::createFromArray($section);
152 !
$accessController->check(ActionDictionary::ACTION_SECTION_EDIT, $sectionModel, [])
156 $this->
addError(
new Error(Loc::getMessage(
'EC_ACCESS_DENIED')));
161 $builder = new \Bitrix\Calendar\Core\Builders\Rooms\RoomBuilderFromRequest($this->
getRequest());
166 ->deleteEmptyEvents()
167 ->deleteLocationFromEvents()
170 ->eventHandler(
'OnAfterCalendarRoomDelete')
171 ->addPullEvent(PushCommand::DeleteRoom)
181 return $manager->prepareResponseData();
193 if (Loader::includeModule(
'intranet') && !\
Bitrix\Intranet\Util::isIntranetUser())
198 $typeModel = TypeModel::createFromXmlId(Dictionary::CALENDAR_TYPE[
'location']);
200 if (!
$accessController->check(ActionDictionary::ACTION_TYPE_VIEW, $typeModel, []))
202 $this->
addError(
new Error(Loc::getMessage(
'EC_ACCESS_DENIED')));
219 if (Loader::includeModule(
'intranet') && !\
Bitrix\Intranet\Util::isIntranetUser())
224 $typeModel = TypeModel::createFromXmlId(Dictionary::CALENDAR_TYPE[
'location']);
226 if (!
$accessController->check(ActionDictionary::ACTION_TYPE_VIEW, $typeModel, []))
228 $this->
addError(
new Error(Loc::getMessage(
'EC_ACCESS_DENIED')));
243 if (Loader::includeModule(
'intranet') && !\
Bitrix\Intranet\Util::isIntranetUser())
248 if (Loader::includeModule(
'pull'))
250 $userId = \CCalendar::GetUserId();
252 \CPullWatch::Add(
$userId,
'calendar-location',
true);
255 $typeModel = TypeModel::createFromXmlId(Dictionary::CALENDAR_TYPE[
'location']);
257 if (!
$accessController->check(ActionDictionary::ACTION_TYPE_VIEW, $typeModel, []))
266 ->setLocationList(
$request->getPost(
'locationList'))
267 ->setDatesRange(
$request->getPost(
'datesRange'))
268 ->getLocationAccessibility()
278 $value = (
$request->getPost(
'value') ===
'true');
280 \CUserOptions::SetOption(
282 'hideSettingsHintLocation',
287 public function cancelBookingAction(): ?
array
289 if (Loader::includeModule(
'intranet') && !\
Bitrix\Intranet\Util::isIntranetUser())
297 $params[
'parent_event_id'] = (int)
$request->getPost(
'parent_event_id');
299 $params[
'current_event_date_from'] =
$request->getPost(
'current_event_date_from');
300 $params[
'current_event_date_to'] =
$request->getPost(
'current_event_date_to');
305 SectionModel::createFromId(
$params[
'section_id'])
306 ->setType(Dictionary::CALENDAR_TYPE[
'location'])
309 if (!
$accessController->check(ActionDictionary::ACTION_SECTION_ACCESS, $sectionModel, []))
311 $this->
addError(
new Error(Loc::getMessage(
'EC_ACCESS_DENIED')));
316 Rooms\Manager::createInstance()
332 if (Loader::includeModule(
'intranet') && !\
Bitrix\Intranet\Util::isIntranetUser())
337 $typeModel = TypeModel::createFromXmlId(Dictionary::CALENDAR_TYPE[
'location']);
344 $this->
addError(
new Error(Loc::getMessage(
'EC_ACCESS_DENIED')));
348 $builder = new \Bitrix\Calendar\Core\Builders\Rooms\Categories\CategoryBuilderFromRequest($this->
getRequest());
353 ->addPullEvent(PushCommand::CreateCategory)
368 if (Loader::includeModule(
'intranet') && !\
Bitrix\Intranet\Util::isIntranetUser())
373 $typeModel = TypeModel::createFromXmlId(Dictionary::CALENDAR_TYPE[
'location']);
380 $this->
addError(
new Error(Loc::getMessage(
'EC_ACCESS_DENIED')));
384 $builder = new \Bitrix\Calendar\Core\Builders\Rooms\Categories\CategoryBuilderFromRequest($this->
getRequest());
389 ->addPullEvent(PushCommand::UpdateCategory)
404 if (Loader::includeModule(
'intranet') && !\
Bitrix\Intranet\Util::isIntranetUser())
409 $typeModel = TypeModel::createFromXmlId(Dictionary::CALENDAR_TYPE[
'location']);
416 $this->
addError(
new Error(Loc::getMessage(
'EC_ACCESS_DENIED')));
420 $builder = new \Bitrix\Calendar\Core\Builders\Rooms\Categories\CategoryBuilderFromRequest($this->
getRequest());
425 ->addPullEvent(PushCommand::DeleteCategory)
440 if (Loader::includeModule(
'intranet') && !\
Bitrix\Intranet\Util::isIntranetUser())
445 $typeModel = TypeModel::createFromXmlId(Dictionary::CALENDAR_TYPE[
'location']);
447 if (!
$accessController->check(ActionDictionary::ACTION_TYPE_VIEW, $typeModel, []))
449 $this->
addError(
new Error(Loc::getMessage(
'EC_ACCESS_DENIED')));
461 if (Loader::includeModule(
'intranet') && !\
Bitrix\Intranet\Util::isIntranetUser())
466 $categoryManagerData = [];
470 return $categoryManagerData;
if(!Loader::includeModule('catalog')) if(!AccessController::getCurrent() ->check(ActionDictionary::ACTION_PRICE_EDIT)) if(!check_bitrix_sessid()) $request
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
getCategoryManagerDataAction()
getLocationAccessibilityAction()
hideSettingsHintLocationAction()
getRoomsManagerDataAction()
static createInstance(Category $category)
static createInstanceWithRoom(Room $room)
static prepareRoomManagerData()
static isLocationFeatureEnabled()
static getAvailableOperations()
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']