{% extends '@App/app.html.twig' %} {% block title %}Gestion des congés{% endblock %} {% block page_header %}{% endblock %} {% block content %}

Tableau de bord congés

Nouvelle demande
À valider {{ pendingCount }} demandes en attente + {{ pending|length }} à traiter
Absents aujourd'hui {{ absentToday|length }} salariés absents Stable vs hier
Cette semaine {{ thisWeekCount }} congés à venir Suivi hebdomadaire
Soldes critiques {{ criticalCount }} soldes insuffisants À surveiller
Refusées ce mois {{ refusedThisMonthCount }} demandes refusées Mois en cours

Demandes à traiter {{ pendingCount }}

Voir toutes
{% for request in pending %} {% set salarie = request.salarie %} {% set photo_path = salarie.photo ? salarie.photo|trim : null %} {% set avatar_src = photo_path ? (photo_path starts with 'http://' or photo_path starts with 'https://' ? photo_path : asset(photo_path starts with '/' ? photo_path|slice(1) : photo_path)) : null %} {% set initials = ((salarie.prenom|default('')|first) ~ (salarie.nom|default('')|first))|upper ?: 'S' %} {% else %} {% endfor %}
Salarié Type Période Durée Statut Actions
{% if avatar_src %} {{ salarie }} {% else %} {{ initials }} {% endif %} {{ salarie }} {{ salarie.matricule|default('') ?: 'Salarié' }} {{ request.leaveType.nom }} {{ request.startDate|date('d M Y') }} - {{ request.endDate|date('d M Y') }} {{ request.durationDays|number_format(request.durationDays == request.durationDays|round ? 0 : 1, ',', ' ') }} j {{ request.status == 'pending_rh' ? 'En attente RH' : 'En attente manager' }}
{% if is_granted('LEAVE_APPROVE', request) %} Voir
{% endif %} {% if is_granted('LEAVE_REFUSE', request) %}
{% endif %}
Aucune demande à traiter.
{% endblock %}