format('Y-m-d'); $edit_meeting['meeting_time_only'] = $edit_date_time->format('H:i'); } // --- Logik zum Hinzufügen oder Speichern von Terminen (POST) --- if ($_SERVER["REQUEST_METHOD"] == "POST") { $meeting_date_only = $_POST['meeting_date']; $meeting_time_only = $_POST['meeting_time'] ?? '12:00'; $meeting_date = $meeting_date_only . ' ' . $meeting_time_only; $color_id = $_POST['color_id']; $reason = $_POST['reason'] ?? 'Zufallsfarbe'; $id = $_POST['id'] ?? null; if ($id) { // Update-Logik $stmt = mysqli_prepare($conn, "UPDATE meetings SET meeting_date = ?, color_id = ?, reason = ? WHERE id = ?"); mysqli_stmt_bind_param($stmt, "sisi", $meeting_date, $color_id, $reason, $id); if (mysqli_stmt_execute($stmt)) { $message = "Termin erfolgreich aktualisiert!"; $message_type = 'success'; } else { $message = "Fehler beim Aktualisieren des Termins."; $message_type = 'danger'; } mysqli_stmt_close($stmt); } else { // Insert-Logik $stmt = mysqli_prepare($conn, "INSERT INTO meetings (meeting_date, color_id, reason) VALUES (?, ?, ?)"); mysqli_stmt_bind_param($stmt, "sis", $meeting_date, $color_id, $reason); if (mysqli_stmt_execute($stmt)) { $message = "Neuer Termin erfolgreich hinzugefügt!"; $message_type = 'success'; } else { $message = "Fehler beim Hinzufügen des Termins."; $message_type = 'danger'; } mysqli_stmt_close($stmt); } } // --- Nächste 2 Donnerstage automatisch hinzufügen (mit 12:00 Uhr) --- $date = new DateTime('now'); $date->modify('next thursday'); for ($i = 0; $i < 2; $i++) { $next_thursday = $date->format('Y-m-d') . ' 12:00:00'; $stmt = mysqli_prepare($conn, "SELECT id FROM meetings WHERE meeting_date = ?"); mysqli_stmt_bind_param($stmt, "s", $next_thursday); mysqli_stmt_execute($stmt); mysqli_stmt_store_result($stmt); if (mysqli_stmt_num_rows($stmt) == 0) { $color_id = get_weighted_random_color($conn); if ($color_id) { $stmt_insert = mysqli_prepare($conn, "INSERT INTO meetings (meeting_date, color_id, reason) VALUES (?, ?, ?)"); $default_reason = "Zufallsfarbe"; mysqli_stmt_bind_param($stmt_insert, "sis", $next_thursday, $color_id, $default_reason); mysqli_stmt_execute($stmt_insert); mysqli_stmt_close($stmt_insert); } } mysqli_stmt_close($stmt); $date->modify('+1 week'); } // --- Termine und alle Farben abrufen (für Übersicht und Formular) --- $all_colors = []; $result = mysqli_query($conn, "SELECT id, name, hex_code FROM colors ORDER BY name"); while ($row = mysqli_fetch_assoc($result)) { $all_colors[] = $row; } $meetings = []; // Aktualisierte Abfrage: Zeigt nur Meetings an, die nicht abgeschlossen sind (is_completed = 0) $result = mysqli_query($conn, "SELECT m.id, m.meeting_date, m.created_at, m.reason, c.name AS color_name, c.hex_code FROM meetings m JOIN colors c ON m.color_id = c.id WHERE m.is_completed = 0 ORDER BY m.meeting_date"); while ($row = mysqli_fetch_assoc($result)) { $meetings[] = $row; } require_once '../inc/header.php'; ?>