diff --git a/app/Enums/StatusKelengkapanPresisiEnum.php b/app/Enums/StatusKelengkapanPresisiEnum.php new file mode 100644 index 00000000..9969252b --- /dev/null +++ b/app/Enums/StatusKelengkapanPresisiEnum.php @@ -0,0 +1,79 @@ + 'Tidak Lengkap', + self::LENGKAP_SEBAGIAN => 'Lengkap Sebagian', + self::DATA_LENGKAP => 'Data Lengkap', + default => 'Status Tidak Diketahui', + }; + } + + public static function getBadgeClass($value): string + { + return match ($value) { + self::DATA_LENGKAP => 'label-success', + self::LENGKAP_SEBAGIAN => 'label-warning', + self::TIDAK_LENGKAP => 'label-danger', + default => 'label-default', + }; + } + + public static function getAll(): array + { + return [ + self::TIDAK_LENGKAP => 'Tidak Lengkap', + self::LENGKAP_SEBAGIAN => 'Lengkap Sebagian', + self::DATA_LENGKAP => 'Data Lengkap', + ]; + } +} \ No newline at end of file diff --git a/resources/views/components/filter-status-presisi.blade.php b/resources/views/components/filter-status-presisi.blade.php new file mode 100644 index 00000000..b3681113 --- /dev/null +++ b/resources/views/components/filter-status-presisi.blade.php @@ -0,0 +1,8 @@ +
+ +
\ No newline at end of file diff --git a/resources/views/data_pokok/agama/cetak.blade.php b/resources/views/data_pokok/agama/cetak.blade.php index 06673ce1..11cc2ab1 100644 --- a/resources/views/data_pokok/agama/cetak.blade.php +++ b/resources/views/data_pokok/agama/cetak.blade.php @@ -16,8 +16,7 @@ NO - NIK - NOMOR KK + NIK NAMA AGAMA FREKWENSI MENGIKUTI KEGIATAN KEAGAMAAN DALAM SETAHUN @@ -35,31 +34,20 @@ const header = @include('layouts.components.header_bearer_api_gabungan'); $.ajax({ - url: `{{ config('app.databaseGabunganUrl') . '/api/v1/data-presisi/agama' }}?${filter}`, + url: `{{ config('app.databaseGabunganUrl') . '/api/v1/data-presisi/agama/rtm' }}?${filter}`, headers: header, method: 'get', success: function(json) { - var no = 1; - // Transform the included array into an object - const transformedIncluded = json.included.reduce((acc, item) => { - if (!acc[item.type]) { - acc[item.type] = {}; - } - acc[item.type][item.id] = item.attributes; - return acc; - }, {}); + var no = 1; json.data.forEach(function(item) { var row = ` ${no} - ${transformedIncluded.penduduk[item - .relationships.penduduk.data.id].nik || 'N/A'} - ${transformedIncluded.penduduk[item - .relationships.penduduk.data.id].keluarga?.no_kk || 'N/A'} - ${transformedIncluded.penduduk[item - .relationships.penduduk.data.id].nama || 'N/A'} + ${item.attributes.nik || 'N/A'} + ${item.attributes.kepala_keluarga || 'N/A'} + ${item.attributes.jumlah_anggota || 'N/A'} ${item.attributes.agama || 'N/A'} - ${item.attributes.frekwensi || 'N/A'} + ${item.attributes.frekwensi_mengikuti_kegiatan || 'N/A'} ` $('#tabel-sandang tbody').append(row) diff --git a/resources/views/data_pokok/agama/index.blade.php b/resources/views/data_pokok/agama/index.blade.php index 7099f2a4..f043ccb8 100644 --- a/resources/views/data_pokok/agama/index.blade.php +++ b/resources/views/data_pokok/agama/index.blade.php @@ -31,6 +31,7 @@
+
@@ -72,7 +73,7 @@ let transformedIncluded = {}; document.addEventListener("DOMContentLoaded", function(event) { const header = @include('layouts.components.header_bearer_api_gabungan'); - var url = new URL("{{ config('app.databaseGabunganUrl') . '/api/v1/data-presisi/agama' }}"); + var url = new URL("{{ config('app.databaseGabunganUrl') . '/api/v1/data-presisi/agama/rtm' }}"); url.searchParams.set("kode_kabupaten", "{{ session('kabupaten.kode_kabupaten') ?? '' }}"); url.searchParams.set("kode_kecamatan", "{{ session('kecamatan.kode_kecamatan') ?? '' }}"); url.searchParams.set("config_desa", "{{ session('desa.id') ?? '' }}"); @@ -97,48 +98,17 @@ "filter[search]": row.search.value, "filter[kode_desa]": $("#kode_desa").val(), "filter[tahun]": $("#filter-tahun").val(), + "filter[status_kelengkapan]": $('#filter-status-kelengkapan').val(), }; }, dataSrc: function(json) { - - if (json.data.length > 0) { - json.recordsTotal = json.meta.pagination.total - json.recordsFiltered = json.meta.pagination.total + json.recordsTotal = json.meta?.pagination?.total || 0 + json.recordsFiltered = json.meta?.pagination?.total || 0 + if (json.data.length > 0) { data_grafik = []; - // Transform the included array into an object - transformedIncluded = json.included.reduce((acc, item) => { - if (!acc[item.type]) { - acc[item.type] = {}; - } - acc[item.type][item.id] = item.attributes; - return acc; - }, {}); - json.data.forEach(function(item, index) { data_grafik.push(item.attributes) - item.attributes.nik = transformedIncluded.penduduk[item - .relationships.penduduk.data.id].nik; - item.attributes.nama = transformedIncluded.penduduk[item - .relationships.penduduk.data.id].nama; - if (!item.attributes.frekwensi) { - item.attributes.frekwensi = 'TIDAK TAHU' - } - item.attributes.dtks = transformedIncluded.rtm[item - .relationships.rtm.data.id].dtks ? 'Terdaftar' : - 'Tidak Terdaftar'; - item.attributes.tgl_daftar = transformedIncluded.rtm[item - .relationships.rtm.data.id].tgl_daftar; - item.attributes.jumlah_kk = transformedIncluded.rtm[item - .relationships.rtm.data.id].jumlah_kk; - item.attributes.alamat = transformedIncluded.keluarga[item - .relationships.keluarga.data.id].alamat; - item.attributes.dusun = transformedIncluded.keluarga[item - .relationships.keluarga.data.id].wilayah?.dusun; - item.attributes.rt = transformedIncluded.keluarga[item - .relationships.keluarga.data.id].wilayah?.rt; - item.attributes.rw = transformedIncluded.keluarga[item - .relationships.keluarga.data.id].wilayah?.rw; - }) + }) grafikPie() return json.data; } @@ -153,15 +123,12 @@ className: 'text-nowrap', data: function(data) { let d = data.attributes let obj = { - 'rtm_id': data.relationships.rtm.data.id, - 'no_kartu_rumah': transformedIncluded.rtm[data.relationships.rtm - .data.id].no_kk, - 'nama_kepala_keluarga': d.nama, - 'alamat': transformedIncluded.keluarga[data.relationships - .keluarga.data.id].alamat, - 'jumlah_anggota': d.anggota_count, - 'jumlah_kk': transformedIncluded.rtm[data.relationships.rtm - .data.id].jumlah_kk, + 'rtm_id': data.id, + 'no_kartu_rumah': d.no_kk, + 'nama_kepala_keluarga': d.kepala_keluarga, + 'alamat': d.alamat, + 'jumlah_anggota': d.jumlah_anggota, + 'jumlah_kk': d.jumlah_kk, } let jsonData = encodeURIComponent(JSON.stringify(obj)); const _url = @@ -182,18 +149,15 @@ className: 'text-nowrap', }, { data: "attributes.nik", - name: "penduduk.nik", + orderable: false, }, { - data: "attributes.nama", - name: "rtm.nama_kepala_keluarga", - orderable: false + data: "attributes.kepala_keluarga", + orderable: false, }, { - data: "attributes.anggota_count", - name: null, + data: "attributes.jumlah_anggota", orderable: false, - searchable: false }, { data: "attributes.agama", @@ -202,8 +166,8 @@ className: 'text-nowrap', searchable: false }, { - data: "attributes.frekwensi", - name: "frekwensi_mengikuti_kegiatan_setahun", + data: "attributes.frekwensi_mengikuti_kegiatan", + name: "frekwensi_mengikuti_kegiatan", orderable: false, searchable: false }, @@ -260,7 +224,7 @@ function format(data) { `; } - $('#filter-tahun').on('change', function() { + $('#filter-tahun, #filter-status-kelengkapan').on('change', function() { agama.ajax.reload(); data_grafik = []; grafikPie(); diff --git a/resources/views/data_pokok/data_presisi/adat/index.blade.php b/resources/views/data_pokok/data_presisi/adat/index.blade.php index 857f8a38..366ccb14 100644 --- a/resources/views/data_pokok/data_presisi/adat/index.blade.php +++ b/resources/views/data_pokok/data_presisi/adat/index.blade.php @@ -29,8 +29,9 @@
-
+
+
@@ -88,9 +89,10 @@ return { "page[size]": row.length, "page[number]": (row.start / row.length) + 1, - "filter[search]": row.search.value, - "sort": "id", + "filter[search]": row.search.value, + "sort": "id", "filter[tahun]": $('#filter-tahun').val(), + "filter[status_kelengkapan]": $('#filter-status-kelengkapan').val(), }; }, dataSrc: function(json) { @@ -216,7 +218,7 @@ function format(data) { `; } // Event listener for year filter change - $('#filter-tahun').on('change', function() { + $('#filter-tahun, #filter-status-kelengkapan').on('change', function() { adat.ajax.reload(); data_grafik = []; grafikPie(); diff --git a/resources/views/data_pokok/data_presisi/kesehatan/index.blade.php b/resources/views/data_pokok/data_presisi/kesehatan/index.blade.php index 5f3ba5da..dffa2ed7 100644 --- a/resources/views/data_pokok/data_presisi/kesehatan/index.blade.php +++ b/resources/views/data_pokok/data_presisi/kesehatan/index.blade.php @@ -29,6 +29,7 @@
+
@@ -86,6 +87,7 @@ "page[number]": (row.start / row.length) + 1, "filter[search]": row.search.value, "filter[tahun]": $('#filter-tahun').val(), + "filter[status_kelengkapan]": $('#filter-status-kelengkapan').val(), "sort": "id" }; }, @@ -210,7 +212,7 @@ function format(data) { `; } // Event listener for year filter change - $('#filter-tahun').on('change', function() { + $('#filter-tahun, #filter-status-kelengkapan').on('change', function() { dtks.ajax.reload(); data_grafik = []; grafikPie(); diff --git a/resources/views/data_pokok/data_presisi/ketenagakerjaan/index.blade.php b/resources/views/data_pokok/data_presisi/ketenagakerjaan/index.blade.php index 6c7e40fd..6b5fdffc 100644 --- a/resources/views/data_pokok/data_presisi/ketenagakerjaan/index.blade.php +++ b/resources/views/data_pokok/data_presisi/ketenagakerjaan/index.blade.php @@ -29,6 +29,7 @@
+
@@ -89,12 +90,14 @@ "kode_kecamatan": "{{ session('kecamatan.kode_kecamatan') ?? '' }}", "config_desa": "{{ session('desa.id') ?? '' }}", "filter[tahun]": $('#filter-tahun').val(), + "filter[status_kelengkapan]": $('#filter-status-kelengkapan').val(), }; }, dataSrc: function(json) { - if (json.data.length > 0) { - json.recordsTotal = json.meta.pagination.total - json.recordsFiltered = json.meta.pagination.total + // Set default values untuk recordsTotal dan recordsFiltered + json.recordsTotal = json.meta?.pagination?.total || 0; + json.recordsFiltered = json.meta?.pagination?.total || 0; + if (json.data.length > 0) { data_grafik = []; json.data.forEach(function(item, index) { data_grafik.push(item.attributes) @@ -210,7 +213,7 @@ function format(data) { `; } // Event listener for year filter change - $('#filter-tahun').on('change', function() { + $('#filter-tahun, #filter-status-kelengkapan').on('change', function() { dtks.ajax.reload(); data_grafik = []; grafikPie(); diff --git a/resources/views/data_pokok/data_presisi/pangan/index.blade.php b/resources/views/data_pokok/data_presisi/pangan/index.blade.php index 4b799bfe..8de7cc79 100644 --- a/resources/views/data_pokok/data_presisi/pangan/index.blade.php +++ b/resources/views/data_pokok/data_presisi/pangan/index.blade.php @@ -29,6 +29,7 @@
+
@@ -87,6 +88,7 @@ "page[number]": (row.start / row.length) + 1, "filter[search]": row.search.value, "filter[tahun]": $('#filter-tahun').val(), + "filter[status_kelengkapan]": $('#filter-status-kelengkapan').val(), }; }, dataSrc: function(json) { @@ -251,7 +253,7 @@ function format(data) { `; } // Event listener for year filter change - $('#filter-tahun').on('change', function() { + $('#filter-tahun, #filter-status-kelengkapan').on('change', function() { dtks.ajax.reload(); data_grafik = []; grafikPie(); diff --git a/resources/views/data_pokok/data_presisi/pendidikan/index.blade.php b/resources/views/data_pokok/data_presisi/pendidikan/index.blade.php index b623bc6f..80f76f02 100644 --- a/resources/views/data_pokok/data_presisi/pendidikan/index.blade.php +++ b/resources/views/data_pokok/data_presisi/pendidikan/index.blade.php @@ -29,6 +29,7 @@
+
@@ -89,12 +90,14 @@ "kode_kecamatan": "{{ session('kecamatan.kode_kecamatan') ?? '' }}", "config_desa": "{{ session('desa.id') ?? '' }}", "filter[tahun]": $('#filter-tahun').val(), + "filter[status_kelengkapan]": $('#filter-status-kelengkapan').val(), }; }, dataSrc: function(json) { - if (json.data.length > 0) { - json.recordsTotal = json.meta.pagination.total - json.recordsFiltered = json.meta.pagination.total + // Set default values untuk recordsTotal dan recordsFiltered + json.recordsTotal = json.meta?.pagination?.total || 0; + json.recordsFiltered = json.meta?.pagination?.total || 0; + if (json.data.length > 0) { data_grafik = []; json.data.forEach(function(item, index) { data_grafik.push(item.attributes) @@ -211,7 +214,7 @@ function format(data) { `; } // Event listener for year filter change - $('#filter-tahun').on('change', function() { + $('#filter-tahun, #filter-status-kelengkapan').on('change', function() { dtks.ajax.reload(); data_grafik = []; grafikPie(); diff --git a/resources/views/data_pokok/data_presisi/seni_budaya/index.blade.php b/resources/views/data_pokok/data_presisi/seni_budaya/index.blade.php index be4037a5..de4a6e32 100644 --- a/resources/views/data_pokok/data_presisi/seni_budaya/index.blade.php +++ b/resources/views/data_pokok/data_presisi/seni_budaya/index.blade.php @@ -29,6 +29,7 @@
+
@@ -91,12 +92,14 @@ "kode_kecamatan": "{{ session('kecamatan.kode_kecamatan') ?? '' }}", "config_desa": "{{ session('desa.id') ?? '' }}", "filter[tahun]": $('#filter-tahun').val(), + "filter[status_kelengkapan]": $('#filter-status-kelengkapan').val(), }; }, dataSrc: function(json) { - if (json.data && json.data.length > 0) { - json.recordsTotal = json.meta.pagination.total; - json.recordsFiltered = json.meta.pagination.total; + // Set default values untuk recordsTotal dan recordsFiltered + json.recordsTotal = json.meta?.pagination?.total || 0; + json.recordsFiltered = json.meta?.pagination?.total || 0; + if (json.data && json.data.length > 0) { data_grafik = []; json.data.forEach(function(item, index) { data_grafik.push(item.attributes); @@ -210,7 +213,7 @@ function format(data) { `; } // Event listener for year filter change - $('#filter-tahun').on('change', function() { + $('#filter-tahun, #filter-status-kelengkapan').on('change', function() { dtks.ajax.reload(); data_grafik = []; grafikPie(); diff --git a/resources/views/data_pokok/jaminan_sosial/cetak.blade.php b/resources/views/data_pokok/jaminan_sosial/cetak.blade.php index b332593e..044af128 100644 --- a/resources/views/data_pokok/jaminan_sosial/cetak.blade.php +++ b/resources/views/data_pokok/jaminan_sosial/cetak.blade.php @@ -16,8 +16,7 @@ NO - NIK - NOMOR KK + NIK NAMA JENIS BANTUAN SOSIAL YANG PERNAH DITERIMA JENIS GANGGUAN MENTAL YANG DIDERITA @@ -36,29 +35,18 @@ const header = @include('layouts.components.header_bearer_api_gabungan'); $.ajax({ - url: `{{ config('app.databaseGabunganUrl') . '/api/v1/data-presisi/jaminan-sosial' }}?${filter}`, + url: `{{ config('app.databaseGabunganUrl') . '/api/v1/data-presisi/jaminan-sosial/rtm' }}?${filter}`, headers: header, method: 'get', success: function(json) { - var no = 1; - // Transform the included array into an object - const transformedIncluded = json.included.reduce((acc, item) => { - if (!acc[item.type]) { - acc[item.type] = {}; - } - acc[item.type][item.id] = item.attributes; - return acc; - }, {}); + var no = 1; json.data.forEach(function(item) { var row = ` ${no} - ${transformedIncluded.penduduk[item - .relationships.penduduk.data.id].nik || 'N/A'} - ${transformedIncluded.penduduk[item - .relationships.penduduk.data.id].keluarga?.no_kk || 'N/A'} - ${transformedIncluded.penduduk[item - .relationships.penduduk.data.id].nama || 'N/A'} + ${item.attributes.nik || 'N/A'} + ${item.attributes.kepala_keluarga || 'N/A'} + ${item.attributes.jumlah_anggota || 'N/A'} ${item.attributes.jns_bantuan || 'TIDAK TAHU'} ${item.attributes.jns_gangguan_mental || 'TIDAK TAHU'} ${item.attributes.terapi_gangguan_mental || 'TIDAK TAHU'} diff --git a/resources/views/data_pokok/jaminan_sosial/index.blade.php b/resources/views/data_pokok/jaminan_sosial/index.blade.php index 01f87127..b7ce3232 100644 --- a/resources/views/data_pokok/jaminan_sosial/index.blade.php +++ b/resources/views/data_pokok/jaminan_sosial/index.blade.php @@ -57,6 +57,7 @@
+
@@ -98,7 +99,7 @@ let transformedIncluded = {}; document.addEventListener("DOMContentLoaded", function(event) { const header = @include('layouts.components.header_bearer_api_gabungan'); - var url = new URL("{{ config('app.databaseGabunganUrl') . '/api/v1/data-presisi/jaminan-sosial' }}"); + var url = new URL("{{ config('app.databaseGabunganUrl') . '/api/v1/data-presisi/jaminan-sosial/rtm' }}"); url.searchParams.set("kode_kabupaten", "{{ session('kabupaten.kode_kabupaten') ?? '' }}"); url.searchParams.set("kode_kecamatan", "{{ session('kecamatan.kode_kecamatan') ?? '' }}"); url.searchParams.set("config_desa", "{{ session('desa.id') ?? '' }}"); @@ -118,60 +119,25 @@ data: function(row) { return { "page[size]": row.length, - "page[number]": (row.start / row.length) + 1, - 'include': 'anggota,penduduk,rtm,keluarga', - "filter[search]": row.search.value, + "page[number]": (row.start / row.length) + 1, + "sort": "id", + "filter[search]": row.search.value, + "filter[tahun]": $('#filter-tahun').val(), + "filter[status_kelengkapan]": $('#filter-status-kelengkapan').val(), }; }, dataSrc: function(json) { - - if (json.data.length > 0) { - json.recordsTotal = json.meta.pagination.total - json.recordsFiltered = json.meta.pagination.total + json.recordsTotal = json.meta?.pagination?.total || 0 + json.recordsFiltered = json.meta?.pagination?.total || 0 + if (json.data.length > 0) { data_grafik = []; - // Transform the included array into an object - transformedIncluded = json.included.reduce((acc, item) => { - if (!acc[item.type]) { - acc[item.type] = {}; - } - acc[item.type][item.id] = item.attributes; - return acc; - }, {}); - json.data.forEach(function(item, index) { data_grafik.push(item.attributes) - item.attributes.nik = transformedIncluded.penduduk[item - .relationships.penduduk.data.id].nik; - item.attributes.nama = transformedIncluded.penduduk[item - .relationships.penduduk.data.id].nama; - if (!item.attributes.jns_bantuan) { - item.attributes.jns_bantuan = 'TIDAK TAHU' - } - if (!item.attributes.jns_gangguan_mental) { - item.attributes.jns_gangguan_mental = 'TIDAK TAHU' - } - if (!item.attributes.terapi_gangguan_mental) { - item.attributes.terapi_gangguan_mental = 'TIDAK TAHU' - } - item.attributes.dtks = transformedIncluded.rtm[item - .relationships.rtm.data.id].dtks ? 'Terdaftar' : - 'Tidak Terdaftar'; - item.attributes.tgl_daftar = transformedIncluded.rtm[item - .relationships.rtm.data.id].tgl_daftar; - item.attributes.jumlah_kk = transformedIncluded.rtm[item - .relationships.rtm.data.id].jumlah_kk; - item.attributes.alamat = transformedIncluded.keluarga[item - .relationships.keluarga.data.id].alamat; - item.attributes.dusun = transformedIncluded.keluarga[item - .relationships.keluarga.data.id].wilayah?.dusun; - item.attributes.rt = transformedIncluded.keluarga[item - .relationships.keluarga.data.id].wilayah?.rt; - item.attributes.rw = transformedIncluded.keluarga[item - .relationships.keluarga.data.id].wilayah?.rw; - }) + }) grafikPie() return json.data; } + return false; }, }, @@ -183,15 +149,12 @@ className: 'text-nowrap', data: function(data) { let d = data.attributes let obj = { - 'rtm_id': data.relationships.rtm.data.id, - 'no_kartu_rumah': transformedIncluded.rtm[data.relationships.rtm - .data.id].no_kk, - 'nama_kepala_keluarga': d.nama, - 'alamat': transformedIncluded.keluarga[data.relationships - .keluarga.data.id].alamat, - 'jumlah_anggota': d.anggota_count, - 'jumlah_kk': transformedIncluded.rtm[data.relationships.rtm - .data.id].jumlah_kk, + 'rtm_id': data.id, + 'no_kartu_rumah': d.no_kk, + 'nama_kepala_keluarga': d.kepala_keluarga, + 'alamat': d.alamat, + 'jumlah_anggota': d.jumlah_anggota, + 'jumlah_kk': d.jumlah_kk, } let jsonData = encodeURIComponent(JSON.stringify(obj)); const _url = @@ -212,18 +175,15 @@ className: 'text-nowrap', }, { data: "attributes.nik", - name: "penduduk.nik", + orderable: false, }, { - data: "attributes.nama", - name: "penduduk.nama", - orderable: false + data: "attributes.kepala_keluarga", + orderable: false, }, { - data: "attributes.anggota_count", - name: null, + data: "attributes.jumlah_anggota", orderable: false, - searchable: false }, { data: "attributes.jns_bantuan", @@ -261,7 +221,7 @@ className: 'text-nowrap', } }); - $('#filter-tahun').on('change', function() { + $('#filter-tahun, #filter-status-kelengkapan').on('change', function() { jaminanSosial.ajax.reload(); data_grafik = []; grafikPie(); diff --git a/tests/Feature/DataPresisiFilterTahunJavaScriptTest.php b/tests/Feature/DataPresisiFilterTahunJavaScriptTest.php index 25c6a913..f83c133d 100644 --- a/tests/Feature/DataPresisiFilterTahunJavaScriptTest.php +++ b/tests/Feature/DataPresisiFilterTahunJavaScriptTest.php @@ -34,9 +34,9 @@ public function test_filter_tahun_javascript_event_listener_exists_in_all_module $content = $response->getContent(); // Test JavaScript event listener untuk filter tahun - $hasEventListener = strpos($content, "filter-tahun').on('change'") !== false || - strpos($content, "#filter-tahun').on('change'") !== false || - strpos($content, "$('#filter-tahun').on('change'") !== false; + $hasEventListener = strpos($content, "filter-tahun, #filter-status-kelengkapan').on('change'") !== false || + strpos($content, "#filter-tahun, #filter-status-kelengkapan').on('change'") !== false || + strpos($content, "$('#filter-tahun, #filter-status-kelengkapan').on('change'") !== false; if ($hasEventListener) { $successCount++; diff --git a/tests/Feature/JaminanSosialTest.php b/tests/Feature/JaminanSosialTest.php index 61a39be2..d3ee6de0 100644 --- a/tests/Feature/JaminanSosialTest.php +++ b/tests/Feature/JaminanSosialTest.php @@ -108,7 +108,7 @@ public function test_jaminan_sosial_has_filter_tahun_functionality() $content = $response->getContent(); // Test filter tahun change event listener exists - $this->assertStringContainsString("$('#filter-tahun').on('change'", $content, 'Event listener filter tahun tidak ditemukan'); + $this->assertStringContainsString("$('#filter-tahun, #filter-status-kelengkapan').on('change'", $content, 'Event listener filter tahun tidak ditemukan'); $this->assertStringContainsString('jaminanSosial.ajax.reload()', $content, 'DataTable reload pada filter tahun tidak ditemukan'); $this->assertStringContainsString('grafikPie()', $content, 'Grafik reload pada filter tahun tidak ditemukan'); } @@ -144,8 +144,7 @@ public function test_jaminan_sosial_uses_correct_api_filters() // Test filter parameters in DataTable $this->assertStringContainsString('"page[size]"', $content, 'Filter page[size] tidak ditemukan'); - $this->assertStringContainsString('"page[number]"', $content, 'Filter page[number] tidak ditemukan'); - $this->assertStringContainsString("'include': 'anggota,penduduk,rtm,keluarga'", $content, 'Include relationships tidak ditemukan'); + $this->assertStringContainsString('"page[number]"', $content, 'Filter page[number] tidak ditemukan'); $this->assertStringContainsString('"filter[search]"', $content, 'Filter search tidak ditemukan'); } }