checkpion

This commit is contained in:
ghozahimma65 2026-02-26 05:44:37 +07:00
parent 9f467b7dab
commit d49d88e122
6 changed files with 56 additions and 8 deletions

View File

@ -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
]);
}
}

View File

@ -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
]);
}
}

View File

@ -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 ---

View File

@ -22,4 +22,9 @@ class Anekdot extends Model
'analisis_capaian',
'foto',
];
public function siswa()
{
return $this->belongsTo(Siswa::class);
}
}

View File

@ -33,15 +33,15 @@
<tr class="hover:bg-blue-50 transition duration-150 group">
<td class="p-4 whitespace-nowrap">
<div class="text-gray-800 font-semibold">
{{ \Carbon\Carbon::parse($log->waktu_jemput)->format('H:i') }} WIB
{{ \Carbon\Carbon::parse($log->waktu_jemput)->timezone('Asia/Jakarta')->format('H:i') }} WIB
</div>
<div class="text-xs text-gray-500">
{{ \Carbon\Carbon::parse($log->waktu_jemput)->format('d M Y') }}
{{ \Carbon\Carbon::parse($log->waktu_jemput)->timezone('Asia/Jakarta')->format('d M Y') }}
</div>
</td>
<td class="p-4">
<div class="font-bold text-gray-800">{{ $log->siswa->nama ?? 'Siswa Terhapus' }}</div>
<div class="font-bold text-gray-800">{{ $log->siswa->nama_siswa ?? 'Siswa Terhapus' }}</div>
<div class="text-xs text-gray-500">NIS: {{ $log->siswa->nis ?? '-' }}</div>
</td>

View File

@ -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']);