{% extends '@App/app.html.twig' %} {% block title %}Demandes à valider{% endblock %} {% block page_header %}{% endblock %} {% block content %} {% set status_labels = { submitted: 'Att. manager', pending_manager: 'Att. manager', pending_rh: 'Att. RH' } %}

Demandes à valider

À valider {{ all_pending_count|default(requests|length) }}
Absences équipe cette semaine {{ weekly_absence_count|default(0) }}
Conflits potentiels {{ conflict_count|default(0) }}
{% if conflict_count|default(0) > 0 %}
{{ conflict_count }} conflit{{ conflict_count > 1 ? 's' : '' }} détecté{{ conflict_count > 1 ? 's' : '' }} : des demandes se chevauchent avec d'autres absences dans votre équipe. Vérifiez les indicateurs avant de valider. Voir les conflits
{% endif %}

Demandes en attente de validation

{{ requests|length }}
{% for request in requests %} {% 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' %} {% set conflict_total = conflicts[request.id]|default(0) %} {% set balance = balances[request.id]|default(null) %} {% set type_code = request.leaveType.code|default(request.leaveType.nom)|lower %} {% else %} {% endfor %}
Salarié Service Type Dates Durée Solde dispo. Conflit Statut Actions
{% if avatar_src %} {{ salarie }} {% else %} {{ initials }} {% endif %} {{ salarie }} {{ salarie.matricule ?: 'Sans matricule' }} {{ salarie.employeeService|default(salarie.service|default('—')) }} {{ request.leaveType.nom }} {{ request.startDate|date('d/m') }}{% if request.endDate|date('Y-m-d') != request.startDate|date('Y-m-d') %} - {{ request.endDate|date('d/m/Y') }}{% else %}/{{ request.startDate|date('Y') }}{% endif %} {{ request.durationDays|number_format(request.durationDays == request.durationDays|round ? 0 : 1, ',', ' ') }} j {% if balance is not null %} {{ balance|number_format(balance == balance|round ? 0 : 1, ',', ' ') }} j {% else %} {% endif %} {% if conflict_total > 0 %} {{ conflict_total }} absent{{ conflict_total > 1 ? 's' : '' }}
même période
{% else %} Aucun conflit {% endif %}
{{ status_labels[request.status]|default('Att. manager') }}
Voir {% if is_granted('LEAVE_APPROVE', request) %}
{% endif %} {% if is_granted('LEAVE_REFUSE', request) %}
{% endif %}
Aucune demande à valider.
{% endblock %}