{% set info = get_global_parameters() %}
| Employé | {% for i, date in dates %}{{ date|jour_abbr }} | {# Ajoute une colonne total après la fin d'une semaine #} {% set nextDate = dates[i + 1] ?? null %} {% if nextDate and (nextDate|date('Y-W') != date|date('Y-W')) %}Total | {% endif %} {% endfor %} {# Dernière colonne Total si le mois ne finit pas un dimanche #} {% if dates|last and (dates|last|date('w') != 0) %}Total | {% endif %}|
|---|---|---|---|---|
|
{% if emp.image is not null %}
{{ emp.prenom }} {{ emp.nom }}{{ emp.role }} |
{% for i, date in dates %}
{% set slots = planning[emp.id][date] ?? [] %}
{% set isFixedOff = fixedOffDays[emp.id][date] ?? false %}
{% set hasActiveContract = contractDays[emp.id][date] ?? false %}
{% set weekId = date|date('Y-W') %}
{% set isLocked = weekId in lockedWeeks %}
{% set isPast = date < "now"|date("Y-m-d") %}
{% if planningSettings.delayEnabled %}
{% set isPast = (date|date('U')) < ("now"|date_modify("+" ~ planningSettings.delayDays ~ " days")|date('U')) %}
{% endif %}
{% if slots %}
{% for slot in slots %}
{% if slot.type == "travail" %}
{{ slot.start }}
{{ slot.end }} {% if slot.hasNote %} {% endif %} {% else %} {{ slot.typeOff|capitalize|slice(0, 10) }} {% endif %} {% endfor %} {% if not isLocked and not isPast and not isFixedOff and hasActiveContract %} {% endif %} |
{% else %}
{% set blocked = blockedDays[emp.id][date|date('Y-m-d')] is defined %}
{% if blocked %}
|
{% endif %}
{# Après chaque fin de semaine, ajoute le total #}
{% set nextDate = dates[i + 1] ?? null %}
{% if nextDate and (nextDate|date('Y-W') != weekId) %}
{{ weekTotals[emp.id][weekId]|default(0)|number_format(2, ',', ' ') }} h {% if loop.parent.loop.index0 == 0 %} {% if isLocked %} {% else %} {% endif %} {% endif %} |
{% endif %}
{% endfor %}
{# Dernière colonne Total si le mois ne finit pas un dimanche #}
{% set lastWeekId = dates|last|date('Y-W') %}
{% if dates|last and (dates|last|date('w') != 0) %}
{{ weekTotals[emp.id][lastWeekId]|default(0)|number_format(2, ',', ' ') }} h | {% endif %}