14 lines
5.8 KiB
PHP
14 lines
5.8 KiB
PHP
<?php $inventory_title='Daftar Barang Aktif';$inventory_subtitle='Barang yang sudah siap dijual, digunakan, atau dikeluarkan melalui dokumen stok.';$this->load->view('inventory_professional/_module_nav',get_defined_vars());?>
|
||
<section class="inventory-card"><div class="inventory-card-head"><div><h5>Barang Siap Digunakan</h5><p>Barcode dan serial barang aktif tidak dapat diubah. Pengeluaran dibuat melalui Operasional Stok.</p></div><a href="<?=base_url('inventoryprofessional/operations')?>" class="btn btn-primary"><i class="bi bi-arrow-left-right"></i> Operasional Stok</a></div><div class="table-responsive"><table id="tableItems" class="table inventory-table align-middle w-100 mb-0"><thead><tr><th>No</th><th>Tanggal Beli</th><th>Kode</th><th>Barang</th><th>Gudang</th><th>Barcode / Stok</th><th>Harga Beli</th><th>Harga Jual</th><th>Dibuat</th><th>Aksi</th></tr></thead></table></div></section>
|
||
<div class="modal fade inventory-modal" id="itemDetailModal" tabindex="-1"><div class="modal-dialog modal-dialog-centered modal-xl"><div class="modal-content"><div class="modal-header"><div><small class="text-muted">AUDIT BARANG</small><h5 class="modal-title">Detail Barang</h5></div><button class="btn-close" data-bs-dismiss="modal"></button></div><div class="modal-body" id="itemDetailBody"></div><div class="modal-footer"><button class="btn btn-light" data-bs-dismiss="modal">Tutup</button></div></div></div></div>
|
||
<div class="modal fade inventory-modal" id="barcodePrintModal" tabindex="-1"><div class="modal-dialog modal-dialog-centered modal-xl"><div class="modal-content"><div class="modal-header"><h5 class="modal-title">Preview Barcode</h5><button class="btn-close" data-bs-dismiss="modal"></button></div><div class="modal-body p-0" style="height:min(82vh,900px)"><iframe title="Preview Barcode" style="width:100%;height:100%;border:0"></iframe></div></div></div></div>
|
||
<script>
|
||
$(function(){
|
||
const esc=v=>$('<div>').text(v==null?'-':v).html(),money=v=>'Rp '+Number(v||0).toLocaleString('id-ID',{minimumFractionDigits:2,maximumFractionDigits:2});
|
||
const table=$('#tableItems').DataTable({responsive:true,processing:true,serverSide:true,searchDelay:350,ajax:{url:'<?=base_url('items/get_data')?>',data:d=>{d.s='active';d.server=1}},pageLength:25,language:{search:'Cari:',processing:'Memuat data...',lengthMenu:'Tampilkan _MENU_',info:'_START_–_END_ dari _TOTAL_',paginate:{previous:'Sebelumnya',next:'Berikutnya'}}});
|
||
$(document).on('click','.btn-detail',function(){let id=$(this).data('id');$('#itemDetailBody').html('<div class="inventory-loading"><span class="spinner-border spinner-border-sm"></span> Memuat detail…</div>');bootstrap.Modal.getOrCreateInstance('#itemDetailModal').show();$.get('<?=base_url('items/detail')?>/'+id).done(function(r){let rows=(r.logs||[]).map(x=>'<tr><td>'+esc(x.created_at)+'</td><td>'+esc(x.gudang)+'</td><td><span class="status-chip '+(x.tipe==='masuk'?'status-approved':'status-rejected')+'">'+esc(x.tipe)+'</span></td><td class="text-end">'+Number(x.qty||0).toLocaleString('id-ID',{maximumFractionDigits:4})+'</td><td>'+esc(x.keterangan)+'</td><td>'+esc(x.ref_type)+' #'+esc(x.ref_id)+'</td></tr>').join('');$('#itemDetailBody').html('<div class="document-meta"><span>Kode<strong>'+esc(r.item.kode_detail)+'</strong></span><span>Nama Barang<strong>'+esc(r.item.nama_barang)+'</strong></span><span>Stok<strong>'+Number(r.item.stok||0).toLocaleString('id-ID',{maximumFractionDigits:4})+'</strong></span><span>Harga Beli<strong>'+money(r.item.harga_beli)+'</strong></span><span>Harga Jual<strong>'+money(r.item.harga_jual)+'</strong></span><span>Status<strong><span class="status-chip status-approved">AKTIF</span></strong></span></div><div class="d-flex justify-content-between align-items-center mt-4 mb-2"><h6 class="mb-0">Riwayat Stok</h6><button class="btn btn-sm btn-outline-danger stock-pdf" data-id="'+r.item.id+'"><i class="bi bi-file-earmark-pdf"></i> PDF Audit</button></div><div class="table-responsive"><table class="table inventory-table"><thead><tr><th>Tanggal</th><th>Gudang</th><th>Arah</th><th class="text-end">Qty</th><th>Keterangan</th><th>Sumber</th></tr></thead><tbody>'+rows+'</tbody></table></div>')}).fail(()=>AppAlert.toast('Detail barang tidak dapat dimuat.','error'))});
|
||
$(document).on('click','.stock-pdf',function(){$('#barcodePrintModal .modal-title').text('PDF Kartu Stok');$('#barcodePrintModal iframe').attr('src','<?=base_url('items/stock_log_pdf')?>/'+$(this).data('id'));bootstrap.Modal.getOrCreateInstance(document.getElementById('barcodePrintModal')).show()});
|
||
$(document).on('click','.btn-print',function(){let id=$(this).data('id');AppAlert.prompt({title:'Cetak Barcode',html:'<label class="form-label d-block text-start">Status barcode</label><select id="printStatus" class="form-select mb-3"><option value="available">Tersedia / Belum Dijual</option><option value="sold_out">Sudah Terjual / Habis</option><option value="all">Semua Status</option></select><label class="form-label d-block text-start">Jumlah kolom</label><select id="printColumn" class="form-select mb-3"><option value="2">2 Kolom</option><option value="3" selected>3 Kolom</option><option value="4">4 Kolom</option></select><label class="form-label d-block text-start">Salinan per barcode</label><input id="printCopies" type="number" min="1" max="20" value="1" class="form-control">',preConfirm:()=>({status:$('#printStatus').val(),column:$('#printColumn').val(),duplicat:$('#printCopies').val()}),confirmButtonText:'Preview'}).then(r=>{if(!r.isConfirmed)return;let url='<?=base_url('items/print_barcode')?>/'+id+'?column='+r.value.column+'&duplicat='+r.value.duplicat+'&status='+encodeURIComponent(r.value.status);$('#barcodePrintModal .modal-title').text('Preview Barcode');$('#barcodePrintModal iframe').attr('src',url);bootstrap.Modal.getOrCreateInstance(document.getElementById('barcodePrintModal')).show()})});
|
||
});
|
||
</script>
|