{% extends '@App/app.html.twig' %}
{% block title %}Mes congés{% endblock %}
{% block page_header %}{% endblock %}
{% set status_tones = {
draft: 'muted',
submitted: 'warning',
pending_manager: 'warning',
pending_rh: 'warning',
approved: 'success',
refused: 'danger',
cancelled: 'muted',
cancel_requested: 'warning',
expired: 'muted'
} %}
{% set balance_colors = ['blue', 'green', 'purple', 'muted', 'orange'] %}
{% set month_labels = ['JAN', 'FÉV', 'MAR', 'AVR', 'MAI', 'JUN', 'JUL', 'AOÛ', 'SEP', 'OCT', 'NOV', 'DÉC'] %}
{% set day_labels = ['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche'] %}
{% block content %}
{% for balance in balances|slice(0, 4) %}
{% set color = balance_colors[loop.index0]|default('blue') %}
{% set managed = balance.leaveType.balanceManaged %}
{% set total = balance.acquired + balance.adjusted + balance.carriedOver %}
{% set percent = managed and total > 0 ? ((balance.available / total) * 100)|round(0, 'floor') : 0 %}
{{ balance.leaveType.nom }}
{% if managed %}
{{ balance.available|number_format(1, ',', ' ') }} j dispo
{% else %}
Non décompté
{% endif %}
{{ balance.acquired|number_format(balance.acquired == balance.acquired|round ? 0 : 1, ',', ' ') }} Acquis
{{ balance.taken|number_format(balance.taken == balance.taken|round ? 0 : 1, ',', ' ') }} Pris
{{ balance.pending|number_format(balance.pending == balance.pending|round ? 0 : 1, ',', ' ') }} En attente
{% else %}
Aucun solde disponible
Vos droits seront visibles dès qu'une période de congés sera ouverte.
{% endfor %}
Tous les types
{% for type in types %}
{{ type.nom }}
{% endfor %}
Tous les statuts
{% for value, label in status_labels %}
{{ label }}
{% endfor %}
{{ requests|length }} demande{{ requests|length > 1 ? 's' : '' }}
Type
Dates
Durée
Statut
Mise à jour
Actions
{% for request in requests %}
{% set tone = status_tones[request.status]|default('muted') %}
{% set can_cancel = request.status in ['draft', 'submitted', 'pending_manager', 'pending_rh', 'refused'] %}
{{ request.leaveType.nom }}
{{ request.startDate|date('d/m/Y') }}
{% if request.endDate|date('Y-m-d') != request.startDate|date('Y-m-d') %}
– {{ request.endDate|date('d/m/Y') }}
{% endif %}
{{ request.durationDays|number_format(request.durationDays == request.durationDays|round ? 0 : 1, ',', ' ') }} jour{{ request.durationDays > 1 ? 's' : '' }}
{{ status_labels[request.status]|default(request.status) }}
{{ request.updatedAt|date('d/m/Y H:i') }}
Voir
{% if request.editable %}
Modifier
{% endif %}
{% if can_cancel %}
{% endif %}
{% else %}
Aucune demande
Créez votre première demande de congé.
{% endfor %}
Calendrier personnel
Retrouvez vos absences dans le calendrier global des congés.
Ouvrir le calendrier
Type Période Acquis Pris En attente Disponible
{% for balance in balances %}
{{ balance.leaveType.nom }}
{{ balance.period.nom|default('—') }}
{{ balance.acquired|number_format(1, ',', ' ') }} j
{{ balance.taken|number_format(1, ',', ' ') }} j
{{ balance.pending|number_format(1, ',', ' ') }} j
{{ balance.available|number_format(1, ',', ' ') }} j
{% else %}
Aucun solde disponible.
{% endfor %}
{% for request in requests %}
{{ status_labels[request.status]|default(request.status) }}
{{ request.leaveType.nom }} · {{ request.durationDays|number_format(1, ',', ' ') }} j
{{ request.updatedAt|date('d/m/Y H:i') }}
{% else %}
{% endfor %}
{% endblock %}