{{-- resources/views/superadmin/users/reports/left_user.blade.php --}}
تقرير مفصل للعضو المغادر - {{ $user->name }}
المعلومات الأساسية
| الاسم الكامل: |
{{ $user->name }} |
| البريد الإلكتروني: |
{{ $user->email }} |
| اسم المستخدم: |
{{ $user->username ?: 'غير محدد' }} |
| الجنس: |
{{ $user->gender === 'male' ? 'ذكر' : 'أنثى' }} |
| نوع العضوية: |
{{ $user->membership_status === 'official' ? 'عضو رسمي' : 'عضو بيتا' }} |
| تاريخ الانضمام: |
{{ $user->joined_at ? $user->joined_at->format('Y/m/d') : 'غير محدد' }} |
@if($user->became_official_at)
| تاريخ الترقية لرسمي: |
{{ $user->became_official_at->format('Y/m/d') }} |
@endif
| المدة في الفريق: |
@if($user->joined_at && $user->left_at)
{{ $user->joined_at->diffInDays($user->left_at) }} يوم
({{ $user->joined_at->diffInMonths($user->left_at) }} شهر)
@else
غير محدد
@endif
|
| سبب المغادرة: |
{{ $user->left_reason ?: 'غير محدد' }} |
الإحصائيات العامة
| إجمالي النقاط: |
{{ number_format($stats['total_points']) }} نقطة |
| نقاط التقييمات اليومية: |
{{ number_format($stats['evaluation_points']) }} نقطة |
| إجمالي الأنشطة: |
{{ $stats['total_activities'] }} نشاط |
| إجمالي ساعات الأنشطة: |
{{ number_format($stats['total_activity_hours'], 2) }} ساعة |
| مسابقات تم الفوز بها: |
{{ $stats['won_competitions'] }} مسابقة |
| التكريمات والمكافآت: |
{{ $stats['honors_rewards'] }} |
| المخالفات والإنذارات: |
{{ $stats['violations_count'] }} |
| عدد حالات الغياب: |
{{ $stats['absences_count'] }} حالة |
| طلبات الغياب: |
{{ $stats['absence_requests_count'] }} طلب |
نقاط التقييم اليومي
@if($dailyPointsData->count() > 0)
| التاريخ |
النقاط |
@foreach($dailyPointsData as $evaluation)
| {{ $evaluation->evaluation_date->format('Y/m/d') }} |
{{ $evaluation->total_daily_points }} نقطة |
@endforeach
| المجموع |
{{ $dailyPointsData->sum('total_daily_points') }} نقطة |
@else
لا توجد تقييمات يومية مسجلة لهذا العضو.
@endif
الأنشطة واللايفات
@if(count($activitiesData) > 0)
@foreach($activitiesData as $type => $activities)
{{ $type == 'guest' ? 'قستات' : ($type == 'live' ? 'لايفات' : ($type == 'tour' ? 'جولات' : $type)) }}
| العنوان |
التاريخ |
المدة (ساعة) |
النقاط |
@foreach($activities as $activity)
| {{ $activity->title ?? 'بدون عنوان' }} |
{{ optional($activity->scheduled_date)->format('Y/m/d') ?? 'غير محدد' }} |
{{ ($activity->duration_hours ?? 0) + (($activity->duration_minutes ?? 0) / 60) }}
|
@php
$participant = $activity->participants()->where('user_id', $user->id)->first();
@endphp
{{ $participant ? ($participant->total_points ?? 0) : 0 }} نقطة
|
@endforeach
| المجموع |
{{ number_format($totalHoursByActivityType[$type] ?? 0, 2) }} ساعة |
@php
$totalPoints = $activities->sum(function ($activity) use ($user) {
$participant = $activity->participants()->where('user_id', $user->id)->first();
return $participant ? ($participant->total_points ?? 0) : 0;
});
@endphp
{{ number_format($totalPoints) }} نقطة
|
@endforeach
@else
لا توجد أنشطة مسجلة لهذا العضو.
@endif
المسابقات التي فاز بها
@if($wonCompetitions->count() > 0)
| المسابقة |
تاريخ الفوز |
النقاط |
الرتب |
@foreach($wonCompetitions as $participant)
| {{ $participant->competition->title ?? 'غير محدد' }} |
{{ optional($participant->updated_at)->format('Y/m/d') ?? 'غير محدد' }} |
{{ $participant->awarded_points ?? 0 }} نقطة |
{{ optional($participant->competition->rank)->name ?? 'بدون رتبة' }} |
@endforeach
| المجموع |
{{ $wonCompetitions->sum('awarded_points') }} نقطة |
|
@else
لم يفز هذا العضو بأي مسابقة.
@endif
التكريمات والمكافآت
@if($honorsRewards->count() > 0)
| النوع والعنوان |
التاريخ |
النقاط |
الرتب |
@foreach($honorsRewards as $recipient)
|
{{ $recipient->honorReward->type === 'honor' ? 'تكريم' : 'مكافأة' }}:
{{ $recipient->honorReward->title ?? 'غير محدد' }}
|
{{ optional($recipient->awarded_at)->format('Y/m/d') ?? 'غير محدد' }} |
@if($recipient->points_awarded && $recipient->honorReward->points_amount)
{{ $recipient->honorReward->points_amount }} نقطة
@else
-
@endif
|
@if($recipient->rank_awarded && $recipient->honorReward->rank_id)
{{ optional($recipient->honorReward->rank)->name ?? 'غير محدد' }}
@else
-
@endif
|
@endforeach
| المجموع |
@php
$totalHonorPoints = $honorsRewards->sum(function ($recipient) {
return $recipient->points_awarded ? ($recipient->honorReward->points_amount ?? 0) : 0;
});
@endphp
{{ $totalHonorPoints }} نقطة
|
|
@else
لا توجد تكريمات أو مكافآت مسجلة لهذا العضو.
@endif
المخالفات والإنذارات
@if($violations->count() > 0)
| النوع |
العنوان |
التاريخ |
النقاط المخصومة |
@foreach($violations as $violationMember)
|
{{ $violationMember->violation->type === 'warning' ? 'إنذار' : 'مخالفة' }}
|
{{ $violationMember->violation->title ?? 'غير محدد' }} |
{{ optional($violationMember->created_at)->format('Y/m/d') ?? 'غير محدد' }} |
{{ $violationMember->violation->points_deducted ?? 0 }} نقطة |
@endforeach
| المجموع |
@php
$totalDeducted = $violations->sum(function ($violationMember) {
return $violationMember->violation->points_deducted ?? 0;
});
@endphp
{{ $totalDeducted }} نقطة
|
@else
لا توجد مخالفات أو إنذارات مسجلة لهذا العضو.
@endif
سجل الغيابات
@if($absences->count() > 0)
| التاريخ |
النوع |
ملاحظات |
@foreach($absences as $absence)
| {{ $absence->evaluation_date->format('Y/m/d') }} |
{{ $absence->attendance_status === 'absent_without_excuse' ? 'غياب بدون عذر' : 'غياب بعذر' }}
|
{{ $absence->admin_notes ?? '-' }} |
@endforeach
|
عدد مرات الغياب بدون عذر:
{{ $absences->where('attendance_status', 'absent_without_excuse')->count() }}
|
عدد مرات الغياب بعذر:
{{ $absences->where('attendance_status', 'absent_with_excuse')->count() }}
|
@else
لا توجد حالات غياب مسجلة لهذا العضو.
@endif
طلبات الغياب المقدمة
@if($absenceRequests->count() > 0)
| التاريخ |
السبب |
المدة |
الحالة |
ملاحظات |
@foreach($absenceRequests as $request)
| {{ optional($request->created_at)->format('Y/m/d') ?? 'غير محدد' }} |
{{ $request->excuse_reason ?? 'غير محدد' }} |
{{ optional($request->from_date)->diffInDays($request->to_date) + 1 ?? 0 }} يوم |
@if($request->status == 'approved')
مقبول
@elseif($request->status == 'rejected')
مرفوض
@else
معلق
@endif
|
{{ $request->admin_notes ?? '-' }} |
@endforeach
|
إجمالي طلبات الغياب: {{ $absenceRequests->count() }} |
مقبولة: {{ $absenceRequests->where('status', 'approved')->count() }} |
مرفوضة: {{ $absenceRequests->where('status', 'rejected')->count() }}
|
@else
لم يقدم هذا العضو أي طلبات غياب.
@endif