Files

56 lines
1.6 KiB
PHP
Raw Permalink Normal View History

2026-05-30 22:15:16 +07:00
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use App\Models\Sop;
use App\Models\ExamResult;
use Illuminate\View\View;
class DashboardController extends Controller
{
/**
* 1. Fungsi Dashboard Utama Admin
*/
public function index(Request $request): View
{
$statistics = [
// PENTING: Menggunakan whereHas() untuk mengecek relasi Role di tabel pivot
'total_karyawan' => User::whereHas('roles', function ($query) {
$query->where('name', 'trainee'); // Atau 'karyawan', sesuaikan dengan nama role di database Anda
})->count(),
'total_trainer' => User::whereHas('roles', function ($query) {
// Menghitung admin dan trainer
$query->whereIn('name', ['trainer', 'admin']);
})->count(),
'total_sop' => Sop::where('status', 'Active')->count(),
'lulus_ujian' => ExamResult::where('is_passed', true)->count(),
];
// Pastikan path view ini benar-benar ada di resources/views/pages/admin/dashboard/dashboard.blade.php
return view('pages.admin.dashboard.dashboard', compact('statistics'));
}
/**
* 2. Fungsi untuk menu Departemen & Posisi (Master Data)
*/
public function masterIndex(): View
{
return view('pages.admin.master-data.index');
}
/**
* 4. Fungsi untuk menu Dokumen SOP
*/
public function sopIndex(): View
{
return view('pages.admin.sops.index');
}
}