From de2c087d9305bef46f34d1baa20fa3fbfb202907 Mon Sep 17 00:00:00 2001 From: JokoPrasetio Date: Fri, 6 Mar 2026 16:07:40 +0700 Subject: [PATCH] done -> next review --- app/Http/Controllers/DashboardController.php | 43 +++++++++++++------ .../Controllers/LogActivityController.php | 8 ++-- .../views/dataUnit/section/recap.blade.php | 4 +- resources/views/logActivity/index.blade.php | 2 + 4 files changed, 39 insertions(+), 18 deletions(-) diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php index 6538894..cbf0153 100644 --- a/app/Http/Controllers/DashboardController.php +++ b/app/Http/Controllers/DashboardController.php @@ -167,8 +167,16 @@ class DashboardController extends Controller $allKategoriValues = array_values(array_filter(array_merge($kategoriValues, $kategoriHeaderValues))); $kategoriTypes = []; $kategoriIds = []; + $kategoriHukumValues = []; foreach ($allKategoriValues as $val) { $lower = strtolower(trim((string) $val)); + if (str_starts_with($lower, 'hukum:')) { + $hukumVal = trim(substr((string) $val, strlen('hukum:'))); + if ($hukumVal !== '') { + $kategoriHukumValues[] = $hukumVal; + } + continue; + } if (in_array($lower, ['akreditasi', 'akre'], true)) { $kategoriTypes[] = 'akreditasi'; continue; @@ -195,13 +203,17 @@ class DashboardController extends Controller ->whereIn('id_unit_kerja', $unitIds); $query = (clone $baseQuery) - ->when(!empty($kategoriIds) || !empty($kategoriTypes), function ($q) use ($kategoriIds, $kategoriTypes) { - $q->where(function ($sub) use ($kategoriIds, $kategoriTypes) { + ->when(!empty($kategoriIds) || !empty($kategoriTypes) || !empty($kategoriHukumValues), function ($q) use ($kategoriIds, $kategoriTypes, $kategoriHukumValues) { + $q->where(function ($sub) use ($kategoriIds, $kategoriTypes, $kategoriHukumValues) { $hasClause = false; if (!empty($kategoriIds)) { $sub->whereIn('master_kategori_directory_id', $kategoriIds); $hasClause = true; } + if (!empty($kategoriHukumValues)) { + $hasClause ? $sub->orWhereIn('kategori_hukum', $kategoriHukumValues) : $sub->whereIn('kategori_hukum', $kategoriHukumValues); + $hasClause = true; + } if (in_array('akreditasi', $kategoriTypes, true)) { $sub->where('is_akre', true); $hasClause = true; @@ -230,11 +242,8 @@ class DashboardController extends Controller return $item; }); $kategoriList = (clone $baseQuery)->get()->map(function($item){ - if ($item->is_akre) { - return ['id' => 'akreditasi', 'label' => 'Kategori Akreditasi']; - } if (!empty($item->kategori_hukum)) { - return ['id' => 'hukum', 'label' => 'Kategori Hukum']; + return ['id' => 'hukum:' . $item->kategori_hukum, 'label' => $item->kategori_hukum]; } $label = $item->kategori->nama_kategori_directory ?? $item->nama_kategori_directory ?? 'Kategori'; $id = $item->master_kategori_directory_id ?? $label; @@ -998,8 +1007,16 @@ class DashboardController extends Controller $allKategoriValues = array_values(array_filter(array_merge($kategoriValues, $kategoriHeaderValues))); $kategoriTypes = []; $kategoriIds = []; + $kategoriHukumValues = []; foreach ($allKategoriValues as $val) { $lower = strtolower(trim((string) $val)); + if (str_starts_with($lower, 'hukum:')) { + $hukumVal = trim(substr((string) $val, strlen('hukum:'))); + if ($hukumVal !== '') { + $kategoriHukumValues[] = $hukumVal; + } + continue; + } if (in_array($lower, ['akreditasi', 'akre'], true)) { $kategoriTypes[] = 'akreditasi'; continue; @@ -1021,13 +1038,17 @@ class DashboardController extends Controller }); $query = (clone $baseQuery) - ->when(!empty($kategoriIds) || !empty($kategoriTypes), function ($q) use ($kategoriIds, $kategoriTypes) { - $q->where(function ($sub) use ($kategoriIds, $kategoriTypes) { + ->when(!empty($kategoriIds) || !empty($kategoriTypes) || !empty($kategoriHukumValues), function ($q) use ($kategoriIds, $kategoriTypes, $kategoriHukumValues) { + $q->where(function ($sub) use ($kategoriIds, $kategoriTypes, $kategoriHukumValues) { $hasClause = false; if (!empty($kategoriIds)) { $sub->whereIn('master_kategori_directory_id', $kategoriIds); $hasClause = true; } + if (!empty($kategoriHukumValues)) { + $hasClause ? $sub->orWhereIn('kategori_hukum', $kategoriHukumValues) : $sub->whereIn('kategori_hukum', $kategoriHukumValues); + $hasClause = true; + } if (in_array('akreditasi', $kategoriTypes, true)) { $hasClause ? $sub->orWhere('is_akre', true) : $sub->where('is_akre', true); $hasClause = true; @@ -1063,11 +1084,8 @@ class DashboardController extends Controller }); $kategoriList = (clone $baseQuery)->get()->map(function($item){ - if ($item->is_akre) { - return ['id' => 'akreditasi', 'label' => 'Kategori Akreditasi']; - } if (!empty($item->kategori_hukum)) { - return ['id' => 'hukum', 'label' => 'Kategori Hukum']; + return ['id' => 'hukum:' . $item->kategori_hukum, 'label' => $item->kategori_hukum]; } $label = $item->kategori->nama_kategori_directory ?? $item->nama_kategori_directory ?? 'Kategori'; $id = $item->master_kategori_directory_id ?? $label; @@ -1541,7 +1559,6 @@ class DashboardController extends Controller { $rows = FileDirectory::where('statusenabled', true) ->whereNotNull('status_action')->where('status_action', 'approved') - ->where('is_akre') ->whereIn('id_unit_kerja', $unitIds) ->pluck('file'); diff --git a/app/Http/Controllers/LogActivityController.php b/app/Http/Controllers/LogActivityController.php index 2abab99..c350212 100644 --- a/app/Http/Controllers/LogActivityController.php +++ b/app/Http/Controllers/LogActivityController.php @@ -93,12 +93,14 @@ class LogActivityController extends Controller $query = LogActivity::select( 'pegawai_id_entry', 'pegawai_nama_entry', - DB::raw('COUNT(*) as total_open'), + DB::raw("SUM(CASE WHEN action_type = 'Membuka Dokumen' THEN 1 ELSE 0 END) as total_open"), + // Menghitung hanya yang Download Dokumen + DB::raw("SUM(CASE WHEN action_type = 'Download Dokumen' THEN 1 ELSE 0 END) as total_download"), DB::raw('MAX(entry_at) as last_open') ) ->where('file_directory_id', $fileDirectoryId) ->where('statusenabled', true) - ->where('action_type', 'Membuka Dokumen') + ->whereIn('action_type', ['Membuka Dokumen', 'Download Dokumen']) ->groupBy('pegawai_id_entry', 'pegawai_nama_entry') ->orderByDesc('total_open'); @@ -121,5 +123,5 @@ class LogActivityController extends Controller ]); } - + } diff --git a/resources/views/dataUnit/section/recap.blade.php b/resources/views/dataUnit/section/recap.blade.php index 6afd619..3ab729f 100644 --- a/resources/views/dataUnit/section/recap.blade.php +++ b/resources/views/dataUnit/section/recap.blade.php @@ -30,7 +30,7 @@ # - Unit + Unit / Akreditasi Kategori Jumlah File @@ -101,7 +101,7 @@ function fetchRecap(){ }).join(''); tbody.innerHTML = html + ` - Total File + Total File ${grandTotal} `; diff --git a/resources/views/logActivity/index.blade.php b/resources/views/logActivity/index.blade.php index 936548c..6fd67d9 100644 --- a/resources/views/logActivity/index.blade.php +++ b/resources/views/logActivity/index.blade.php @@ -160,6 +160,7 @@ document.addEventListener('DOMContentLoaded', () => { ${((currentPage - 1) * (pagination.per_page || 10)) + idx + 1} ${row.pegawai_nama_entry || '-'} ${row.total_open || 0} + ${row.total_download || 0} ${formatTanggal(row.last_open)} `).join(''); @@ -341,6 +342,7 @@ document.addEventListener('DOMContentLoaded', () => { # Nama Jumlah Membuka + Jumlah Mengunduh Terakhir Dilihat