{% extends '@App/app.html.twig' %} {% block title %}Soldes de congés{% endblock %} {% block page_header %}{% endblock %} {% block content %} {% set selected_period = null %} {% for period in periods %} {% if filters.period|default('') == period.id %} {% set selected_period = period %} {% endif %} {% endfor %}

Soldes de congés

Total acquis {{ stats.total_acquired|number_format(0, ',', ' ') }} j {{ stats.employee_count }} salarié{{ stats.employee_count > 1 ? 's' : '' }}
Total pris {{ stats.total_taken|number_format(0, ',', ' ') }} j {{ stats.taken_rate|number_format(1, ',', ' ') }}% consommés
En attente {{ stats.total_pending|number_format(0, ',', ' ') }} j {{ stats.pending_rows }} demande{{ stats.pending_rows > 1 ? 's' : '' }}
Soldes négatifs {{ stats.negative_salaries }} À régulariser
Soldes à reporter {{ stats.carry_salaries }} Avant 31/10/{{ 'now'|date('Y') }}

Soldes par salarié

{{ balances|length }} salarié{{ balances|length > 1 ? 's' : '' }}
Solde négatif Solde faible
{% for balance in balances %} {% set salarie = balance.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 type_code = balance.leaveType.code|default(balance.leaveType.nom|default(''))|lower %} {% set type_tone = 'blue' %} {% if 'rtt' in type_code %} {% set type_tone = 'green' %} {% elseif 'recup' in type_code or 'récup' in type_code %} {% set type_tone = 'purple' %} {% endif %} {% else %} {% endfor %}
Salarié Établissement Type Période Acquis Pris Att. Ajusté Reporté Expiré Disponible Actions
{% if avatar_src %} {{ salarie }} {% else %} {{ initials }} {% endif %} {{ salarie }} {{ salarie.matricule|default('Matricule non renseigné') }} {{ salarie.etablissement|default('—') }} {{ balance.leaveType.nom }} {{ balance.period.nom }} {{ balance.acquired|number_format(1, ',', ' ') }} j {{ balance.taken|number_format(1, ',', ' ') }} j {{ balance.pending|number_format(1, ',', ' ') }} j {{ balance.adjusted > 0 ? '+' : '' }}{{ balance.adjusted|number_format(1, ',', ' ') }} j {{ balance.carriedOver|number_format(1, ',', ' ') }} j {{ balance.expired|number_format(1, ',', ' ') }} j {{ balance.available|number_format(1, ',', ' ') }} j {% if balance.available < 0 %} Négatif {% endif %}
Aucun solde disponible.
{% endblock %}