@php $user = auth()->user(); $role = null; if ($user->hasRole('keuangan')) $role = 'keuangan'; elseif ($user->hasRole('yayasan')) $role = 'yayasan'; else $role = 'pengaju'; $lpjStatuses = [ \App\Models\Pencairan::STATUS_DICAIRKAN, \App\Models\Pencairan::STATUS_LPJ_DIUNGGAH, \App\Models\Pencairan::STATUS_LPJ_DITERIMA, \App\Models\Pencairan::STATUS_LPJ_DITOLAK, \App\Models\Pencairan::STATUS_SELESAI, ]; $currentPencairan = request()->route('pencairan'); $currentPencairanStatus = data_get($currentPencairan, 'status'); $statusFilter = request()->query('status'); $contextFilter = request()->query('context'); if (($contextFilter === null || $contextFilter === '') && in_array($statusFilter, ['lpj', 'verifikasi', 'laporan'], true)) { $contextFilter = $statusFilter; $statusFilter = null; } $hasExplicitPencairanContext = in_array($contextFilter, ['pencairan', 'verifikasi', 'laporan', 'lpj'], true); // Badge counts if ($role === 'pengaju') { $c_rkat_revisi = \App\Models\Notification::unreadCountForMenu($user, '/pengaju/rkat'); $c_pcr_revisi = \App\Models\Notification::unreadCountForMenu($user, '/pengaju/pencairan', ['Revisi']); $c_pcr_lpj = \App\Models\Notification::unreadCountForMenu($user, '/pengaju/pencairan', ['Dana', 'LPJ', 'Selesai']); } if ($role === 'keuangan') { $c_rkat_proses = \App\Models\Notification::unreadCountForMenu($user, '/keuangan/rkat'); $c_pcr_proses = \App\Models\Notification::unreadCountForMenu($user, '/keuangan/pencairan', ['Pencairan Baru', 'Pencairan Lain', 'Pencairan Darurat']); $c_pcr_laporan = 0; $c_pcr_lpj = \App\Models\Notification::unreadCountForMenu($user, '/keuangan/pencairan', ['LPJ']); } if ($role === 'yayasan') { $c_rkat_diajukan = \App\Models\Notification::unreadCountForMenu($user, '/yayasan/rkat'); $c_pcr_monitor = \App\Models\Notification::unreadCountForMenu($user, '/yayasan/pencairan', ['Pencairan Baru', 'Pencairan Lain', 'Pencairan Darurat']); $c_pcr_lpj_yayasan = \App\Models\Notification::unreadCountForMenu($user, '/yayasan/pencairan', ['LPJ']); } $pengajuPencairanMenu = match (true) { request()->routeIs('pengaju.pencairan.*') && $contextFilter === 'lpj' => 'lpj', request()->routeIs('pengaju.pencairan.*') && $contextFilter === 'pencairan' => 'list', request()->routeIs('pengaju.pencairan.show') && !$hasExplicitPencairanContext && in_array($currentPencairanStatus, $lpjStatuses, true) => 'lpj', request()->routeIs('pengaju.pencairan.index'), request()->routeIs('pengaju.pencairan.show') => 'list', default => null, }; $keuanganPencairanMenu = match (true) { request()->routeIs('keuangan.pencairan.*') && $contextFilter === 'lpj' => 'lpj', request()->routeIs('keuangan.pencairan.*') && $contextFilter === 'laporan' => 'laporan', request()->routeIs('keuangan.pencairan.*') && $contextFilter === 'verifikasi' => 'verifikasi', request()->routeIs('keuangan.pencairan.show') && !$hasExplicitPencairanContext && in_array($currentPencairanStatus, [ \App\Models\Pencairan::STATUS_DIAJUKAN, \App\Models\Pencairan::STATUS_ACC, \App\Models\Pencairan::STATUS_DICAIRKAN, \App\Models\Pencairan::STATUS_LPJ_DITERIMA, \App\Models\Pencairan::STATUS_LPJ_DITOLAK, \App\Models\Pencairan::STATUS_SELESAI, \App\Models\Pencairan::STATUS_DITOLAK, ], true) => 'laporan', request()->routeIs('keuangan.pencairan.show') && !$hasExplicitPencairanContext && $currentPencairanStatus === \App\Models\Pencairan::STATUS_LPJ_DIUNGGAH => 'lpj', request()->routeIs('keuangan.pencairan.index') && in_array($contextFilter, [null, '', 'verifikasi'], true) => 'verifikasi', request()->routeIs('keuangan.pencairan.show') && !$hasExplicitPencairanContext && $currentPencairanStatus === \App\Models\Pencairan::STATUS_PROSES => 'verifikasi', default => null, }; $yayasanPencairanMenu = match (true) { request()->routeIs('yayasan.pencairan.*') && $contextFilter === 'lpj' => 'lpj', request()->routeIs('yayasan.pencairan.*') && $contextFilter === 'pencairan' => 'list', request()->routeIs('yayasan.pencairan.show') && !$hasExplicitPencairanContext && in_array($currentPencairanStatus, $lpjStatuses, true) => 'lpj', request()->routeIs('yayasan.pencairan.index'), request()->routeIs('yayasan.pencairan.show') => 'list', default => null, }; @endphp