This commit is contained in:
Dwi Swandhana
2026-05-04 06:32:22 +07:00
parent fe89a024a1
commit 16eac8512e
11 changed files with 466 additions and 56 deletions
Vendored
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
@@ -1981,10 +1981,25 @@ class DokterController extends Controller
'marking' => '',
]);
}
Periksa::where('id', $idperiksa)->update([
'status' => $request->input('komponen') ?? ''.' '.$request->input('status') ?? '',
if ($status == 'Proses identifikasi dan uji kepekaan vitek'){
$status = 'Sedang ID+AST';
}
if ($status == 'Proses identifikasi dan uji kepekaan manual'){
$status = 'Sedang ID+AST';
}
if ($status == 'Proses identifikasi malditof+ uji kepekaan vitek'){
$status = 'Sedang ID+AST';
}
if ($status == 'Proses identifikasi malditof+ uji kepekaan manual'){
$status = 'Sedang ID+AST';
}
if ($status == 'Proses identifikasi manual+ uji kepekaan vitek'){
$status = 'Sedang ID+AST';
}
Periksa::where('id', $nofoto)->update([
'status' => $status,
]);
return response()->json(['icon' => 'success', 'warna' => '#1dcbbd', 'status' => 'Success', 'message' => $request->input('komponen') ?? ''.' '.$request->input('status') ?? '']);
return response()->json(['icon' => 'success', 'warna' => '#1dcbbd', 'status' => 'Success', 'message' => $request->input('komponen') ?? ''.' '.$status]);
} catch (Exception $e) {
$pesan = $e->getMessage();
Log::error('Gagal Input Pertumbuhan Koloni', [
@@ -2016,10 +2031,9 @@ class DokterController extends Controller
return back();
}
} else if ($worklist == 'copydatabaptocap'){
$getdataawal = Periksa::where('nofoto', $nofoto)->first();
$id = $getdataawal->id ?? $nofoto;
$idtabel = $request->input('id');
try {
$ceksek = DB::table('pertumkolomni')->where('orderid', $id)->first();
$ceksek = DB::table('pertumkolomni')->where('id', $idtabel)->first();
DB::table('pertumkolomni')->insert([
'orderid' => $ceksek->orderid ?? $id,
'tglpenyimpanan' => date('Y-m-d'),
@@ -183,6 +183,13 @@ class GudangController extends Controller
$yy = $rdata->tahun;
$pengeluaran = $rdata->pengeluaran;
$pemasukan = $rdata->pemasukan;
$deskripsiGabungan = trim((string) ($rdata->deskripsi ?? ''));
$keteranganGabungan = trim((string) ($rdata->keterangan ?? ''));
if ($keteranganGabungan !== '') {
$deskripsiGabungan = $deskripsiGabungan !== ''
? $deskripsiGabungan.' | '.$keteranganGabungan
: $keteranganGabungan;
}
if ($mm < 10){
$tgllengkap = $dd.'-0'.$mm.'-'.$yy;
} else {
@@ -196,7 +203,7 @@ class GudangController extends Controller
'tanggal' => $rdata->tanggal,
'bulan' => $rdata->bulan,
'tahun' => $rdata->tahun,
'deskripsi' => $rdata->deskripsi,
'deskripsi' => $deskripsiGabungan,
'pemasukan' => number_format( $pemasukan , 0 , '.' , ',' ),
'pengeluaran' => number_format( $pengeluaran , 0 , '.' , ',' ),
'jenis' => $rdata->jenis,
@@ -508,6 +515,38 @@ class GudangController extends Controller
]);
}
} else if ($jenis == 'opname_pengurangan'){
if (($satuanTransaksi ?: 'besar') === 'kecil' && !$unitSetting['has_breakdown']) {
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Pengurangan satuan kecil tidak tersedia untuk barang ini']);
}
$kategori = strtolower(trim((string) $deskripsi));
if (!in_array($kategori, ['rusak', 'hilang'], true)) {
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Kategori opname pengurangan tidak valid']);
}
$label = ($kategori === 'hilang') ? 'Barang Hilang' : 'Barang Rusak';
$deskripsi = 'Stok Opname - ' . $label;
$qtyBase = $this->calculateBaseQty($pos, $total, $satuanTransaksi ?: 'besar');
$stokSaatIni = $this->getStockBaseByJenis($pos);
if ($qtyBase > $stokSaatIni){
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Nominal Melebihi Stok']);
} else {
$bayar = SIMBHPReport::create([
'tanggal' => $dino,
'bulan' => $wulan,
'tahun' => $tahun,
'deskripsi' => $deskripsi,
'pemasukan' => null,
'pengeluaran' => $total,
'qty_base' => $qtyBase,
'satuan_transaksi' => $satuanTransaksi ?: 'besar',
'jenis' => $pos,
'keterangan' => trim((string) $alasan),
'marking' => '',
]);
}
} else if ($jenis == 'editor'){
if ($alasan == ''){
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Alasan Perubahan Data Wajib Di Isi!!!']);
+15 -2
View File
@@ -23,6 +23,7 @@ class GudangPos extends Component
public string $selectedKode = '';
public string $satuanTransaksi = 'besar';
public int $qty = 1;
public string $keterangan = '';
public string $search = '';
@@ -70,6 +71,7 @@ class GudangPos extends Component
$this->selectedKode = (string) ($jenis->kodejenis ?? '');
$this->qty = 1;
$this->keterangan = '';
$this->satuanTransaksi = (string) ($parsed['satuan_transaksi'] ?? 'besar');
$this->syncSatuanAvailability();
$this->dispatch('gudangpos-open-modal');
@@ -95,6 +97,7 @@ class GudangPos extends Component
$this->selectedKode = (string) ($jenis->kodejenis ?? '');
$this->qty = 1;
$this->keterangan = '';
$this->syncSatuanAvailability();
$this->dispatch('gudangpos-open-modal');
}
@@ -122,6 +125,7 @@ class GudangPos extends Component
}
$qty = (int) $this->qty;
$keterangan = trim((string) $this->keterangan);
if ($qty <= 0) {
$this->toast('error', 'Jumlah harus lebih dari 0.');
return;
@@ -135,7 +139,11 @@ class GudangPos extends Component
$found = false;
foreach ($this->cart as $i => $line) {
if (($line['kode'] ?? '') === $kode && ($line['satuan_transaksi'] ?? '') === $this->satuanTransaksi) {
if (
($line['kode'] ?? '') === $kode
&& ($line['satuan_transaksi'] ?? '') === $this->satuanTransaksi
&& trim((string) ($line['keterangan'] ?? '')) === $keterangan
) {
$this->cart[$i]['qty'] = ((int) ($this->cart[$i]['qty'] ?? 0)) + $qty;
$found = true;
break;
@@ -148,10 +156,12 @@ class GudangPos extends Component
'jenis' => (string) ($jenis->jenis ?? ''),
'qty' => $qty,
'satuan_transaksi' => $this->satuanTransaksi,
'keterangan' => $keterangan,
];
}
$this->qty = 1;
$this->keterangan = '';
$this->dispatch('gudangpos-close-modal');
$this->dispatch('gudangpos-focus', field: 'scan');
}
@@ -204,6 +214,7 @@ class GudangPos extends Component
$kode = $service->sanitizeKode((string) ($line['kode'] ?? ''));
$qty = (int) ($line['qty'] ?? 0);
$satuan = (string) ($line['satuan_transaksi'] ?? 'besar');
$keterangan = trim((string) ($line['keterangan'] ?? ''));
if ($kode === '' || $qty <= 0) {
$this->toast('error', 'Ada item keranjang yang tidak valid.');
return;
@@ -241,6 +252,7 @@ class GudangPos extends Component
'qty' => $qty,
'qty_base' => $qtyBase,
'satuan_transaksi' => $satuan,
'keterangan' => $keterangan,
];
}
@@ -259,7 +271,7 @@ class GudangPos extends Component
'satuan_transaksi' => (string) $row['satuan_transaksi'],
'masa_expired' => null,
'jenis' => (string) ($jenis->jenis ?? ''),
'keterangan' => '',
'keterangan' => (string) ($row['keterangan'] ?? ''),
'marking' => '',
]);
}
@@ -267,6 +279,7 @@ class GudangPos extends Component
$this->cart = [];
$this->qty = 1;
$this->keterangan = '';
$this->toast('success', 'Barang keluar berhasil diproses.');
$this->dispatch('gudang-refresh');
$this->dispatch('gudangpos-close-modal');
+254 -5
View File
@@ -25,6 +25,9 @@
<li class="nav-item">
<a href="#tab_masuk" data-toggle="tab" aria-expanded="false" class="nav-link">Stok Opname (Barang Masuk)</a>
</li>
<li class="nav-item">
<a href="#tab_hilang" data-toggle="tab" aria-expanded="false" class="nav-link">Stok Opname - Barang Hilang</a>
</li>
<li class="nav-item">
<a href="#tab_report" data-toggle="tab" aria-expanded="false" class="nav-link">Statistik / Report</a>
</li>
@@ -155,6 +158,88 @@
</div>
</div>
<div class="tab-pane" id="tab_hilang">
<div class="row">
<div class="col-lg-4">
<div class="card-box">
<h4 class="m-t-0">Stok Opname Barang Hilang</h4>
<div class="form-group">
<label>Tanggal Opname</label>
<input type="text" id="op_adj_tanggal" class="form-control" value="{{$tanggal}}">
</div>
<div class="form-group">
<label>Keterangan (opsional)</label>
<input type="text" id="op_adj_note" class="form-control" placeholder="contoh: pecah saat distribusi / tidak ditemukan saat audit">
</div>
<div class="form-group">
<label>Pilih Barang</label>
<select id="op_adj_pos" class="form-control">
<option value="" selected disabled>-- Pilih Barang --</option>
@foreach($jjenis as $rjenis)
@php($kode = ($rjenis['kodejenis'] ?? '') ?: preg_replace('/\s+/', '', (string) ($rjenis['jenis'] ?? '')))
<option value="{{ $rjenis['jenis'] }}"
data-kodejenis="{{ $kode }}"
data-jenisid="{{ $rjenis['id'] ?? '' }}"
data-satuan="{{ $rjenis['satuan'] }}"
data-satuan-kecil="{{ $rjenis['satuan_kecil'] ?? '' }}"
data-konversi="{{ $rjenis['konversi_kecil'] ?? 1 }}">{{ $kode }} - {{ $rjenis['jenis'] }} ( {{ $rjenis['satuan'] }} )</option>
@endforeach
</select>
</div>
<div class="form-group">
<label>Barcode (CODE128 - Angka)</label>
<input type="text" id="op_adj_barcode" class="form-control" placeholder="akan terisi otomatis" readonly>
</div>
<div class="form-group">
<label>Scan Barcode (CODE128)</label>
<input type="text" id="op_adj_scan" class="form-control" placeholder="scan lalu Enter">
<small class="text-muted">Scan akan otomatis memilih barang & set satuan (besar/kecil) sesuai barcode.</small>
</div>
<div class="form-group">
<label>Satuan Input</label>
<select id="op_adj_satuan_transaksi" class="form-control">
<option value="besar">Satuan Besar</option>
<option value="kecil">Satuan Kecil (Pecah Satuan)</option>
</select>
</div>
<div class="form-group">
<label>Jumlah</label>
<input type="text" id="op_adj_total" class="form-control">
</div>
<div class="form-group">
<button type="button" class="btn btn-danger btn-block" id="btn_op_adj_addline">Tambah ke Daftar Pengurangan</button>
</div>
</div>
</div>
<div class="col-lg-8">
<div class="card-box">
<h4 class="m-t-0">Daftar Barang Hilang</h4>
<div class="table-responsive">
<table class="table table-bordered table-striped m-b-0">
<thead>
<tr>
<th style="width: 110px">Kode</th>
<th>Barang</th>
<th>Keterangan</th>
<th style="width: 120px">Qty</th>
<th style="width: 120px">Satuan</th>
<th style="width: 90px">Aksi</th>
</tr>
</thead>
<tbody id="op_adj_lines">
<tr><td colspan="6" class="text-center text-muted">Belum ada item.</td></tr>
</tbody>
</table>
</div>
<small class="text-muted d-block m-t-10">Catatan: item di daftar ini akan mengurangi stok sebagai hasil opname barang hilang.</small>
<div class="text-right m-t-15">
<button type="button" class="btn btn-danger" id="btn_op_adj_commit">Simpan Semua Pengurangan Stok</button>
</div>
</div>
</div>
</div>
</div>
<div class="tab-pane" id="tab_report">
<div class="row">
<div class="col-md-12">
@@ -675,11 +760,12 @@
$(function () {
$("#in_tanggal").datepicker({format: 'yyyy-mm-dd'});
$("#out_tanggal").datepicker({format: 'yyyy-mm-dd'});
$("#edit_tanggal").datepicker({format: 'yyyy-mm-dd'});
$("#op_in_tanggal").datepicker({format: 'yyyy-mm-dd'});
$("#in_masa_expired").datepicker({format: 'dd-mm-yyyy'});
$("#op_in_masa_expired").datepicker({format: 'dd-mm-yyyy'});
$("#edit_masa_expired").datepicker({format: 'dd-mm-yyyy'});
$("#edit_tanggal").datepicker({format: 'yyyy-mm-dd'});
$("#op_in_tanggal").datepicker({format: 'yyyy-mm-dd'});
$("#op_adj_tanggal").datepicker({format: 'yyyy-mm-dd'});
$("#in_masa_expired").datepicker({format: 'dd-mm-yyyy'});
$("#op_in_masa_expired").datepicker({format: 'dd-mm-yyyy'});
$("#edit_masa_expired").datepicker({format: 'dd-mm-yyyy'});
});
function openedpage( jQuery ){
var set01=document.getElementById('cekbln').value;
@@ -797,6 +883,7 @@
var jenisRows = @json($jenisRows ?? []);
var opInLines = [];
var opAdjLines = [];
var currentDetail = null;
function escapeHtml(value){
@@ -1032,6 +1119,15 @@
}
syncOpInSelected();
var currentAdj = $('#op_adj_pos').val();
var htmlAdj = '<option value=\"\" selected disabled>-- Pilih Barang --</option>';
items.forEach(function(r){ htmlAdj += makeOption(r); });
$('#op_adj_pos').html(htmlAdj);
if(currentAdj){
$('#op_adj_pos').val(currentAdj);
}
syncOpAdjSelected();
// Legacy selects (modal lama / editor)
var legacyIds = ['#in_pos', '#out_pos'];
legacyIds.forEach(function(sel){
@@ -1226,9 +1322,11 @@
$('#in_pos').on('change', function(){ syncSatuanMode('#in_pos', '#in_satuan_transaksi'); });
$('#out_pos').on('change', function(){ syncSatuanMode('#out_pos', '#out_satuan_transaksi'); });
$('#op_in_pos').on('change', function(){ syncSatuanMode('#op_in_pos', '#op_in_satuan_transaksi'); });
$('#op_adj_pos').on('change', function(){ syncSatuanMode('#op_adj_pos', '#op_adj_satuan_transaksi'); });
syncSatuanMode('#in_pos', '#in_satuan_transaksi');
syncSatuanMode('#out_pos', '#out_satuan_transaksi');
syncSatuanMode('#op_in_pos', '#op_in_satuan_transaksi');
syncSatuanMode('#op_adj_pos', '#op_adj_satuan_transaksi');
function syncOpInSelected(){
var val = $('#op_in_pos').val();
@@ -1260,6 +1358,19 @@
});
syncOpInSelected();
function syncOpAdjSelected(){
var selected = $('#op_adj_pos option:selected');
syncSatuanMode('#op_adj_pos', '#op_adj_satuan_transaksi');
var jenisId = parseInt(selected.data('jenisid') || 0, 10);
var mode = $('#op_adj_satuan_transaksi').val() || 'besar';
$('#op_adj_barcode').val(buildBarcodeValueById(jenisId, mode));
}
$('#op_adj_pos').on('change', function(){
syncOpAdjSelected();
});
syncOpAdjSelected();
$('#op_in_kode_barang').on('input', function(){
if($('#op_in_pos').val() !== '__NEW__'){ return; }
$(this).val(normalizeKode($(this).val()));
@@ -1287,6 +1398,13 @@
$('#op_in_barcode').val(buildBarcodeValueById(jenisId, mode));
});
$('#op_adj_satuan_transaksi').on('change', function(){
var selected = $('#op_adj_pos option:selected');
var jenisId = parseInt(selected.data('jenisid') || 0, 10);
var mode = $('#op_adj_satuan_transaksi').val() || 'besar';
$('#op_adj_barcode').val(buildBarcodeValueById(jenisId, mode));
});
$("#topbtntambahjenis").click(function(){
$("#jenis_idne").val('new');
$("#jenis_deskripsi").val('');
@@ -1594,6 +1712,7 @@
$("#in_total").autoNumeric( 'init', {aSep: ',', mDec: '0', vMax: '99999999999999999999999999'} );
$("#out_total").autoNumeric( 'init', {aSep: ',', mDec: '0', vMax: '99999999999999999999999999'} );
$("#op_in_total").autoNumeric( 'init', {aSep: ',', mDec: '0', vMax: '99999999999999999999999999'} );
$("#op_adj_total").autoNumeric( 'init', {aSep: ',', mDec: '0', vMax: '99999999999999999999999999'} );
function renderOpInLines(){
if(!opInLines.length){
@@ -1614,6 +1733,25 @@
$('#op_in_lines').html(html);
}
function renderOpAdjLines(){
if(!opAdjLines.length){
$('#op_adj_lines').html('<tr><td colspan="6" class="text-center text-muted">Belum ada item.</td></tr>');
return;
}
var html = '';
opAdjLines.forEach(function(line, idx){
html += '<tr>' +
'<td class="text-center"><code>' + (line.barcode_value || line.kode || '') + '</code></td>' +
'<td>' + escapeHtml(line.jenis || '') + '</td>' +
'<td>' + escapeHtml(line.note || '-') + '</td>' +
'<td class="text-right">' + escapeHtml(line.qty || '') + '</td>' +
'<td class="text-center">' + escapeHtml(line.satuan_transaksi || '') + '</td>' +
'<td class="text-center"><button type="button" class="btn btn-sm btn-danger btn_op_adj_remove" data-index="' + idx + '">Hapus</button></td>' +
'</tr>';
});
$('#op_adj_lines').html(html);
}
function getSelectedKode(selectId){
var selected = $(selectId).find('option:selected');
return normalizeKode(selected.data('kodejenis') || '');
@@ -1637,6 +1775,24 @@
}
});
$('#op_adj_scan').on('keypress', function(e){
if(e.which === 13){
e.preventDefault();
var scanVal = $(this).val();
var ok = setSelectByKode('#op_adj_pos', scanVal);
$(this).val('');
if(ok){
if(ok.mode){
$('#op_adj_satuan_transaksi').val(ok.mode);
}
syncOpAdjSelected();
setTimeout(function(){ $('#op_adj_total').focus(); }, 100);
}else{
$.toast({ heading: 'Gagal', text: 'Kode barang tidak ditemukan', position: 'top-right', loaderBg: '#bf441d', icon: 'error', hideAfter: 3000, stack: 1 });
}
}
});
$('#btn_op_in_addline').on('click', function(){
var jenisSelect = $('#op_in_pos').val();
var jenis = jenisSelect;
@@ -1716,6 +1872,38 @@
if(!isNaN(idx)){ opInLines.splice(idx, 1); renderOpInLines(); }
});
$('#btn_op_adj_addline').on('click', function(){
var jenis = $('#op_adj_pos').val();
var qty = $('#op_adj_total').val();
var satuanTransaksi = $('#op_adj_satuan_transaksi').val();
var note = ($('#op_adj_note').val() || '').toString().trim();
var kode = getSelectedKode('#op_adj_pos');
var selected = $('#op_adj_pos option:selected');
var jenisId = parseInt(selected.data('jenisid') || 0, 10);
var barcodeValue = buildBarcodeValueById(jenisId, satuanTransaksi);
if(!jenis || !qty){
$.toast({ heading: 'Gagal', text: 'Barang dan jumlah wajib diisi', position: 'top-right', loaderBg: '#bf441d', icon: 'error', hideAfter: 3000, stack: 1 });
return;
}
opAdjLines.push({
jenis: jenis,
kode: kode,
barcode_value: barcodeValue,
qty: qty,
satuan_transaksi: satuanTransaksi,
note: note
});
$('#op_adj_total').val('');
renderOpAdjLines();
});
$(document).on('click', '.btn_op_adj_remove', function(){
var idx = parseInt($(this).data('index'), 10);
if(!isNaN(idx)){ opAdjLines.splice(idx, 1); renderOpAdjLines(); }
});
function runBatchPost(lines, buildPayload, onDone){
var i = 0;
function next(){
@@ -1835,7 +2023,68 @@
next();
});
$('#btn_op_adj_commit').on('click', function(){
if(!opAdjLines.length){
$.toast({ heading: 'Info', text: 'Daftar pengurangan stok masih kosong', position: 'top-right', loaderBg: '#3b98b5', icon: 'info', hideAfter: 2500, stack: 1 });
return;
}
var tanggal = $('#op_adj_tanggal').val();
var $btn = $(this);
$btn.prop('disabled', true).text('Menyimpan...');
var i = 0;
function nextAdj(){
if(i >= opAdjLines.length){
$btn.prop('disabled', false).text('Simpan Semua Pengurangan Stok');
$.toast({ heading: 'Success', text: 'Pengurangan stok opname berhasil disimpan', position: 'top-right', loaderBg: '#5ba035', icon: 'success', hideAfter: 2500, stack: 1 });
opAdjLines = [];
renderOpAdjLines();
if(typeof window.gudangRefresh === 'function'){
window.gudangRefresh();
}
return;
}
var line = opAdjLines[i];
i++;
$.ajax({
url: 'simbhp/exaddbarang',
method: 'POST',
data: {
_token: token,
set01: 'hilang',
set02: line.jenis,
set03: tanggal,
set04: line.qty,
set05: 'opname_pengurangan',
set06: '',
set07: line.note,
set08: '',
set09: '',
set10: '',
set11: line.satuan_transaksi,
set12: ''
}
}).done(function(resp){
if(resp && resp.status && resp.status.toString().toLowerCase() !== 'success'){
$btn.prop('disabled', false).text('Simpan Semua Pengurangan Stok');
$.toast({ heading: 'Gagal', text: (resp && resp.message) ? resp.message : 'Gagal menyimpan', position: 'top-right', loaderBg: '#bf441d', icon: 'error', hideAfter: 4500, stack: 1 });
return;
}
nextAdj();
}).fail(function(){
$btn.prop('disabled', false).text('Simpan Semua Pengurangan Stok');
$.toast({ heading: 'Gagal', text: 'Request gagal', position: 'top-right', loaderBg: '#bf441d', icon: 'error', hideAfter: 4500, stack: 1 });
});
}
nextAdj();
});
renderOpInLines();
renderOpAdjLines();
$('#btnexportreport').click(function(){
var bln = $('#cekbln').val();
var thn = $('#cekthn').val();
@@ -2624,10 +2624,13 @@
<option value="Proses identifikasi manual+ uji kepekaan vitek">Proses identifikasi manual+ uji kepekaan vitek</option>
<option value="Tidak Lanjut Identifikasi">Tidak Lanjut Identifikasi</option>
<option value="Menunggu Kultur yang Lain">Menunggu Kultur yang Lain</option>
<option value="ID/AST pending result">ID/AST pending result</option>
<option value="Menunggu kultur yg lain">Menunggu kultur yg lain</option>
</select>
</div>
<div class="form-group" id="id_keteranganmediabap">
<textarea id="id_keteranganmediabap" name="id_keteranganmediabap" class="form-control ekspertiseteks" rows="5"></textarea>
<div class="form-group">
<p class="text-muted">*Isikan keterangan jika memilih status "Tidak Lanjut Identifikasi" atau "Menunggu kultur yg lain"</p>
<textarea id="id_keteranganmediabap" name="id_keteranganmediabap" class="form-control" rows="5"></textarea>
</div>
</div>
<div class="modal-footer">
+97 -18
View File
@@ -2679,10 +2679,13 @@
<option value="Proses identifikasi malditof+ uji kepekaan manual">Proses identifikasi malditof+ uji kepekaan manual</option>
<option value="Proses identifikasi manual+ uji kepekaan vitek">Proses identifikasi manual+ uji kepekaan vitek</option>
<option value="Tidak Lanjut Identifikasi">Tidak Lanjut Identifikasi</option>
<option value="ID/AST pending result">ID/AST pending result</option>
<option value="Menunggu kultur yg lain">Menunggu kultur yg lain</option>
</select>
</div>
<div class="form-group" id="id_keteranganmediabap">
<textarea id="id_keteranganmediabap" name="id_keteranganmediabap" class="form-control ekspertiseteks" rows="5"></textarea>
<div class="form-group">
<p class="text-muted">*Isikan keterangan jika memilih status "Tidak Lanjut Identifikasi" atau "Menunggu kultur yg lain"</p>
<textarea id="id_keteranganmediabap" name="id_keteranganmediabap" class="form-control" rows="5"></textarea>
</div>
</div>
<div class="modal-footer">
@@ -2711,7 +2714,25 @@
</select>
</div>
<div class="form-group col-lg-6">
<input type="text" id="sdar1_media" name="sdar1_media" class="form-control ekspertiseteks" placeholder="Masukkan Nama Yeast/Mold/Bakteri">
<select class="form-control select2" id="sdar1_media" name="sdar1_media" style="width: 100%;">
<option>Pilih Salah Satu</option>
@php
$keys = array_keys($organismes);
for($i = 0; $i < count($organismes); $i++) {
@endphp
<optgroup label="{{ $bacterycateggories[$i] }}">
@php
foreach($organismes[$keys[$i]] as $key => $value) {
@endphp
<option value="{{ $value['name'] }}">{!! $value['name'] !!}</option>
@php
}
@endphp
</optgroup>
@php
}
@endphp
</select>
</div>
</div>
<div class="form-group">
@@ -2729,6 +2750,7 @@
<option value="Tidak Lanjut Identifikasi">Tidak Lanjut Identifikasi</option>
<option value="PATOGEN (Lanjut Identifikasi Vitek)">PATOGEN (Lanjut Identifikasi Vitek)</option>
<option value="PATOGEN (Lanjut Identifikasi Manual)">PATOGEN (Lanjut Identifikasi Manual)</option>
<option value="Subkultur">Subkultur</option>
</select>
</div>
</div>
@@ -2758,7 +2780,25 @@
</select>
</div>
<div class="form-group col-lg-6">
<input type="text" id="sdar2_media" name="sdar2_media" class="form-control ekspertiseteks" placeholder="Masukkan Nama Yeast/Mold/Bakteri">
<select class="form-control select2" id="sdar2_media" name="sdar2_media" style="width: 100%;">
<option>Pilih Salah Satu</option>
@php
$keys = array_keys($organismes);
for($i = 0; $i < count($organismes); $i++) {
@endphp
<optgroup label="{{ $bacterycateggories[$i] }}">
@php
foreach($organismes[$keys[$i]] as $key => $value) {
@endphp
<option value="{{ $value['name'] }}">{!! $value['name'] !!}</option>
@php
}
@endphp
</optgroup>
@php
}
@endphp
</select>
</div>
</div>
<div class="form-group">
@@ -2776,6 +2816,7 @@
<option value="Tidak Lanjut Identifikasi">Tidak Lanjut Identifikasi</option>
<option value="PATOGEN (Lanjut Identifikasi Vitek)">PATOGEN (Lanjut Identifikasi Vitek)</option>
<option value="PATOGEN (Lanjut Identifikasi Manual)">PATOGEN (Lanjut Identifikasi Manual)</option>
<option value="Subkultur">Subkultur</option>
</select>
</div>
</div>
@@ -2805,7 +2846,25 @@
</select>
</div>
<div class="form-group col-lg-6">
<input type="text" id="sdai1_media" name="sdai1_media" class="form-control ekspertiseteks" placeholder="Masukkan Nama Yeast/Mold/Bakteri">
<select class="form-control select2" id="sdai1_media" name="sdai1_media" style="width: 100%;">
<option>Pilih Salah Satu</option>
@php
$keys = array_keys($organismes);
for($i = 0; $i < count($organismes); $i++) {
@endphp
<optgroup label="{{ $bacterycateggories[$i] }}">
@php
foreach($organismes[$keys[$i]] as $key => $value) {
@endphp
<option value="{{ $value['name'] }}">{!! $value['name'] !!}</option>
@php
}
@endphp
</optgroup>
@php
}
@endphp
</select>
</div>
</div>
<div class="form-group">
@@ -2823,6 +2882,7 @@
<option value="Tidak Lanjut Identifikasi">Tidak Lanjut Identifikasi</option>
<option value="PATOGEN (Lanjut Identifikasi Vitek)">PATOGEN (Lanjut Identifikasi Vitek)</option>
<option value="PATOGEN (Lanjut Identifikasi Manual)">PATOGEN (Lanjut Identifikasi Manual)</option>
<option value="Subkultur">Subkultur</option>
</select>
</div>
</div>
@@ -2852,7 +2912,25 @@
</select>
</div>
<div class="form-group col-lg-6">
<input type="text" id="sdai2_media" name="sdai2_media" class="form-control ekspertiseteks" placeholder="Masukkan Nama Yeast/Mold/Bakteri">
<select class="form-control select2" id="sdai2_media" name="sdai2_media" style="width: 100%;">
<option>Pilih Salah Satu</option>
@php
$keys = array_keys($organismes);
for($i = 0; $i < count($organismes); $i++) {
@endphp
<optgroup label="{{ $bacterycateggories[$i] }}">
@php
foreach($organismes[$keys[$i]] as $key => $value) {
@endphp
<option value="{{ $value['name'] }}">{!! $value['name'] !!}</option>
@php
}
@endphp
</optgroup>
@php
}
@endphp
</select>
</div>
</div>
<div class="form-group">
@@ -2870,6 +2948,7 @@
<option value="Tidak Lanjut Identifikasi">Tidak Lanjut Identifikasi</option>
<option value="PATOGEN (Lanjut Identifikasi Vitek)">PATOGEN (Lanjut Identifikasi Vitek)</option>
<option value="PATOGEN (Lanjut Identifikasi Manual)">PATOGEN (Lanjut Identifikasi Manual)</option>
<option value="Subkultur">Subkultur</option>
</select>
</div>
</div>
@@ -4262,7 +4341,7 @@
var offset = $("#gridmediasdar1").offset();
var dataRecord = $("#gridmediasdar1").jqxGrid('getrowdata', editrowjabatan);
$('#idpertumbuhankoloni').val(dataRecord.id);
$('#sdar1_media').val(dataRecord.kuman);
$('#sdar1_media').select2('val', dataRecord.kuman).trigger('change');
$('#sdar1_pemeriksaanhemolisa').val(dataRecord.hemolisa);
$('#sdar1_mediakuman').val(dataRecord.tindaklanjut);
$('#sdar1_status').val(dataRecord.status);
@@ -4310,7 +4389,7 @@
})
} else {
$('#idpertumbuhankoloni').val('new');
$('#sdar1_media').val(dataRecord.kuman);
$('#sdar1_media').select2('val', dataRecord.kuman).trigger('change');
$('#sdar1_mediakuman').val(dataRecord.tindaklanjut);
$('#sdar1_pemeriksaanhemolisa').val(dataRecord.hemolisa);
$('#sdar1_status').val(dataRecord.status);
@@ -4343,7 +4422,7 @@
var offset = $("#gridmediasdar2").offset();
var dataRecord = $("#gridmediasdar2").jqxGrid('getrowdata', editrowjabatan);
$('#idpertumbuhankoloni').val(dataRecord.id);
$('#sdar2_media').val(dataRecord.kuman);
$('#sdar2_media').select2('val', dataRecord.kuman).trigger('change');
$('#sdar2_pemeriksaanhemolisa').val(dataRecord.hemolisa);
$('#sdar2_mediakuman').val(dataRecord.tindaklanjut);
$('#sdar2_status').val(dataRecord.status);
@@ -4391,7 +4470,7 @@
})
} else {
$('#idpertumbuhankoloni').val('new');
$('#sdar2_media').val(dataRecord.kuman);
$('#sdar2_media').select2('val', dataRecord.kuman).trigger('change');
$('#sdar2_mediakuman').val(dataRecord.tindaklanjut);
$('#sdar2_pemeriksaanhemolisa').val(dataRecord.hemolisa);
$('#sdar2_status').val(dataRecord.status);
@@ -4424,7 +4503,7 @@
var offset = $("#gridmediasdai1").offset();
var dataRecord = $("#gridmediasdai1").jqxGrid('getrowdata', editrowjabatan);
$('#idpertumbuhankoloni').val(dataRecord.id);
$('#sdai1_media').val(dataRecord.kuman);
$('#sdai1_media').select2().val(dataRecord.kuman).trigger('change');
$('#sdai1_pemeriksaanhemolisa').val(dataRecord.hemolisa);
$('#sdai1_mediakuman').val(dataRecord.tindaklanjut);
$('#sdai1_status').val(dataRecord.status);
@@ -4472,7 +4551,7 @@
})
} else {
$('#idpertumbuhankoloni').val('new');
$('#sdai1_media').val(dataRecord.kuman);
$('#sdai1_media').select2('val', dataRecord.kuman).trigger('change');
$('#sdai1_mediakuman').val(dataRecord.tindaklanjut);
$('#sdai1_pemeriksaanhemolisa').val(dataRecord.hemolisa);
$('#sdai1_status').val(dataRecord.status);
@@ -4505,7 +4584,7 @@
var offset = $("#gridmediasdai2").offset();
var dataRecord = $("#gridmediasdai2").jqxGrid('getrowdata', editrowjabatan);
$('#idpertumbuhankoloni').val(dataRecord.id);
$('#sdai2_media').val(dataRecord.kuman);
$('#sdai2_media').select2('val', dataRecord.kuman).trigger('change');
$('#sdai2_pemeriksaanhemolisa').val(dataRecord.hemolisa);
$('#sdai2_mediakuman').val(dataRecord.tindaklanjut);
$('#sdai2_status').val(dataRecord.status);
@@ -4553,7 +4632,7 @@
})
} else {
$('#idpertumbuhankoloni').val('new');
$('#sdai2_media').val(dataRecord.kuman);
$('#sdai2_media').select2('val', dataRecord.kuman).trigger('change');
$('#sdai2_mediakuman').val(dataRecord.tindaklanjut);
$('#sdai2_pemeriksaanhemolisa').val(dataRecord.hemolisa);
$('#sdai2_status').val(dataRecord.status);
@@ -6015,7 +6094,7 @@
var id = document.getElementById('periksa_id').value;
var idtabel = document.getElementById('idpertumbuhankoloni').value;
var media = 'Media SDA R1';
var kuman = document.getElementById('sdar1_media').value;
var kuman = $('#sdar1_media').val();
var hemolisa = document.getElementById('sdar1_pemeriksaanhemolisa').value;
var katalase = '';
var koagulase = '';
@@ -6046,7 +6125,7 @@
var id = document.getElementById('periksa_id').value;
var idtabel = document.getElementById('idpertumbuhankoloni').value;
var media = 'Media SDA R2';
var kuman = document.getElementById('sdar2_media').value;
var kuman = $('#sdar2_media').val();
var hemolisa = document.getElementById('sdar2_pemeriksaanhemolisa').value;
var katalase = '';
var koagulase = '';
@@ -6077,7 +6156,7 @@
var id = document.getElementById('periksa_id').value;
var idtabel = document.getElementById('idpertumbuhankoloni').value;
var media = 'Media SDA I1';
var kuman = document.getElementById('sdai1_media').value;
var kuman = $('#sdai1_media').val();
var hemolisa = document.getElementById('sdai1_pemeriksaanhemolisa').value;
var katalase = '';
var koagulase = '';
@@ -6108,7 +6187,7 @@
var id = document.getElementById('periksa_id').value;
var idtabel = document.getElementById('idpertumbuhankoloni').value;
var media = 'Media SDA I2';
var kuman = document.getElementById('sdai2_media').value;
var kuman = $('#sdai2_media').val();
var hemolisa = document.getElementById('sdai2_pemeriksaanhemolisa').value;
var katalase = '';
var koagulase = '';
@@ -2685,10 +2685,13 @@
<option value="Proses identifikasi malditof+ uji kepekaan manual">Proses identifikasi malditof+ uji kepekaan manual</option>
<option value="Proses identifikasi manual+ uji kepekaan vitek">Proses identifikasi manual+ uji kepekaan vitek</option>
<option value="Tidak Lanjut Identifikasi">Tidak Lanjut Identifikasi</option>
<option value="ID/AST pending result">ID/AST pending result</option>
<option value="Menunggu kultur yg lain">Menunggu kultur yg lain</option>
</select>
</div>
<div class="form-group" id="id_keteranganmediabap">
<textarea id="id_keteranganmediabap" name="id_keteranganmediabap" class="form-control ekspertiseteks" rows="5"></textarea>
<div class="form-group">
<p class="text-muted">*Isikan keterangan jika memilih status "Tidak Lanjut Identifikasi" atau "Menunggu kultur yg lain"</p>
<textarea id="id_keteranganmediabap" name="id_keteranganmediabap" class="form-control" rows="5"></textarea>
</div>
</div>
<div class="modal-footer">
@@ -101,6 +101,7 @@
<tr>
<th style="width: 110px">Kode</th>
<th>Barang</th>
<th>Keterangan</th>
<th style="width: 90px">Qty</th>
<th style="width: 80px">Sat</th>
<th style="width: 60px">Aksi</th>
@@ -111,6 +112,7 @@
<tr>
<td class="text-center"><code>{{ $line['kode'] }}</code></td>
<td>{{ $line['jenis'] }}</td>
<td>{{ $line['keterangan'] ?: '-' }}</td>
<td class="text-right">{{ number_format((int) ($line['qty'] ?? 0), 0, '.', ',') }}</td>
<td class="text-center">{{ strtoupper($line['satuan_transaksi'] ?? '-') }}</td>
<td class="text-center">
@@ -118,7 +120,7 @@
</td>
</tr>
@empty
<tr><td colspan="5" class="text-center text-muted">Keranjang masih kosong.</td></tr>
<tr><td colspan="6" class="text-center text-muted">Keranjang masih kosong.</td></tr>
@endforelse
</tbody>
</table>
@@ -171,6 +173,10 @@
<label>Jumlah</label>
<input id="gudangpos_qty" type="number" min="1" class="form-control" wire:model.live="qty" wire:keydown.enter.prevent="addSelected">
</div>
<div class="form-group m-t-10 m-b-0">
<label>Keterangan</label>
<input type="text" class="form-control" wire:model.live="keterangan" placeholder="opsional">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
@@ -107,7 +107,7 @@
<div class="form-group col-lg-12">
<label for="id_mediatanam" class="col-form-label">Media Tanam Yang di gunakan <font color="red">*</font></label>
<select class="form-control select2" id="id_mediatanam" name="id_mediatanam[]" style="width: 100%;" multiple="multiple">
<option value="">Tidak Menggunakan Media</option>
<option value="-">Tidak Menggunakan Media</option>
<option value="Media BAP">Media BAP</option>
<option value="Media CAP">Media CAP</option>
<option value="Media Mc Conkey">Media Mc Conkey</option>
@@ -259,29 +259,33 @@
var bulan = document.getElementById('id_bulan').value;
var sampleId = document.getElementById('id_sample_edit').value;
var mediatanam = $('#id_mediatanam').val();
if (jenis == ''){
$('#modaleditor').modal('hide');
$.post('{{ route("markPeriksa") }}', { id: sampleId, mediatanam: mediatanam, _token: '{{ csrf_token() }}'},function(data){
$('#gridkiriman').DataTable().ajax.reload();
});
if (mediatanam == null || mediatanam == '' || mediatanam.length === 0) {
$("#err_text").val('Media Tanam Yang di gunakan Wajib di Pilih');
$("#modalerror").modal('show');
} else {
if (jenis != 'F' && bulan == ''){
$("#err_text").val('Jika Jenis Pengobatan Terduga/Pasien TBC bukan Follow Up, maka Bulan Ke harus diisi');
$("#modalerror").modal('show');
} else {
$.post('{{ route("markPeriksa") }}', { id: 'ubahnomorlab', jenis: jenis, bulan: bulan, sampleId: sampleId, mediatanam: mediatanam, _token: '{{ csrf_token() }}'},function(data){
if (jenis == ''){
$('#modaleditor').modal('hide');
$.post('{{ route("markPeriksa") }}', { id: sampleId, mediatanam: mediatanam, _token: '{{ csrf_token() }}'},function(data){
$('#gridkiriman').DataTable().ajax.reload();
swal({
title: data.status || 'Sukses',
text: data.message || 'Data berhasil diperbarui.',
type: 'success',
}).then(function () {
$('#modaleditor').modal('hide');
});
});
} else {
if (jenis != 'F' && bulan == ''){
$("#err_text").val('Jika Jenis Pengobatan Terduga/Pasien TBC bukan Follow Up, maka Bulan Ke harus diisi');
$("#modalerror").modal('show');
} else {
$.post('{{ route("markPeriksa") }}', { id: 'ubahnomorlab', jenis: jenis, bulan: bulan, sampleId: sampleId, mediatanam: mediatanam, _token: '{{ csrf_token() }}'},function(data){
$('#gridkiriman').DataTable().ajax.reload();
swal({
title: data.status || 'Sukses',
text: data.message || 'Data berhasil diperbarui.',
type: 'success',
}).then(function () {
$('#modaleditor').modal('hide');
});
});
}
}
}
});
$("#btnpencarian").click(function() {
var set01=document.getElementById('valcari').value;