query('SELECT * FROM news ORDER BY date DESC, id DESC')->fetchAll(); $grund_labels = [ 'arztbesuch' => 'Arztbesuch', 'behoerdengang' => 'Behördengang', 'sonderurlaub' => 'Sonderurlaub', 'elternzeit_pflegezeit' => 'Elternzeit / Pflegezeit', 'sonstiges' => 'Sonstiges', ]; $benefit_labels = [ 'massage' => 'Massage', 'fitnessstudio' => 'Fitnessstudio', 'tankgutschein' => 'Tankgutschein', 'fortbildung' => 'Fortbildung', ]; $rows = []; $stmt = db()->prepare('SELECT id, status, created_at, von, bis, vertretung, nachricht FROM requests_urlaubsantrag WHERE user_id=? ORDER BY created_at DESC'); $stmt->execute([$user_id]); foreach ($stmt->fetchAll() as $r) { $rows[] = ['type' => 'urlaub', 'type_label' => 'Urlaubsantrag', 'icon' => '🌴'] + $r + ['detail' => $r['von'] . ' – ' . $r['bis']]; } $stmt = db()->prepare('SELECT id, status, created_at, von, bis, grund, vertretung, nachricht FROM requests_abwesenheitsantrag WHERE user_id=? ORDER BY created_at DESC'); $stmt->execute([$user_id]); foreach ($stmt->fetchAll() as $r) { $rows[] = ['type' => 'abwesenheit', 'type_label' => 'Abwesenheitsantrag', 'icon' => '📅'] + $r + ['detail' => ($grund_labels[$r['grund']] ?? $r['grund']) . ': ' . $r['von'] . ' – ' . $r['bis']]; } $stmt = db()->prepare('SELECT id, status, created_at, benefit, nachricht FROM requests_benefitsantrag WHERE user_id=? ORDER BY created_at DESC'); $stmt->execute([$user_id]); foreach ($stmt->fetchAll() as $r) { $rows[] = ['type' => 'benefits', 'type_label' => 'Benefitsantrag', 'icon' => '🎁'] + $r + ['detail' => $benefit_labels[$r['benefit']] ?? $r['benefit']]; } $stmt = db()->prepare('SELECT id, status, created_at, name, email, qualifikation, nachricht FROM requests_werben WHERE user_id=? ORDER BY created_at DESC'); $stmt->execute([$user_id]); foreach ($stmt->fetchAll() as $r) { $rows[] = ['type' => 'werben', 'type_label' => 'Mitarbeiter werben', 'icon' => '🤝'] + $r + ['detail' => $r['name'] . ($r['qualifikation'] ? ' (' . $r['qualifikation'] . ')' : '')]; } usort($rows, fn($a, $b) => strcmp($b['created_at'], $a['created_at'])); $pending_count = count(array_filter($rows, fn($r) => $r['status'] === 'pending')); $status_map = ['pending' => 'Ausstehend', 'accepted' => 'Angenommen', 'rejected' => 'Abgelehnt']; layout_start('OMSORG Felix – Dashboard', 'dashboard'); ?>

Willkommen, !

Hier siehst du alle deine Anträge auf einen Blick.

📢 News & Ankündigungen

0): ?>

ausstehend.

Du hast noch keine Anträge gestellt.

$r['type_label'], 'icon' => $r['icon'], 'count' => ($types[$r['type']]['count'] ?? 0) + 1]; } foreach ($types as $type => $info): ?>
Art Details Eingereicht Status