@php $user = auth()->user(); if ($user->hasRole('super-admin')) $layout = 'layouts.superadmin'; elseif ($user->hasRole('advisor')) $layout = 'layouts.advisor'; elseif ($user->hasRole('moderator')) $layout = 'layouts.moderator'; else $layout = 'layouts.member'; $from = $from ?? request('from',''); $to = $to ?? request('to',''); $qText = $qText ?? request('q',''); @endphp @extends($layout) @section('title','علاماتي') @section('content')
{{-- HERO --}}
ملف شخصي — حركات نقاطك فقط

علاماتي

ترتيب الأحدث للأقدم — صافي + إيجابي + سلبي + ساعات.

ضمن الفلاتر
{{ number_format((int)($kpis['total'] ?? 0)) }}
{{-- KPIs --}}
صافي النقاط
{{ ($kpis['net'] ?? 0) > 0 ? '+' : '' }}{{ number_format((float)($kpis['net'] ?? 0), 2) }}
إيجابي
{{ number_format((float)($kpis['pos'] ?? 0), 2) }}
سلبي
{{ number_format((float)abs($kpis['neg'] ?? 0), 2) }}
الساعات
{{ number_format((float)($kpis['hours'] ?? 0), 2) }}
عدد السجلات
{{ (int)($kpis['total'] ?? 0) }}
{{-- Filters --}}
{{-- Breakdown --}}
تفصيل حسب المصدر
@forelse($bySource as $b) @php $label = $sourceTypeLabels[$b->source_type] ?? ($b->source_type ?: 'غير محدد'); @endphp
{{ $label }}
نقاط {{ ((float)$b->points)>0?'+':'' }}{{ number_format((float)$b->points, 2) }}
ساعات {{ number_format((float)$b->hours, 2) }}
سجلات {{ (int)$b->records }}
@empty
لا يوجد تفصيل ضمن هذه الفلاتر.
@endforelse
{{-- LIST --}} @if($rows->count())
@foreach($rows as $r) @php $pts = (float)($r->points ?? 0); $hrs = (float)($r->hours ?? 0); $src = $r->source_type ?? 'unknown'; $label = $sourceTypeLabels[$src] ?? $src; $d = $r->recorded_date ? \Carbon\Carbon::parse($r->recorded_date)->format('Y-m-d') : '—'; $note = trim((string)($r->note ?? $r->description ?? '')); @endphp
{{ $pts>=0 ? 'إضافة' : 'خصم' }}
المصدر: {{ $label }} التاريخ: {{ $d }}
@if($note !== '')
{{ $note }}
@endif
النقاط
{{ $pts>0?'+':'' }}{{ number_format($pts, 2) }}
ساعات: {{ number_format($hrs, 2) }}
@endforeach
{{ $rows->links() }}
@else
لا يوجد سجلات علامات ضمن هذه الفلاتر.
@endif
@endsection