query('SELECT id, name FROM staff WHERE is_active = 1 ORDER BY name')->fetchAll(); $labels = vertretung_status_labels(); $names = []; foreach ($people as $p) $names[(int) $p['id']] = $p['name']; $name = fn($id) => e($names[(int) $id] ?? vertretung_name($pdo, (int) $id)); $current = $pdo->query("SELECT a.*, (SELECT COUNT(*) FROM plugin_vertretung_moves m WHERE m.absence_id = a.id) AS moved, (SELECT COUNT(*) FROM plugin_vertretung_moves m WHERE m.absence_id = a.id AND m.returned_at IS NULL) AS holding FROM plugin_vertretung_absences a WHERE a.status IN ('planned','active') ORDER BY a.start_date, a.id")->fetchAll(); $past = $pdo->query("SELECT a.*, (SELECT COUNT(*) FROM plugin_vertretung_moves m WHERE m.absence_id = a.id) AS moved FROM plugin_vertretung_absences a WHERE a.status NOT IN ('planned','active') ORDER BY a.id DESC LIMIT 20")->fetchAll(); ?>

Abwesenheit und Vertretung

Abwesenheit eintragen

Zum Beginn gehen Ihre offenen Tickets an die Vertretung, neue Tickets ebenfalls (auch bei automatischer Zuweisung). Am Ende bekommen Sie die Tickets zurück, die dann noch bei der Vertretung liegen. Der Urlaubsstatus im Profil wird dafür automatisch gesetzt.

Laufend und geplant

Keine Abwesenheiten eingetragen.

WerVertretungZeitraumStandTickets
–

Frühere Abwesenheiten

WerVertretungZeitraumErgebnisWeitergegeben
– Tickets