diff --git a/app/Http/Controllers/Api/GuruController.php b/app/Http/Controllers/Api/GuruController.php index e4d0616..ec90c9e 100644 --- a/app/Http/Controllers/Api/GuruController.php +++ b/app/Http/Controllers/Api/GuruController.php @@ -8,6 +8,7 @@ use App\Models\HasilKarya; use App\Models\Penjemputan; use App\Models\PenilaianCeklis; +use App\Models\Siswa; use Illuminate\Support\Facades\Storage; class GuruController extends Controller @@ -31,6 +32,13 @@ public function storeAnekdot(Request $request) return response()->json(['success' => true, 'message' => 'Anekdot berhasil disimpan']); } + // Ambil Riwayat Anekdot yang dibuat oleh Guru yang login + public function getAnekdot(Request $request) + { + $data = Anekdot::with('siswa')->where('guru_id', $request->user()->id)->latest()->get(); + return response()->json(['success' => true, 'data' => $data]); + } + // 2. Input Hasil Karya (Upload Foto) public function storeKarya(Request $request) { @@ -112,4 +120,38 @@ public function storePenjemputan(Request $request) return response()->json(['success' => true, 'message' => 'Data penjemputan tercatat']); } + + // 4. Scan QR Penjemputan + public function scanJemput(Request $request) + { + $request->validate([ + 'qr_code' => 'required', + ]); + + // Cari siswa berdasarkan qr_code (Biasanya NIS atau ID Siswa) + $siswa = Siswa::where('nis', $request->qr_code) + ->orWhere('id', $request->qr_code) + ->first(); + + if (!$siswa) { + return response()->json([ + 'success' => false, + 'message' => 'QR Code tidak valid! Data siswa tidak ditemukan.' + ], 404); + } + + // Catat Penjemputan + // Kita bisa atur default nama penjemput "Orang Tua/Wali" + Penjemputan::create([ + 'siswa_id' => $siswa->id, + 'nama_penjemput' => 'Orang Tua / Wali', + 'status_hubungan' => 'Orang Tua', + 'waktu_jemput' => now(), + ]); + + return response()->json([ + 'success' => true, + 'message' => 'Berhasil mencatat penjemputan untuk ' . $siswa->nama_lengkap + ]); + } } \ No newline at end of file diff --git a/app/Http/Controllers/Api/PengumumanController.php b/app/Http/Controllers/Api/PengumumanController.php index 09da4a0..0025dea 100644 --- a/app/Http/Controllers/Api/PengumumanController.php +++ b/app/Http/Controllers/Api/PengumumanController.php @@ -9,12 +9,11 @@ class PengumumanController extends Controller { public function index() { - // Sementara kita return array kosong dulu atau contoh data + $data = \App\Models\Pengumuman::where('status', true)->latest()->get(); + return response()->json([ 'success' => true, - 'data' => [ - ['judul' => 'Libur Nasional', 'isi' => 'Besok sekolah libur ya bunda.'], - ] + 'data' => $data ]); } } \ No newline at end of file diff --git a/app/Http/Controllers/Api/SiswaController.php b/app/Http/Controllers/Api/SiswaController.php index 3223719..442f1f9 100644 --- a/app/Http/Controllers/Api/SiswaController.php +++ b/app/Http/Controllers/Api/SiswaController.php @@ -19,7 +19,7 @@ public function index() if ($user->role == 'guru') { // --- JIKA GURU --- // Ambil SEMUA data siswa (untuk menu "Data Kelas") - $siswa = Siswa::with(['wali_murid', 'kelompok'])->latest()->get(); + $siswa = Siswa::with(['wali_murid', 'kelompok', 'anekdots'])->latest()->get(); } else { // --- JIKA WALI MURID --- diff --git a/app/Models/Anekdot.php b/app/Models/Anekdot.php index 7f4eb9c..47ab6b4 100644 --- a/app/Models/Anekdot.php +++ b/app/Models/Anekdot.php @@ -22,4 +22,9 @@ class Anekdot extends Model 'analisis_capaian', 'foto', ]; + + public function siswa() + { + return $this->belongsTo(Siswa::class); + } } diff --git a/resources/views/admin/penjemputan/index.blade.php b/resources/views/admin/penjemputan/index.blade.php index 303d3c0..5d58332 100644 --- a/resources/views/admin/penjemputan/index.blade.php +++ b/resources/views/admin/penjemputan/index.blade.php @@ -33,15 +33,15 @@
- {{ \Carbon\Carbon::parse($log->waktu_jemput)->format('H:i') }} WIB + {{ \Carbon\Carbon::parse($log->waktu_jemput)->timezone('Asia/Jakarta')->format('H:i') }} WIB
- {{ \Carbon\Carbon::parse($log->waktu_jemput)->format('d M Y') }} + {{ \Carbon\Carbon::parse($log->waktu_jemput)->timezone('Asia/Jakarta')->format('d M Y') }}
-
{{ $log->siswa->nama ?? 'Siswa Terhapus' }}
+
{{ $log->siswa->nama_siswa ?? 'Siswa Terhapus' }}
NIS: {{ $log->siswa->nis ?? '-' }}
diff --git a/routes/api.php b/routes/api.php index 9570c17..4cbc8ed 100644 --- a/routes/api.php +++ b/routes/api.php @@ -48,6 +48,7 @@ // --- KHUSUS GURU (Input Data) --- // Nanti kalau Guru login di HP untuk input data: + Route::get('/guru/anekdot', [GuruController::class, 'getAnekdot']); // TAMBAHAN INI Route::post('/guru/anekdot', [GuruController::class, 'storeAnekdot']); Route::post('/guru/karya', [GuruController::class, 'storeKarya']); Route::post('/guru/penjemputan', [GuruController::class, 'storePenjemputan']); @@ -55,6 +56,7 @@ // RUTE PENJEMPUTAN BARU Route::post('/penjemputan', [PenjemputanController::class, 'store']); + Route::post('/guru/scan-jemput', [GuruController::class, 'scanJemput']); Route::get('/rute-astar', [AStarController::class, 'cariRute']);