update
This commit is contained in:
Vendored
BIN
Binary file not shown.
@@ -1981,10 +1981,25 @@ class DokterController extends Controller
|
|||||||
'marking' => '',
|
'marking' => '',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
Periksa::where('id', $idperiksa)->update([
|
if ($status == 'Proses identifikasi dan uji kepekaan vitek'){
|
||||||
'status' => $request->input('komponen') ?? ''.' '.$request->input('status') ?? '',
|
$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) {
|
} catch (Exception $e) {
|
||||||
$pesan = $e->getMessage();
|
$pesan = $e->getMessage();
|
||||||
Log::error('Gagal Input Pertumbuhan Koloni', [
|
Log::error('Gagal Input Pertumbuhan Koloni', [
|
||||||
@@ -2016,10 +2031,9 @@ class DokterController extends Controller
|
|||||||
return back();
|
return back();
|
||||||
}
|
}
|
||||||
} else if ($worklist == 'copydatabaptocap'){
|
} else if ($worklist == 'copydatabaptocap'){
|
||||||
$getdataawal = Periksa::where('nofoto', $nofoto)->first();
|
$idtabel = $request->input('id');
|
||||||
$id = $getdataawal->id ?? $nofoto;
|
|
||||||
try {
|
try {
|
||||||
$ceksek = DB::table('pertumkolomni')->where('orderid', $id)->first();
|
$ceksek = DB::table('pertumkolomni')->where('id', $idtabel)->first();
|
||||||
DB::table('pertumkolomni')->insert([
|
DB::table('pertumkolomni')->insert([
|
||||||
'orderid' => $ceksek->orderid ?? $id,
|
'orderid' => $ceksek->orderid ?? $id,
|
||||||
'tglpenyimpanan' => date('Y-m-d'),
|
'tglpenyimpanan' => date('Y-m-d'),
|
||||||
|
|||||||
@@ -183,6 +183,13 @@ class GudangController extends Controller
|
|||||||
$yy = $rdata->tahun;
|
$yy = $rdata->tahun;
|
||||||
$pengeluaran = $rdata->pengeluaran;
|
$pengeluaran = $rdata->pengeluaran;
|
||||||
$pemasukan = $rdata->pemasukan;
|
$pemasukan = $rdata->pemasukan;
|
||||||
|
$deskripsiGabungan = trim((string) ($rdata->deskripsi ?? ''));
|
||||||
|
$keteranganGabungan = trim((string) ($rdata->keterangan ?? ''));
|
||||||
|
if ($keteranganGabungan !== '') {
|
||||||
|
$deskripsiGabungan = $deskripsiGabungan !== ''
|
||||||
|
? $deskripsiGabungan.' | '.$keteranganGabungan
|
||||||
|
: $keteranganGabungan;
|
||||||
|
}
|
||||||
if ($mm < 10){
|
if ($mm < 10){
|
||||||
$tgllengkap = $dd.'-0'.$mm.'-'.$yy;
|
$tgllengkap = $dd.'-0'.$mm.'-'.$yy;
|
||||||
} else {
|
} else {
|
||||||
@@ -196,7 +203,7 @@ class GudangController extends Controller
|
|||||||
'tanggal' => $rdata->tanggal,
|
'tanggal' => $rdata->tanggal,
|
||||||
'bulan' => $rdata->bulan,
|
'bulan' => $rdata->bulan,
|
||||||
'tahun' => $rdata->tahun,
|
'tahun' => $rdata->tahun,
|
||||||
'deskripsi' => $rdata->deskripsi,
|
'deskripsi' => $deskripsiGabungan,
|
||||||
'pemasukan' => number_format( $pemasukan , 0 , '.' , ',' ),
|
'pemasukan' => number_format( $pemasukan , 0 , '.' , ',' ),
|
||||||
'pengeluaran' => number_format( $pengeluaran , 0 , '.' , ',' ),
|
'pengeluaran' => number_format( $pengeluaran , 0 , '.' , ',' ),
|
||||||
'jenis' => $rdata->jenis,
|
'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'){
|
} else if ($jenis == 'editor'){
|
||||||
if ($alasan == ''){
|
if ($alasan == ''){
|
||||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Alasan Perubahan Data Wajib Di Isi!!!']);
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Alasan Perubahan Data Wajib Di Isi!!!']);
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ class GudangPos extends Component
|
|||||||
public string $selectedKode = '';
|
public string $selectedKode = '';
|
||||||
public string $satuanTransaksi = 'besar';
|
public string $satuanTransaksi = 'besar';
|
||||||
public int $qty = 1;
|
public int $qty = 1;
|
||||||
|
public string $keterangan = '';
|
||||||
|
|
||||||
public string $search = '';
|
public string $search = '';
|
||||||
|
|
||||||
@@ -70,6 +71,7 @@ class GudangPos extends Component
|
|||||||
|
|
||||||
$this->selectedKode = (string) ($jenis->kodejenis ?? '');
|
$this->selectedKode = (string) ($jenis->kodejenis ?? '');
|
||||||
$this->qty = 1;
|
$this->qty = 1;
|
||||||
|
$this->keterangan = '';
|
||||||
$this->satuanTransaksi = (string) ($parsed['satuan_transaksi'] ?? 'besar');
|
$this->satuanTransaksi = (string) ($parsed['satuan_transaksi'] ?? 'besar');
|
||||||
$this->syncSatuanAvailability();
|
$this->syncSatuanAvailability();
|
||||||
$this->dispatch('gudangpos-open-modal');
|
$this->dispatch('gudangpos-open-modal');
|
||||||
@@ -95,6 +97,7 @@ class GudangPos extends Component
|
|||||||
|
|
||||||
$this->selectedKode = (string) ($jenis->kodejenis ?? '');
|
$this->selectedKode = (string) ($jenis->kodejenis ?? '');
|
||||||
$this->qty = 1;
|
$this->qty = 1;
|
||||||
|
$this->keterangan = '';
|
||||||
$this->syncSatuanAvailability();
|
$this->syncSatuanAvailability();
|
||||||
$this->dispatch('gudangpos-open-modal');
|
$this->dispatch('gudangpos-open-modal');
|
||||||
}
|
}
|
||||||
@@ -122,6 +125,7 @@ class GudangPos extends Component
|
|||||||
}
|
}
|
||||||
|
|
||||||
$qty = (int) $this->qty;
|
$qty = (int) $this->qty;
|
||||||
|
$keterangan = trim((string) $this->keterangan);
|
||||||
if ($qty <= 0) {
|
if ($qty <= 0) {
|
||||||
$this->toast('error', 'Jumlah harus lebih dari 0.');
|
$this->toast('error', 'Jumlah harus lebih dari 0.');
|
||||||
return;
|
return;
|
||||||
@@ -135,7 +139,11 @@ class GudangPos extends Component
|
|||||||
|
|
||||||
$found = false;
|
$found = false;
|
||||||
foreach ($this->cart as $i => $line) {
|
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;
|
$this->cart[$i]['qty'] = ((int) ($this->cart[$i]['qty'] ?? 0)) + $qty;
|
||||||
$found = true;
|
$found = true;
|
||||||
break;
|
break;
|
||||||
@@ -148,10 +156,12 @@ class GudangPos extends Component
|
|||||||
'jenis' => (string) ($jenis->jenis ?? ''),
|
'jenis' => (string) ($jenis->jenis ?? ''),
|
||||||
'qty' => $qty,
|
'qty' => $qty,
|
||||||
'satuan_transaksi' => $this->satuanTransaksi,
|
'satuan_transaksi' => $this->satuanTransaksi,
|
||||||
|
'keterangan' => $keterangan,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->qty = 1;
|
$this->qty = 1;
|
||||||
|
$this->keterangan = '';
|
||||||
$this->dispatch('gudangpos-close-modal');
|
$this->dispatch('gudangpos-close-modal');
|
||||||
$this->dispatch('gudangpos-focus', field: 'scan');
|
$this->dispatch('gudangpos-focus', field: 'scan');
|
||||||
}
|
}
|
||||||
@@ -204,6 +214,7 @@ class GudangPos extends Component
|
|||||||
$kode = $service->sanitizeKode((string) ($line['kode'] ?? ''));
|
$kode = $service->sanitizeKode((string) ($line['kode'] ?? ''));
|
||||||
$qty = (int) ($line['qty'] ?? 0);
|
$qty = (int) ($line['qty'] ?? 0);
|
||||||
$satuan = (string) ($line['satuan_transaksi'] ?? 'besar');
|
$satuan = (string) ($line['satuan_transaksi'] ?? 'besar');
|
||||||
|
$keterangan = trim((string) ($line['keterangan'] ?? ''));
|
||||||
if ($kode === '' || $qty <= 0) {
|
if ($kode === '' || $qty <= 0) {
|
||||||
$this->toast('error', 'Ada item keranjang yang tidak valid.');
|
$this->toast('error', 'Ada item keranjang yang tidak valid.');
|
||||||
return;
|
return;
|
||||||
@@ -241,6 +252,7 @@ class GudangPos extends Component
|
|||||||
'qty' => $qty,
|
'qty' => $qty,
|
||||||
'qty_base' => $qtyBase,
|
'qty_base' => $qtyBase,
|
||||||
'satuan_transaksi' => $satuan,
|
'satuan_transaksi' => $satuan,
|
||||||
|
'keterangan' => $keterangan,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -259,7 +271,7 @@ class GudangPos extends Component
|
|||||||
'satuan_transaksi' => (string) $row['satuan_transaksi'],
|
'satuan_transaksi' => (string) $row['satuan_transaksi'],
|
||||||
'masa_expired' => null,
|
'masa_expired' => null,
|
||||||
'jenis' => (string) ($jenis->jenis ?? ''),
|
'jenis' => (string) ($jenis->jenis ?? ''),
|
||||||
'keterangan' => '',
|
'keterangan' => (string) ($row['keterangan'] ?? ''),
|
||||||
'marking' => '',
|
'marking' => '',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
@@ -267,6 +279,7 @@ class GudangPos extends Component
|
|||||||
|
|
||||||
$this->cart = [];
|
$this->cart = [];
|
||||||
$this->qty = 1;
|
$this->qty = 1;
|
||||||
|
$this->keterangan = '';
|
||||||
$this->toast('success', 'Barang keluar berhasil diproses.');
|
$this->toast('success', 'Barang keluar berhasil diproses.');
|
||||||
$this->dispatch('gudang-refresh');
|
$this->dispatch('gudang-refresh');
|
||||||
$this->dispatch('gudangpos-close-modal');
|
$this->dispatch('gudangpos-close-modal');
|
||||||
|
|||||||
@@ -25,6 +25,9 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="#tab_masuk" data-toggle="tab" aria-expanded="false" class="nav-link">Stok Opname (Barang Masuk)</a>
|
<a href="#tab_masuk" data-toggle="tab" aria-expanded="false" class="nav-link">Stok Opname (Barang Masuk)</a>
|
||||||
</li>
|
</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">
|
<li class="nav-item">
|
||||||
<a href="#tab_report" data-toggle="tab" aria-expanded="false" class="nav-link">Statistik / Report</a>
|
<a href="#tab_report" data-toggle="tab" aria-expanded="false" class="nav-link">Statistik / Report</a>
|
||||||
</li>
|
</li>
|
||||||
@@ -155,6 +158,88 @@
|
|||||||
</div>
|
</div>
|
||||||
</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="tab-pane" id="tab_report">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
@@ -675,11 +760,12 @@
|
|||||||
$(function () {
|
$(function () {
|
||||||
$("#in_tanggal").datepicker({format: 'yyyy-mm-dd'});
|
$("#in_tanggal").datepicker({format: 'yyyy-mm-dd'});
|
||||||
$("#out_tanggal").datepicker({format: 'yyyy-mm-dd'});
|
$("#out_tanggal").datepicker({format: 'yyyy-mm-dd'});
|
||||||
$("#edit_tanggal").datepicker({format: 'yyyy-mm-dd'});
|
$("#edit_tanggal").datepicker({format: 'yyyy-mm-dd'});
|
||||||
$("#op_in_tanggal").datepicker({format: 'yyyy-mm-dd'});
|
$("#op_in_tanggal").datepicker({format: 'yyyy-mm-dd'});
|
||||||
$("#in_masa_expired").datepicker({format: 'dd-mm-yyyy'});
|
$("#op_adj_tanggal").datepicker({format: 'yyyy-mm-dd'});
|
||||||
$("#op_in_masa_expired").datepicker({format: 'dd-mm-yyyy'});
|
$("#in_masa_expired").datepicker({format: 'dd-mm-yyyy'});
|
||||||
$("#edit_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 ){
|
function openedpage( jQuery ){
|
||||||
var set01=document.getElementById('cekbln').value;
|
var set01=document.getElementById('cekbln').value;
|
||||||
@@ -797,6 +883,7 @@
|
|||||||
|
|
||||||
var jenisRows = @json($jenisRows ?? []);
|
var jenisRows = @json($jenisRows ?? []);
|
||||||
var opInLines = [];
|
var opInLines = [];
|
||||||
|
var opAdjLines = [];
|
||||||
var currentDetail = null;
|
var currentDetail = null;
|
||||||
|
|
||||||
function escapeHtml(value){
|
function escapeHtml(value){
|
||||||
@@ -1032,6 +1119,15 @@
|
|||||||
}
|
}
|
||||||
syncOpInSelected();
|
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)
|
// Legacy selects (modal lama / editor)
|
||||||
var legacyIds = ['#in_pos', '#out_pos'];
|
var legacyIds = ['#in_pos', '#out_pos'];
|
||||||
legacyIds.forEach(function(sel){
|
legacyIds.forEach(function(sel){
|
||||||
@@ -1226,9 +1322,11 @@
|
|||||||
$('#in_pos').on('change', function(){ syncSatuanMode('#in_pos', '#in_satuan_transaksi'); });
|
$('#in_pos').on('change', function(){ syncSatuanMode('#in_pos', '#in_satuan_transaksi'); });
|
||||||
$('#out_pos').on('change', function(){ syncSatuanMode('#out_pos', '#out_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_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('#in_pos', '#in_satuan_transaksi');
|
||||||
syncSatuanMode('#out_pos', '#out_satuan_transaksi');
|
syncSatuanMode('#out_pos', '#out_satuan_transaksi');
|
||||||
syncSatuanMode('#op_in_pos', '#op_in_satuan_transaksi');
|
syncSatuanMode('#op_in_pos', '#op_in_satuan_transaksi');
|
||||||
|
syncSatuanMode('#op_adj_pos', '#op_adj_satuan_transaksi');
|
||||||
|
|
||||||
function syncOpInSelected(){
|
function syncOpInSelected(){
|
||||||
var val = $('#op_in_pos').val();
|
var val = $('#op_in_pos').val();
|
||||||
@@ -1260,6 +1358,19 @@
|
|||||||
});
|
});
|
||||||
syncOpInSelected();
|
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(){
|
$('#op_in_kode_barang').on('input', function(){
|
||||||
if($('#op_in_pos').val() !== '__NEW__'){ return; }
|
if($('#op_in_pos').val() !== '__NEW__'){ return; }
|
||||||
$(this).val(normalizeKode($(this).val()));
|
$(this).val(normalizeKode($(this).val()));
|
||||||
@@ -1287,6 +1398,13 @@
|
|||||||
$('#op_in_barcode').val(buildBarcodeValueById(jenisId, mode));
|
$('#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(){
|
$("#topbtntambahjenis").click(function(){
|
||||||
$("#jenis_idne").val('new');
|
$("#jenis_idne").val('new');
|
||||||
$("#jenis_deskripsi").val('');
|
$("#jenis_deskripsi").val('');
|
||||||
@@ -1594,6 +1712,7 @@
|
|||||||
$("#in_total").autoNumeric( 'init', {aSep: ',', mDec: '0', vMax: '99999999999999999999999999'} );
|
$("#in_total").autoNumeric( 'init', {aSep: ',', mDec: '0', vMax: '99999999999999999999999999'} );
|
||||||
$("#out_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_in_total").autoNumeric( 'init', {aSep: ',', mDec: '0', vMax: '99999999999999999999999999'} );
|
||||||
|
$("#op_adj_total").autoNumeric( 'init', {aSep: ',', mDec: '0', vMax: '99999999999999999999999999'} );
|
||||||
|
|
||||||
function renderOpInLines(){
|
function renderOpInLines(){
|
||||||
if(!opInLines.length){
|
if(!opInLines.length){
|
||||||
@@ -1614,6 +1733,25 @@
|
|||||||
$('#op_in_lines').html(html);
|
$('#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){
|
function getSelectedKode(selectId){
|
||||||
var selected = $(selectId).find('option:selected');
|
var selected = $(selectId).find('option:selected');
|
||||||
return normalizeKode(selected.data('kodejenis') || '');
|
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(){
|
$('#btn_op_in_addline').on('click', function(){
|
||||||
var jenisSelect = $('#op_in_pos').val();
|
var jenisSelect = $('#op_in_pos').val();
|
||||||
var jenis = jenisSelect;
|
var jenis = jenisSelect;
|
||||||
@@ -1716,6 +1872,38 @@
|
|||||||
if(!isNaN(idx)){ opInLines.splice(idx, 1); renderOpInLines(); }
|
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){
|
function runBatchPost(lines, buildPayload, onDone){
|
||||||
var i = 0;
|
var i = 0;
|
||||||
function next(){
|
function next(){
|
||||||
@@ -1835,7 +2023,68 @@
|
|||||||
next();
|
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();
|
renderOpInLines();
|
||||||
|
renderOpAdjLines();
|
||||||
$('#btnexportreport').click(function(){
|
$('#btnexportreport').click(function(){
|
||||||
var bln = $('#cekbln').val();
|
var bln = $('#cekbln').val();
|
||||||
var thn = $('#cekthn').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="Proses identifikasi manual+ uji kepekaan vitek">Proses identifikasi manual+ uji kepekaan vitek</option>
|
||||||
<option value="Tidak Lanjut Identifikasi">Tidak Lanjut Identifikasi</option>
|
<option value="Tidak Lanjut Identifikasi">Tidak Lanjut Identifikasi</option>
|
||||||
<option value="Menunggu Kultur yang Lain">Menunggu Kultur yang Lain</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>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group" id="id_keteranganmediabap">
|
<div class="form-group">
|
||||||
<textarea id="id_keteranganmediabap" name="id_keteranganmediabap" class="form-control ekspertiseteks" rows="5"></textarea>
|
<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>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
|
|||||||
@@ -2679,10 +2679,13 @@
|
|||||||
<option value="Proses identifikasi malditof+ uji kepekaan manual">Proses identifikasi malditof+ uji kepekaan manual</option>
|
<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="Proses identifikasi manual+ uji kepekaan vitek">Proses identifikasi manual+ uji kepekaan vitek</option>
|
||||||
<option value="Tidak Lanjut Identifikasi">Tidak Lanjut Identifikasi</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>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group" id="id_keteranganmediabap">
|
<div class="form-group">
|
||||||
<textarea id="id_keteranganmediabap" name="id_keteranganmediabap" class="form-control ekspertiseteks" rows="5"></textarea>
|
<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>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
@@ -2711,7 +2714,25 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-lg-6">
|
<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>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@@ -2729,6 +2750,7 @@
|
|||||||
<option value="Tidak Lanjut Identifikasi">Tidak Lanjut Identifikasi</option>
|
<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 Vitek)">PATOGEN (Lanjut Identifikasi Vitek)</option>
|
||||||
<option value="PATOGEN (Lanjut Identifikasi Manual)">PATOGEN (Lanjut Identifikasi Manual)</option>
|
<option value="PATOGEN (Lanjut Identifikasi Manual)">PATOGEN (Lanjut Identifikasi Manual)</option>
|
||||||
|
<option value="Subkultur">Subkultur</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -2758,7 +2780,25 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-lg-6">
|
<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>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@@ -2776,6 +2816,7 @@
|
|||||||
<option value="Tidak Lanjut Identifikasi">Tidak Lanjut Identifikasi</option>
|
<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 Vitek)">PATOGEN (Lanjut Identifikasi Vitek)</option>
|
||||||
<option value="PATOGEN (Lanjut Identifikasi Manual)">PATOGEN (Lanjut Identifikasi Manual)</option>
|
<option value="PATOGEN (Lanjut Identifikasi Manual)">PATOGEN (Lanjut Identifikasi Manual)</option>
|
||||||
|
<option value="Subkultur">Subkultur</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -2805,7 +2846,25 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-lg-6">
|
<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>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@@ -2823,6 +2882,7 @@
|
|||||||
<option value="Tidak Lanjut Identifikasi">Tidak Lanjut Identifikasi</option>
|
<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 Vitek)">PATOGEN (Lanjut Identifikasi Vitek)</option>
|
||||||
<option value="PATOGEN (Lanjut Identifikasi Manual)">PATOGEN (Lanjut Identifikasi Manual)</option>
|
<option value="PATOGEN (Lanjut Identifikasi Manual)">PATOGEN (Lanjut Identifikasi Manual)</option>
|
||||||
|
<option value="Subkultur">Subkultur</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -2852,7 +2912,25 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-lg-6">
|
<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>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@@ -2870,6 +2948,7 @@
|
|||||||
<option value="Tidak Lanjut Identifikasi">Tidak Lanjut Identifikasi</option>
|
<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 Vitek)">PATOGEN (Lanjut Identifikasi Vitek)</option>
|
||||||
<option value="PATOGEN (Lanjut Identifikasi Manual)">PATOGEN (Lanjut Identifikasi Manual)</option>
|
<option value="PATOGEN (Lanjut Identifikasi Manual)">PATOGEN (Lanjut Identifikasi Manual)</option>
|
||||||
|
<option value="Subkultur">Subkultur</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -4262,7 +4341,7 @@
|
|||||||
var offset = $("#gridmediasdar1").offset();
|
var offset = $("#gridmediasdar1").offset();
|
||||||
var dataRecord = $("#gridmediasdar1").jqxGrid('getrowdata', editrowjabatan);
|
var dataRecord = $("#gridmediasdar1").jqxGrid('getrowdata', editrowjabatan);
|
||||||
$('#idpertumbuhankoloni').val(dataRecord.id);
|
$('#idpertumbuhankoloni').val(dataRecord.id);
|
||||||
$('#sdar1_media').val(dataRecord.kuman);
|
$('#sdar1_media').select2('val', dataRecord.kuman).trigger('change');
|
||||||
$('#sdar1_pemeriksaanhemolisa').val(dataRecord.hemolisa);
|
$('#sdar1_pemeriksaanhemolisa').val(dataRecord.hemolisa);
|
||||||
$('#sdar1_mediakuman').val(dataRecord.tindaklanjut);
|
$('#sdar1_mediakuman').val(dataRecord.tindaklanjut);
|
||||||
$('#sdar1_status').val(dataRecord.status);
|
$('#sdar1_status').val(dataRecord.status);
|
||||||
@@ -4310,7 +4389,7 @@
|
|||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
$('#idpertumbuhankoloni').val('new');
|
$('#idpertumbuhankoloni').val('new');
|
||||||
$('#sdar1_media').val(dataRecord.kuman);
|
$('#sdar1_media').select2('val', dataRecord.kuman).trigger('change');
|
||||||
$('#sdar1_mediakuman').val(dataRecord.tindaklanjut);
|
$('#sdar1_mediakuman').val(dataRecord.tindaklanjut);
|
||||||
$('#sdar1_pemeriksaanhemolisa').val(dataRecord.hemolisa);
|
$('#sdar1_pemeriksaanhemolisa').val(dataRecord.hemolisa);
|
||||||
$('#sdar1_status').val(dataRecord.status);
|
$('#sdar1_status').val(dataRecord.status);
|
||||||
@@ -4343,7 +4422,7 @@
|
|||||||
var offset = $("#gridmediasdar2").offset();
|
var offset = $("#gridmediasdar2").offset();
|
||||||
var dataRecord = $("#gridmediasdar2").jqxGrid('getrowdata', editrowjabatan);
|
var dataRecord = $("#gridmediasdar2").jqxGrid('getrowdata', editrowjabatan);
|
||||||
$('#idpertumbuhankoloni').val(dataRecord.id);
|
$('#idpertumbuhankoloni').val(dataRecord.id);
|
||||||
$('#sdar2_media').val(dataRecord.kuman);
|
$('#sdar2_media').select2('val', dataRecord.kuman).trigger('change');
|
||||||
$('#sdar2_pemeriksaanhemolisa').val(dataRecord.hemolisa);
|
$('#sdar2_pemeriksaanhemolisa').val(dataRecord.hemolisa);
|
||||||
$('#sdar2_mediakuman').val(dataRecord.tindaklanjut);
|
$('#sdar2_mediakuman').val(dataRecord.tindaklanjut);
|
||||||
$('#sdar2_status').val(dataRecord.status);
|
$('#sdar2_status').val(dataRecord.status);
|
||||||
@@ -4391,7 +4470,7 @@
|
|||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
$('#idpertumbuhankoloni').val('new');
|
$('#idpertumbuhankoloni').val('new');
|
||||||
$('#sdar2_media').val(dataRecord.kuman);
|
$('#sdar2_media').select2('val', dataRecord.kuman).trigger('change');
|
||||||
$('#sdar2_mediakuman').val(dataRecord.tindaklanjut);
|
$('#sdar2_mediakuman').val(dataRecord.tindaklanjut);
|
||||||
$('#sdar2_pemeriksaanhemolisa').val(dataRecord.hemolisa);
|
$('#sdar2_pemeriksaanhemolisa').val(dataRecord.hemolisa);
|
||||||
$('#sdar2_status').val(dataRecord.status);
|
$('#sdar2_status').val(dataRecord.status);
|
||||||
@@ -4424,7 +4503,7 @@
|
|||||||
var offset = $("#gridmediasdai1").offset();
|
var offset = $("#gridmediasdai1").offset();
|
||||||
var dataRecord = $("#gridmediasdai1").jqxGrid('getrowdata', editrowjabatan);
|
var dataRecord = $("#gridmediasdai1").jqxGrid('getrowdata', editrowjabatan);
|
||||||
$('#idpertumbuhankoloni').val(dataRecord.id);
|
$('#idpertumbuhankoloni').val(dataRecord.id);
|
||||||
$('#sdai1_media').val(dataRecord.kuman);
|
$('#sdai1_media').select2().val(dataRecord.kuman).trigger('change');
|
||||||
$('#sdai1_pemeriksaanhemolisa').val(dataRecord.hemolisa);
|
$('#sdai1_pemeriksaanhemolisa').val(dataRecord.hemolisa);
|
||||||
$('#sdai1_mediakuman').val(dataRecord.tindaklanjut);
|
$('#sdai1_mediakuman').val(dataRecord.tindaklanjut);
|
||||||
$('#sdai1_status').val(dataRecord.status);
|
$('#sdai1_status').val(dataRecord.status);
|
||||||
@@ -4472,7 +4551,7 @@
|
|||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
$('#idpertumbuhankoloni').val('new');
|
$('#idpertumbuhankoloni').val('new');
|
||||||
$('#sdai1_media').val(dataRecord.kuman);
|
$('#sdai1_media').select2('val', dataRecord.kuman).trigger('change');
|
||||||
$('#sdai1_mediakuman').val(dataRecord.tindaklanjut);
|
$('#sdai1_mediakuman').val(dataRecord.tindaklanjut);
|
||||||
$('#sdai1_pemeriksaanhemolisa').val(dataRecord.hemolisa);
|
$('#sdai1_pemeriksaanhemolisa').val(dataRecord.hemolisa);
|
||||||
$('#sdai1_status').val(dataRecord.status);
|
$('#sdai1_status').val(dataRecord.status);
|
||||||
@@ -4505,7 +4584,7 @@
|
|||||||
var offset = $("#gridmediasdai2").offset();
|
var offset = $("#gridmediasdai2").offset();
|
||||||
var dataRecord = $("#gridmediasdai2").jqxGrid('getrowdata', editrowjabatan);
|
var dataRecord = $("#gridmediasdai2").jqxGrid('getrowdata', editrowjabatan);
|
||||||
$('#idpertumbuhankoloni').val(dataRecord.id);
|
$('#idpertumbuhankoloni').val(dataRecord.id);
|
||||||
$('#sdai2_media').val(dataRecord.kuman);
|
$('#sdai2_media').select2('val', dataRecord.kuman).trigger('change');
|
||||||
$('#sdai2_pemeriksaanhemolisa').val(dataRecord.hemolisa);
|
$('#sdai2_pemeriksaanhemolisa').val(dataRecord.hemolisa);
|
||||||
$('#sdai2_mediakuman').val(dataRecord.tindaklanjut);
|
$('#sdai2_mediakuman').val(dataRecord.tindaklanjut);
|
||||||
$('#sdai2_status').val(dataRecord.status);
|
$('#sdai2_status').val(dataRecord.status);
|
||||||
@@ -4553,7 +4632,7 @@
|
|||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
$('#idpertumbuhankoloni').val('new');
|
$('#idpertumbuhankoloni').val('new');
|
||||||
$('#sdai2_media').val(dataRecord.kuman);
|
$('#sdai2_media').select2('val', dataRecord.kuman).trigger('change');
|
||||||
$('#sdai2_mediakuman').val(dataRecord.tindaklanjut);
|
$('#sdai2_mediakuman').val(dataRecord.tindaklanjut);
|
||||||
$('#sdai2_pemeriksaanhemolisa').val(dataRecord.hemolisa);
|
$('#sdai2_pemeriksaanhemolisa').val(dataRecord.hemolisa);
|
||||||
$('#sdai2_status').val(dataRecord.status);
|
$('#sdai2_status').val(dataRecord.status);
|
||||||
@@ -6015,7 +6094,7 @@
|
|||||||
var id = document.getElementById('periksa_id').value;
|
var id = document.getElementById('periksa_id').value;
|
||||||
var idtabel = document.getElementById('idpertumbuhankoloni').value;
|
var idtabel = document.getElementById('idpertumbuhankoloni').value;
|
||||||
var media = 'Media SDA R1';
|
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 hemolisa = document.getElementById('sdar1_pemeriksaanhemolisa').value;
|
||||||
var katalase = '';
|
var katalase = '';
|
||||||
var koagulase = '';
|
var koagulase = '';
|
||||||
@@ -6046,7 +6125,7 @@
|
|||||||
var id = document.getElementById('periksa_id').value;
|
var id = document.getElementById('periksa_id').value;
|
||||||
var idtabel = document.getElementById('idpertumbuhankoloni').value;
|
var idtabel = document.getElementById('idpertumbuhankoloni').value;
|
||||||
var media = 'Media SDA R2';
|
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 hemolisa = document.getElementById('sdar2_pemeriksaanhemolisa').value;
|
||||||
var katalase = '';
|
var katalase = '';
|
||||||
var koagulase = '';
|
var koagulase = '';
|
||||||
@@ -6077,7 +6156,7 @@
|
|||||||
var id = document.getElementById('periksa_id').value;
|
var id = document.getElementById('periksa_id').value;
|
||||||
var idtabel = document.getElementById('idpertumbuhankoloni').value;
|
var idtabel = document.getElementById('idpertumbuhankoloni').value;
|
||||||
var media = 'Media SDA I1';
|
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 hemolisa = document.getElementById('sdai1_pemeriksaanhemolisa').value;
|
||||||
var katalase = '';
|
var katalase = '';
|
||||||
var koagulase = '';
|
var koagulase = '';
|
||||||
@@ -6108,7 +6187,7 @@
|
|||||||
var id = document.getElementById('periksa_id').value;
|
var id = document.getElementById('periksa_id').value;
|
||||||
var idtabel = document.getElementById('idpertumbuhankoloni').value;
|
var idtabel = document.getElementById('idpertumbuhankoloni').value;
|
||||||
var media = 'Media SDA I2';
|
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 hemolisa = document.getElementById('sdai2_pemeriksaanhemolisa').value;
|
||||||
var katalase = '';
|
var katalase = '';
|
||||||
var koagulase = '';
|
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 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="Proses identifikasi manual+ uji kepekaan vitek">Proses identifikasi manual+ uji kepekaan vitek</option>
|
||||||
<option value="Tidak Lanjut Identifikasi">Tidak Lanjut Identifikasi</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>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group" id="id_keteranganmediabap">
|
<div class="form-group">
|
||||||
<textarea id="id_keteranganmediabap" name="id_keteranganmediabap" class="form-control ekspertiseteks" rows="5"></textarea>
|
<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>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
|
|||||||
@@ -101,6 +101,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th style="width: 110px">Kode</th>
|
<th style="width: 110px">Kode</th>
|
||||||
<th>Barang</th>
|
<th>Barang</th>
|
||||||
|
<th>Keterangan</th>
|
||||||
<th style="width: 90px">Qty</th>
|
<th style="width: 90px">Qty</th>
|
||||||
<th style="width: 80px">Sat</th>
|
<th style="width: 80px">Sat</th>
|
||||||
<th style="width: 60px">Aksi</th>
|
<th style="width: 60px">Aksi</th>
|
||||||
@@ -111,6 +112,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="text-center"><code>{{ $line['kode'] }}</code></td>
|
<td class="text-center"><code>{{ $line['kode'] }}</code></td>
|
||||||
<td>{{ $line['jenis'] }}</td>
|
<td>{{ $line['jenis'] }}</td>
|
||||||
|
<td>{{ $line['keterangan'] ?: '-' }}</td>
|
||||||
<td class="text-right">{{ number_format((int) ($line['qty'] ?? 0), 0, '.', ',') }}</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">{{ strtoupper($line['satuan_transaksi'] ?? '-') }}</td>
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
@@ -118,7 +120,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@empty
|
@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
|
@endforelse
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@@ -171,6 +173,10 @@
|
|||||||
<label>Jumlah</label>
|
<label>Jumlah</label>
|
||||||
<input id="gudangpos_qty" type="number" min="1" class="form-control" wire:model.live="qty" wire:keydown.enter.prevent="addSelected">
|
<input id="gudangpos_qty" type="number" min="1" class="form-control" wire:model.live="qty" wire:keydown.enter.prevent="addSelected">
|
||||||
</div>
|
</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>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
|
||||||
|
|||||||
@@ -107,7 +107,7 @@
|
|||||||
<div class="form-group col-lg-12">
|
<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>
|
<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">
|
<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 BAP">Media BAP</option>
|
||||||
<option value="Media CAP">Media CAP</option>
|
<option value="Media CAP">Media CAP</option>
|
||||||
<option value="Media Mc Conkey">Media Mc Conkey</option>
|
<option value="Media Mc Conkey">Media Mc Conkey</option>
|
||||||
@@ -259,29 +259,33 @@
|
|||||||
var bulan = document.getElementById('id_bulan').value;
|
var bulan = document.getElementById('id_bulan').value;
|
||||||
var sampleId = document.getElementById('id_sample_edit').value;
|
var sampleId = document.getElementById('id_sample_edit').value;
|
||||||
var mediatanam = $('#id_mediatanam').val();
|
var mediatanam = $('#id_mediatanam').val();
|
||||||
if (jenis == ''){
|
if (mediatanam == null || mediatanam == '' || mediatanam.length === 0) {
|
||||||
$('#modaleditor').modal('hide');
|
$("#err_text").val('Media Tanam Yang di gunakan Wajib di Pilih');
|
||||||
$.post('{{ route("markPeriksa") }}', { id: sampleId, mediatanam: mediatanam, _token: '{{ csrf_token() }}'},function(data){
|
$("#modalerror").modal('show');
|
||||||
$('#gridkiriman').DataTable().ajax.reload();
|
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
if (jenis != 'F' && bulan == ''){
|
if (jenis == ''){
|
||||||
$("#err_text").val('Jika Jenis Pengobatan Terduga/Pasien TBC bukan Follow Up, maka Bulan Ke harus diisi');
|
$('#modaleditor').modal('hide');
|
||||||
$("#modalerror").modal('show');
|
$.post('{{ route("markPeriksa") }}', { id: sampleId, mediatanam: mediatanam, _token: '{{ csrf_token() }}'},function(data){
|
||||||
} else {
|
|
||||||
$.post('{{ route("markPeriksa") }}', { id: 'ubahnomorlab', jenis: jenis, bulan: bulan, sampleId: sampleId, mediatanam: mediatanam, _token: '{{ csrf_token() }}'},function(data){
|
|
||||||
$('#gridkiriman').DataTable().ajax.reload();
|
$('#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() {
|
$("#btnpencarian").click(function() {
|
||||||
var set01=document.getElementById('valcari').value;
|
var set01=document.getElementById('valcari').value;
|
||||||
|
|||||||
Reference in New Issue
Block a user