"Offen", 1 => "Bereit", 2 => "Erledigt", 3 => "Storniert" ]; $statusCounts = [ 0 => 0, 1 => 0, 2 => 0, 3 => 0 ]; $stmt = $pdo->query("SELECT status, COUNT(*) AS cnt FROM termine GROUP BY status"); foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { $s = (int)$row['status']; if (isset($statusCounts[$s])) { $statusCounts[$s] = (int)$row['cnt']; } } // Nächste 5 Termine $nowTs = time(); $nextStmt = $pdo->prepare(" SELECT t.*, u.name AS user_name FROM termine t LEFT JOIN users u ON u.id = t.user_id WHERE t.startzeit >= :now ORDER BY t.startzeit ASC LIMIT 5 "); $nextStmt->execute([':now' => $nowTs]); $nextEvents = $nextStmt->fetchAll(PDO::FETCH_ASSOC); // Letzte Änderungen (Activity Log) $changesStmt = $pdo->query(" SELECT c.*, u.name AS user_name FROM changes c LEFT JOIN users u ON u.id = c.user_id ORDER BY c.timestamp DESC LIMIT 5 "); $recentChanges = $changesStmt->fetchAll(PDO::FETCH_ASSOC); // Einnahmen dieses Monats $currentMonth = date('Y-m-01 00:00:00'); $monthStartTs = strtotime($currentMonth); $nextMonthTs = strtotime('+1 month', $monthStartTs); $gageStmt = $pdo->prepare(" SELECT SUM(gage) AS sum_gage, COUNT(*) AS count_terms FROM termine WHERE startzeit >= :start AND startzeit < :end AND status = 2 -- nur abgeschlossene Termine zählen! "); $gageStmt->execute([ ':start' => $monthStartTs, ':end' => $nextMonthTs ]); $gageData = $gageStmt->fetch(PDO::FETCH_ASSOC); $sumGage = (float)($gageData['sum_gage'] ?? 0); $countGigs = (int)($gageData['count_terms'] ?? 0); // Offene ToDos (Beispiele: Gage = 0, Endzeit = 0) $todoGageStmt = $pdo->query("SELECT COUNT(*) FROM termine WHERE (gage = 0 OR gage IS NULL)"); $todoNoGage = (int)$todoGageStmt->fetchColumn(); $todoEndStmt = $pdo->query("SELECT COUNT(*) FROM termine WHERE (endzeit = 0 OR endzeit IS NULL)"); $todoNoEnd = (int)$todoEndStmt->fetchColumn(); ?>
Keine kommenden Termine eingetragen.
= number_format($sumGage, 2, ',', '.'); ?> € Gesamt
= $countGigs; ?> Termin(e) in diesem Monat.
Noch keine Änderungen protokolliert.
0) $alt = date('d.m.Y H:i', $alt); $neu = date('d.m.Y H:i', $neu); } if ($field === 'ANWESEND') { $altArr = json_decode($alt, true) ?: []; $neuArr = json_decode($neu, true) ?: []; $alt = implode(', ', array_map(fn($id)=>$Data->getDataByID($id,"name"), $altArr)); $neu = implode(', ', array_map(fn($id)=>$Data->getDataByID($id,"name"), $neuArr)); } // CREATE hat keinen alten Wert $isCreate = ($field === 'CREATE'); $isDelete = ($field === 'DELETE'); ?>