@extends('layouts.app') @section('title', 'أداء الأطباء') @section('content') كل التقارير
{{ \Carbon\Carbon::parse($from)->translatedFormat('j M Y') }} ← {{ \Carbon\Carbon::parse($to)->translatedFormat('j M Y') }}

أداء كل طبيب

@if($rows->isEmpty())

لا توجد بيانات في هذه الفترة

غيّر النطاق الزمني أو سجّل مواعيد للأطباء.

@else
@foreach($rows as $i => $r) @php $initials = collect(preg_split('/\s+/u', trim($r->doctor_name ?? ''))) ->filter()->take(2) ->map(fn ($w) => mb_substr($w, 0, 1)) ->implode('') ?: '؟'; // Highlight rate quality: red <50, yellow 50-79, green ≥80. $rateColor = $r->completion_rate >= 80 ? 'success' : ($r->completion_rate >= 50 ? 'warning' : 'danger'); $rankBg = match ($i) { 0 => '#fef3c7', 1 => '#e0e7ff', 2 => '#fae8ff', default => '#f1f5f9', }; @endphp @endforeach
الطبيب مواعيد مكتمل ملغي لم يحضر معدّل الإكمال مرضى مختلفون إيرادات
{{ $i + 1 }} {{ $initials }}
د. {{ $r->doctor_name ?? '—' }} @if($r->specialization)
{{ $r->specialization }}
@endif
{{ number_format($r->total_appts) }} {{ number_format($r->completed) }} {{ number_format($r->cancelled) }} {{ number_format($r->no_shows) }}
{{ $r->completion_rate }}%
{{ number_format($r->unique_patients) }} {{ number_format($r->revenue, 0) }}
الإجمالي {{ number_format($totals['appointments']) }} {{ number_format($totals['completed']) }} @php $overall = $totals['appointments'] > 0 ? round(($totals['completed'] / $totals['appointments']) * 100, 1) : 0; @endphp {{ $overall }}% {{ number_format($totals['unique_patients']) }} {{ number_format($totals['revenue'], 0) }}
@endif
@endsection