@extends('layouts.superadmin') @section('title','لوحة درجات ونقاط الأعضاء') @section('page-title','📊 لوحة درجات ونقاط الأعضاء') @section('content')
{{-- فلاش ميسج بسيطة (لو عندك كومبوننت جاهز استخدمه) --}} @if(session('success'))
{{ session('success') }}
@endif @if(session('error'))
{{ session('error') }}
@endif {{-- شرح مبسّط --}}
يعرض هذا التقرير درجات/نقاط الأعضاء خلال الفترة المحددة، ويقارن بين الشباب و الصبايا، كما يحدد أفضل الأعضاء في الفترة.
الفترة: {{ $from }}{{ $to }} ({{ $days }} يومًا).
{{-- فورم تغيير الفترة + زر إرسال واتساب --}} {{-- فلتر الفترة + زر واتساب --}}
{{-- فورم الفلترة (GET) --}}
{{-- فورم زر الواتساب (POST) --}}
@csrf {{-- نمرّر نفس فترة البحث الحالية --}}
{{-- كروت ملخص سريعة --}}
إجمالي الأعضاء المستهدفين
{{ $global['total_members'] }}
إجمالي النقاط في الفترة
{{ number_format($global['total_points'], 1) }}
متوسط النقاط لكل عضو
{{ number_format($global['avg_points_per_member'], 1) }}
الأقرب للعلامة الذهبية
{{ $closer }}
{{-- ملخص: الشباب vs الصبايا --}}
نقاط الشباب (إجمالي)
{{ number_format($boys['points'],1) }}
نقاط الصبايا (إجمالي)
{{ number_format($girls['points'],1) }}
إجمالي الساعات المسجلة
{{ number_format($global['total_hours'],1) }}
{{-- مقارنة المؤشرات الرئيسية بين الشباب والصبايا --}} @php $rows = [ ['label'=>'عدد الأعضاء','b'=>$boys['users'],'g'=>$girls['users']], ['label'=>'إجمالي النقاط','b'=>$boys['points'],'g'=>$girls['points']], ['label'=>'نقاط/فرد (متوسط)','b'=>$boys['pts_per_user'],'g'=>$girls['pts_per_user']], ['label'=>'عدد السجلات (أنشطة/تقييمات/...)','b'=>$boys['acts'],'g'=>$girls['acts']], ['label'=>'إجمالي الساعات','b'=>$boys['hours'],'g'=>$girls['hours']], ['label'=>'النقاط الموجبة','b'=>$boys['pos_points'],'g'=>$girls['pos_points']], ['label'=>'النقاط السالبة (أقل أفضل)','b'=>$boys['neg_points'],'g'=>$girls['neg_points']], ]; @endphp
@foreach($rows as $r) @php $b = $r['b']; $g = $r['g']; $isInverse = in_array($r['label'], ['النقاط السالبة (أقل أفضل)']); if ($b == $g) { $better = 'متقارب'; } elseif ($isInverse) { $better = $b < $g ? 'الشباب' : 'الصبايا'; } else { $better = $b > $g ? 'الشباب' : 'الصبايا'; } $color = $better === 'الشباب' ? 'text-blue-600' : ($better === 'الصبايا' ? 'text-pink-600' : 'text-gray-500'); @endphp @endforeach
المؤشر الشباب الصبايا الأفضل
{{ $r['label'] }} {{ is_numeric($b) ? number_format($b, (fmod($b,1)!=0?1:0)) : $b }} {{ is_numeric($g) ? number_format($g, (fmod($g,1)!=0?1:0)) : $g }} {{ $better }}
{{-- أفضل الأعضاء في الفترة (Top Members) --}}

🏅 أفضل الأعضاء في الفترة

ترتيب حسب مجموع النقاط من {{ $from }} إلى {{ $to }}.

@forelse($topMembers as $index => $row) @php $rank = $index + 1; $user = $row->user; $name = $user->name ?? 'عضو محذوف'; $gender = $user->gender ?? null; $status = $user->membership_status ?? 'عضو'; @endphp
{{ mb_substr($name, 0, 2) }}
{{ $name }} {{ $status }} {{ number_format($row->total_points,1) }} نقطة • {{ number_format($row->total_hours,1) }} ساعة • {{ $row->total_records }} نشاط
#{{ $rank }}
@empty
لا توجد سجلات نقاط في هذه الفترة.
@endforelse
{{-- ملخص نصّي لأفضل 5 (مثل اللي راح على الواتساب) --}} @if($topMembers->count() > 0)
📌 ملخص نصّي (أفضل 5):
@foreach($topMembers->take(5) as $i => $row)
{{ $i+1 }}. {{ $row->user->name ?? 'عضو' }} — {{ number_format($row->total_points, 1) }} نقطة
@endforeach
@endif
{{-- ملاحظات تفسيرية --}}

⭐ تعتمد هذه اللوحة على جدول ScoreRecord (التقييمات، الأنشطة، التكريمات، المخالفات، المسابقات... إلخ) داخل الفترة المحددة.

📅 يمكنك تغيير الفترة من خلال حقول التاريخ في الأعلى، وسيتم إرسال نفس الفترة تماماً عند الضغط على زر إرسال تقرير الفترة للجروب (واتساب).

@endsection