This commit is contained in:
Dwi Swandhana
2026-04-04 06:58:02 +07:00
parent cd1a8d64b9
commit 0e733aa14a
2 changed files with 30 additions and 7 deletions
@@ -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 = [];
+20 -4
View File
@@ -39,6 +39,18 @@
@endif
</select>
</div>
<div class="form-group col-md-3">
<select class="form-control" id="tanggal_filter" name="tanggal_filter">
<option value="daftar">Tanggal Daftar</option>
<option value="verifikasi">Tanggal Verifikasi</option>
</select>
</div>
<div class="form-group col-md-3">
<select class="form-control" id="status_filter" name="status_filter">
<option value="ALL">Semua Status</option>
<option value="Selesai">Selesai</option>
</select>
</div>
<div class="form-group col-md-3">
<button type="button" class="btn btn-primary" id="btnReport">Detail</button>
</div>
@@ -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 () {