@extends('admin.layout') @section('title', '') @section('content')
Penilaian Intrakulikuler
Kelola penilaian untuk mata pelajaran dan kompetensi intrakulikuler
@php $activePeriode = \App\Models\Periode::where('status', \App\Models\Periode::STATUS_AKTIF)->first(); $tahunPel = $activePeriode->tahun_pelajaran ?? '-'; $semester = $activePeriode->semester ?? '-'; @endphp
Daftar Penilaian Kuantitatif Mata Pelajaran Peserta Didik
Tahun Pelajaran: {{ $tahunPel }}  |  Semester: {{ $semester }}
{{-- Partials removed per request --}} @if(!empty($selectedKelas) && !empty($selectedPeserta))
@forelse($penilaianIntrakulikuler ?? [] as $item) @php // Try to obtain the Mata Pelajaran model (some items use mapel, some mata_pelajaran) $mapel = $item->mata_pelajaran ?? $item->mapel ?? null; // Collect materi names (materi1..materi6) when available $materis = []; for ($i = 1; $i <= 6; $i++) { $materis[$i] = null; if (is_object($mapel)) { $m = $mapel->{'materi'.$i} ?? null; $materis[$i] = trim((string) ($m ?? '')) !== '' ? $m : null; } } // Collect nilai1..nilai6 as numeric or null $nilais = []; for ($i = 1; $i <= 6; $i++) { $v = $item->{'nilai'.$i} ?? null; $nilais[$i] = is_numeric($v) ? (float) $v : null; } // Determine nilai akhir to compare against $nilaiAkhir = $item->nilai_akhir ?? $item->nilaiAkhir ?? $item->n_akhir_semester ?? $item->n_sumatif ?? null; if (!is_numeric($nilaiAkhir)) { $available = array_filter($nilais, function ($v) { return is_numeric($v); }); $nilaiAkhir = count($available) ? array_sum($available) / count($available) : null; } $above = []; $below = []; if ($nilaiAkhir !== null) { foreach ($materis as $idx => $m) { $n = $nilais[$idx] ?? null; if ($m === null || $n === null) { continue; } if ($n > $nilaiAkhir) { $above[] = $m; } elseif ($n < $nilaiAkhir) { $below[] = $m; } } } // If none above, pick materi with highest nilai (if any) if (empty($above)) { $bestIdx = null; $bestVal = null; foreach ($materis as $idx => $m) { $n = $nilais[$idx] ?? null; if ($m && is_numeric($n)) { if ($bestVal === null || $n > $bestVal) { $bestVal = $n; $bestIdx = $idx; } } } if ($bestIdx !== null) { $above = [$materis[$bestIdx]]; } } // If none below, pick materi with lowest nilai (if any) if (empty($below)) { $worstIdx = null; $worstVal = null; foreach ($materis as $idx => $m) { $n = $nilais[$idx] ?? null; if ($m && is_numeric($n)) { if ($worstVal === null || $n < $worstVal) { $worstVal = $n; $worstIdx = $idx; } } } if ($worstIdx !== null) { $below = [$materis[$worstIdx]]; } } $parts = []; $nickname = $item->peserta_didik->nama_panggilan ?? $item->peserta_didik->panggilan ?? $item->peserta_didik->nama ?? $item->siswa->name ?? $item->nama ?? '-'; // escape materi texts for safe HTML output $aboveEsc = array_map(function($m){ return e($m); }, $above); $belowEsc = array_map(function($m){ return e($m); }, $below); if (!empty($aboveEsc)) { $parts[] = 'Ananda '.e(trim($nickname)).' mampu dalam '.implode(', ', $aboveEsc); } if (!empty($belowEsc)) { $parts[] = 'perlu perhatian dalam '.implode(', ', $belowEsc); } if (count($parts)) { $deskripsiGenerated = implode(' | ', $parts); } else { $deskripsiGenerated = e($item->deskripsi ?? '-'); } @endphp @empty @endforelse
Nama Peserta Didik Kelas Mata Pelajaran Nilai 1 Nilai 2 Nilai 3 Nilai 4 Nilai 5 Nilai 6 N-Sumatif N-Akhir Semester Nilai Akhir Deskripsi Aksi
{{ $item->peserta_didik->nama ?? $item->siswa->name ?? $item->nama ?? '-' }} {{ $item->kelas->nama ?? $item->kelas ?? '-' }} {{ $item->mata_pelajaran->nama ?? $item->mapel->nama ?? $item->mata_pelajaran ?? '-' }} {{ $item->nilai1 ?? '-' }} {{ $item->nilai2 ?? '-' }} {{ $item->nilai3 ?? '-' }} {{ $item->nilai4 ?? '-' }} {{ $item->nilai5 ?? '-' }} {{ $item->nilai6 ?? '-' }} {{ $item->n_sumatif ?? $item->n_sumatif ?? '-' }} {{ $item->n_akhir_semester ?? $item->n_akhir_semester ?? '-' }} {{ $item->nilai_akhir ?? $item->nilaiAkhir ?? '-' }}{!! $deskripsiGenerated !!} @if(request()->is('guru/*') || (auth()->check() && optional(auth()->user())->role === 'guru'))
@csrf @method('DELETE')
@else Edit
@csrf @method('DELETE')
@endif
Tidak ada data penilaian intrakulikuler untuk filter ini.
@else
Silakan pilih Kelas dan Peserta Didik untuk menampilkan data.
@endif @include('admin.penilaian.intrakulikuler.create')
@endsection @push('scripts') @endpush