@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) --}}
{{-- كروت ملخص سريعة --}}
إجمالي الأعضاء المستهدفين
{{-- ملخص: الشباب vs الصبايا --}}
{{-- مقارنة المؤشرات الرئيسية بين الشباب والصبايا --}}
@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
| {{ $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 }} |
@endforeach
{{-- أفضل الأعضاء في الفترة (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