diff --git a/htdocs/app/Http/Controllers/ReportController.php b/htdocs/app/Http/Controllers/ReportController.php index 8ebe9a89..739b6791 100644 --- a/htdocs/app/Http/Controllers/ReportController.php +++ b/htdocs/app/Http/Controllers/ReportController.php @@ -25,7 +25,18 @@ class ReportController extends Controller if (Session::get('previlage') == ''){ return redirect('/login'); } else { - return view('admin.report'); + $dokterOptions = Periksa::select('dokter_id', 'nmdokter') + ->whereNotNull('dokter_id') + ->where('dokter_id', '<>', 0) + ->whereNotNull('nmdokter') + ->where('nmdokter', '<>', '') + ->groupBy('dokter_id', 'nmdokter') + ->orderBy('nmdokter', 'ASC') + ->get(); + + return view('admin.report', [ + 'dokterOptions' => $dokterOptions + ]); } } public function rekapPeriksa(Request $request) { @@ -316,6 +327,7 @@ class ReportController extends Controller $bulan = $request->input('bulan'); $tahun = $request->input('tahun'); $jenisreport = $request->input('jenisreport'); + $dokterId = $request->input('dokter_id'); $homebase = url("/"); $arraylist = []; $limit = $request->input('limit') ?? 500; @@ -324,7 +336,7 @@ class ReportController extends Controller $filterscount = $request->input('filterscount') ?? 0; if ($jenisreport == 'biorepository'){ if ($bulan == 'ALL'){ - $lists = DB::table('db_komponenjawaban') + $queryBiorepo = DB::table('db_komponenjawaban') ->select('db_komponenjawaban.*', 'periksa.nofoto', 'periksa.noregister', @@ -338,9 +350,13 @@ class ReportController extends Controller ->leftJoin('periksa', 'db_komponenjawaban.accnumber', 'periksa.nofoto') ->whereIn('db_komponenjawaban.komponen', ['id_bakteri01', 'id_bakteri02', 'bakteri']) ->where('db_komponenjawaban.isidata', '!=', '') - ->where('periksa.daftar', 'LIKE', $tahun.'-%')->orderBy('periksa.id', 'DESC')->get(); + ->where('periksa.daftar', 'LIKE', $tahun.'-%'); + if (!empty($dokterId) && $dokterId != 'ALL' && $dokterId != '0') { + $queryBiorepo->where('periksa.dokter_id', $dokterId); + } + $lists = $queryBiorepo->orderBy('periksa.id', 'DESC')->get(); } else { - $lists = DB::table('db_komponenjawaban') + $queryBiorepo = DB::table('db_komponenjawaban') ->select('db_komponenjawaban.*', 'periksa.nofoto', 'periksa.noregister', @@ -354,7 +370,11 @@ class ReportController extends Controller ->leftJoin('periksa', 'db_komponenjawaban.accnumber', 'periksa.nofoto') ->whereIn('db_komponenjawaban.komponen', ['id_bakteri01', 'id_bakteri02', 'bakteri']) ->where('db_komponenjawaban.isidata', '!=', '') - ->where('periksa.daftar', 'LIKE', $tahun.'-'.$bulan.'-%')->orderBy('periksa.id', 'DESC')->get(); + ->where('periksa.daftar', 'LIKE', $tahun.'-'.$bulan.'-%'); + if (!empty($dokterId) && $dokterId != 'ALL' && $dokterId != '0') { + $queryBiorepo->where('periksa.dokter_id', $dokterId); + } + $lists = $queryBiorepo->orderBy('periksa.id', 'DESC')->get(); } echo json_encode($lists); } else { @@ -363,6 +383,9 @@ class ReportController extends Controller if ($bulan !== 'ALL') { $query->whereMonth('mulai', $bulan); } + if (!empty($dokterId) && $dokterId != 'ALL' && $dokterId != '0') { + $query->where('dokter_id', $dokterId); + } /** * CURSOR → Streaming data, tidak boros memori diff --git a/htdocs/resources/views/admin/report.blade.php b/htdocs/resources/views/admin/report.blade.php index ad15f856..af18cf0e 100644 --- a/htdocs/resources/views/admin/report.blade.php +++ b/htdocs/resources/views/admin/report.blade.php @@ -4,7 +4,7 @@