Informations du demandeur
Type de contrat
{{ $leaveRequest->user->employee_type === 'Salarié' ? '✓' : '' }}
Salarié
{{ $leaveRequest->user->employee_type === 'Cadre' ? '✓' : '' }}
Cadre
NOM et Prénom
{{ $leaveRequest->user->name }}
{{-- Leave Request Details Section --}}
Détails de la demande
Type de congé
{{ $leaveRequest->leave_type === 'Congés payés' ? '✓' : '' }}
Congés payés
{{ $leaveRequest->leave_type === 'RTT' ? '✓' : '' }}
RTT
{{ $leaveRequest->leave_type === 'Sans Solde' ? '✓' : '' }}
Sans Solde
{{ $leaveRequest->leave_type === 'Congés familiaux' ? '✓' : '' }}
Congés familiaux
Période
@php
// Determine if dates are consecutive or not
$dates = $leaveRequest->dates ?? [];
$isNonConsecutive = false;
if (count($dates) > 1) {
// Sort dates and check if they form a consecutive sequence
$sortedDates = collect($dates)->sort()->values();
for ($i = 1; $i < count($sortedDates); $i++) {
$prev=\Carbon\Carbon::parse($sortedDates[$i - 1]);
$curr=\Carbon\Carbon::parse($sortedDates[$i]);
// Check if dates are consecutive (allowing for weekends)
$daysDiff=$prev->diffInDays($curr);
if ($daysDiff > 1) {
// Check if the gap is just a weekend
$nextDay = $prev->copy()->addDay();
$isOnlyWeekend = true;
while ($nextDay->lt($curr)) {
if ($nextDay->dayOfWeek >= 1 && $nextDay->dayOfWeek <= 5) {
$isOnlyWeekend=false;
break;
}
$nextDay->addDay();
}
if (!$isOnlyWeekend) {
$isNonConsecutive = true;
break;
}
}
}
}
@endphp
@if($isNonConsecutive)
{{-- Non-consecutive dates: show list --}}
@php
$formattedDates = collect($leaveRequest->dates)->map(function($date) {
return \Carbon\Carbon::parse($date)->locale('fr')->isoFormat('D MMMM YYYY');
})->join(', ');
@endphp
{{ $formattedDates }}
@else
{{-- Consecutive dates or single day: show range --}}
@if($leaveRequest->start_date->format('Y-m-d') === $leaveRequest->end_date->format('Y-m-d'))
Le {{ $leaveRequest->start_date->locale('fr')->isoFormat('D MMMM YYYY') }}
@else
Du {{ $leaveRequest->start_date->locale('fr')->isoFormat('D MMMM YYYY') }}
au {{ $leaveRequest->end_date->locale('fr')->isoFormat('D MMMM YYYY') }}
@endif
@endif
Nombre de jours ouvrés
{{ $workingDays }} jour(s)
@if($leaveRequest->comment)
Commentaire
{{ $leaveRequest->comment }}
@endif
Date de la demande
{{ $leaveRequest->created_at->locale('fr')->isoFormat('D MMMM YYYY') }}
{{-- Validation Decision Section --}}
Décision de validation
Avis
{{ in_array($leaveRequest->status, ['validated', 'cancelled']) ? '✓' : '' }}
Favorable
{{ $leaveRequest->status === 'rejected' ? '✓' : '' }}
Défavorable
@if($leaveRequest->rejection_reason)
Motif du refus
{{ $leaveRequest->rejection_reason }}
@endif
Date de validation
{{ $leaveRequest->updated_at->locale('fr')->isoFormat('D MMMM YYYY') }}
@if($leaveRequest->validator)
Validateur
{{ $leaveRequest->validator->name }}
@endif
{{-- Cancellation Section for cancelled requests (FR81) --}}
@if($leaveRequest->status === 'cancelled')
Annulation
Annulé le
{{ $leaveRequest->cancelled_at ? $leaveRequest->cancelled_at->locale('fr')->isoFormat('D MMMM YYYY') : 'Non spécifié' }}
@if(isset($cancellationReason) && $cancellationReason)
Motif de l'annulation
{{ $cancellationReason }}
@endif
@endif
{{-- Signatures Section --}}