From 105bd1ce4b7b7812245f0a0c15ebd616942d12d4 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 9 Apr 2025 10:49:35 +0700 Subject: [PATCH 1/2] 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 { From 4b0e651cf58edb7c86dcaeef5591e8d4974aed1b Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 9 Apr 2025 11:02:18 +0700 Subject: [PATCH 2/2] feat(laporan): tambah filter branch pada laporan permohonan Menambahkan fitur filter berdasarkan cabang pada laporan permohonan: - Mengimplementasikan filter branch pada controller LaporanPermohonanController - Mengimplementasikan filter branch pada export LaporanPermohonanExport - Menambahkan dropdown filter cabang pada halaman index - Mengimplementasikan filter cabang pada JavaScript untuk datatable - Menambahkan parameter branch_id pada URL ekspor data - Memastikan filter cabang berfungsi baik pada tampilan datatable maupun pada ekspor data --- app/Exports/LaporanPermohonanExport.php | 5 +++++ .../LaporanPermohonanController.php | 5 +++++ .../views/laporan_permohonan/index.blade.php | 20 +++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/app/Exports/LaporanPermohonanExport.php b/app/Exports/LaporanPermohonanExport.php index 4075648..e7f4f1d 100644 --- a/app/Exports/LaporanPermohonanExport.php +++ b/app/Exports/LaporanPermohonanExport.php @@ -41,6 +41,11 @@ $query->where('status', $this->request->status); } + // Apply branch filter if provided + if ($this->request->has('branch_id') && !empty($this->request->branch_id)) { + $query->where('branch_id', $this->request->branch_id); + } + // 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 49861ef..bfa7dd3 100644 --- a/app/Http/Controllers/LaporanPermohonanController.php +++ b/app/Http/Controllers/LaporanPermohonanController.php @@ -55,6 +55,11 @@ $query->where('status', $search->status); } + // Filter by branch if provided + if (isset($search->branch_id) && !empty($search->branch_id)) { + $query->where('branch_id', $search->branch_id); + } + 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 a3e98cf..ffb183b 100644 --- a/resources/views/laporan_permohonan/index.blade.php +++ b/resources/views/laporan_permohonan/index.blade.php @@ -22,6 +22,14 @@ +
+ +
+
@@ -113,6 +122,7 @@ const startDateInput = document.getElementById('start_date'); const endDateInput = document.getElementById('end_date'); const statusFilter = document.getElementById('status_filter'); + const branchFilter = document.getElementById('branch_filter'); const filterTanggalButton = document.getElementById('filter_tanggal'); const exportBtn = document.getElementById('export-btn'); @@ -209,6 +219,7 @@ const startDate = startDateInput.value; const endDate = endDateInput.value; const status = statusFilter.value; + const branch = branchFilter.value; if (searchInput.value) { filters.search = searchInput.value; @@ -226,6 +237,10 @@ filters.status = status; } + if (branch) { + filters.branch_id = branch; + } + dataTable.search(filters); } @@ -251,6 +266,11 @@ url.searchParams.delete('status'); } + if (branchFilter.value) { + url.searchParams.set('branch_id', branchFilter.value); + } else { + url.searchParams.delete('branch_id'); + } if (searchInput.value) { url.searchParams.set('search', searchInput.value);