35 lines
1.2 KiB
PHP
35 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Jabatan;
|
|
use App\Models\Permohonan;
|
|
use App\Models\Vot;
|
|
use Spatie\Activitylog\Models\Activity;
|
|
|
|
class DashboardController extends Controller
|
|
{
|
|
public function __invoke()
|
|
{
|
|
$user = auth()->user();
|
|
$base = Permohonan::query();
|
|
|
|
if ($user->hasRole('Pemohon')) {
|
|
$base->where('user_id', $user->id);
|
|
} elseif ($user->hasRole('Pelaksana')) {
|
|
$base->where('jabatan_id', $user->jabatan_id);
|
|
}
|
|
|
|
return view('dashboard.index', [
|
|
'total' => (clone $base)->count(),
|
|
'approved' => (clone $base)->where('status', 'Approved')->sum('jumlah_keseluruhan'),
|
|
'rejected' => (clone $base)->where('status', 'Rejected')->count(),
|
|
'pending' => (clone $base)->whereIn('status', ['Submitted', 'Under Review'])->count(),
|
|
'byJabatan' => Jabatan::withCount('users')->limit(8)->get(),
|
|
'byVot' => Vot::with('jabatan')->limit(8)->get(),
|
|
'recent' => (clone $base)->latest()->with(['user', 'jabatan', 'vot'])->limit(6)->get(),
|
|
'activities' => Activity::latest()->limit(8)->get(),
|
|
]);
|
|
}
|
|
}
|