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));
        }