feat: add dashboard transfer and assistance summaries
This commit is contained in:
@@ -6,6 +6,7 @@ use App\Http\Controllers\AnggotaKeluargaController;
|
||||
use App\Http\Controllers\AuthController;
|
||||
use App\Http\Controllers\BackupController;
|
||||
use App\Http\Controllers\BantuanController;
|
||||
use App\Http\Controllers\DosenSummaryController;
|
||||
use App\Http\Controllers\ExportController;
|
||||
use App\Http\Controllers\IbadahController;
|
||||
use App\Http\Controllers\ImportController;
|
||||
@@ -64,15 +65,39 @@ Route::middleware('auth')->group(function () {
|
||||
Route::get('/notifications', function (\Illuminate\Http\Request $request) {
|
||||
$since = $request->query('since');
|
||||
$after = $since ? \Carbon\Carbon::parse($since) : now()->subMinutes(1);
|
||||
$user = $request->user();
|
||||
|
||||
$transferQuery = \App\Models\PermohonanTransfer::query();
|
||||
$pendingTransferQuery = \App\Models\PermohonanTransfer::where('status', 'pending');
|
||||
|
||||
if ($user->hasRole('pengurus_ibadah')) {
|
||||
$ownedIbadahIds = \App\Models\RumahIbadah::where('user_id', $user->id)->pluck('id');
|
||||
$transferQuery->where(function ($query) use ($ownedIbadahIds) {
|
||||
$query->whereIn('dari_ibadah_id', $ownedIbadahIds)
|
||||
->orWhereIn('ke_ibadah_id', $ownedIbadahIds);
|
||||
});
|
||||
$pendingTransferQuery->whereIn('ke_ibadah_id', $ownedIbadahIds);
|
||||
} elseif (!$user->hasRole('administrator')) {
|
||||
$pendingTransferQuery->whereRaw('1 = 0');
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'new_ibadah' => \App\Models\RumahIbadah::where('created_at', '>', $after)->count(),
|
||||
'new_miskin' => \App\Models\RumahMiskin::where('created_at', '>', $after)->count(),
|
||||
'new_anggota' => \App\Models\AnggotaKeluarga::where('created_at', '>', $after)->count(),
|
||||
'new_bantuan' => \App\Models\RiwayatBantuan::where('created_at', '>', $after)->count(),
|
||||
'new_transfer' => $transferQuery->where('created_at', '>', $after)->count(),
|
||||
'pending_transfer' => $pendingTransferQuery->count(),
|
||||
'latest_ibadah' => \App\Models\RumahIbadah::max('created_at'),
|
||||
'latest_miskin' => \App\Models\RumahMiskin::max('created_at'),
|
||||
'latest_anggota' => \App\Models\AnggotaKeluarga::max('created_at'),
|
||||
'latest_bantuan' => \App\Models\RiwayatBantuan::max('created_at'),
|
||||
'latest_transfer' => \App\Models\PermohonanTransfer::max('created_at'),
|
||||
]);
|
||||
});
|
||||
|
||||
Route::get('/dashboard/dosen-summary', DosenSummaryController::class);
|
||||
|
||||
// Rumah Ibadah — read: all roles, write: administrator + pengurus_ibadah
|
||||
Route::get('/ibadah', [IbadahController::class, 'index']);
|
||||
Route::middleware('role:administrator|pengurus_ibadah')->group(function () {
|
||||
|
||||
Reference in New Issue
Block a user