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 {