{{-- resources/views/pdf/leave-request.blade.php --}} Demande de congés - {{ $leaveRequest->user->name }}

Demande de Congés

{{-- Cancelled banner for cancelled requests (FR81) --}} @if($leaveRequest->status === 'cancelled')
⚠ DEMANDE ANNULÉE ⚠
@endif {{-- Employee Information Section --}}
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 --}}
Signature du demandeur
@if($employeeSignature) Signature @else
@endif
{{ $leaveRequest->user->name }}
Signature du validateur
@if($validatorSignature) Signature @else
@endif @if($leaveRequest->validator)
{{ $leaveRequest->validator->name }}
@endif