From 105bd1ce4b7b7812245f0a0c15ebd616942d12d4 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 9 Apr 2025 10:49:35 +0700 Subject: [PATCH] feat(laporan): tambah filter status pada laporan permohonan Menambahkan fitur filter berdasarkan status pada laporan permohonan: - Menambahkan filter status yang diambil dari model StatusPermohonan - Mengimplementasikan filter status pada controller LaporanPermohonanController - Mengimplementasikan filter status pada export LaporanPermohonanExport - Memastikan filter status berfungsi baik pada tampilan datatable maupun pada ekspor data --- app/Exports/LaporanPermohonanExport.php | 5 +++++ .../LaporanPermohonanController.php | 5 +++++ .../views/laporan_permohonan/index.blade.php | 21 +++++++++++++++++++ 3 files changed, 31 insertions(+) diff --git a/app/Exports/LaporanPermohonanExport.php b/app/Exports/LaporanPermohonanExport.php index 02d5fdc..4075648 100644 --- a/app/Exports/LaporanPermohonanExport.php +++ b/app/Exports/LaporanPermohonanExport.php @@ -36,6 +36,11 @@ ]); } + // Apply status filter if provided + if ($this->request->has('status') && !empty($this->request->status)) { + $query->where('status', $this->request->status); + } + // Apply search filter if provided if ($this->request->has('search') && !empty($this->request->search)) { $search = $this->request->search; diff --git a/app/Http/Controllers/LaporanPermohonanController.php b/app/Http/Controllers/LaporanPermohonanController.php index 34fbb1d..49861ef 100644 --- a/app/Http/Controllers/LaporanPermohonanController.php +++ b/app/Http/Controllers/LaporanPermohonanController.php @@ -50,6 +50,11 @@ ]); } + // Filter by status if provided + if (isset($search->status) && !empty($search->status)) { + $query->where('status', $search->status); + } + if(isset($search->search)) { $query->where(function ($q) use ($search) { diff --git a/resources/views/laporan_permohonan/index.blade.php b/resources/views/laporan_permohonan/index.blade.php index 42b3828..a3e98cf 100644 --- a/resources/views/laporan_permohonan/index.blade.php +++ b/resources/views/laporan_permohonan/index.blade.php @@ -22,6 +22,14 @@ +
+ +
@@ -104,6 +112,7 @@ const searchInput = document.getElementById('search'); const startDateInput = document.getElementById('start_date'); const endDateInput = document.getElementById('end_date'); + const statusFilter = document.getElementById('status_filter'); const filterTanggalButton = document.getElementById('filter_tanggal'); const exportBtn = document.getElementById('export-btn'); @@ -199,6 +208,7 @@ let filters = {}; const startDate = startDateInput.value; const endDate = endDateInput.value; + const status = statusFilter.value; if (searchInput.value) { filters.search = searchInput.value; @@ -212,6 +222,10 @@ filters.end_date = endDate; } + if (status) { + filters.status = status; + } + dataTable.search(filters); } @@ -231,6 +245,13 @@ url.searchParams.delete('end_date'); } + if (statusFilter.value) { + url.searchParams.set('status', statusFilter.value); + } else { + url.searchParams.delete('status'); + } + + if (searchInput.value) { url.searchParams.set('search', searchInput.value); } else {