@extends('layouts.app') @section('title', 'لوحة التحكم') @section('content')
{{-- ترحيب --}}
مرحباً، {{ $userName }}
{{ $userRole }} — {{ now()->translatedFormat('l، j F Y') }}
@if(auth()->user()->hasPermission(\App\Models\Permission::VIEW_IQAMAS)) التقرير الشهري @endif
{{-- صف KPI الرئيسية --}}
@if(isset($iqamas))
{{ number_format($iqamas['total']) }}
الإقامات
@endif @if(isset($visas))
{{ number_format($visas['totalQuantity']) }}
إجمالي التأشيرات
@endif @if(isset($financeSummary)) @php $net = ($financeSummary['receipts'] + $financeSummary['transfers']) - $financeSummary['expenses']; @endphp
{{ number_format($net, 0) }}
صافي الأرباح (ريال)
@endif @if(isset($tasks))
{{ $tasks['pending'] + $tasks['inProgress'] }}
مهام قيد التنفيذ
@endif
{{-- صف ثانٍ: مالية + أرصدة + مهام --}}
@if(isset($financeSummary))
الملخص المالي @if(auth()->user()->hasPermission(\App\Models\Permission::VIEW_RECEIPTS)) تفصيل ← @endif
الصافي {{ number_format($net, 0) }} ريال
@endif @if(isset($visaBalances))
أرصدة التأشيرات @if(auth()->user()->hasPermission(\App\Models\Permission::VIEW_VISA_BALANCES)) إدارة ← @endif
{{ $visaBalances['totalBalance'] }}
إجمالي الرصيد
{{ $visaBalances['totalRemaining'] }}
المتبقي
{{ $visaBalances['totalUsed'] }}
المستخدم
{{ $visaBalances['depleted'] }}
نفد رصيدها
@if($visaBalances['depleted'] > 0)
{{ $visaBalances['depleted'] }} شركة نفد رصيدها — لا يمكن إصدار تأشيرات لها
@endif
@endif @if(isset($tasks))
المهام @if(auth()->user()->hasPermission(\App\Models\Permission::VIEW_TASKS)) الكل ← @endif
@php $taskTotal = max(1, $tasks['total']); $doneRatio = round(($tasks['completed'] / $taskTotal) * 100); @endphp
جديدة {{ $tasks['pending'] }}
قيد التنفيذ {{ $tasks['inProgress'] }}
مكتملة {{ $tasks['completed'] }}
@if($tasks['overdue'] > 0)
متأخرة {{ $tasks['overdue'] }}
@endif
{{ $doneRatio }}% مكتمل من {{ $tasks['total'] }} مهمة
@endif
{{-- صف ثالث: الإقامات + تنبيهات الانتهاء --}}
@if(isset($iqamas) && $iqamas['nationalityStats']->isNotEmpty())
الإقامات حسب الجنسية الكل ←
@foreach($iqamas['nationalityStats'] as $nat) @php $pct = $iqamas['total'] > 0 ? round($nat->count / $iqamas['total'] * 100) : 0; @endphp
{{ $nat->nationality ?? '—' }}
{{ $nat->count }}
@endforeach
@endif @if(isset($expiryAlerts)) @php $expiryThisMonth = collect() ->merge(collect($expiryAlerts['iqamas_30_days'])->map(fn($i) => ['item'=>$i,'type'=>'iqama'])) ->merge(collect($expiryAlerts['company_workers_30'])->map(fn($i) => ['item'=>$i,'type'=>'company'])) ->merge(collect($expiryAlerts['domestic_workers_30'])->map(fn($i) => ['item'=>$i,'type'=>'domestic'])) ->sortBy(fn($r) => (int)($r['item']->expiry_day_hijri ?? 1)); $expiryNextMonth = collect($expiryAlerts['iqamas_60_days'])->map(fn($i) => ['item'=>$i,'type'=>'iqama']); $typeLabels = ['iqama'=>['label'=>'إقامة','color'=>'#3f51b5','icon'=>'bx-id-card'],'company'=>['label'=>'عامل شركة','color'=>'#00796b','icon'=>'bx-building'],'domestic'=>['label'=>'عمالة منزلية','color'=>'#6a1b9a','icon'=>'bx-home']]; @endphp
تنبيهات انتهاء الإقامات @if(auth()->user()->hasPermission(\App\Models\Permission::VIEW_IQAMAS)) تقرير الانتهاء ← @endif
{{-- Tabs --}}
{{-- هذا الشهر --}}
@if($expiryThisMonth->isEmpty())

لا توجد إقامات تنتهي هذا الشهر

@else
@foreach($expiryThisMonth as $row) @php $t = $typeLabels[$row['type']]; $itm = $row['item']; @endphp
{{ $itm->name }}
{{ $itm->iqama_number }}
{{ str_pad($itm->expiry_day_hijri??1,2,'0',STR_PAD_LEFT) }}/{{ str_pad($itm->expiry_month_hijri??1,2,'0',STR_PAD_LEFT) }}/{{ $itm->expiry_year_hijri }}
{{ $t['label'] }}
@endforeach
@endif
{{-- الشهر القادم --}}
@if($expiryNextMonth->isEmpty())

لا توجد إقامات تنتهي الشهر القادم

@else
@foreach($expiryNextMonth as $row) @php $t = $typeLabels[$row['type']]; $itm = $row['item']; @endphp
{{ $itm->name }}
{{ $itm->iqama_number }}
{{ str_pad($itm->expiry_day_hijri??1,2,'0',STR_PAD_LEFT) }}/{{ str_pad($itm->expiry_month_hijri??1,2,'0',STR_PAD_LEFT) }}/{{ $itm->expiry_year_hijri }}
{{ $t['label'] }}
@endforeach
@endif
@endif
@endsection @push('scripts') @if(isset($financeSummary)) @endif @endpush