From d7e5df569adfb7c60245dccf92e7605e4a670d48 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 17 Jul 2025 15:16:58 +0700 Subject: [PATCH] feat(memo): tambah filter jenis penilaian dan perbaiki fungsi clear checkbox pada datatable memo Perubahan yang dilakukan: - Menambahkan dropdown filter "Jenis Penilaian" (Internal/External) pada halaman index memo penyelesaian - Mengimplementasikan filter gabungan menggunakan separator '|' untuk kombinasi filter dan search - Memperbaiki fungsi clearSelectedCheckboxes dengan selector '#memo-table thead input[type="checkbox"]' agar lebih spesifik - Menambahkan event listener untuk filter jenis penilaian yang terintegrasi dengan fungsi search datatable - Mengupdate MemoController untuk memisahkan parameter filter menjadi jenis penilaian dan search term menggunakan explode('|') - Menambahkan log untuk debugging filter dan proses checkbox - Memodifikasi tampilan dengan class `gap-2` pada container filter untuk spacing yang lebih baik - Menambahkan console.log pada fungsi handleCheckboxChange untuk tracking interaksi user - Memperbaiki error handling pada fungsi clearSelectedCheckboxes untuk memastikan checkbox ter-reset dengan benar - Menampilkan jumlah item terpilih pada tombol "Create Memo" untuk meningkatkan feedback user Tujuan perubahan: - Mempermudah pengguna dalam memfilter data berdasarkan jenis penilaian langsung di datatable memo - Memastikan fungsi checkbox selection berjalan dengan konsisten dan lebih robust - Meningkatkan user experience dengan feedback visual yang lebih jelas saat filter dan selection digunakan - Menyederhanakan interaksi user sekaligus menjaga akurasi proses pembuatan memo penyelesaian --- app/Http/Controllers/MemoController.php | 33 ++++++--- resources/views/memo/index.blade.php | 91 +++++++++++++++++++++++-- 2 files changed, 109 insertions(+), 15 deletions(-) diff --git a/app/Http/Controllers/MemoController.php b/app/Http/Controllers/MemoController.php index 9d15b74..878e7df 100644 --- a/app/Http/Controllers/MemoController.php +++ b/app/Http/Controllers/MemoController.php @@ -190,22 +190,33 @@ class MemoController extends Controller $q->whereIn('nilai_plafond_id', [1, 4]) ->whereNotNull('approval_dd_at') ->orWhereIn('nilai_plafond_id', [2, 3]); - }) - ->whereHas('noc'); // Hanya tampilkan permohonan yang memiliki NOC + }); + //->whereHas('noc'); // Hanya tampilkan permohonan yang memiliki NOC + $query = $query->orderBy('nomor_registrasi', 'desc'); // Apply search filter jika ada if ($request->has('search') && !empty($request->get('search'))) { - $search = $request->get('search'); - $query->where(function ($q) use ($search) { - $q->where('nomor_registrasi', 'LIKE', '%' . $search . '%'); - $q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%'); - $q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%'); - $q->orWhereRelation('debiture', 'name', 'LIKE', '%' . $search . '%'); - $q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%'); - $q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%'); - $q->orWhere('status', 'LIKE', '%' . $search . '%'); + $searchParams = explode('|', $request->get('search')); + + $filterJenisPenilaian = $searchParams[0] ?? ''; + $searchTerm = $searchParams[1] ?? ''; + + // Filter berdasarkan jenis penilaian + if (!empty($filterJenisPenilaian)) { + $query->where('jenis_penilaian_id', $filterJenisPenilaian); + Log::info('Applied jenis penilaian filter', ['filter' => $filterJenisPenilaian]); + } + + $query->where(function ($q) use ($searchTerm) { + $q->where('nomor_registrasi', 'LIKE', '%' . $searchTerm . '%'); + $q->orWhere('tanggal_permohonan', 'LIKE', '%' . $searchTerm . '%'); + $q->orWhereRelation('user', 'name', 'LIKE', '%' . $searchTerm . '%'); + $q->orWhereRelation('debiture', 'name', 'LIKE', '%' . $searchTerm . '%'); + $q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $searchTerm . '%'); + $q->orWhereRelation('branch', 'name', 'LIKE', '%' . $searchTerm . '%'); + $q->orWhere('status', 'LIKE', '%' . $searchTerm . '%'); }); } diff --git a/resources/views/memo/index.blade.php b/resources/views/memo/index.blade.php index f2303cf..00940bd 100644 --- a/resources/views/memo/index.blade.php +++ b/resources/views/memo/index.blade.php @@ -13,10 +13,15 @@ Memo Penyelesaian
-
+
+
@@ -128,6 +133,7 @@ @endpush