This commit is contained in:
Dwi Swandhana
2026-02-21 06:18:29 +07:00
parent 924610e36e
commit 9b39dfb856
2 changed files with 91 additions and 55 deletions
@@ -64,6 +64,7 @@ class GudangController extends Controller
$tasks['stat_perjenis_bulanan'] = $this->getUsagePerJenis('bulanan');
$tasks['stat_perjenis_tahunan'] = $this->getUsagePerJenis('tahunan');
$tasks['warningstok'] = $this->getLowStockWarnings();
$tasks['jenisRows'] = $this->getJenisRows();
return view('admin.gudang', $tasks);
}
}
@@ -654,4 +655,27 @@ class GudangController extends Controller
return array_values($grouped);
}
private function getJenisRows()
{
$rows = [];
$items = SIMBHPJenis::orderBy('jenis', 'ASC')->get();
foreach ($items as $item) {
$saldoBase = $this->getStockBaseByJenis($item->jenis);
$konversi = (int) ($item->konversi_kecil ?? 1);
if ($konversi <= 0) { $konversi = 1; }
$rows[] = [
'id' => $item->id,
'jenis' => $item->jenis,
'satuan' => $item->satuan,
'satuan_kecil' => $item->satuan_kecil ?? '',
'konversi_kecil' => $konversi,
'stok_minimum' => (int) ($item->stok_minimum ?? 0),
'saldo' => $this->formatStockDisplay($saldoBase, $item->satuan, $item->satuan_kecil ?? '', $konversi),
'warning' => ($saldoBase <= (int) ($item->stok_minimum ?? 0)) ? 'YA' : 'TIDAK',
];
}
return $rows;
}
}
+67 -55
View File
@@ -125,12 +125,50 @@
<i class="fa fa-database"></i> Tambah Jenis
</a>
</div>
<div class="form-group">
<div id="gridjenis"></div>
</div>
</div>
</div>
</div>
<div class="form-group">
<div class="table-responsive">
<table id="gridjenisTable" class="table table-bordered table-striped">
<thead>
<tr>
<th>Jenis</th>
<th>Satuan</th>
<th>Satuan Kecil</th>
<th>Konversi</th>
<th>Stok Min</th>
<th>Sisa</th>
<th>Warning</th>
<th>Edit</th>
</tr>
</thead>
<tbody>
@foreach(($jenisRows ?? []) as $row)
<tr>
<td>{{ $row['jenis'] }}</td>
<td>{{ $row['satuan'] }}</td>
<td>{{ $row['satuan_kecil'] }}</td>
<td class="text-right">{{ number_format($row['konversi_kecil'], 0, '.', ',') }}</td>
<td class="text-right">{{ number_format($row['stok_minimum'], 0, '.', ',') }}</td>
<td>{{ $row['saldo'] }}</td>
<td class="text-center">{{ $row['warning'] }}</td>
<td class="text-center">
<button type="button"
class="btn btn-sm btn-warning btneditjenis"
data-id="{{ $row['id'] }}"
data-jenis="{{ $row['jenis'] }}"
data-satuan="{{ $row['satuan'] }}"
data-satuan-kecil="{{ $row['satuan_kecil'] }}"
data-konversi-kecil="{{ $row['konversi_kecil'] }}"
data-stok-minimum="{{ $row['stok_minimum'] }}">Edit</button>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tab-pane" id="tab_statistik">
<div class="row">
@@ -495,11 +533,29 @@ $(document).ready(function() {
$('#out_pos').on('change', function(){ syncOutSatuanMode(); });
syncOutSatuanMode();
$("#topbtntambahjenis").click(function(){ $("#modaltambahjenisbrg").modal('show'); $("#jenis_idne").val('new'); });
$("#topbtntambahjenis").click(function(){
$("#jenis_idne").val('new');
$("#jenis_deskripsi").val('');
$("#jenis_satuan").val('');
$("#jenis_satuan_kecil").val('');
$("#jenis_konversi_kecil").val('1');
$("#jenis_stok_minimum").val('0');
$("#modaltambahjenisbrg").modal('show');
});
$("#topbtnpemasukan").click(function(){ $("#modalpemasukan").modal('show'); });
$("#topbtnpengeluaran").click(function(){ $("#modalpengeluaran").modal('show'); });
$("#topbtnwarning").click(function(e){ e.preventDefault(); $('a[href="#tab_warning"]').tab('show'); });
$("#topbtnhapus").click(function(){ $("#modaleditor").modal('show'); $("#edit_id").val('delete'); });
$(document).on('click', '.btneditjenis', function(){
$("#jenis_idne").val($(this).data('id'));
$("#jenis_deskripsi").val($(this).data('jenis'));
$("#jenis_satuan").val($(this).data('satuan'));
$("#jenis_satuan_kecil").val($(this).data('satuan-kecil'));
$("#jenis_konversi_kecil").val($(this).data('konversi-kecil'));
$("#jenis_stok_minimum").val($(this).data('stok-minimum'));
$("#modaltambahjenisbrg").modal('show');
});
$('#gridjenisTable').DataTable();
$("#btnsimpanjenis").click(function(){
var val01=document.getElementById('jenis_idne').value;
@@ -559,10 +615,7 @@ $(document).ready(function() {
stack: 1
});
openedpage();
$("#gridjenis").jqxGrid('updatebounddata', 'filter');
$("#gridjenis").on('bindingcomplete', function (event) {
$("#gridjenis").jqxGrid('sortby', 'tlsjenis', 'asc');
});
setTimeout(function(){ location.reload(); }, 1000);
return false;
});
});
@@ -593,10 +646,7 @@ $(document).ready(function() {
stack: 1
});
openedpage();
$("#gridjenis").jqxGrid('updatebounddata', 'filter');
$("#gridjenis").on('bindingcomplete', function (event) {
$("#gridjenis").jqxGrid('sortby', 'tlsjenis', 'asc');
});
setTimeout(function(){ location.reload(); }, 1000);
return false;
});
});
@@ -627,10 +677,7 @@ $(document).ready(function() {
stack: 1
});
openedpage();
$("#gridjenis").jqxGrid('updatebounddata', 'filter');
$("#gridjenis").on('bindingcomplete', function (event) {
$("#gridjenis").jqxGrid('sortby', 'tlsjenis', 'asc');
});
setTimeout(function(){ location.reload(); }, 1000);
return false;
});
});
@@ -661,10 +708,7 @@ $(document).ready(function() {
stack: 1
});
openedpage();
$("#gridjenis").jqxGrid('updatebounddata', 'filter');
$("#gridjenis").on('bindingcomplete', function (event) {
$("#gridjenis").jqxGrid('sortby', 'tlsjenis', 'asc');
});
setTimeout(function(){ location.reload(); }, 1000);
return false;
});
});
@@ -673,38 +717,6 @@ $(document).ready(function() {
});
$("#in_total").autoNumeric( 'init', {aSep: ',', mDec: '0', vMax: '99999999999999999999999999'} );
$("#out_total").autoNumeric( 'init', {aSep: ',', mDec: '0', vMax: '99999999999999999999999999'} );
var sourcerekap = {
datatype: "json",
datafields: [
{ name: 'id',type: 'text'},
{ name: 'tlsjenis',type: 'text'},
{ name: 'jenis',type: 'text'},
{ name: 'saldo',type: 'text'},
{ name: 'satuan',type: 'text'},
{ name: 'warning',type: 'text'},
],
url: 'simbhp/rekapbhp',
cache: false,
};
var datasaldo = new $.jqx.dataAdapter(sourcerekap);
$("#gridjenis").jqxGrid({
width : '100%',
columnsresize : true,
pageable : false,
sortable : true,
autoheight : true,
theme : "energyblue",
source : datasaldo,
columns : [
{ text: 'Jenis', datafield: 'tlsjenis', width: '45%', cellsalign: 'left', align: 'center' },
{ text: 'Satuan', datafield: 'satuan', width: '20%', cellsalign: 'center', align: 'center' },
{ text: 'Sisa', datafield: 'saldo', width: '25%', cellsalign: 'right', align: 'center' },
{ text: 'Warning', datafield: 'warning', width: '10%', cellsalign: 'center', align: 'center' },
],
});
$("#gridjenis").on('bindingcomplete', function (event) {
$("#gridjenis").jqxGrid('sortby', 'tlsjenis', 'asc');
});
$('#export').click(function(){
var gridContent = $("#gridreportblnini").jqxGrid('exportdata', 'json');
data = $.parseJSON(gridContent);