@extends('layouts.app') @section('title', 'إدارة تسجيل الحضور') @section('content')
{{-- 1. عنوان الصفحة والتاريخ --}}

أجندة اليوم

{{-- ملحوظة: يفضل استخدام التاريخ المختار من الفلتر هنا بدلاً من now() --}} {{ \Carbon\Carbon::parse(request('selected_date', now()))->translatedFormat('l، j F Y') }}

{{-- 2. فلتر الكنائس --}} @if($churches->count() > 1)
@endif {{-- 3. فلتر التاريخ --}}
{{-- 4. زرار الحصة التعويضية (+) --}}
{{-- غيرنا الرابط ليكون Trigger للمودال اللي هنصممه --}}
{{-- 5. إحصائية سريعة --}}
{{ $todayGroups->count() ?? ''}} مجموعات مجدولة
@forelse($todayGroups as $group) @php /* التركة: بنجيب حصة النهاردة المرتبطة بالمجموعة دي. لازم تكون باعت العلاقة دي من الـ Controller باستخدام with('lessons') */ $todayLesson = $group->lessons->first(); // تحديد الحالة: لو مفيش حصة النهاردة بنعتبرها "جديدة" (success) $currentStatus = $todayLesson ? $todayLesson->status : 'new'; @endphp
{{-- تمييز الكارت بالألوان بناءً على حالة الحصة وليس المجموعة --}}
{{ $group->name ?? ''}}
{{ \Carbon\Carbon::parse($group->start_time)->format('h:i A') ?? ''}} {{-- العلامة المميزة للحصة التعويضية --}} @if($group->lessons->first() && $group->lessons->first()->is_makeup) حصة تعويضية @endif

المادة: {{ $group->subject->name ?? 'غير محددة' }}

المدرس: أ/ {{ $group->teacher->name ?? 'غير محدد' }}

قيمة الإشتراك: ({{ $group->student_fee ?? 'غير محدد' }}) {{ $group->subscription_type === 'monthly' ? 'للشهر' : 'للحصة' }}

@php // بنجيب الحصة الخاصة بالمجموعة في التاريخ المختار من الفلتر // تأكد أنك مررت متغير $selectedDate من الكنترولر $targetDate = isset($selectedDate) ? $selectedDate->format('Y-m-d') : now()->format('Y-m-d'); $lesson = $group->lessons->first(); // دي هترجع الحصة المتفلترة بالتاريخ اللي بعتناه في الكنترولر // إعادة حساب الحالة بناءً على الحصة الملقوطة في التاريخ ده $currentStatus = 'pending'; // الحالة الافتراضية if ($lesson) { if ($lesson->status == 'cancelled') { // افترضنا إن عندك عمود للإلغاء أو حالة معينة $currentStatus = 'cancelled'; } elseif($lesson->status == 'completed') { $currentStatus = 'completed'; } elseif($lesson->is_makeup == true) { $currentStatus = 'makeup'; } } // التحقق من اكتمال البيانات $isComplete = $group->teacher_id; $admin = \App\Models\User::role('Admin')->first(); $adminPhone = $admin ? '+2' . $admin->phone : ''; $userName = Auth::user()->name; // تحديد محتوى الرسالة بناءً على العائق اللي واجه المستخدم if (!$isComplete) { $reason = "إستكمال بيانات مجموعة"; } elseif ($currentStatus == 'completed') { $reason = "تعديل حضور مجموعة"; } elseif ($currentStatus == 'cancelled') { $reason = "إعادة تفعيل حصة ملغية لمجموعة"; } else { $reason = "طلب صلاحية خاصة لمجموعة"; } $message = "تحية طيبة،\nبرجاء المساعدة في: *$reason*\n"; $message .= "اسم المجموعة: *(" . $group->name . ")*\n"; $message .= "رقم ID: (" . $group->id . ")\n"; $message .= "المرسل: " . $userName; $waUrl = "https://wa.me/" . $adminPhone . "?text=" . urlencode($message); @endphp
{{-- الفورم يلتف حول كل الحالات --}}
@csrf {{-- المدخلات المخفية --}} @if($isComplete) @php $studentCount = $group->students_count ?? $group->students->count(); @endphp {{-- 1. حالة تم تسجيل الحضور مسبقاً --}} @if($currentStatus == 'completed') @can('attendance.edit') @else @endcan {{-- 2. حالة الحصة الملغية --}} @elseif($currentStatus == 'cancelled') @can('lesson.cancel') @else
هذه الحصة ملغية (لا تملك صلاحية التعديل) اطلب مساعدة المسؤول
@endcan {{-- 3. حالة الحصة التعويضية --}} @elseif($currentStatus == 'makeup') @can('attendance.create') @endcan {{-- 4. حالة حصة جديدة عادية --}} @else @can('attendance.create') @else
بانتظار تسجيل الحضور اطلب مساعدة المسؤول
@endcan @endif @else {{-- حالة البيانات غير مكتملة --}} @can('group.edit') @else
بيانات المجموعة غير مكتملة
اطلب مساعدة المسؤول
@endcan @endif
@empty

لا توجد حصص مجدولة لهذا اليوم

أو ربما جميع المجموعات غير نشطة حالياً.

@endforelse
{{-- موديل الحصص الإضافية / المرحلة --}} {{-- سكربت الفلترة بالأجاكس --}} {{-- سكربت الحصة التعويضية الكامل --}} @endsection