@include('admin.booking.includes.styles.ticket') @php if ($editedFlightDetails) { $editedFlightDetails = json_decode($editedFlightDetails); $editedBookingDetails = json_decode($editedFlightDetails[0]->booking_details); $userDetails = $editedBookingDetails->booking_details->userDetails ?? $editedBookingDetails->userDetails; $flightDetails = $editedBookingDetails->booking_details->flightDetails->airlines[0]->flights ?? $editedBookingDetails->flightDetails->airlines[0]->flights; $editedflightInfo = $editedBookingDetails->booking_details->flightDetails->airlines ?? $editedBookingDetails->flightDetails->airlines; $editedFlightInfo = $passengerDetails = $editedBookingDetails->booking_details->passengerDetails ?? $editedBookingDetails->passengerDetails; $paymentDetails = $editedBookingDetails->booking_details->processedPrice ?? $editedBookingDetails->processedPrice; $segments = $flightDetails[0]->segments ?? ''; $bookingDetails = json_decode($bookingDetail->booking_details); $additionalBookingData = $additionalBookingDetails; $additionalBookingDetails = json_decode($additionalBookingDetails->booking_details ?? '{}'); $seatDetails = $bookingDetails->booking_details->flightDetails->seatDetails->seatDetails ?? ($additionalBookingDetails->flightDetails->seatDetails ?? ''); $originalFlightDetails = $bookingDetails->booking_details->flightDetails ?? ($additionalBookingDetails->flightDetails ?? ''); $originalFlightInfo = $originalFlightDetails->airlines ?? []; $brandedFares = $bookingDetails->booking_details->flightDetails->brandedFaresBySegment ?? ($additionalBookingDetails->flightDetails->brandedFaresBySegment ?? ''); $bagDetails = array($bookingDetails->booking_details->flightDetails->additionalDetails->addBags ?? '') ?? ($additionalBookingDetails->flightDetails->additionalDetails->addBags ?? ''); $serviceProviderResponse = json_decode($additionalBookingData->service_provider_booking_response ?? '{}', true); $airlinePnr = $gdsPnr = []; if (!empty($serviceProviderResponse) && isset($serviceProviderResponse['data']['associatedRecords'])) { $associatedRecords = $serviceProviderResponse['data']['associatedRecords']; foreach ($associatedRecords as $record) { if ($record['originSystemCode'] === 'GDS') { $gdsPnr[] = $record['reference']; } else { $airlinePnr[] = $record['reference']; } } } $searchDetails = $editedBookingDetails->booking_details->searchDetails ?? ($editedBookingDetails->searchDetails ?? []); $airlineList = $searchDetails->airlineList ?? []; } @endphp

رحلة جوية

تذكرة

{{ $invoiceSettings->title_ar ?? 'شركة ريلتي للسياحة ذ.م.م' }}

عنوان: {{ $invoiceSettings->address_ar ?? 'عنوان: طريق أبو بكر الصديق، حي النهضة، بريدة، المملكة العربية السعودية 52389' }}

دولة: {{ $invoiceSettings->city_ar ?? 'KSA' }}

بريد إلكتروني: {{ $invoiceSettings->email ?? 'support@rehlte.com' }}

@php $flightIcon = << SVG; @endphp
@php $tripType = 'طريقة واحدة'; if($bookingDetail->additional_details){ if($bookingDetail->additional_details == 'one-way'){ $tripType = 'طريقة واحدة'; }else if($bookingDetail->additional_details == 'round-trip'){ $tripType = 'رحلة ذهابا وإيابا'; }else{ $tripType = 'مدينة متعددة'; } } @endphp @php $segmentsCollection = collect($segments); $firstSegment = $segmentsCollection->first(); $lastSegment = $segmentsCollection->last(); @endphp

{{ $firstSegment->departureAirportData->city_name ?? getCityNameByAirportCode($firstSegment->departureAirportData->code) ?? ' ' }}   {!! $flightIcon !!}   {{ $lastSegment->arrivalAirportData->city_name ?? getCityNameByAirportCode($lastSegment->arrivalAirportData->code) ?? ' ' }}

@php $bookingStatus = 'قيد الانتظار'; if ($bookingDetail->booking_status == 'processing') { $style = '#09496D'; $bookingStatus = 'يعالج'; } elseif ($bookingDetail->booking_status == 'confirmed') { $style = '#08CB00'; $bookingStatus = 'مؤكد'; } elseif ($bookingDetail->booking_status == 'cancelled') { $style = 'yellow'; $bookingStatus = 'تم الإلغاء'; } elseif($bookingDetail->booking_status == 'failed'){ $style = 'red'; $bookingStatus = 'فشل'; } else { $style = 'orange'; $bookingStatus = 'قيد الانتظار'; } @endphp

تذكرة الحجز - رحلة جوية:

معرف الحجز / معرف الحجز : {{ $bookingDetail->booking_ref ?? '' }}

مرجع شركة الطيران : {{ !empty($airlinePnr) ? implode(',', $airlinePnr) : (!empty($gdsPnr) ? implode(',', $gdsPnr) : '') }}

تاريخ الحجز: {{ \Carbon\Carbon::parse($bookingDetail->created_at)->format('Y-m-d') ?? '' }}

المغادرة من {{$firstSegment->departureAirportData->city_name ?? getCityNameByAirportCode($firstSegment->departureAirportData->code) ?? ' ' }} ل {{$lastSegment->arrivalAirportData->city_name ?? getCityNameByAirportCode($lastSegment->arrivalAirportData->code) ?? ' ' }}

@php $cabinClass = 'اقتصاد'; if(isset($flightDetails[0]->segments[0]->segmentFare->cabin)){ $cabin = getCabinClass($flightDetails[0]->segments[0]->segmentFare->cabin, 'ar'); } @endphp

فصل : {{$cabinClass ?? ''}}


@if($editedFlightDetails && !empty($editedFlightDetails->flight_details)) @php $departureTime = str_replace("T", " ", $segments->departure->at); $arrivalTime = str_replace("T", " ", $segments->arrival->at); $departure = new \DateTime($departureTime); $arrival = new \DateTime($arrivalTime); $interval = $departure->diff($arrival); $formattedDeparture = $departure->format('D d M') ?? ' '; $formattedArrival = $arrival->format('D d M') ?? ' '; @endphp @if($segments->numberOfStops == 0) @php $numberOfStops = 'Non-Stop'; @endphp @endif
رحلة المغادرة
{{ isset($segments->airlineData) ? $segments->airlineData->name: '' }}
{{ isset($segments->airlineData) && isset($segments->airlineData->name) ? $segments->airlineData->name : ' ' }}
{{ isset($segments->aircraftData) && isset($segments->aircraftData->name) ? $segments->aircraftData->name : ' ' }}
Flight: {{ $segments->carrierCode ?? ' ' }}, {{ isset($segments->aircraft) && isset($segments->aircraft->code) ? $segments->aircraft->code : ' ' }}
{{ date('H:i', strtotime(str_replace("T", " ", $segments->departure->at))) }}
{{$segments->departure->iataCode}}
{{$segments->departureAirportData->city_name ?? (getCityNameByAirportCode($segments->departureAirportData->code) ?? '') }},{{$segments->departureAirportData->country_name ?? ''}}
{{$formattedDeparture}}
Terminal {{$segments->departure->terminal ?? ' '}}
{{ $interval->format('%h hours %i minutes') }}
{{ $numberOfStops }}
{{ date('H:i', strtotime(str_replace("T", " ", $segments->arrival->at))) }}
{{$segments->arrival->iataCode}}
{{$segments->arrivalAirportData->city_name ?? (getCityNameByAirportCode($segments->arrivalAirportData->code) ?? '')}},{{$segments->arrivalAirportData->country_name ?? ' '}}
{{$formattedArrival}}
Terminal {{$segments->arrival->terminal ?? ' '}}
@else @php $i = 0; @endphp @foreach ($editedflightInfo as $airline) @foreach ($airline->flights ?? [] as $flight) @php $segments = $flight->segments ?? []; $numberOfStops = count($segments) - 1; $firstSegment = $segments[0] ?? null; $lastSegment = $segments[$numberOfStops] ?? null; $departureDateTime = $firstSegment ? new \DateTime($firstSegment->departureDate ?? '') : null; $arrivalDateTime = $lastSegment ? new \DateTime($lastSegment->arrivalDate ?? '') : null; $totalDuration = ($departureDateTime && $arrivalDateTime) ? $departureDateTime->diff($arrivalDateTime) : null; @endphp @if ($firstSegment && $lastSegment) @foreach ($segments as $sIndex => $segment) @php $departureDateTime = isset($segment->departureDate) ? new \DateTime($segment->departureDate) : null; $arrivalDateTime = isset($segment->arrivalDate) ? new \DateTime($segment->arrivalDate) : null; $carrierCode = $segment->carrierCode ?? ''; $operatedByCode = $segment->operating->carrierCode ?? ''; $airlineMap = collect($airlineList)->keyBy('code'); $operatedByAirline = $operatedByCode ? ($airlineMap[$operatedByCode] ?? null) : null; @endphp {{-- Layover Info --}} @if ($sIndex < count($segments) - 1) @php $nextSegment=$segments[$sIndex + 1]; $layoverArrival=$arrivalDateTime; $nextDeparture=isset($nextSegment->departureDate) ? new \DateTime($nextSegment->departureDate) : null; $layoverDuration = ($layoverArrival && $nextDeparture) ? $layoverArrival->diff($nextDeparture) : null; @endphp @endif @endforeach
@if($bookingDetail?->additional_details == 'multi-city') {{ 'رحلة المغادرة' }} @else {{ $i % 2 == 0 ? 'رحلة المغادرة' : 'رحلة العودة' }} @endif ({{ $numberOfStops > 0 ? $numberOfStops . ' توقف' : 'بدون توقف' }})
@if ($carrierCode != $operatedByCode && !empty($operatedByAirline->logo)) {{ $operatedByAirline->name }} @endif {{ $segment->airlineData->name ?? '' }}
{{ $segment->airlineData->name ?? '' }}
{{ $segment->aircraftData->name ?? '' }}
@if ($carrierCode != $operatedByCode && !empty($operatedByAirline->logo))
{{ $operatedByAirline->name ? ' تعمل بواسطة '. $operatedByAirline->name : '' }}
@endif
{{ $departureDateTime ? $departureDateTime->format('H:i') : '' }}
{{ $segment->departureAirportData->iataCode ?? '' }}
{{ $segment->departureAirportData->city_name ?? '' }}, {{ $segment->departureAirportData->country_name ?? '' }}
{{ $departureDateTime ? $departureDateTime->format('D d M') : '' }}
صالة {{ $segment->departure->terminal ?? '-' }}
{!! $flightIcon !!}
{{ $segment->durationText ?? '-' }}
{{ $arrivalDateTime ? $arrivalDateTime->format('H:i') : '' }}
{{ $segment->arrivalAirportData->iataCode ?? '' }}
{{ $segment->arrivalAirportData->city_name ?? '' }}, {{ $segment->arrivalAirportData->country_name ?? '' }}
{{ $arrivalDateTime ? $arrivalDateTime->format('D d M') : '' }}
صالة {{ $segment->arrival->terminal ?? '-' }}
توقف في {{ $segment->arrivalAirportData->city_name ?? '' }}, {{ $segment->arrivalAirportData->country_name ?? '' }} @if ($layoverDuration) - {{ $layoverDuration->format('%h ساعات %i دقائق') }} @endif
@php $i++; @endphp @endif @endforeach @endforeach @endif

تفاصيل المسافر


@if (!empty($passengerDetails)) @php $brandedLookup = []; if (!empty($brandedFares)) { foreach ($brandedFares as $segmentGroup) { foreach ($segmentGroup as $branded) { if (isset($branded->segmentId)) { $brandedLookup[$branded->segmentId] = $branded; } } } } @endphp @foreach ($passengerDetails as $pkey => $pvalue)
{{ ucfirst($pvalue->title ?? '') }} {{ ucfirst($pvalue->first_name ?? '') }} {{ $pvalue->second_name ?? '' }} {{ ucfirst($pvalue->last_name ?? '') }} @isset($pvalue->traveler_type) ({{ ucfirst($pvalue->traveler_type ?? '') }}) @endisset
@foreach ($editedflightInfo as $index => $directionInfo) @php $flights = is_array($directionInfo->flights) ? $directionInfo->flights : [$directionInfo->flights]; $directionInfo->flights; $segments = $flight->segments ?? []; $branded = $brandedFares[$index] ?? null; $seat = []; if (is_object($seatDetails) && property_exists($seatDetails, 'status') && $seatDetails->status) { // Case 1: object with nested seatDetails $seatArray = $seatDetails->seatDetails->seatDetails ?? []; $seat = $seatArray[$index] ?? []; } elseif (is_array($seatDetails)) { // Case 2 or 3: array of arrays or array of objects if (isset($seatDetails[$index])) { // Check if it's a nested array (case 2) if (is_array($seatDetails[$index]) && isset($seatDetails[$index][0])) { $seat = $seatDetails[$index][0]; } else { // Flat array of objects (case 3) $seat = $seatDetails[$index]; } } } if($bagDetails){ if( isset($bagDetails) ){ $bag = $bagDetails[0] ?? []; } else{ $bag = []; } } else{ $bag = []; } $stopCount = count($segments) - 1; @endphp @foreach ($flights as $fIndex => $flight) @php $segments = $flight->segments ?? []; $stopCount = count($segments) - 1; @endphp @if ($flight)
رحلة {{ $loop->iteration }}: {{ $flight->departureAirport ?? ' ' }} - {{ $flight->arrivalAirport ?? ' ' }} @if ($stopCount > 0) ({{ $stopCount }} قف{{ $stopCount > 1 ? 'ق' : '' }}) @else (بدون توقف) @endif
@foreach ($segments as $skey => $seg) @php // PNR $pnr = '-'; if (!empty($airlinePnr) && is_array($airlinePnr)) { if (count($airlinePnr) <= 1) { $pnr=$airlinePnr[0] ?? '-' ; } else { $pnr=$airlinePnr[$index] ?? '-' ; } $pnr=trim(str_replace(['PNR', 'pnr' ], '' , $pnr)); } // Seat //$seatNumber=$seat->ticket_details->seat_number ?? ' '; $seatNumber = '-'; $travelerId = (string) ($pkey + 1); // Match seatDetails travelerId to passenger index + 1 foreach ($seatDetails as $seatItem) { if ( isset($seatItem->segmentId) && isset($seatItem->travelerId) && $seatItem->segmentId == $seg->id && $seatItem->travelerId == $travelerId && isset($seatItem->ticket_details->seat_number) ) { $seatNumber = $seatItem->ticket_details->seat_number; break; } } // Extra Baggage $extraBaggage = 'لا توجد أمتعة إضافية'; $icon = ''; if (!empty($bag) && !empty($bag->selectedBagDetails)) { foreach ($bag->selectedBagDetails as $bagDetail) { if ( isset($bagDetail->segmentId, $bagDetail->travelerId, $bagDetail->bag->quantity) && $bagDetail->segmentId == $seg->id && $bagDetail->travelerId == $pkey ) { $quantity = $bagDetail->bag->quantity; if ($quantity > 0) { $icon = ''; $extraBaggage = $quantity . ' قطعة' . ($quantity > 1 ? 's' : ''); } break; } } } // Baggage $branded = $brandedLookup[$seg->id] ?? null; $checkedBaggage = $branded->checkedBaggage[0] ?? null; $cabinBaggage = $branded->cabinBaggage ?? null; $checkedbaggageDesc = $checkedBaggage->description_ar ?? ' '; $checkedBaggageIcon = !empty($checkedBaggage->status) ? '' : ''; if (!$checkedBaggage) { $checkedbaggageDesc = ' '; $checkedBaggageIcon = ''; } $cabinbaggageDesc = $cabinBaggage->description_ar ?? ' '; $cabinbaggageIcon = !empty($cabinBaggage->status) ? '' : ''; if (!$cabinBaggage) { $cabinbaggageDesc = ' '; $cabinbaggageIcon = ''; } @endphp @endforeach

شريحة

رقم التذكرة الإلكترونية

سجل معلومات شركة الطيران

رقم المقعد

بدل الأمتعة

أمتعة المقصورة

الأمتعة الإضافية

{{ $seg->departure->iataCode ?? ' ' }} - {{ $seg->arrival->iataCode ?? ' ' }}

{{ $bookingDetail->ticket_numbers ?? '-' }}

{{ $seg->airlinePNR ?? (!empty($gdsPnr) ? implode(',', $gdsPnr) : '') }}

{{ $seatNumber }}

{!! $checkedBaggageIcon !!} {{ $checkedbaggageDesc ?? '' }}

{!! $cabinbaggageIcon ?? '' !!} {{ $cabinbaggageDesc ?? '' }}

{!! $icon !!} {{ $extraBaggage ?? 'Nil' }}

طلب خاص : {{ $segments[0]->segmentFare->specialRequest ?? 'لا يوجد طلب خاص' }}
@endif @endforeach @endforeach
@endforeach @endif

جميع الرسوم سارية حتى ٤٨ ساعة قبل موعد مغادرة الرحلة. قد تُطبق رسوم إضافية بعد ذلك.

معلومات مفيدة:

@if($pageDetails)

{!! $pageDetails->page_content !!}

@endif
     

اتصل بنا: {{ $invoiceSettings ? ($invoiceSettings?->phone_code . " " . $invoiceSettings?->phone_no) : "+966 920001818" }}

واتس اب لنا: {{ $invoiceSettings ? ($invoiceSettings?->phone_code . " " . $invoiceSettings?->phone_no) : "+966 920001818" }}