Files
cabutan-bertuah-koipb/app/Http/Controllers/DashboardController.php
2026-06-24 18:30:00 +08:00

38 lines
1.2 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\AttendanceRecord;
use App\Models\DrawResult;
use App\Models\Member;
use App\Models\Prize;
use Illuminate\View\View;
class DashboardController extends Controller
{
public function index(): View
{
$totalMembers = Member::count();
$hadir = AttendanceRecord::count();
$stats = [
'total_members' => $totalMembers,
'hadir' => $hadir,
'belum_hadir' => max($totalMembers - $hadir, 0),
'total_prizes' => Prize::count(),
'prizes_disahkan' => Prize::where('status', Prize::STATUS_DISAHKAN)->count(),
'prizes_belum' => Prize::available()->count(),
'pemenang_disahkan' => DrawResult::where('status', DrawResult::STATUS_CONFIRMED)->count(),
'cabutan_dibatalkan' => DrawResult::where('status', DrawResult::STATUS_CANCELLED)->count(),
];
$recentWinners = DrawResult::with(['member', 'prize'])
->where('status', DrawResult::STATUS_CONFIRMED)
->latest('confirmed_at')
->take(8)
->get();
return view('dashboard', compact('stats', 'recentWinners'));
}
}