update
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user