@extends('admin.layouts.master') @section('title', 'تفاصيل مركبة — ' . $vehicle->plate_number) @section('content')
{{-- ══════════════════════════════════════════════════════ PAGE HEADER ══════════════════════════════════════════════════════ --}} {{-- Alerts --}} @if(session('success'))
{{ session('success') }}
@endif @if(session('error'))
{{ session('error') }}
@endif {{-- ══════════════════════════════════════════════════════ STATS CARDS ══════════════════════════════════════════════════════ --}}

{{ $vehicle->vehicle_permits_count }}

إجمالي التصاريح

{{ $activePermitsCount }}

التصاريح النشطة

{{ $vehicle->trailers_count }}

المقطورات
{{ number_format((float)($vehicle->permits_total_amount ?? 0), 2) }}
الإجمالي ج.م
{{ number_format((float)($vehicle->permits_paid_amount ?? 0), 2) }}
المدفوع ج.م
@php $remaining = (float)($vehicle->permits_remaining_amount ?? 0); @endphp
{{ number_format($remaining, 2) }}
المتبقي ج.م
{{-- ══════════════════════════════════════════════════════ TABS ══════════════════════════════════════════════════════ --}}
{{-- ════════════════════════════════════════ TAB 1 — VEHICLE DETAILS ════════════════════════════════════════ --}}
{{-- Basic Info --}}
البيانات الأساسية
@if($vehicle->notes) @endif
رقم اللوحة {{ $vehicle->plate_number }}
نوع المركبة {{ $vehicle->vehicle_kind_label }}
رقم الشاسيه {{ $vehicle->chassis_number ?: '—' }}
الماركة / المصنع {{ $vehicle->brand ?: '—' }}
موديل السنة {{ $vehicle->model_year ?: '—' }}
اللون {{ $vehicle->color ?: '—' }}
الحالة {{ $vehicle->active_label }}
ملاحظات {{ $vehicle->notes }}
{{-- Ownership --}}
بيانات الملكية والتواصل
@if($vehicle->customer) @endif @if($vehicle->company) @endif
المالك {{ $vehicle->owner_label }}
الفرع {{ $vehicle->branch?->name ?? '—' }}
العميل @can('edit customers') {{ $vehicle->customer->full_name }} @else {{ $vehicle->customer->full_name }} @endcan
هاتف العميل {{ $vehicle->customer->phone ?: ($vehicle->customer->mobile ?: '—') }}
الشركة {{ $vehicle->company->name }}
هاتف الشركة {{ $vehicle->company->phone ?: ($vehicle->company->mobile ?: '—') }}
تاريخ التسجيل {{ $vehicle->created_at?->format('Y-m-d') ?? '—' }}
{{-- ════════════════════════════════════════ TAB 2 — PERMITS ════════════════════════════════════════ --}}
قائمة التصاريح
@can('create permits') @endcan
@if($vehicle->vehiclePermits->isEmpty())

لا توجد تصاريح مرتبطة بهذه المركبة بعد.

@can('create permits') @endcan
@else
@foreach($vehicle->vehiclePermits as $index => $permit) @php $rowClass = ''; if ($permit->end_date) { $endTs = $permit->end_date->startOfDay()->timestamp; $now = now()->startOfDay()->timestamp; $soon = now()->addDays(7)->startOfDay()->timestamp; if ($endTs < $now) $rowClass = 'table-danger'; elseif ($endTs <= $soon) $rowClass = 'table-warning'; } @endphp {{-- Renewals sub-rows --}} @foreach($permit->renewals as $renewal) @endforeach @endforeach
# رقم التصريح نوع التعريفة لصالح المقطورة تاريخ البداية تاريخ النهاية الحالة الإجمالي المدفوع المتبقي بواسطة إجراءات
{{ $index + 1 }} {{ $permit->permit_number }} {{ $permit->permitType?->name ?? '—' }} {{ $permit->permit_for_label }} @if($permit->trailer) {{ $permit->trailer->trailer_number }} @else @endif {{ optional($permit->start_date)->format('Y-m-d') ?? '—' }} {{ optional($permit->end_date)->format('Y-m-d') ?? '—' }} {{ $permit->status_label }} {{ number_format((float)$permit->total_amount, 2) }} ج.م {{ number_format((float)$permit->paid_amount, 2) }} ج.م @if((float)$permit->remaining_amount > 0) {{ number_format((float)$permit->remaining_amount, 2) }} ج.م @else مسدد @endif {{ $permit->issuedBy?->name ?? '—' }}
@can('edit permits') @endcan @can('collect payments') @if((float)$permit->remaining_amount > 0) @endif @endcan @can('renew permits') @endcan @can('delete permits') @endcan
{{ $renewal->renewal_number }} تجديد بتاريخ {{ optional($renewal->renewed_on)->format('Y-m-d') ?? '—' }} {{ optional($renewal->new_start_date)->format('Y-m-d') ?? '—' }} {{ optional($renewal->renewed_to)->format('Y-m-d') ?? '—' }} {{ $renewal->payment_status_label }} {{ number_format((float)$renewal->net_amount, 2) }} ج.م {{ number_format((float)$renewal->paid_amount, 2) }} ج.م @if((float)$renewal->remaining_amount > 0) {{ number_format((float)$renewal->remaining_amount, 2) }} @else مسدد @endif {{ $renewal->processedBy?->name ?? '—' }}
{{-- Color Legend --}}
  تصريح منتهي   ينتهي خلال 7 أيام سجل التجديدات
@endif
{{-- ════════════════════════════════════════ TAB 3 — TRAILERS ════════════════════════════════════════ --}}
المقطورات المرتبطة
@if($vehicle->trailers->isEmpty())

لا توجد مقطورات مرتبطة بهذه المركبة.

@else
@foreach($vehicle->trailers as $i => $trailer) @endforeach
# رقم المقطورة النوع رقم الشاسيه اللون الموديل الحالة إجراء
{{ $i + 1 }} {{ $trailer->trailer_number }} {{ $trailer->trailer_kind_label ?? '—' }} {{ $trailer->chassis_number ?: '—' }} {{ $trailer->color ?: '—' }} {{ $trailer->model_year ?: '—' }} {{ $trailer->active_label }} عرض
@endif
{{-- ════════════════════════════════════════ TAB 4 — TREASURY TRANSACTIONS ════════════════════════════════════════ --}}
@php $allTransactions = $vehicle->vehiclePermits ->flatMap(fn ($p) => $p->treasuryTransactions) ->sortByDesc('transaction_date'); $totalIn = $allTransactions->where('direction', 'in')->sum('amount'); $totalOut = $allTransactions->where('direction', 'out')->sum('amount'); @endphp
المعاملات المالية {{ $allTransactions->count() }}
@if($allTransactions->count() > 0)
وارد: {{ number_format($totalIn, 2) }} ج.م صادر: {{ number_format($totalOut, 2) }} ج.م
@endif
@can('collect payments') @endcan
@if($allTransactions->isEmpty())

لا توجد معاملات مالية بعد.

@else
@foreach($allTransactions as $i => $tx) @endforeach
# رقم المعاملة التصريح المرتبط نوع المعاملة طريقة الدفع المبلغ التاريخ بواسطة الوصف / المرجع
{{ $i + 1 }} {{ $tx->transaction_number }} @if($tx->vehiclePermit) {{ $tx->vehiclePermit->permit_number }} @else @endif {{ $tx->transaction_type_label }} {{ $tx->payment_method_label }} {{ $tx->direction === 'in' ? '+' : '−' }}{{ number_format((float)$tx->amount, 2) }} ج.م {{ optional($tx->transaction_date)->format('Y-m-d') }}
{{ optional($tx->transaction_date)->format('H:i') }}
{{ $tx->processedBy?->name ?? '—' }} {{ \Illuminate\Support\Str::limit($tx->description ?? '', 45) ?: '—' }} @if($tx->reference_no)
{{ $tx->reference_no }} @endif
الإجمالي الوارد: +{{ number_format($totalIn, 2) }} ج.م
@endif
{{-- end .tab-content --}}
@endsection @section('js') @endsection