From e03381c6aa373eefc90a9ce5f414cd0589cfe738 Mon Sep 17 00:00:00 2001 From: Dwi Swandhana Date: Wed, 11 Mar 2026 14:19:37 +0700 Subject: [PATCH] update --- .../app/Http/Controllers/ReportController.php | 75 ++++++++++--------- .../cetak/rekappenerimaansample.blade.php | 19 ++--- 2 files changed, 50 insertions(+), 44 deletions(-) diff --git a/htdocs/app/Http/Controllers/ReportController.php b/htdocs/app/Http/Controllers/ReportController.php index 739b6791..509286dc 100644 --- a/htdocs/app/Http/Controllers/ReportController.php +++ b/htdocs/app/Http/Controllers/ReportController.php @@ -976,43 +976,48 @@ class ReportController extends Controller ->pluck('id') ->toArray(); - if (count($printableIds) === 0) { - return response()->json([ - 'status' => 'error', - 'message' => 'Semua data yang dipilih sudah pernah dicetak.' - ], 422); - } + if (count($printableIds) === 0) { + return response()->json([ + 'status' => 'error', + 'message' => 'Semua data yang dipilih sudah pernah dicetak.' + ], 422); + } - $rowsToPrint = Periksa::whereIn('id', $printableIds) - ->orderBy('id', 'ASC') - ->get() - ->map(function ($row) { - $petugas = trim(($row->nmppdsmiddle2 ?? '').' '.($row->nmppdsjunior2 ?? '')); - return [ - 'id' => $row->id, - 'noregister' => $row->noregister ?? '', - 'nmpasien' => $row->nmpasien ?? '', - 'nofoto' => $row->nofoto ?? '', - 'asalpasien' => $row->asalpasien ?? '', - 'daftar' => $row->daftar ?? '', - 'reques' => $row->reques ?? '', - 'kd_spesimen' => $row->kd_spesimen ?? '', - 'nm_spesimen' => $row->nm_spesimen ?? '', - 'status' => $row->status ?? '', - 'tgldraft' => $row->tgldraft ?? '', - 'petugas' => $petugas, - ]; - }) - ->values() - ->toArray(); + if (count($printableIds) > 0) { + Periksa::whereIn('id', $printableIds)->update([ + 'ppdsjunior2' => $userId, + 'nmppdsjunior2' => $userNama, + 'updated_at' => date('Y-m-d H:i:s'), + ]); + } - if (count($printableIds) > 0) { - Periksa::whereIn('id', $printableIds)->update([ - 'ppdsjunior2' => $userId, - 'nmppdsjunior2' => $userNama, - 'updated_at' => date('Y-m-d H:i:s'), - ]); - } + // Ambil data setelah update supaya payload cetak (petugas) sesuai yang tampil di tabel + $rowsToPrint = Periksa::whereIn('id', $printableIds) + ->orderBy('id', 'ASC') + ->get() + ->map(function ($row) { + $petugas = trim(($row->nmppdsmiddle2 ?? '').' '.($row->nmppdsjunior2 ?? '')); + $status = trim((string)($row->status ?? '')); + if ($status === '') { + $status = '-'; + } + return [ + 'id' => $row->id, + 'noregister' => $row->noregister ?? '', + 'nmpasien' => $row->nmpasien ?? '', + 'nofoto' => $row->nofoto ?? '', + 'asalpasien' => $row->asalpasien ?? '', + 'daftar' => $row->daftar ?? '', + 'reques' => $row->reques ?? '', + 'kd_spesimen' => $row->kd_spesimen ?? '', + 'nm_spesimen' => $row->nm_spesimen ?? '', + 'status' => $status, + 'tgldraft' => $row->tgldraft ?? '', + 'petugas' => $petugas, + ]; + }) + ->values() + ->toArray(); $history = RekapPenerimaanSamplePrintHistory::create([ 'tanggal' => $tanggal, diff --git a/htdocs/resources/views/cetak/rekappenerimaansample.blade.php b/htdocs/resources/views/cetak/rekappenerimaansample.blade.php index 7a575f5a..a7b54233 100644 --- a/htdocs/resources/views/cetak/rekappenerimaansample.blade.php +++ b/htdocs/resources/views/cetak/rekappenerimaansample.blade.php @@ -125,7 +125,10 @@ @foreach($detail as $r) @php $isPrinted = !empty($r['ppdsjunior2']) && $r['ppdsjunior2'] != '0'; - $statusValue = trim((string)($r['status'] ?? '-')); + $statusValue = trim((string)($r['status'] ?? '')); + if ($statusValue === '') { + $statusValue = '-'; + } $petugas = ''; if ($r['nmppdsmiddle2'] != '') { $petugas = $r['nmppdsmiddle2']; @@ -359,15 +362,13 @@ if (!table || !filterStatus) { return; } - var statusSet = new Set(); - table.querySelectorAll('tbody tr').forEach(function(row) { - var statusText = (row.children[10] ? row.children[10].innerText : '').trim(); - if (statusText !== '') { - statusSet.add(statusText); - } - }); + while (filterStatus.options.length > 1) { + filterStatus.remove(1); + } - Array.from(statusSet).sort().forEach(function(status) { + // Status yang valid untuk rekap penerimaan sample + var allowed = ['-', 'Pemeriksaan awal', 'Pemeriksaan Sampel', 'Penerimaan Sampel']; + allowed.forEach(function(status) { var opt = document.createElement('option'); opt.value = status.toLowerCase(); opt.textContent = 'Status: ' + status;