prepare("SELECT id, vorname, nachname, email, urlaubstage FROM users ORDER BY nachname, vorname"); $stmt->execute(); $users = $stmt->fetchAll(); ?>

Urlaubsübersicht ()

prepare("SELECT IFNULL(SUM(days),0) AS used FROM vacations WHERE user_id = ? AND status = 'genehmigt' AND YEAR(start_date) = ?"); $s->execute([$uid, $year]); $used = (int)$s->fetchColumn(); // Ausstehende Anträge $p = $pdo->prepare("SELECT COUNT(*) FROM vacations WHERE user_id = ? AND status = 'beantragt'"); $p->execute([$uid]); $pending = (int)$p->fetchColumn(); // Bevorstehende Urlaube (nächste 5) $n = $pdo->prepare("SELECT start_date, end_date, days, status FROM vacations WHERE user_id = ? AND end_date >= CURDATE() ORDER BY start_date LIMIT 5"); $n->execute([$uid]); $upcoming = $n->fetchAll(); $entitlement = isset($u['urlaubstage']) ? (int)$u['urlaubstage'] : 0; $remaining = $entitlement - $used; ?>
Mitarbeiter Email Anspruch Genutzt () Verbleibend Ausstehend Bevorstehende Urlaube
'; } } ?>

Hinweis: Ansprüche werden aus dem Feld users.urlaubstage gelesen. Falls dieses Feld leer ist, bitte in der Nutzerverwaltung pflegen.