212 lines
9.3 KiB
PHP
212 lines
9.3 KiB
PHP
<?php
|
|
include_once(__DIR__ . '/../controller/DataController.php');
|
|
include_once(__DIR__ . '/../controller/DatabaseController.php');
|
|
|
|
$alleFaecher = DatabaseShow("Fach", "ID, FACH");
|
|
$alleRaeume = DatabaseShow("Raum", "ID, RAUM_NR");
|
|
$alleLehrer = DatabaseShow("Lehrer", "ID, NAME");
|
|
|
|
/*
|
|
1 => ["fach_id" => 1, "raum_id" => 5, "lehrer_id" => 8], // LF1
|
|
1 => ["fach_id" => 2, "raum_id" => 4, "lehrer_id" => 11], // LF2
|
|
1 => ["fach_id" => 3, "raum_id" => 1, "lehrer_id" => 2], // LF3
|
|
1 => ["fach_id" => 4, "raum_id" => 1, "lehrer_id" => 5], // LF4
|
|
6 => ["fach_id" => 5, "raum_id" => 3, "lehrer_id" => 1], // LF5
|
|
1 => ["fach_id" => 6, "raum_id" => 5, "lehrer_id" => 4], // Sozi
|
|
1 => ["fach_id" => 8, "raum_id" => 5, "lehrer_id" => 7], // VWL
|
|
1 => ["fach_id" => 9, "raum_id" => 5, "lehrer_id" => 3], // DE
|
|
1 => ["fach_id" => 10, "raum_id" => 5, "lehrer_id" => 3], // ENG
|
|
*/
|
|
|
|
$Stundenplan = [
|
|
"MO" => [
|
|
1 => ["fach_id" => 3, "raum_id" => 1, "lehrer_id" => 2], // LF3
|
|
2 => ["fach_id" => 3, "raum_id" => 1, "lehrer_id" => 2], // LF3
|
|
3 => ["fach_id" => 3, "raum_id" => 1, "lehrer_id" => 2], // LF3
|
|
4 => ["fach_id" => 6, "raum_id" => 5, "lehrer_id" => 4], // Sozi
|
|
5 => ["fach_id" => 10, "raum_id" => 5, "lehrer_id" => 3], // Eng
|
|
6 => ["fach_id" => 10, "raum_id" => 5, "lehrer_id" => 3], // Eng
|
|
7 => ["fach_id" => 2, "raum_id" => 3, "lehrer_id" => 11], // LF2
|
|
8 => ["fach_id" => 2, "raum_id" => 3, "lehrer_id" => 11], // LF2
|
|
],
|
|
"DI" => [
|
|
1 => ["fach_id" => 5, "raum_id" => 3, "lehrer_id" => 1], // LF5
|
|
2 => ["fach_id" => 5, "raum_id" => 3, "lehrer_id" => 1], // LF5
|
|
3 => ["fach_id" => 5, "raum_id" => 1, "lehrer_id" => 5], // LF5
|
|
4 => ["fach_id" => 2, "raum_id" => 3, "lehrer_id" => 6], // LF2
|
|
5 => ["fach_id" => 2, "raum_id" => 3, "lehrer_id" => 6], // LF2
|
|
],
|
|
"MI" => [
|
|
1 => ["fach_id" => 8, "raum_id" => 5, "lehrer_id" => 7], // VWL
|
|
2 => ["fach_id" => 8, "raum_id" => 5, "lehrer_id" => 7], // VWL
|
|
3 => ["fach_id" => 9, "raum_id" => 5, "lehrer_id" => 3], // DE
|
|
4 => ["fach_id" => 9, "raum_id" => 5, "lehrer_id" => 3], // DE
|
|
5 => ["fach_id" => 2, "raum_id" => 4, "lehrer_id" => 6], // LF2
|
|
6 => ["fach_id" => 2, "raum_id" => 4, "lehrer_id" => 6], // LF2
|
|
7 => ["fach_id" => 8, "raum_id" => 5, "lehrer_id" => 7], // VWL
|
|
],
|
|
"DO" => [
|
|
1 => ["fach_id" => 3, "raum_id" => 1, "lehrer_id" => 2], // LF3
|
|
2 => ["fach_id" => 3, "raum_id" => 1, "lehrer_id" => 2], // LF3
|
|
3 => ["fach_id" => 3, "raum_id" => 1, "lehrer_id" => 2], // LF3
|
|
4 => ["fach_id" => 6, "raum_id" => 5, "lehrer_id" => 4], // Sozi
|
|
5 => ["fach_id" => 6, "raum_id" => 5, "lehrer_id" => 4], // Sozi
|
|
6 => ["fach_id" => 4, "raum_id" => 1, "lehrer_id" => 5], // LF4
|
|
7 => ["fach_id" => 4, "raum_id" => 1, "lehrer_id" => 5], // LF4
|
|
8 => ["fach_id" => 4, "raum_id" => 1, "lehrer_id" => 5], // LF4
|
|
],
|
|
"FR" => [
|
|
1 => ["fach_id" => 1, "raum_id" => 5, "lehrer_id" => 8], // LF1
|
|
2 => ["fach_id" => 1, "raum_id" => 5, "lehrer_id" => 8], // LF1
|
|
3 => ["fach_id" => 1, "raum_id" => 5, "lehrer_id" => 8], // LF1
|
|
4 => ["fach_id" => 5, "raum_id" => 3, "lehrer_id" => 1], // LF5
|
|
5 => ["fach_id" => 5, "raum_id" => 3, "lehrer_id" => 1], // LF5
|
|
6 => ["fach_id" => 5, "raum_id" => 3, "lehrer_id" => 1], // LF5
|
|
]
|
|
];
|
|
?>
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="de">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Berufsschulbericht</title>
|
|
<link rel="stylesheet" href="style.css">
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div class="main">
|
|
<div class="content" style="max-width: 1100px; margin: 0 auto; padding: 20px;">
|
|
|
|
<div class="form-container">
|
|
<h3 style="margin-top: 0;">Berufsschulbericht erfassen</h3>
|
|
|
|
<form method="post">
|
|
<div class="form-group" style="max-width: 220px; margin-bottom: 25px;">
|
|
<label for="datum">Datum auswählen</label>
|
|
<input type="date" name="datum" id="datum" required>
|
|
</div>
|
|
|
|
<div class="vergabe-grid"
|
|
style="font-weight: bold; padding-bottom: 8px; margin-bottom: 12px; border-bottom: 1px solid var(--card-border);">
|
|
<div>Stunde</div>
|
|
<div>Fach</div>
|
|
<div>Raum</div>
|
|
<div>Lehrer</div>
|
|
<div>Inhalt / Thema</div>
|
|
</div>
|
|
|
|
<?php for ($i = 1; $i <= 8; $i++): ?>
|
|
<div class="vergabe-grid" style="margin-bottom: 10px; align-items: center;">
|
|
|
|
<div>
|
|
<span class="badge"
|
|
style="display: inline-block; min-width: 90px; text-align: center; padding: 8px 12px; font-weight: bold;">Stunde
|
|
<?= $i ?></span>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<select name="stunden[<?= $i ?>][fach_id]" data-stunde="<?= $i ?>" data-type="fach_id">
|
|
<option value="">-- Fach --</option>
|
|
<?php foreach ($alleFaecher as $row): ?>
|
|
<option value="<?= $row['ID'] ?>"><?= htmlspecialchars($row['FACH']) ?></option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<select name="stunden[<?= $i ?>][raum_id]" data-stunde="<?= $i ?>" data-type="raum_id">
|
|
<option value="">-- Raum --</option>
|
|
<?php foreach ($alleRaeume as $row): ?>
|
|
<option value="<?= $row['ID'] ?>"><?= htmlspecialchars($row['RAUM_NR']) ?></option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<select name="stunden[<?= $i ?>][lehrer_id]" data-stunde="<?= $i ?>" data-type="lehrer_id">
|
|
<option value="">-- Lehrer --</option>
|
|
<?php foreach ($alleLehrer as $row): ?>
|
|
<option value="<?= $row['ID'] ?>"><?= htmlspecialchars($row['NAME']) ?></option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<input type="text" name="stunden[<?= $i ?>][inhalt_text]" placeholder="Inhalt der Stunde..."
|
|
style="margin: 0; padding: 10px;">
|
|
</div>
|
|
|
|
</div>
|
|
<?php endfor; ?>
|
|
|
|
<div style="margin-top: 25px; text-align: right;">
|
|
<button type="submit" class="btn-submit-vergabe"
|
|
style="width: 220px; display: inline-flex; font-weight: bold;">
|
|
Bericht speichern
|
|
</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
const stundenplan = <?= json_encode($Stundenplan) ?>;
|
|
const wochentage = ["SO", "MO", "DI", "MI", "DO", "FR", "SA"];
|
|
|
|
document.getElementById('datum').addEventListener('change', function() {
|
|
const gewaehltesDatum = new Date(this.value);
|
|
if (isNaN(gewaehltesDatum)) return;
|
|
|
|
let tagKey = wochentage[gewaehltesDatum.getDay()];
|
|
|
|
if (tagKey === "SO" || tagKey === "SA") {
|
|
tagKey = "MO";
|
|
}
|
|
|
|
const tagesPlan = stundenplan[tagKey] || {};
|
|
|
|
document.querySelectorAll('.vergabe-grid select').forEach(select => {
|
|
const stunde = select.getAttribute('data-stunde');
|
|
const type = select.getAttribute('data-type');
|
|
|
|
const vordefinierteId = (tagesPlan[stunde] && tagesPlan[stunde][type]) ? tagesPlan[stunde][
|
|
type
|
|
] : "";
|
|
|
|
select.value = vordefinierteId;
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<?php
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
$datum = $_POST['datum'] ?? null;
|
|
$werte = [$datum];
|
|
|
|
for ($i = 1; $i <= 8; $i++) {
|
|
$stunde = $_POST['stunden'][$i] ?? [];
|
|
$werte[] = !empty($stunde['fach_id']) ? $stunde['fach_id'] : null;
|
|
$werte[] = !empty($stunde['lehrer_id']) ? $stunde['lehrer_id'] : null;
|
|
$werte[] = !empty($stunde['raum_id']) ? $stunde['raum_id'] : null;
|
|
$werte[] = !empty($stunde['inhalt_text']) ? $stunde['inhalt_text'] : null;
|
|
}
|
|
|
|
DatabaseInsert(
|
|
"Berufsschulberichte",
|
|
"DATUM, FACH_S1, LEHRER_S1, RAUM_S1, INHALT_S1, FACH_S2, LEHRER_S2, RAUM_S2, INHALT_S2, FACH_S3, LEHRER_S3, RAUM_S3, INHALT_S3, FACH_S4, LEHRER_S4, RAUM_S4, INHALT_S4, FACH_S5, LEHRER_S5, RAUM_S5, INHALT_S5, FACH_S6, LEHRER_S6, RAUM_S6, INHALT_S6, FACH_S7, LEHRER_S7, RAUM_S7, INHALT_S7, FACH_S8, LEHRER_S8, RAUM_S8, INHALT_S8",
|
|
...$werte
|
|
);
|
|
|
|
echo "<div class='status-msg' style='position: fixed; bottom: 20px; right: 20px; z-index: 10000;'>Bericht gespeichert!</div>";
|
|
}
|
|
?>
|
|
|
|
</body>
|
|
|
|
</html>
|