{% extends '@App/app.html.twig' %} {% block title %}Disponibilités{% endblock %} {% block page_header %}{% endblock %} {% block content %} {% set self_service = is_self_service|default(false) %} {% set active_tab = active_tab|default(self_service ? 'mine' : 'team') %} {% set metrics = metrics|default({submitted: 0, approved: 0, unavailable: 0, coverage: 0, total: 0}) %} {% set employees = employees|default([]) %} {% set availability_locked = availability_locked|default(false) %} {% set status_labels = {submitted: 'Soumis', approved: 'Approuvé', refused: 'Refusé', cancelled: 'Annulé'} %} {% set type_labels = {unavailable: 'Indisponible', available: 'Disponible', preferred: 'Préférence'} %} {% set month_names = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'] %}
{% if not self_service %} {% endif %}

{{ self_service ? 'Mes disponibilités' : 'Disponibilités' }}

{{ self_service ? 'Déclarez vos périodes de disponibilité ou d’indisponibilité.' : 'Gérez vos disponibilités et celles de votre équipe pour la planification.' }}

{% if not self_service %}
{% endif %} Ajouter une disponibilité
{% if not self_service %}
En attente{{ metrics.submitted }}
Approuvées{{ metrics.approved }}
Indisponibilités{{ metrics.unavailable }}
Couverture{{ metrics.coverage }}%
{% endif %} {% if active_tab == 'weekly' and not self_service %}

Disponibilités hebdomadaires

Renseignez les plages récurrentes disponibles ou indisponibles pour le salarié sélectionné.

{% if weekly_view %}
Jour
{% for slot in weekly_view.slots %}
{{ slot.label }}
{% endfor %} {% for day_number, day_label in weekly_view.days %}
{{ day_label }}
{% for slot_key, slot in weekly_view.slots %} {% set preference = weekly_view.selected[day_number][slot_key]|default(null) %} {% set preference_type = preference ? preference.type : '' %}
{% endfor %} {% endfor %}
{% endif %}
{% else %} {% if not self_service %}
Réinitialiser
{% endif %}

{{ self_service ? 'Liste de mes demandes' : 'Liste des demandes' }}

{{ metrics.total }} demandes au total

Approuvé Soumis Refusé
{% if not self_service %}{% endif %} {% for availability in availabilities %} {% set employee = availability.salarie %} {% set type = availability.type %} {% set status = availability.status %} {% if not self_service %} {% endif %} {% else %} {% endfor %}
SalariéType Période Commentaire Récurrence Statut
{{ employee ? (employee.prenom|first ~ employee.nom|first)|upper : '?' }}
{{ employee }} {{ employee and employee.employeeJob ? employee.employeeJob.nom : (employee and employee.employeeService ? employee.employeeService.nom : 'Salarié') }}
{{ type_labels[type]|default(type|capitalize) }} {{ availability.startAt|date('d') }} {{ month_names[availability.startAt|date('n') - 1]|capitalize }} {{ availability.startAt|date('Y') }} {{ availability.startAt|date('H:i') }} - {{ availability.endAt|date('H:i') }} {{ availability.comment ?: '—' }} {{ availability.recurrenceRule ? 'Hebdo.' : 'Ponctuel' }} {{ status_labels[status]|default(status|capitalize) }}
{% if not self_service and status == 'submitted' %}
{% endif %} {% if status != 'cancelled' %} {% endif %}
Aucune disponibilité.
Affichage de 1 à {{ availabilities|length }} sur {{ metrics.total }} demandes
{% if not self_service %} {% endif %}
{% endif %}
{% endblock %}