Envio de documento manual Egypt

@if(session('status'))
{{ session('status') }}
@endif @error('attachment')
{{ $message }}
@enderror
@csrf
Formatos permitidos: PDF, DOC, DOCX (máx. 5MB)
@csrf
Actualizar el valor del campo PROCESANDO en la base de datos
@error('processing')
{{ $message }}
@enderror
@php $uploadedImagePath = public_path('uploads/egypt-images/' . $e->key); $extensions = ['jpg', 'jpeg', 'png', 'gif']; $uploadedImage = null; foreach ($extensions as $ext) { if (file_exists($uploadedImagePath . '.' . $ext)) { $uploadedImage = $e->key . '.' . $ext; break; } } @endphp @if($uploadedImage)
Imagen adicional guardada
Imagen adicional
Archivo: {{ $uploadedImage }}
Tamaño: {{ round(filesize(public_path('uploads/egypt-images/' . $uploadedImage)) / 1024, 2) }} KB

@endif
Información del documento
@php // Orden específico de campos importantes para Egypt $orderedFields = [ 'departure_country' => 'Departure Country', 'arrival_date' => 'Arrival Date', 'departure_date' => 'Departure Date', 'name' => 'Name', 'last_name' => 'Last Name', 'gender' => 'Gender', 'birth_date' => 'Birth Date', 'birth_country' => 'Birth Country', 'nationality' => 'Nationality', 'occupation' => 'Occupation', 'marital_status' => 'Marital Status', 'passport' => 'Passport', 'passport_expiration_date' => 'Passport Expiration Date', 'email' => 'Email', 'phone_combined' => 'Phone', 'address' => 'Address', 'name_2' => 'Name', 'surname' => 'Surname', 'passport_number' => 'Passport Number', 'phone_combined_2' => 'Phone', 'host_address' => 'Host Address', ]; // Campos ya mostrados para evitar duplicados $shownFields = []; @endphp {{-- Mostrar campos prioritarios primero --}} @foreach($orderedFields as $fieldKey => $fieldLabel) @if($fieldKey === 'phone_combined') {{-- Campo especial para teléfono combinado --}} @php $phoneCode = $e->data['phone_code'] ?? ''; $phone = $e->data['phone'] ?? ''; // Extraer solo el código entre paréntesis si existe if (preg_match('/\(([^)]+)\)/', $phoneCode, $matches)) { $phoneCode = $matches[1]; } $combinedPhone = $phoneCode . $phone; $shownFields[] = 'phone_code'; $shownFields[] = 'phone'; @endphp @if(!empty($combinedPhone)) @endif @elseif($fieldKey === 'phone_combined_2') {{-- Campo especial para segunda instancia de teléfono combinado --}} @php $phoneCode = $e->data['phone_code'] ?? ''; $phone = $e->data['phone'] ?? ''; // Extraer solo el código entre paréntesis si existe if (preg_match('/\(([^)]+)\)/', $phoneCode, $matches)) { $phoneCode = $matches[1]; } $combinedPhone = $phoneCode . $phone; @endphp @if(!empty($combinedPhone)) @endif @elseif($fieldKey === 'address') {{-- Campo especial para address sin puntos ni comas --}} @php $address = $e->data['address'] ?? ''; // Eliminar todo excepto letras, números y espacios $cleanAddress = preg_replace('/[^a-zA-Z0-9\s]/', '', $address); $shownFields[] = 'address'; @endphp @if(!empty($cleanAddress)) @endif @elseif($fieldKey === 'host_address') {{-- Campo especial para host address sin puntos ni comas --}} @php $hostAddress = $e->data['host_address'] ?? ''; // Eliminar todo excepto letras, números y espacios $cleanHostAddress = preg_replace('/[^a-zA-Z0-9\s]/', '', $hostAddress); $shownFields[] = 'host_address'; @endphp @if(!empty($cleanHostAddress)) @endif @elseif(isset($e->data[$fieldKey])) @php $shownFields[] = $fieldKey; @endphp @endif @endforeach {{-- Mostrar el resto de campos (excepto travelers que irá al final) --}} @foreach($e->data as $field => $value) @if(!in_array($field, $shownFields) && $field !== 'travelers') @endif @endforeach {{-- Mostrar la sección de Travelers siempre al final --}}
Key{{ $e->key }}
Status{{ $e->status }}
PROCESANDO{{ $e->processing ?? 'No establecido' }}
{{ $fieldLabel }} {{ $combinedPhone }}
{{ $fieldLabel }} {{ $combinedPhone }}
{{ $fieldLabel }} {{ $cleanAddress }}
{{ $fieldLabel }} {{ $cleanHostAddress }}
{{ $fieldLabel }} {{ is_array($e->data[$fieldKey]) ? json_encode($e->data[$fieldKey]) : $e->data[$fieldKey] }}
{{ ucwords(str_replace('_', ' ', $field)) }} @if(str_contains($field, 'passport_photo') && !empty($value)) @php $imageUrl = 'https://arrivalcardegypt.com/storage/' . $value; $uniqueId = md5($field . $value); @endphp
Passport Photo
Archivo: {{ basename($value) }}
Ruta: {{ $value }}
Tamaño: Calculando...
@else {{ is_array($value) ? json_encode($value) : $value }} @endif
Travelers @php $travelersData = $e->data['travelers'] ?? null; $travelers = null; if (!empty($travelersData)) { $travelers = is_string($travelersData) ? json_decode($travelersData, true) : $travelersData; } @endphp @if(is_array($travelers) && count($travelers) > 0)
{{ count($travelers) }} Travelers
@foreach($travelers as $index => $traveler)
Traveler {{ $index + 1 }}
@if(!empty($traveler['name']))

Name: {{ $traveler['name'] }}

@endif @if(!empty($traveler['last_name']))

Last Name: {{ $traveler['last_name'] }}

@endif @if(!empty($traveler['birth_date']))

Birth Date: {{ $traveler['birth_date'] }}

@endif @if(!empty($traveler['gender']))

Gender: {{ ucfirst($traveler['gender']) }}

@endif @if(!empty($traveler['marital_status']))

Marital Status: {{ ucfirst($traveler['marital_status']) }}

@endif
@if(!empty($traveler['nationality']))

Nationality: {{ $traveler['nationality'] }}

@endif @if(!empty($traveler['passport']))

Passport: {{ $traveler['passport'] }}

@endif @if(!empty($traveler['passport_expiration_date']))

Passport Exp: {{ $traveler['passport_expiration_date'] }}

@endif @if(!empty($traveler['passport_photo_id'])) @php $imageUrl = 'https://arrivalcardegypt.com/storage/passport_photos/' . $traveler['passport_photo_id'] . '.jpg'; $uniqueId = md5('traveler_' . $index . '_passport_' . $traveler['passport_photo_id']); @endphp

Passport Photo:

Traveler {{ $index + 1 }} Passport Photo Size: Calculating...
@endif
@endforeach
@else No travelers data available @endif
Panel de administración - Egypt
@include('layouts.partials.footer')