{% extends '@TimeClock/time_clock/layout.html.twig' %}{% import '@TimeClock/time_clock/_macros.html.twig' as tc %} {% block title %}Anomalies de pointage{% endblock %}{% block time_clock_content %} {% set open = anomalies|filter(a => a.status == 'open') %}{% set blocking = open|filter(a => a.severity in ['blocking','critical']) %}
Pointeuse › Anomalies

Anomalies de pointage {{ blocking|length }} bloquantes

Dernière analyse : {{ 'now'|date('H:i:s') }}

{{ open|length }}Anomalies ouvertes
×{{ blocking|length }}Bloquantes
!{{ open|filter(a => a.severity == 'warning')|length }}Avertissements
{{ anomalies|filter(a => a.status == 'resolved')|length }}Résolues

Liste des anomalies {{ anomalies|length }} résultats

{% for anomaly in anomalies %}{% else %}{% endfor %}
SévéritéTypeSalariéDateSessionMessageStatutDétectée le
{{ anomaly.severity in ['blocking','critical'] ? 'Bloquant' : anomaly.severity|capitalize }}{{ tc.anomaly(anomaly.type) }}
{{ tc.initials(anomaly.salarie) }}{{ anomaly.salarie.prenom }} {{ anomaly.salarie.nom }}
{{ anomaly.session ? anomaly.session.workDate|date('d/m/Y') : '—' }}{{ anomaly.session ? 'PT-' ~ '%04d'|format(anomaly.session.id) : '—' }}{{ anomaly.message|default('Anomalie détectée automatiquement') }}{{ tc.status(anomaly.status) }}{{ anomaly.detectedAt|date('d/m H:i') }}{{ anomaly.status == 'open' ? 'Résoudre' : 'Voir' }}
Aucune anomalie détectée.

Évolution des anomalies — 7 derniers jours

{% endblock %}