{% extends '@TimeClock/time_clock/layout.html.twig' %}{% import '@TimeClock/time_clock/_macros.html.twig' as ui %}{% block title %}Session du {{ session.workDate|date('d/m/Y') }}{% endblock %}{% block tc_content %}
Pointeuse Sessions {{ session.salarie }}

Session du {{ session.workDate|date('d F Y') }} {{ ui.status(session.status) }}

Session pointeuse · {{ session.salarie }} · Réf. SES-{{ '%06d'|format(session.id) }}

Retour listeDemander correction
{{ ui.initials(session.salarie) }}
{{ session.salarie }}{{ session.salarie.poste ?: session.salarie.service }}{{ session.workDate|date('d/m/Y · l') }}
Entrée{{ session.clockInAt ? session.clockInAt|date('H:i'):'—' }}
Sortie{{ session.clockOutAt ? session.clockOutAt|date('H:i'):'—' }}
Temps brut{{ ui.duration(session.grossDurationMinutes) }}
Pauses{{ ui.duration(session.breakDurationMinutes) }}
Temps net{{ ui.duration(session.netWorkedMinutes) }}
Validation{{ session.validatedAt ? ui.status('validated'):ui.status('pending') }}

Synthèse de la session

{% for c in [['Temps brut',ui.duration(session.grossDurationMinutes),''],['Pauses',ui.duration(session.breakDurationMinutes),'blue'],['Temps net',ui.duration(session.netWorkedMinutes),'green'],['Écart','Calculé','teal']] %}
{{ c[0] }}{{ c[1] }}
{% endfor %}
Heure d'entrée
{{ session.clockInAt ? session.clockInAt|date('H:i'):'—' }}
Heure de sortie
{{ session.clockOutAt ? session.clockOutAt|date('H:i'):'—' }}
Nombre de pauses
{{ breaks|length }}
Méthode de pointage
{{ session.source == 'qr_code' ? 'QR Code':'Manuel' }}
Fermeture session
{{ session.autoClosed ? 'Automatique':'Manuelle' }}

Audit technique

Intégrité validée
{% for event in events %}
{{ event.eventType|replace({'_':' '})|upper }}{{ event.eventAt|date('d/m/Y à H:i:s') }}{{ event.eventHash|default('Hash en cours de génération')|slice(0,20) }}
{% else %}

Aucun événement technique.

{% endfor %}
{% endblock %}