{% extends '@TimeClock/time_clock/layout.html.twig' %}{% import '@TimeClock/time_clock/_macros.html.twig' as tc %} {% block title %}Validations des temps{% endblock %}{% block time_clock_content %} {% set pending = rows|filter(r => r.status == 'pending') %}{% set withAnomaly = rows|filter(r => r.status == 'anomaly') %}{% set validatedRows = rows|filter(r => r.status == 'validated') %}
Pointeuse › Validations

Validations des temps {{ pending|length + withAnomaly|length }} en attente

Période : {{ start|date('d/m/Y') }} au {{ end|date('d/m/Y') }}

Exporter
{{ rows|length }}Salariés à valider
{{ withAnomaly|length }}Avec anomalies
{{ validatedRows|length }}Validés
{{ validations|filter(v => v.status == 'locked')|length }}Verrouillés
{{ validatedRows|length }}Exportables paie
Avancement des validations{{ validatedRows|length }} / {{ rows|length }} validés

Détail par salarié {{ rows|length }} salariés

{% for row in rows %}{% else %}{% endfor %}
SalariéServicePrévuesPointéesPausesÉcartAnomaliesStatut
{{ tc.initials(row.employee) }}
{{ row.employee.prenom }} {{ row.employee.nom }}{{ row.employee.poste|default('') }}
{{ row.employee.service.nom|default('—') }}35 h 00{{ tc.duration(row.minutes) }}{{ tc.duration(row.breaks) }}{{ row.minutes >= 2100 ? '↑ +' : '↓ -' }}{{ tc.duration((row.minutes - 2100)|abs) }}{{ row.anomalies }}{{ tc.status(row.status) }}Voir détail
Aucun salarié à valider.
{% endblock %}