Initial commit - lms-v2 + CLAUDE.md
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
<?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');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user