roosters.basis_id OR ( more.basis_id = roosters.basis_id AND more.wijz_id > roosters.wijz_id ) ) RIGHT JOIN $roosterdb.weken ON weken.week_id = roosters.week_id WHERE more.week_id IS NULL ORDER BY year, week EOQ ); $time = $_SERVER['REQUEST_TIME']; $year_iso8601 = date("o", $time); $week_iso8601 = date("W", $time); $day_iso8601 = date("N", $time); $hour = date("G"); $minute = date("i"); $lescounter = -1; function getthismonday2($week) { global $deadline_day, $deadline_hour, $deadline_minute; $day_in_week = strtotime(sprintf("{$week['year']}-01-04 + %d weeks", $week['week'] - 1)); return $day_in_week - ((date('w', $day_in_week) + 6)%7)*24*60*60; } function getthisdeadline($monday_in_week) { global $deadline_day, $deadline_hour, $deadline_minute; return $monday_in_week + ($deadline_day - 1)*24*60*60 + $deadline_hour*60*60 + $deadline_minute*60; } // intialize $_GET['week_id'] if it is nog set to silence warnings // 0 means: take default week if (!isset($_GET['week_id']) || !($_GET['week_id'] > 0)) $_GET['week_id'] = 0; $min_week_id = mdb2_single_val($db, "SELECT config_value FROM config WHERE config_key = 'MIN_WEEK_ID'"); $max_week_id = mdb2_single_val($db, "SELECT config_value FROM config WHERE config_key = 'MAX_WEEK_ID'"); if (isset($weken[$max_week_id + 1])) { $default_week_id = $max_week_id + 1; } else { $default_week_id = $min_week_id; } if ($_GET['week_id'] == 0) { $selected_week_id = $default_week_id; } else { $selected_week_id = $_GET['week_id']; } if ($_GET['week_id'] == $default_week_id) $_GET['week_id'] = ''; // omdat de deadline vrijdagmiddag van de vorige lesweek is, is de eerste lesweek automatisch 'op slot' $laatstgesloten = ''; $requested_week_id = 0; $last_week_id = 0; $last_file_id_basis = 0; $next_locked = 1; $week_options = ''; $min_week_options = ''; $max_week_options = ''; foreach ($weken as $week_id => $week) { $weken[$week_id]['monday'] = getthismonday($week); $weken[$week_id]['deadline'] = getthisdeadline($weken[$week_id]['monday']); if ($week['rooster_id']) { $last_file_id_basis = $weken[$week_id]['file_id_basis'] = mdb2_single_val($db, "SELECT file_id FROM $roosterdb.roosters WHERE basis_id = %i AND wijz_id = 0", $week['basis_id']); $weken[$week_id]['file_id_wijz'] = mdb2_single_val($db, "SELECT file_id FROM $roosterdb.roosters WHERE basis_id = %i AND wijz_id = %i", $week['basis_id'], $week['wijz_id']); if ($weken[$week_id]['file_id_basis'] == $weken[$week_id]['file_id_wijz']) $weken[$week_id]['file_id_wijz'] = 0; } else { $weken[$week_id]['file_id_basis'] = $last_file_id_basis; $weken[$week_id]['file_id_wijz'] = 0; } if ($next_locked == 1) $laatstgesloten = $week_id; $weken[$week_id]['locked'] = 0; // geen deadline $next_locked; if ($weken[$week_id]['deadline'] <= $time) $next_locked = 1; else $next_locked = 0; if ($week_id == $_GET['week_id']) $requested_week_id = $week_id; $selected = ''; if ($selected_week_id == $week_id) { $selected = 'selected '; } $date = date("(j M)", $weken[$week_id]['monday']); if ($weken[$week_id]['locked'] == 0 && $default_week_id == 0) { $default_week_id = $week_id; $week_options .= ''."\n"; } else { $week_options .= ''."\n"; } $selected_min = $selected_max = ''; if ($week_id == $min_week_id) $selected_min = 'selected '; if ($week_id == $max_week_id) $selected_max = 'selected '; $min_week_options .= ''."\n"; $max_week_options .= ''."\n"; $last_week_id = $week_id; } if ($requested_week_id) { //echo('current=req'); $current_week_id = $requested_week_id; } else if ($default_week_id) { //echo('current=default'); $current_week_id = $default_week_id; } else { //echo('current=max'); $current_week_id = $max_week_id; } //echo("current_week_id=$current_week_id\n"); $reserveringen = mdb2_query($db, <<bewerk') bewerk, CONCAT('verwijder') verwijder FROM blokgroups JOIN ( SELECT blokgroup_id, GROUP_CONCAT(entity_name ORDER BY entity_name) lokalen FROM entblok JOIN $roosterdb.entities AS new USING (entity_id) GROUP BY blokgroup_id ) AS entblok USING (blokgroup_id) JOIN ( SELECT blokgroup_id, GROUP_CONCAT(CONCAT($dag_case, uren) ORDER BY dag) uren FROM ( SELECT blokgroup_id, dag, GROUP_CONCAT(uur ORDER BY uur SEPARATOR '') uren FROM uurblok GROUP BY blokgroup_id, dag ) AS dag GROUP BY blokgroup_id ) AS uurblok USING (blokgroup_id) WHERE week_id = {$current_week_id} AND timestamp_delete IS NULL EOQ ); html_start(<< select').change(function () { $('#minmax').submit(); }); $('#weekselect > select').change(function () { $('#weekselect').submit(); }); $('#su').focus(); $('#su').autocomplete({ source: "search.php", minLength: 4, select: function (event, ui) { if (ui.item) $('#su').val(ui.item.id); // set autocomplete ID $('#switch').submit(); } }); }); EOS , "Adminpagina"); ?>

Overzichtspagina (actueel of bevroren op bepaalde deadline)

overzicht

Opschonen reserveringen van een vertrekkende docent

Als een docent de school verlaat, is het handig om in één keer alle komende reserveringen van deze docent te verwijderen.
gebruikersnaam docent:
bevestiging: (typ "ik weet wat ik doe" in dit veld)

Switch user

Weken zichtbaar voor docenten

eerst zichtbare week:

laatste zichtbare week:

Reserveringen/Blokkades

week:

Reserveringen

Blokkades

voeg blok toe