From 0e733aa14a8efa4f2775d9f723b080ddce592425 Mon Sep 17 00:00:00 2001 From: Dwi Swandhana Date: Sat, 4 Apr 2026 06:58:02 +0700 Subject: [PATCH] update --- .../app/Http/Controllers/ReportController.php | 13 +++++++--- htdocs/resources/views/admin/report.blade.php | 24 +++++++++++++++---- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/htdocs/app/Http/Controllers/ReportController.php b/htdocs/app/Http/Controllers/ReportController.php index 509286dc..6b5537eb 100644 --- a/htdocs/app/Http/Controllers/ReportController.php +++ b/htdocs/app/Http/Controllers/ReportController.php @@ -328,6 +328,9 @@ class ReportController extends Controller $tahun = $request->input('tahun'); $jenisreport = $request->input('jenisreport'); $dokterId = $request->input('dokter_id'); + $tanggalFilter = $request->input('tanggal_filter', 'daftar'); + $statusFilter = $request->input('status_filter', 'ALL'); + $dateColumn = $tanggalFilter === 'verifikasi' ? 'verifikasi' : 'daftar'; $homebase = url("/"); $arraylist = []; $limit = $request->input('limit') ?? 500; @@ -378,19 +381,23 @@ class ReportController extends Controller } echo json_encode($lists); } else { - $query = Periksa::select('id', 'nofoto', 'noregister', 'nmpasien', 'tlppasien', 'tgllahirpasien', 'usia', 'alamatpasien', 'ktp', 'jkpasien', 'bpjs', 'asuransi', 'urgensi', 'asalpasien', 'klinisi', 'klinis', 'nmanalis', 'nmppdssenior', 'kd_spesimen', 'nm_spesimen', 'dlp', 'diagnosa2', 'mulai', 'verifikasi', 'status', 'reques', 'nmdokter', 'daftar')->whereYear('mulai', $tahun); + $query = Periksa::select('id', 'poli_id', 'nofoto', 'noregister', 'nmpasien', 'tlppasien', 'tgllahirpasien', 'usia', 'alamatpasien', 'ktp', 'jkpasien', 'bpjs', 'asuransi', 'urgensi', 'asalpasien', 'klinisi', 'klinis', 'nmanalis', 'nmppdssenior', 'kd_spesimen', 'nm_spesimen', 'dlp', 'diagnosa2', 'mulai', 'verifikasi', 'status', 'reques', 'nmdokter', 'daftar') + ->whereYear($dateColumn, $tahun); if ($bulan !== 'ALL') { - $query->whereMonth('mulai', $bulan); + $query->whereMonth($dateColumn, $bulan); } if (!empty($dokterId) && $dokterId != 'ALL' && $dokterId != '0') { $query->where('dokter_id', $dokterId); } + if ($statusFilter === 'Selesai') { + $query->where('status', 'LIKE', '%Selesai%'); + } /** * CURSOR → Streaming data, tidak boros memori */ - $periksaCursor = $query->orderBy('mulai', 'ASC')->cursor(); + $periksaCursor = $query->orderBy($dateColumn, 'ASC')->cursor(); $hasil = []; diff --git a/htdocs/resources/views/admin/report.blade.php b/htdocs/resources/views/admin/report.blade.php index af18cf0e..bed62696 100644 --- a/htdocs/resources/views/admin/report.blade.php +++ b/htdocs/resources/views/admin/report.blade.php @@ -39,6 +39,18 @@ @endif +
+ +
+
+ +
@@ -231,10 +243,12 @@ $(document).ready(function () { $('#divlaporanharian').hide(); $("#tanggal").datepicker({format: 'yyyy-mm-dd'}); $("#tglpenyimpanan").datepicker({format: 'yyyy-mm-dd'}); - $('#btnReport').click(function () { + $('#btnReport').click(function () { var bulan = document.getElementById('bulan').value; var tahun = document.getElementById('tahun').value; var dokterId= document.getElementById('dokter_id').value; + var tanggalFilter = document.getElementById('tanggal_filter').value; + var statusFilter = document.getElementById('status_filter').value; var token = document.getElementById('token').value; if (bulan == '' || tahun == ''){ swal({ @@ -243,7 +257,7 @@ $(document).ready(function () { type : 'error', }); } else { - $.post('{{ route("reportPeriksa") }}', { bulan: bulan, tahun: tahun, dokter_id: dokterId, jenisreport: '', _token: token }, + $.post('{{ route("reportPeriksa") }}', { bulan: bulan, tahun: tahun, dokter_id: dokterId, tanggal_filter: tanggalFilter, status_filter: statusFilter, jenisreport: '', _token: token }, function(data){ var sourceawal = { datatype: "json", @@ -385,6 +399,8 @@ $(document).ready(function () { var bulan = document.getElementById('bulan').value; var tahun = document.getElementById('tahun').value; var dokterId = document.getElementById('dokter_id').value; + var tanggalFilter = document.getElementById('tanggal_filter').value; + var statusFilter = document.getElementById('status_filter').value; var dokterText = $('#dokter_id option:selected').text(); var token = document.getElementById('token').value; @@ -397,7 +413,7 @@ $(document).ready(function () { return; } - $.post('{{ route("reportPeriksa") }}', { bulan: bulan, tahun: tahun, dokter_id: dokterId, jenisreport: '', _token: token }, function(data) { + $.post('{{ route("reportPeriksa") }}', { bulan: bulan, tahun: tahun, dokter_id: dokterId, tanggal_filter: tanggalFilter, status_filter: statusFilter, jenisreport: '', _token: token }, function(data) { if (!Array.isArray(data) || data.length === 0) { swal({ title : 'Info', @@ -428,7 +444,7 @@ $(document).ready(function () { var wb = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(wb, ws, 'ReportDokter'); var dokterSafe = (dokterText || 'Dokter').replace(/[^a-zA-Z0-9]+/g, '_'); - XLSX.writeFile(wb, 'Report_' + bulan + '_' + tahun + '_' + dokterSafe + '.xlsx'); + XLSX.writeFile(wb, 'Report_' + tanggalFilter + '_' + statusFilter + '_' + bulan + '_' + tahun + '_' + dokterSafe + '.xlsx'); }); }); $('#btnrekapbiorepo').click(function () {