@php use Carbon\Carbon; $title = __('modules.jomhor.resources_views_services_show.text_bd7bbd3047'); $paths = collect($service->paths ?? [])->sortBy('step_number')->values(); $activePath = $paths->first(fn($p) => (int)($p->is_active ?? 0) === 1); // تلوين حالات الرد $responseMap = [ 'accept' => ['label' => 'مقبول', 'class' => 'bg-green-100 text-green-700'], 'forward' => ['label' => 'تم التحويل', 'class' => 'bg-blue-100 text-blue-700'], 'reject' => ['label' => 'مرفوض', 'class' => 'bg-red-100 text-red-700'], 'hold' => ['label' => 'معلق', 'class' => 'bg-yellow-100 text-yellow-700'], ]; // حالة الطلب العامة $responseMap['transfer'] = ['label' => 'تم تغيير الموظف', 'class' => 'bg-indigo-100 text-indigo-700']; $responseMap['change_step'] = ['label' => 'تم تغيير المرحلة', 'class' => 'bg-orange-100 text-orange-700']; $responseMap['request_citizen_attachments'] = ['label' => 'تم طلب مرفقات', 'class' => 'bg-amber-100 text-amber-700']; $serviceStatusMap = [ 'new' => ['label' => 'جديد', 'class' => 'bg-blue-100 text-blue-700'], 'ongoing' => ['label' => 'قيد المعالجة', 'class' => 'bg-green-100 text-green-700'], 'rejected' => ['label' => 'مرفوض', 'class' => 'bg-red-100 text-red-700'], 'hold' => ['label' => 'معلق', 'class' => 'bg-yellow-100 text-yellow-700'], 'completed' => ['label' => 'مكتمل', 'class' => 'bg-gray-200 text-gray-700'], ]; // عداد الأيام المتبقية $dueBadge = null; if (!empty($service->due_date)) { $due = Carbon::parse($service->due_date)->startOfDay(); $today = now()->startOfDay(); $days = $today->diffInDays($due, false); if ($days < 0) $dueBadge = ['text' => 'متأخر '.abs($days).' يوم', 'class' => 'bg-red-100 text-red-700']; elseif ($days === 0) $dueBadge = ['text' => 'اليوم آخر موعد', 'class' => 'bg-orange-100 text-orange-700']; elseif ($days <= 2) $dueBadge = ['text' => 'متبقي '.$days.' يوم', 'class' => 'bg-yellow-100 text-yellow-700']; else $dueBadge = ['text' => 'متبقي '.$days.' يوم', 'class' => 'bg-emerald-100 text-emerald-700']; } $additionalDataRows = collect(); $decodedAdditionalData = json_decode((string) ($service->additional_data_form ?? ''), true); if (is_array($decodedAdditionalData)) { if (array_is_list($decodedAdditionalData)) { $additionalDataRows = collect($decodedAdditionalData) ->filter(fn($row) => is_array($row) && !empty($row['title'] ?? $row['key'] ?? null)) ->map(function ($row) { return [ 'title' => $row['title'] ?? $row['key'] ?? '-', 'value' => $row['value'] ?? '-', ]; }) ->values(); } else { $additionalDataRows = collect($decodedAdditionalData) ->map(function ($value, $key) { return [ 'title' => $key, 'value' => $value ?: '-', ]; }) ->values(); } } if(!isset($show_responses)){ $show_responses=true; } if(!isset($show_attachments)){ $show_attachments=true; } if(!isset($show_paths)){ $show_paths=true; } $mapRouteParameters = filled($service->latitude) && filled($service->longitude) ? [ 'lat' => $service->latitude, 'lng' => $service->longitude, ] : [ 'build' => $service->build_number, 'street' => $service->street_number, ]; @endphp @if(($canDepartmentPullFromDetails ?? false) && $activePath)
الطلب محجوز لدى الموظف: {{ $departmentPullEmployeeName ?: 'غير محدد' }}
@csrf
@endif
{{-- Header --}}

طلب رقم : {{ $service->service_code }}

@can('services.print') طباعة الطلب @endcan @can('services.change_active_employee') @if($activePath) تغيير الموظف الحالي @endif @endcan @if(($canDepartmentDelegate ?? false) && $activePath) @endif @can('services.delete')
@csrf
@endcan رجوع للقائمة

{{ __('modules.jomhor.resources_views_services_show.text_126eb6e9ef') }} {{ $service->service_template->name ?? '-' }}

{{ __('modules.jomhor.resources_views_services_show.text_fec45ec6d3') }} {{ $serviceStatusMap[$service->service_status]['label'] ?? $service->service_status }}

{{--
--}} @if($dueBadge)

{{ __('modules.jomhor.resources_views_services_show.text_d418173151') }} {{ $dueBadge['text'] }}

@endif

{{ __('modules.jomhor.resources_views_services_show.text_7a3a45f55e') }} {{ $service->service_fees?$service->{{ __('modules.jomhor.resources_views_services_show.text_9eadeaff50') }} {{ (int)($service->is_fees_collected ?? 0) ? '(تم التحصيل)' : '(غير محصل)' }}

{{--
--}}
{{-- Header --}}

{{ __('modules.jomhor.resources_views_services_show.text_345b3c5495') }}

@if($service->build_number && $service->street_number) عرض التفاصيل @endif عرض على الخريطة
@if($service->citizen->image) @endif

الاسم : {{$service->citizen->full_name}}

الجوال : {{$service->citizen->mobile}}

رقم الهوية : {{$service->citizen->national_id}}

@if($service->citizen->email)

الايميل : {{$service->citizen->email}}

@endif

{{ __('modules.jomhor.resources_views_services_show.text_b5511e66cb') }} {{ $service->block ?? '-' }}

{{ __('modules.jomhor.resources_views_services_show.text_fe4e6b01f7') }} {{ $service->address_text ?? '-' }}

{{ __('modules.jomhor.resources_views_services_show.text_efa4ae041e') }} {{ $service->street_number ?? '-' }} {{ __('modules.jomhor.resources_views_services_show.text_ea08d62b9a') }} {{ __('modules.jomhor.resources_views_services_show.text_deb0029781') }} {{ $service->build_number ?? '-' }}

{{ __('modules.jomhor.resources_views_services_show.text_c50b771f94') }} {{ $service->added_at ? Carbon::parse($service->added_at)->format('Y-m-d') : '-' }}

{{ __('modules.jomhor.resources_views_services_show.text_3505ef8482') }} {{ $service->due_date ? Carbon::parse($service->due_date)->format('Y-m-d') : '-' }}

{{ __('modules.jomhor.resources_views_services_show.text_2e52aff1ae') }} @if($service->added_by_type == "Modules\PublicService\Entities\Citizen") المواطن / {{ $service->added_by->full_name }} @else الموظف / {{ $service->added_by->name }} @endif

{{ __('modules.jomhor.resources_views_services_show.text_11f98c09a3') }}

{{ $service->service_details ?? '-' }}

{{ __('modules.jomhor.resources_views_services_show.text_c9fcc72c76') }}

{{ $service->service_comments ?? '' }}
@if($additionalDataRows->isNotEmpty())

{{ __('modules.jomhor.resources_views_services_show.text_55764c0dc5') }}

@foreach($additionalDataRows as $row)
{{ $row['title'] }}
{{ $row['value'] }}
@endforeach
@endif @if($show_paths)

{{ __('modules.jomhor.resources_views_services_show.text_fbd6891f0c') }}

@if($paths->isEmpty())
{{ __('modules.jomhor.resources_views_services_show.text_002b3cf0de') }}
@else @php $perRow = 5; $rows = collect($paths)->chunk($perRow); $getColors = function ($p) { $isActive = (int)($p->is_active ?? 0) === 1; $isPassed = (int)($p->is_passed ?? 0) === 1; $bg = 'bg-gray-200'; $badge = 'bg-slate-400'; if ($isPassed) { $bg = 'bg-green-200'; $badge = 'bg-green-500'; } if ($isActive) { $bg = 'bg-blue-200'; $badge = 'bg-blue-400'; } if (($p->response_status ?? '') === 'reject' || ($p->response_status ?? '') === 'rejected') { $bg = 'bg-red-200'; $badge = 'bg-red-500'; } if (($p->response_status ?? '') === 'hold' || ($p->response_status ?? '') === 'hold') { $bg = 'bg-orange-200'; $badge = 'bg-orange-500'; } return [$bg, $badge]; }; @endphp
@foreach($rows as $rowIndex => $row) @php // سطر 0: RTL (1..5 من اليمين لليسار) // سطر 1: LTR (6..10 من اليسار لليمين) $dir = $rowIndex % 2 === 0 ? 'rtl' : 'ltr'; $isLastRow = $rowIndex === ($rows->count() - 1); // جهة نهاية السطر: RTL نهايته يسار، LTR نهايته يمين $endSide = $dir === 'rtl' ? 'left' : 'right'; @endphp {{-- ROW --}}
@php $ind=0; @endphp @foreach($row as $index => $p) @php [$bg, $badge] = $getColors($p); // هل نرسم سهم أفقي؟ $showArrow = $ind != 0; $ind++; // اتجاه السهم حسب السطر $arrowSide = $dir === 'ltr' ? '-left-5' : '-right-5'; $arrowRotate = $dir === 'rtl' ? '' : 'rotate-180'; @endphp
{{-- السهم الأفقي --}} @if($showArrow)
@endif {{-- شريط الرقم --}}
{{ $p->step_number }}
{{-- المحتوى --}}
{{ $p->name ?? '-' }}
{{ $p->job_place->name ?? '-' }}
@endforeach
{{-- سهم بين الأسطر (ينزل من آخر عنصر للسطر التالي) --}} @unless($isLastRow)
@endunless @endforeach
@endif
@endif @if($show_paths || $show_attachments)
@if($show_paths)

{{ __('modules.jomhor.resources_views_services_show.text_fb534552ec') }}

@can('services.edit')
@endcan
@if(count($service->responses)==0)
{{ __('modules.jomhor.resources_views_services_show.text_e8afe7c79e') }}
@else
@foreach($service->responses as $p) @php $resp = $responseMap[$p->response_action ?? ''] ?? null; @endphp @endforeach
{{ @$p->employee->name }}
{{ $p->employee->name ?? '-' }}
{{ $p->path->job_place->name ?? '-' }} ({{ $p->path->name }})
@include('jomhor::service_actions.'.$p->response_view,['path'=>$p->path,'response'=>$p]) @if($p->path->citizen_response_summary)

{{ __('modules.jomhor.resources_views_services_show.text_5da09491a5') }} {{ $p->path->citizen_response_summary }}

@endif
{{ $resp['label'] ?? ($p->response_status ?? '-') }}
{{ $p->created_at ? $p->created_at->format('Y-m-d') : '-' }}
{{ $p->created_at ? $p->created_at->format('H:i') : '-' }}
@endif
@endif @if($show_attachments)

{{ __('modules.jomhor.resources_views_services_show.text_9a5a2597d1') }}

@foreach($service->attachments as $att) @php // حاول تجيب المايم من الداتا لو موجود $toe=explode('.', $att->file_url); $mime = array_last($toe); $isImage = in_array($mime,['webp','jpg','png']); $isPdf = $mime === 'pdf'; @endphp
@if($isPdf) 📄 @elseif($isImage) 🖼️ @else 📎 @endif
{{ $att->attachment_type->name }}
@endforeach
@endif
@endif @can('services.edit') @endcan @if(($canDepartmentDelegate ?? false) && $activePath) @endif @yield('action') @push('scripts') @endpush