@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 'شخص'; } } // Générer la liste des dates du séjour $datesSejour = []; if ($reservation->date_arrive && $reservation->date_depart) { $start = \Carbon\Carbon::parse($reservation->date_arrive); $end = \Carbon\Carbon::parse($reservation->date_depart); for ($i = 0; $i < $nights; $i++) { $currentDate = clone $start; $currentDate->addDays($i); $datesSejour[] = $currentDate->format('Y-m-d'); } } // Récupérer les données de restauration par jour $restaurationsJours = collect(); if (isset($reservation->restaurationsJours) && $reservation->restaurationsJours->count() > 0) { $restaurationsJours = $reservation->restaurationsJours->groupBy(function($item) { return $item->date_service ? $item->date_service->format('Y-m-d') : null; }); } // Récupérer les données de café par jour $cafeJours = collect(); if (isset($reservation->cafes) && $reservation->cafes->count() > 0) { $cafeJours = $reservation->cafes->keyBy(function($item) { return $item->date_service ? $item->date_service->format('Y-m-d') : null; }); } // Décoder les affectations archivées $affectationsArchive = []; if ($reservation->affectations_archive) { $decoded = json_decode($reservation->affectations_archive, true); if (is_array($decoded)) { $affectationsArchive = $decoded; } } // Calculer les totaux des affectations $totalMaleArchive = 0; $totalFemaleArchive = 0; $totalPersonsArchive = 0; foreach ($affectationsArchive as $aff) { $totalMaleArchive += $aff['male_personnes'] ?? 0; $totalFemaleArchive += $aff['female_personnes'] ?? 0; $totalPersonsArchive += $aff['total_personnes'] ?? 0; } @endphp
| نوع الوفد | نوع الإقامة | رجال | نساء | التعريفة للفرد | المجموع الفرعي | إجمالي الأشخاص |
|---|---|---|---|---|---|---|
| @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 | @if($person->accomodation_type == 'chambre') غرفة @elseif($person->accomodation_type == 'tente') خيمة @else غرفة @endif | {{ $person->nbr_hommes ?? 0 }} | {{ $person->nbr_femmes ?? 0 }} | {{ number_format($person->tarif ?? 0, 3) }} د | {{ number_format($person->subtotal ?? 0, 3) }} د | {{ $totalPersonnes }} |
{{ $reservation->commentaire_motif }}