function rsvConfirmCancelObject() { global $ilCtrl, $lng, $tpl, $ilAccess, $ilUser; $ids = $this->getLogReservationIds(); if (!sizeof($ids)) { $this->ctrl->redirect($this, 'log'); } include_once 'Modules/BookingManager/classes/class.ilBookingObject.php'; include_once 'Modules/BookingManager/classes/class.ilBookingReservation.php'; $max = array(); foreach ($ids as $idx => $id) { if (!is_numeric($id)) { list($obj_id, $user_id, $from, $to) = explode("_", $id); $valid_ids = array(); foreach (ilBookingObject::getList($this->object->getId()) as $item) { $valid_ids[$item["booking_object_id"]] = $item["title"]; } if (($ilAccess->checkAccess("write", "", $this->ref_id) || $user_id == $ilUser->getId()) && $from > time() && in_array($obj_id, array_keys($valid_ids))) { $rsv_ids = ilBookingReservation::getCancelDetails($obj_id, $user_id, $from, $to); if (!sizeof($rsv_ids)) { unset($ids[$idx]); } if (sizeof($rsv_ids) > 1) { $max[$id] = sizeof($rsv_ids); $ids[$idx] = $rsv_ids; } else { // only 1 in group? treat as normal reservation $ids[$idx] = array_shift($rsv_ids); } } else { unset($ids[$idx]); } } } if (!sizeof($ids)) { $this->ctrl->redirect($this, 'log'); } // show form instead if (sizeof($max) && max($max) > 1) { return $this->rsvConfirmCancelAggregationObject($ids); } $this->tabs_gui->clearTargets(); $this->tabs_gui->setBackTarget($lng->txt("back"), $ilCtrl->getLinkTarget($this, "log")); include_once 'Services/Utilities/classes/class.ilConfirmationGUI.php'; $conf = new ilConfirmationGUI(); $conf->setFormAction($ilCtrl->getFormAction($this, 'rsvCancel')); $conf->setHeaderText($lng->txt('book_confirm_cancel')); $conf->setConfirm($lng->txt('book_set_cancel'), 'rsvCancel'); $conf->setCancel($lng->txt('cancel'), 'log'); foreach ($ids as $id) { $rsv = new ilBookingReservation($id); $obj = new ilBookingObject($rsv->getObjectId()); $details = $obj->getTitle(); if ($this->object->getScheduleType() != ilObjBookingPool::TYPE_NO_SCHEDULE) { $details .= ", " . ilDatePresentation::formatPeriod(new ilDateTime($rsv->getFrom(), IL_CAL_UNIX), new ilDateTime($rsv->getTo() + 1, IL_CAL_UNIX)); } $conf->addItem('rsv_id[]', $id, $details); } $tpl->setContent($conf->getHTML()); }