@extends('layouts.app') @section('title', 'Riwayat Hafalan — ' . $student->name) @section('content')

Riwayat Hafalan

{{ $student->name }} — {{ $student->classRoom?->class_name ?? '-' }}

{{-- Chart --}}

Grafik Hafalan

Ayat per Hari

Ringkasan

Total Hafalan0
Surah0
Ziadah0
Murajaah0
Rata-rata Skor0
{{-- Target Hafalan --}} @if (!empty($targets))

Target Hafalan

+ Tambah Target
@foreach ($targets as $target)
{{ $target['title'] }} @php $stBadge = match($target['status']) { 'completed' => 'bg-emerald-50 dark:bg-emerald-500/10 text-emerald-700 dark:text-emerald-400', 'overdue' => 'bg-red-50 dark:bg-red-500/10 text-red-700 dark:text-red-400', default => 'bg-blue-50 dark:bg-blue-500/10 text-blue-700 dark:text-blue-400', }; $stLabel = match($target['status']) { 'completed' => 'Selesai', 'overdue' => 'Lewat Deadline', default => 'On Track', }; @endphp {{ $stLabel }}
{{ $target['percent'] }}%
{{ $target['completed_ayat'] }}/{{ $target['total_ayat'] }} ayat • {{ \Carbon\Carbon::parse($target['target_date'])->format('d M Y') }}
{{ $target['days_remaining'] >= 0 ? 'Sisa ' . $target['days_remaining'] . ' hari' : 'Lewat ' . abs($target['days_remaining']) . ' hari' }} Edit
@endforeach
@endif {{-- History table --}} @if ($records->count() > 0) @php $grouped = $records->groupBy(fn($r) => \Carbon\Carbon::parse($r->recorded_date)->format('d M Y')); @endphp @foreach ($grouped as $date => $dayRecords)

{{ $date }}

{{ $dayRecords->count() }}x hafalan
@foreach ($dayRecords as $i => $rec) @endforeach
# Surah Ayat Jenis Grade Catatan
{{ $i + 1 }} {{ $rec->quranMaster->surah_name ?? '-' }} {{ $rec->ayat_start }}-{{ $rec->ayat_end }} {{ $rec->activity_type === 'ZIADAH' ? 'Ziadah' : 'Murajaah' }} @php $p = \App\Models\TahfidzRecord::scoreToPredikat($rec->score); @endphp {{ $rec->score }} ({{ $p }}) {{ $rec->notes ?? '-' }}
@endforeach @else

Belum ada riwayat hafalan untuk siswa ini.

@endif
@endsection @push('scripts') @endpush