@extends('backoffice.dashboard') @section('content') @php // Calculer le nombre de nuits $nights = 0; if ($reservation->date_arrive && $reservation->date_depart) { try { $nights = \Carbon\Carbon::parse($reservation->date_arrive) ->diffInDays(\Carbon\Carbon::parse($reservation->date_depart)); } catch (Exception $e) { $nights = 0; } } // Fonction pour gérer la pluralisation en arabe pour les nuits function getNightsTextArabic($nights) { if ($nights === 1) { return 'ليلة'; } else if ($nights === 2) { return 'ليلتين'; } else if ($nights >= 3 && $nights <= 10) { return 'ليالي'; } else { return 'ليلة'; } } // Fonction pour gérer la pluralisation en arabe pour les personnes function getPersonsTextArabic($persons) { if ($persons === 1) { return 'شخص'; } else if ($persons === 2) { return 'شخصين'; } else if ($persons >= 3 && $persons <= 10) { return 'أشخاص'; } else { return 'شخص'; } } @endphp

تفاصيل الحجز

المعلومات الشخصية

{{ $reservation->user->nom_prenom ?? '-' }}
{{ $reservation->user->email ?? '-' }}
{{ $reservation->user->tel ?? '-' }}
{{ $reservation->user->adresse ?? '-' }}

تواريخ الإقامة

{{ $reservation->date_arrive ?? '-' }}
{{ $reservation->date_depart ?? '-' }}
{{ $nights }} {{ getNightsTextArabic($nights) }}
{{ $reservation->nbr_personnes ?? 0 }} {{ getPersonsTextArabic($reservation->nbr_personnes ?? 0) }}

تفاصيل الأشخاص

{{ $reservation->nbr_h ?? 0 }}
{{ $reservation->nbr_f ?? 0 }}
{{ $reservation->nbr_personnes ?? 0 }}
@if($reservation->reservationPersons && $reservation->reservationPersons->count() > 0)
التفاصيل حسب النوع
@foreach($reservation->reservationPersons as $person) @php $totalPersonnes = ($person->nbr_hommes ?? 0) + ($person->nbr_femmes ?? 0); if (!isset($person->tarif) || $person->tarif == 0) { if ($person->typeTarif) { $person->tarif = $person->typeTarif->tarif_chambre ?? 0; } } if (!isset($person->subtotal) || $person->subtotal == 0) { $person->subtotal = ($person->tarif ?? 0) * $totalPersonnes; } @endphp @endforeach
نوع الوفد نوع الإقامة رجال نساء التعريفة للفرد المجموع الفرعي إجمالي الأشخاص
@if($person->typeTarif ?? false) @php $typeName = $person->typeTarif->type_ar ?? $person->typeTarif->type_fr ?? $person->typeTarif->type_en ?? ''; $type = $person->typeTarif->type ?? ''; @endphp {{ $typeName }} @if($type == 'groupe') (مجموعة) @else (فردي) @endif @else لا توجد قيمة @endif غرفة {{ $person->nbr_hommes ?? 0 }} {{ $person->nbr_femmes ?? 0 }} {{ number_format($person->tarif ?? 0, 3) }} د {{ number_format($person->subtotal ?? 0, 3) }} د {{ $totalPersonnes }}
@else
لم يتم إدخال تفاصيل الأشخاص بعد
@endif

خدمات الطعام

خدمات الطعام تحسب لكل شخص ولكل ليلة
@php $selectedIds = $reservation->restaurations->pluck('id_rest')->toArray(); $nbrPersons = $reservation->nbr_personnes ?? 0; @endphp @if($nights > 0 && $nbrPersons > 0)
الحساب: {{ $nbrPersons }} {{ getPersonsTextArabic($nbrPersons) }} × {{ $nights }} {{ getNightsTextArabic($nights) }}
@endif @foreach($restaurations as $res)
id_rest, $selectedIds)) checked @endif disabled>
@endforeach
@if($reservation->restaurations->isEmpty())
لا توجد خدمات إضافية
@else @foreach($reservation->restaurations as $resto) @php $prixUnitaire = $resto->pivot->tarif ?? $resto->tarif ?? 0; $totalResto = $prixUnitaire * $nbrPersons * $nights; @endphp
{{ $resto->nom_ar }}
{{ number_format($totalResto, 3) }} د
@if($resto->description_ar ?? false)
{!! nl2br(e($resto->description_ar ?? '—')) !!}
@endif
{{ number_format($prixUnitaire, 3) }} د × {{ $nbrPersons }} {{ getPersonsTextArabic($nbrPersons) }} × {{ $nights }} {{ getNightsTextArabic($nights) }}
@endforeach @endif

الملاحظات

{{ $reservation->remarque ?: '—' }}
ملخص الحجز
المركز: @if($reservation->auberge) {{ $reservation->auberge->nom_ar ?? '-' }} @else لا توجد قيمة @endif
عدد الليالي: {{ $nights }} {{ getNightsTextArabic($nights) }}
عدد النزلاء: {{ $reservation->nbr_personnes ?? 0 }} {{ getPersonsTextArabic($reservation->nbr_personnes ?? 0) }}
@php // Calcul du total des services de restauration (prix × personnes × nuits) $restoTotal = 0; if ($reservation->restaurations && $reservation->restaurations->count() > 0) { foreach ($reservation->restaurations as $resto) { $prixUnitaire = $resto->pivot->tarif ?? $resto->tarif ?? 0; $restoTotal += $prixUnitaire * $nbrPersons * $nights; } } @endphp
خدمات الطعام: {{ number_format($restoTotal, 3) }} د
التعريفة لليلة: @php $tarifNuit = 0; if ($reservation->reservationPersons && $reservation->reservationPersons->count() > 0) { foreach ($reservation->reservationPersons as $person) { $tarifNuit += $person->subtotal ?? 0; } } if ($tarifNuit == 0 && $reservation->total_price > 0 && $nights > 0) { $tarifNuit = ($reservation->total_price - $restoTotal) / $nights; } if ($tarifNuit == 0 && $reservation->nbr_personnes > 0) { $prixMoyenParPersonne = 30; $tarifNuit = $reservation->nbr_personnes * $prixMoyenParPersonne; } @endphp {{ number_format($tarifNuit, 3) }} د
إجمالي الإقامة: @php $totalHebergement = $tarifNuit * $nights; @endphp {{ number_format($totalHebergement, 3) }} د
السعر الإجمالي
@php // Utiliser total_price s'il existe, sinon calculer $totalFinal = $reservation->total_price ?? ($totalHebergement + $restoTotal); @endphp {{ number_format($totalFinal, 3) }} د
حالة الحجز: @php $statut = $reservation->statut?->statut_ar ?? 'في الانتظار'; $badgeClass = 'status-badge--pending'; if ($reservation->statut_id == 1) { $badgeClass = 'status-badge--success'; } elseif ($reservation->statut_id == 3) { $badgeClass = 'status-badge--danger'; } @endphp {{ $statut }}
@if($reservation->statut_id == 3 && !empty($reservation->commentaire_motif))
سبب الرفض:

{{ $reservation->commentaire_motif }}

@endif @if($reservation->statut_id == 1 && $reservation->date_acceptation)
تاريخ القبول: {{ $reservation->date_acceptation }}
@endif
رجوع إلى قائمة الحجوزات

@if($reservation->statut_id == 2) @php $currentStatus = old('statut_id', $reservation->statut_id ?? ''); $currentMotif = old('commentaire_motif', $reservation->commentaire_motif ?? ''); @endphp
الوضعية الحالية

يمكنك تعديل وضعية الحجز من هنا:

@csrf @method('PUT')
0 / 150
@endif
@endsection