require_once 'config.php'; // $PAGE->https_required(); $PAGE->set_url($CFG->wwwroot . '/admin/brg4/reserbierung/index-reservierung-nach-stundenplan.php'); $PAGE->set_context(context_system::instance()); $PAGE->set_pagelayout('standard'); $htmlTitle = 'Revervierungen nach Stundenplan'; $htmlHeading = 'Reservierungen nach Stundenplan'; //------------------- global $PAGE, $OUTPUT; $PAGE->set_title($htmlTitle); // optional // $PAGE->set_heading($htmlHeading); // must be set in order to display page header! $PAGE->navbar->add($htmlTitle); echo $OUTPUT->header(); // echo $OUTPUT->heading($htmlHeading); if (is_res_admin()) { ?> <div class="table-responsive" id="table-container"> <table class="table table-striped table-bordered table-hover" id="tabelle-reservierungen" width="100%"> <thead> <tr> <th></th> <th>Montag</th> <th>Dienstag</th> <th>Mittwoch</th> <th>Donnerstag</th> <th>Freitag</th> </tr> </thead> <tbody> <tr data-hour="1">
/* ----------------------- check request parameter ----------------------- */ $user_id = $USER->id; $res_id = 0; if (isset($_REQUEST['id'])) { $res_id = intval($_REQUEST['id']); } else { exit(json_encode(array('error' => 'Übergabeparameter „id“ fehlt!'), JSON_UNESCAPED_UNICODE)); } /* --------------------------------------------------- check if user is allowed to delete this reservation --------------------------------------------------- */ // site admins are allowed to delete any reservations! // normal user can only delete their own rservations; so test before if red_id matches user_id! if (!is_res_admin()) { $sql = <<<SQL \t\tSELECT `id` \t\tFROM `reservierung` \t\tWHERE `id` = {$res_id} \t\tAND `user_id` = {$user_id}; SQL; $result = $dbHomepage->query($sql); if ($result->num_rows < 1) { exit(json_encode(array('error' => 'Benutzer (' . $user_id . ') hat keine Rechte die Reservierung (' . $res_id . ') zu löschen!'), JSON_UNESCAPED_UNICODE)); } } /* ------------------------- try to delete reservation ------------------------- */ $sql = <<<SQL
\tWHERE `rservierungsdings_id` = {$asset_id} \tAND `datum` LIKE '{$res_date}' \tAND `schulstunde_id` = {$class_hour} \tAND rd.`id` = r.`rservierungsdings_id` \tAND s.`id` = r.`schulstunde_id` SQL; $result = $dbHomepage->query($sql); if ($result->num_rows > 0) { $row = $result->fetch_assoc(); $reservation_id = $row['id']; $old_user_id = $row['user_id']; if ($user_id == $old_user_id) { // same user; just update update_reservation($reservation_id, $user_id, $info); exit(json_encode(array('success' => 'Änderung der Reservierung erfolgreich (reservation_id = ' . $reservation_id . ')!'), JSON_UNESCAPED_UNICODE)); } elseif (is_res_admin()) { // reservation exists, siteadmin overrides! update_reservation($reservation_id, $user_id, $info); // inform OLD holder of reservation abaout cancellation... if ($email_notify == true) { $subject = 'Reservierung für ' . $row['beschreibung'] . ' am ' . $row['datum'] . ' aufgehoben!'; $message = '<p>Bedauerlicherweise wurde deine Reservierung für ' . $row['beschreibung'] . ' am ' . $row['datum'] . ' um ' . $row['vonbis'] . ' für ' . $row['info'] . ' aufgehoben, da eine andere Veranstaltung Vorrang hat.</p>'; $former_user_name = notify_former_holder_of_reservation($old_user_id, $subject, $message); } if ($user_id != $USER->id) { // admin reservation for another user // inform_user_about_reservation($user_id,$asset_id,$class_hour,$res_date,$info); exit(json_encode(array('success' => 'Rerservierung mit Fremdreservierung überschrieben (' . $former_user_name . ': ' . $row['beschreibung'] . ' am ' . $row['datum'] . ' um ' . $row['vonbis'] . ' für ' . $row['info'] . '; reservation_id = ' . $reservation_id . '); beide Benutzer wurden per E-Mail verständigt.!'), JSON_UNESCAPED_UNICODE)); } else { exit(json_encode(array('success' => 'Rerservierung überschrieben (' . $former_user_name . ': ' . $row['beschreibung'] . ' am ' . $row['datum'] . ' um ' . $row['vonbis'] . ' für ' . $row['info'] . '; reservation_id = ' . $reservation_id . '), Benutzer wurde per E-Mail verständigt.!'), JSON_UNESCAPED_UNICODE)); }