/** * Gather data and build rows */ function getItems() { global $ilUser; include_once 'Modules/BookingManager/classes/class.ilBookingObject.php'; $data = ilBookingObject::getList($this->pool_id); include_once 'Modules/BookingManager/classes/class.ilBookingReservation.php'; foreach ($data as $item) { $item_id = $item["booking_object_id"]; $item_rsv = ilBookingReservation::getList(array($item_id), 1000, 0, array()); $this->reservations[$item_id] = $item_rsv["data"]; } if (!$this->has_schedule && $this->overall_limit) { $this->current_bookings = 0; foreach ($this->reservations as $obj_rsv) { foreach ($obj_rsv as $item) { if ($item["status"] != ilBookingReservation::STATUS_CANCELLED) { if ($item["user_id"] == $ilUser->getId()) { $this->current_bookings++; } } } } if ($this->current_bookings >= $this->overall_limit) { ilUtil::sendInfo($this->lng->txt("book_overall_limit_warning")); } } $this->setMaxCount(sizeof($data)); $this->setData($data); }
/** * Cancel consultation appointment or ressource booking, was confirmed * This will delete the calendar entry */ public function cancelConfirmed() { global $ilUser; $entry = (int) $_POST['app_id']; $user = (int) $_GET['bkid']; include_once 'Services/Calendar/classes/class.ilCalendarEntry.php'; $entry = new ilCalendarEntry($entry); $category = $this->calendarEntryToCategory($entry); if ($category->getType() == ilCalendarCategory::TYPE_CH) { // find cloned calendar entry in user calendar include_once 'Services/Calendar/classes/ConsultationHours/class.ilConsultationHourAppointments.php'; $GLOBALS['ilLog']->dump($entry->getStart()); $apps = ilConsultationHourAppointments::getAppointmentIds($ilUser->getId(), $entry->getContextId(), $entry->getStart(), ilCalendarCategory::TYPE_CH, false); $GLOBALS['ilLog']->dump($apps); // Fix for wrong, old entries foreach ((array) $apps as $own_app) { $ref_entry = new ilCalendarEntry($own_app); $ref_entry->delete(); } include_once 'Services/Booking/classes/class.ilBookingEntry.php'; $booking = new ilBookingEntry($entry->getContextId()); $booking->cancelBooking($entry->getEntryId()); // do NOT delete original entry } else { if ($category->getType() == ilCalendarCategory::TYPE_BOOK) { include_once 'Modules/BookingManager/classes/class.ilBookingReservation.php'; $booking = new ilBookingReservation($entry->getContextId()); $booking->setStatus(ilBookingReservation::STATUS_CANCELLED); $booking->update(); $entry->delete(); } } ilUtil::sendSuccess($this->lng->txt('cal_cancel_booking_confirmed'), true); $this->ctrl->returnToParent($this); }
public function deliverPostFile() { global $ilUser; $id = (int) $_GET["object_id"]; if (!$id) { return; } include_once 'Modules/BookingManager/classes/class.ilBookingReservation.php'; $book_id = ilBookingReservation::getObjectReservationForUser($id, $ilUser->getId()); $obj = new ilBookingReservation($book_id); if ($obj->getUserId() != $ilUser->getId()) { return; } include_once 'Modules/BookingManager/classes/class.ilBookingObject.php'; $obj = new ilBookingObject($id); $file = $obj->getPostFileFullPath(); if ($file) { ilUtil::deliverFile($file, $obj->getPostFile()); } }
function rsvNotInUseObject() { global $ilAccess; $this->tabs_gui->setTabActive('log'); if (!$ilAccess->checkAccess("write", "", $this->ref_id)) { ilUtil::sendFailure($this->lng->txt('permission_denied'), true); $this->ctrl->redirect($this, 'log'); } $id = (int) $_GET['reservation_id']; include_once 'Modules/BookingManager/classes/class.ilBookingReservation.php'; $obj = new ilBookingReservation($id); $obj->setStatus(NULL); $obj->update(); ilUtil::sendSuccess($this->lng->txt('settings_saved')); $this->logObject(); }
/** * Gather data and build rows * @param array $filter */ function getItems(array $filter) { global $ilUser; $this->determineOffsetAndOrder(); if (!$filter["object"]) { $ids = array_keys($this->objects); } else { $ids = array($filter["object"]); } include_once "Modules/BookingManager/classes/class.ilBookingReservation.php"; $data = ilBookingReservation::getGroupedList($ids, $this->getLimit(), $this->getOffset(), $filter, $this->group_id); if (!$this->show_all) { foreach ($data['data'] as $idx => $item) { if ($item["user_id"] != $ilUser->getId()) { unset($data['data'][$idx]); } } } $this->setData($data['data']); $this->setMaxCount($data['counter']); }
function rsvNotInUseObject() { global $ilAccess; if (!$ilAccess->checkAccess("write", "", $this->ref_id)) { ilUtil::sendFailure($this->lng->txt('permission_denied'), true); $this->ctrl->redirect($this, 'log'); } $ids = $this->getLogReservationIds(); if ($ids) { include_once 'Modules/BookingManager/classes/class.ilBookingReservation.php'; foreach ($ids as $id) { $obj = new ilBookingReservation($id); $obj->setStatus(NULL); $obj->update(); } } ilUtil::sendSuccess($this->lng->txt('settings_saved')); $this->logObject(); }
/** * Fill table row * @param array $a_set */ protected function fillRow($a_set) { global $lng, $ilCtrl, $ilUser; $has_booking = false; $booking_possible = true; $has_reservations = false; $this->tpl->setVariable("TXT_TITLE", $a_set["title"]); $this->tpl->setVariable("TXT_DESC", nl2br($a_set["description"])); if (!$this->has_schedule) { include_once 'Modules/BookingManager/classes/class.ilBookingReservation.php'; $reservation = ilBookingReservation::getList(array($a_set['booking_object_id']), 1000, 0, array()); $cnt = 0; foreach ($reservation["data"] as $item) { if ($item["status"] != ilBookingReservation::STATUS_CANCELLED) { $cnt++; if ($item["user_id"] == $ilUser->getId()) { $has_booking = true; } $has_reservations = true; } } $this->tpl->setVariable("VALUE_AVAIL", $a_set["nr_items"] - $cnt); $this->tpl->setVariable("VALUE_AVAIL_ALL", $a_set["nr_items"]); if ($a_set["nr_items"] <= $cnt || $has_booking) { $booking_possible = false; } } else { if (!$this->may_edit) { include_once 'Modules/BookingManager/classes/class.ilBookingReservation.php'; $reservation = ilBookingReservation::getList(array($a_set['booking_object_id']), 1000, 0, array()); foreach ($reservation["data"] as $item) { if ($item["status"] != ilBookingReservation::STATUS_CANCELLED && $item["user_id"] == $ilUser->getId()) { $has_booking = true; } } } } $items = array(); $ilCtrl->setParameter($this->parent_obj, 'object_id', $a_set['booking_object_id']); if ($a_set['info_file']) { $items['info'] = array($lng->txt('book_download_info'), $ilCtrl->getLinkTarget($this->parent_obj, 'deliverInfo')); } if ($booking_possible) { $items['book'] = array($lng->txt('book_book'), $ilCtrl->getLinkTarget($this->parent_obj, 'book')); } if (!$this->schedule && $has_booking) { if (trim($a_set['post_text']) || $a_set['post_file']) { $items['post'] = array($lng->txt('book_post_booking_information'), $ilCtrl->getLinkTarget($this->parent_obj, 'displayPostInfo')); } $items['cancel'] = array($lng->txt('book_set_cancel'), $ilCtrl->getLinkTarget($this->parent_obj, 'rsvCancelUser')); } if ($this->may_edit || $has_booking) { $ilCtrl->setParameterByClass('ilObjBookingPoolGUI', 'object_id', $a_set['booking_object_id']); $items['log'] = array($lng->txt('book_log'), $ilCtrl->getLinkTargetByClass('ilObjBookingPoolGUI', 'log')); $ilCtrl->setParameterByClass('ilObjBookingPoolGUI', 'object_id', ''); } if ($this->may_edit) { // #10890 if (!$has_reservations) { $items['delete'] = array($lng->txt('delete'), $ilCtrl->getLinkTarget($this->parent_obj, 'confirmDelete')); } $items['edit'] = array($lng->txt('edit'), $ilCtrl->getLinkTarget($this->parent_obj, 'edit')); } if (sizeof($items)) { $this->tpl->setCurrentBlock("actions"); foreach ($items as $item) { $this->tpl->setVariable("ACTION_CAPTION", $item[0]); $this->tpl->setVariable("ACTION_LINK", $item[1]); $this->tpl->parseCurrentBlock(); } } }
/** * Fill table row * @param array $a_set */ protected function fillRow($a_set) { global $lng, $ilCtrl, $ilUser; $has_booking = false; $booking_possible = true; $has_reservations = false; $this->tpl->setVariable("TXT_TITLE", $a_set["title"]); $this->tpl->setVariable("TXT_DESC", nl2br($a_set["description"])); if (!$this->has_schedule) { include_once 'Modules/BookingManager/classes/class.ilBookingReservation.php'; $reservation = ilBookingReservation::getList(array($a_set['booking_object_id']), 1000, 0, array()); $cnt = 0; $user_ids = array(); foreach ($reservation["data"] as $item) { if ($item["status"] != ilBookingReservation::STATUS_CANCELLED) { $cnt++; $user_ids[$item["user_id"]] = ilObjUser::_lookupFullName($item['user_id']); if ($item["user_id"] == $ilUser->getId()) { $has_booking = true; } $has_reservations = true; } } $this->tpl->setVariable("VALUE_AVAIL", $a_set["nr_items"] - $cnt); $this->tpl->setVariable("VALUE_AVAIL_ALL", $a_set["nr_items"]); if ($a_set["nr_items"] <= $cnt) { $booking_possible = false; } if ($this->may_edit) { if ($user_ids) { $this->tpl->setVariable("TXT_CURRENT_USER", implode("<br />", array_unique($user_ids))); } else { $this->tpl->setVariable("TXT_CURRENT_USER", ""); } } } else { if ($this->may_edit) { include_once 'Modules/BookingManager/classes/class.ilBookingReservation.php'; $reservation = ilBookingReservation::getCurrentOrUpcomingReservation($a_set['booking_object_id']); if ($reservation) { $date_from = new ilDateTime($reservation['date_from'], IL_CAL_UNIX); $date_to = new ilDateTime($reservation['date_to'], IL_CAL_UNIX); $this->tpl->setVariable("TXT_CURRENT_USER", ilObjUser::_lookupFullName($reservation['user_id'])); $this->tpl->setVariable("VALUE_DATE", ilDatePresentation::formatPeriod($date_from, $date_to)); $has_reservations = true; } else { $this->tpl->setVariable("TXT_CURRENT_USER", ""); $this->tpl->setVariable("VALUE_DATE", ""); } } } $items = array(); $ilCtrl->setParameter($this->parent_obj, 'object_id', $a_set['booking_object_id']); if ($a_set['info_file']) { $items['info'] = array($lng->txt('book_download_info'), $ilCtrl->getLinkTarget($this->parent_obj, 'deliverInfo')); } if (!$has_booking) { if ($booking_possible) { $items['book'] = array($lng->txt('book_book'), $ilCtrl->getLinkTarget($this->parent_obj, 'book')); } } else { if (trim($a_set['post_text']) || $a_set['post_file']) { $items['post'] = array($lng->txt('book_post_booking_information'), $ilCtrl->getLinkTarget($this->parent_obj, 'displayPostInfo')); } $items['cancel'] = array($lng->txt('book_set_cancel'), $ilCtrl->getLinkTarget($this->parent_obj, 'rsvCancelUser')); } if ($this->may_edit) { // #10890 if (!$has_reservations) { $items['delete'] = array($lng->txt('delete'), $ilCtrl->getLinkTarget($this->parent_obj, 'confirmDelete')); } $items['edit'] = array($lng->txt('edit'), $ilCtrl->getLinkTarget($this->parent_obj, 'edit')); } if (sizeof($items)) { $this->tpl->setCurrentBlock("actions"); foreach ($items as $item) { $this->tpl->setVariable("ACTION_CAPTION", $item[0]); $this->tpl->setVariable("ACTION_LINK", $item[1]); $this->tpl->parseCurrentBlock(); } } }
/** * Gather data and build rows * @param array $filter */ function getItems(array $filter) { $this->determineOffsetAndOrder(); $ids = array(); include_once "Modules/BookingManager/classes/class.ilBookingObject.php"; foreach (ilBookingObject::getList($this->pool_id) as $item) { $ids[] = $item["booking_object_id"]; } include_once "Modules/BookingManager/classes/class.ilBookingReservation.php"; $data = ilBookingReservation::getList($ids, $this->getLimit(), $this->getOffset(), $filter); $this->setMaxCount($data['counter']); $this->setData($data['data']); }
/** * Gather data and build rows * @param array $filter */ function getItems(array $filter) { global $ilUser; $this->determineOffsetAndOrder(); if (!$filter["object"]) { $ids = array_keys($this->objects); } else { $ids = array($filter["object"]); } if (!$this->show_all) { $filter["user_id"] = $ilUser->getId(); } include_once "Modules/BookingManager/classes/class.ilBookingReservation.php"; $data = ilBookingReservation::getListByDate($this->has_schedule, $ids, $this->getOrderField(), $this->getOrderDirection(), $this->getOffset(), $this->getLimit(), $filter); $this->setData($data['data']); $this->setMaxCount($data['counter']); }