{{ __('Réservations et Passagers') }}
{{ __('Sélectionnez les passagers à ajouter au trip (glisser-déposer)') }}
@php
// Construction de la requête avec filtres
$query = \App\Models\Reservation\Reservation::with(['mission', 'employe', 'depart_site', 'destination_site'])
->whereIn('status', ['accepted', 'pending']);
// Filtre par référence réservation
if(request('reservation_ref')) {
$query->where('reference', 'LIKE', '%' . request('reservation_ref') . '%');
}
// Filtre par mission
if(request('mission_id')) {
$query->where('mission_id', request('mission_id'));
}
// Filtre par site départ
if(request('depart_site_id')) {
$query->where('depart_site_id', request('depart_site_id'));
}
// Filtre par site destination
if(request('destination_site_id')) {
$query->where('destination_site_id', request('destination_site_id'));
}
// Filtre par priorité
if(request('priority')) {
$query->where('priority', request('priority'));
}
// Filtre par date
if(request('date')) {
$query->whereDate('date', request('date'));
}
$reservations = $query->get();
// Filtrer les passagers selon les critères
$filteredPassagers = collect();
foreach ($reservations as $reservation) {
$passagers = $reservation->passagers();
// Filtre par référence passager
if(request('passager_ref')) {
$passagers = $passagers->filter(function($passager) {
return stripos($passager->reference, request('passager_ref')) !== false;
});
}
// Filtre par nom passager
if(request('passager_name')) {
$passagers = $passagers->filter(function($passager) {
$fullName = $passager->first_name . ' ' . $passager->last_name;
return stripos($fullName, request('passager_name')) !== false ||
stripos($passager->first_name, request('passager_name')) !== false ||
stripos($passager->last_name, request('passager_name')) !== false;
});
}
foreach ($passagers as $passager) {
$filteredPassagers->push([
'passager' => $passager,
'reservation' => $reservation
]);
}
}
@endphp
@forelse ($filteredPassagers as $item)
@php
$passager = $item['passager'];
$reservation = $item['reservation'];
@endphp
{{ $reservation->depart_site->name ?? $reservation->depart }}
→
{{ $reservation->destination_site->name ?? $reservation->destination }}
@empty
@endforelse
#{{ $passager->reference }}
{{ $passager->first_name }} {{ $passager->last_name }}
Rés: #{{ $reservation->reference }}
@if($reservation->mission)
{{ $reservation->mission->name }}
@endif
{{ __(ucfirst($reservation->priority)) }}
{{ $reservation->date->format('d/m/Y H:i') }}
{{ __('Aucun passager trouvé') }}
{{ __('Essayez de modifier vos critères de filtre') }}
{{ __('Total') }}: {{ $filteredPassagers->count() }} {{ __('passagers') }}
{{ __('Trip en cours de constitution') }}
{{ __('Déposez les passagers ici pour les ajouter au trip') }}