MIF_E31230892/test_capaian_api.php

70 lines
2.2 KiB
PHP

<?php
// Test API Capaian
require_once __DIR__ . '/sim-pkpps/vendor/autoload.php';
// Bootstrap Laravel
$app = require_once __DIR__ . '/sim-pkpps/bootstrap/app.php';
$kernel = $app->make(\Illuminate\Contracts\Console\Kernel::class);
$kernel->bootstrap();
// Test data
echo "=== TEST CAPAIAN API ===\n\n";
// 1. Check Santri
$santri = \App\Models\Santri::first();
if (!$santri) {
echo "❌ Tidak ada santri di database\n";
exit;
}
echo "✅ Santri: {$santri->nama_lengkap} (ID: {$santri->id_santri}, Kelas: {$santri->kelas})\n\n";
// 2. Check Semester
$semester = \App\Models\Semester::aktif()->first();
if (!$semester) {
echo "⚠️ Tidak ada semester aktif\n";
} else {
echo "✅ Semester Aktif: {$semester->nama_semester} (ID: {$semester->id_semester})\n\n";
}
// 3. Check Materi untuk kelas santri
$materi = \App\Models\Materi::where('kelas', $santri->kelas)->get();
echo "📚 Materi untuk kelas {$santri->kelas}: {$materi->count()} materi\n";
foreach ($materi as $m) {
echo " - {$m->nama_kitab} ({$m->kategori})\n";
}
echo "\n";
// 4. Check Capaian
$capaians = \App\Models\Capaian::where('id_santri', $santri->id_santri)
->with(['materi', 'semester'])
->get();
echo "📊 Capaian Santri: {$capaians->count()} capaian\n";
if ($capaians->isEmpty()) {
echo "⚠️ Belum ada capaian untuk santri ini\n\n";
echo "🔧 Membuat capaian sample...\n";
// Create sample capaian if none exists
foreach ($materi->take(3) as $m) {
$capaian = \App\Models\Capaian::create([
'id_santri' => $santri->id_santri,
'id_materi' => $m->id_materi,
'id_semester' => $semester?->id_semester,
'halaman_selesai' => rand(10, 50),
'tanggal_input' => now(),
]);
echo " ✅ Created capaian: {$m->nama_kitab} - {$capaian->persentase}%\n";
}
// Reload capaians
$capaians = \App\Models\Capaian::where('id_santri', $santri->id_santri)
->with(['materi', 'semester'])
->get();
echo "\n📊 Total capaian sekarang: {$capaians->count()}\n";
} else {
foreach ($capaians as $c) {
echo " - {$c->materi->nama_kitab}: {$c->persentase}% ({$c->materi->kategori})\n";
}
}
echo "\n=== TEST COMPLETE ===\n";