@extends('layouts.app', ['class' => 'g-sidenav-show bg-gray-100']) {{-- section content --}} @section('content') @include('layouts.navbars.auth.topnav', ['title' => ''])
{{ $user->firstname }} {{ $user->lastname }}
@php $nilaiAkhir = $total_nilai_akhir; $indeksAkhir = $indeks_nilai->first(function ($item) use ($nilaiAkhir) { if ($nilaiAkhir === null) { return false; } preg_match_all('/\d+(?:\.\d+)?/', (string) $item->name, $angka); return count($angka[0] ?? []) >= 2 && $nilaiAkhir >= (float) $angka[0][0] && $nilaiAkhir <= (float) $angka[0][1]; }); @endphp
Tren Nilai Penilaian
Total Nilai Akhir

{{ $nilaiAkhir ?? '-' }}

Indeks: {{ $indeksAkhir->value ?? '-' }} {{-- @if ($nilaiAkhir !== null) {{ $jumlah_nilai_akhir }} รท {{ $banyak_nilai_akhir }} penilaian @endif --}}
@if (session('success'))
{{ session('success') }}
@endif @if ($periode_dipilih)
@csrf @foreach (['nonteknis' => 'NonTeknis', 'teknis' => 'Teknis', 'komentar' => 'Komentar'] as $tipeKey => $tipeLabel) @php $daftarPenilaian = $nama_penilaian[$tipeKey] ?? collect(); @endphp @continue($daftarPenilaian->isEmpty())
{{ $tipeLabel }}
@if ($tipeKey === 'komentar') @foreach ($daftarPenilaian as $penilaian) @php $existing = $penilaian_user[$penilaian->id] ?? null; @endphp
@endforeach @else @php $tipeNilaiAktif = $daftarPenilaian ->map(fn($item) => $penilaian_user[$item->id]->tipe_nilai ?? null) ->filter() ->first(); @endphp Nilai wajib diisi dengan angka 0 sampai 100. @if (($indeks_nilai ?? collect())->isNotEmpty()) Indeks nilai: {{ $indeks_nilai->map(fn($item) => $item->value . ' = ' . $item->name)->implode(', ') }}. @endif
@php $totalNilai = 0; $jumlahDinilai = 0; @endphp @foreach ($daftarPenilaian as $penilaian) @php $existing = $penilaian_user[$penilaian->id] ?? null; if ($existing && $existing->penilaian !== null) { $totalNilai += $existing->penilaian; $jumlahDinilai++; } @endphp @endforeach
Nama Penilaian Nilai Keterangan
{{ $penilaian->nama_penilaian }}
@php $rataRata = $jumlahDinilai > 0 ? round($totalNilai / $jumlahDinilai, 2) : null; @endphp
Rata-rata Penilaian {{ $tipeLabel }}: {{ $rataRata ?? 'Belum ada penilaian' }}
@endif @endforeach
@php $labelNilai = function ($nilai) use ($indeks_nilai) { if ($nilai === null || $nilai === '') { return 'Belum dinilai'; } $itemIndeks = $indeks_nilai->first(function ($item) use ($nilai) { preg_match_all('/\d+(?:\.\d+)?/', (string) $item->name, $angkaRentang); $angkaRentang = $angkaRentang[0] ?? []; if (count($angkaRentang) >= 2) { return (float) $nilai >= (float) $angkaRentang[0] && (float) $nilai <= (float) $angkaRentang[1]; } return false; }); return $itemIndeks->value ?? '-'; }; $ringkasanNilai = []; $detailNilai = []; foreach (['teknis' => 'Teknis', 'nonteknis' => 'Nonteknis'] as $tipeKey => $tipeLabel) { $detailNilai[$tipeKey] = collect($nama_penilaian[$tipeKey] ?? [])->map(function ( $item, ) use ($penilaian_user, $labelNilai) { $penilaian = $penilaian_user[$item->id] ?? null; $nilai = $penilaian->penilaian ?? null; return [ 'nama' => $item->nama_penilaian, 'nilai' => $labelNilai($nilai), 'indeks_penilaian' => $penilaian->indeks_penilaian ?? '-', ]; }); $nilai = collect($nama_penilaian[$tipeKey] ?? []) ->map(fn($item) => $penilaian_user[$item->id]->penilaian ?? null) ->filter(fn($value) => $value !== null && $value !== '') ->map(fn($value) => (float) $value); $ringkasanNilai[$tipeKey] = $nilai->isNotEmpty() ? $labelNilai(round($nilai->avg())) : null; } $ringkasanKomentar = collect($nama_penilaian['komentar'] ?? []) ->map(function ($item) use ($penilaian_user) { return [ 'label' => $item->nama_penilaian, 'isi' => trim($penilaian_user[$item->id]->keterangan ?? ''), ]; }) ->filter(fn($komentar) => $komentar['isi'] !== ''); $namaPeserta = trim(($user->firstname ?? '') . ' ' . ($user->lastname ?? '')); $teksSalinan = 'Nama Peserta Magang: ' . $namaPeserta . "\n"; $teksSalinan .= "Kesimpulan Penilaian\n"; $nomorDetail = 1; foreach (['nonteknis' => 'Nonteknis', 'teknis' => 'Teknis'] as $tipeKey => $tipeLabel) { foreach ($detailNilai[$tipeKey] as $detail) { $teksSalinan .= $nomorDetail . '. ' . $detail['nama'] . ': ' . $detail['indeks_penilaian'] . "\n"; $nomorDetail++; } } foreach ($ringkasanKomentar as $komentar) { $teksSalinan .= $komentar['label'] . ': ' . $komentar['isi'] . "\n"; } @endphp
Kesimpulan Penilaian
@foreach (['nonteknis', 'teknis'] as $tipeKey) @foreach ($detailNilai[$tipeKey] as $detail) @endforeach @endforeach @forelse ($ringkasanKomentar as $komentar) @empty @endforelse
Nama Penilaian Indeks Nilai
{{ $detail['nama'] }} {{ $detail['indeks_penilaian'] }}
{{ $komentar['label'] }} {{ $komentar['isi'] }}
Komentar Belum ada komentar
@endif
{{-- check flag js on dmenu --}} @if ($jsmenu == '1') @if (view()->exists("js.{$dmenu}")) @push('addjs') {{-- file js in folder (resources/views/js) --}} @include('js.' . $dmenu); @endpush @else @push('addjs') @endpush @endif @endif @endsection @push('js') @endpush