MIF_E31230596_SimpaudKartoh.../app/Http/Controllers/Admin/RapotController.php

80 lines
2.9 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Rapot;
use App\Models\Siswa;
use Illuminate\Http\Request;
class RapotController extends Controller
{
public function create($siswa_id)
{
$siswa = \App\Models\Siswa::findOrFail($siswa_id);
// PERBAIKAN: Ambil data dari Model 'Guru', bukan 'User'
// Kita ambil semua guru, diurutkan berdasarkan nama
$gurus = \App\Models\Guru::orderBy('nama_guru', 'asc')->get();
return view('admin.rapot.create', compact('siswa', 'gurus'));
}
// 2. SIMPAN DATA RAPOT KE DATABASE
public function store(Request $request, $siswa_id)
{
$request->validate([
'semester' => 'required',
'tahun_ajaran' => 'required',
'tanggal_rapot' => 'required|date',
'nama_guru' => 'required',
'nama_kepala_sekolah' => 'required',
]);
Rapot::create([
'siswa_id' => $siswa_id,
'semester' => $request->semester,
'tahun_ajaran' => $request->tahun_ajaran,
'tanggal_rapot' => $request->tanggal_rapot,
// Urutan A-E Sesuai PDF
'narasi_aik' => $request->narasi_aik,
'narasi_nilai_agama' => $request->narasi_nilai_agama,
'narasi_jati_diri' => $request->narasi_jati_diri,
'narasi_literasi' => $request->narasi_literasi,
'narasi_kokurikuler' => $request->narasi_kokurikuler, // Kolom Baru
// Fisik & Kehadiran
'tinggi_badan' => $request->tinggi_badan,
'berat_badan' => $request->berat_badan,
'lingkar_kepala' => $request->lingkar_kepala,
'lingkar_lengan' => $request->lingkar_lengan,
'sakit' => $request->sakit ?? 0,
'izin' => $request->izin ?? 0,
'alpha' => $request->alpha ?? 0,
// Refleksi & TTD
'refleksi_orang_tua' => $request->refleksi_orang_tua,
'nama_guru' => $request->nama_guru,
'nama_kepala_sekolah' => $request->nama_kepala_sekolah,
'nbm_kepala_sekolah' => $request->nbm_kepala_sekolah,
]);
return redirect()->route('perkembangan.show', $siswa_id)
->with('success', 'Rapot berhasil dibuat!');
}
// 3. LIHAT DETAIL RAPOT (PREVIEW SEBELUM CETAK)
public function show($id)
{
$rapot = Rapot::with('siswa')->findOrFail($id);
return view('admin.rapot.show', compact('rapot'));
}
// 4. CETAK PDF (Nanti kita bahas fitur ini)
public function print($id)
{
$rapot = Rapot::with('siswa')->findOrFail($id);
return view('admin.rapot.print', compact('rapot'));
}
}