From 4b0e651cf58edb7c86dcaeef5591e8d4974aed1b Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 9 Apr 2025 11:02:18 +0700 Subject: [PATCH] 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);