first
This commit is contained in:
37
app/Http/Controllers/DashboardController.php
Normal file
37
app/Http/Controllers/DashboardController.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?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'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user