This commit is contained in:
Dwi Swandhana
2026-05-07 14:51:25 +07:00
parent cf6fd529b0
commit 362a70fa1a
2 changed files with 183 additions and 143 deletions

No files matched your search

@@ -163,27 +163,22 @@ class GudangController extends Controller
} }
public function jsonReportbhp(Request $request) { public function jsonReportbhp(Request $request) {
$bulan = $request->input('val01'); $mulai = $request->input('val01');
$tahun = $request->input('val02'); $akhir = $request->input('val02');
$hasil = []; $hasil = [];
if ($tahun == 'ALL'){ if ($mulai == $akhir OR $akhir == '' OR $akhir == null){
$bulan = date("m"); $getdata = SIMBHPReport::whereDate('created_at', $mulai)->orderBy('id', 'DESC')->get();
$tahun = date("Y");
$getdata = SIMBHPReport::where('bulan', $bulan)->where('tahun', $tahun)->orderBy('id', 'DESC')->get();
} else { } else {
if ($bulan == 'ALL'){ $getdata = SIMBHPReport::whereBetween('created_at', [$mulai, $akhir])->orderBy('id', 'DESC')->get();
$getdata = SIMBHPReport::where('tahun', $tahun)->orderBy('id', 'DESC')->get();
} else {
$getdata = SIMBHPReport::where('bulan', $bulan)->where('tahun', $tahun)->orderBy('id', 'DESC')->get();
}
} }
foreach($getdata as $rdata){ foreach($getdata as $rdata){
$dd = $rdata->tanggal; $dd = $rdata->tanggal;
$mm = $rdata->bulan; $mm = $rdata->bulan;
$yy = $rdata->tahun; $yy = $rdata->tahun;
$pengeluaran = $rdata->pengeluaran; $pengeluaran = $rdata->pengeluaran;
$pemasukan = $rdata->pemasukan; $pemasukan = $rdata->pemasukan;
$deskripsiGabungan = trim((string) ($rdata->deskripsi ?? '')); $deskripsiGabungan = trim((string) ($rdata->deskripsi ?? ''));
$keteranganGabungan = trim((string) ($rdata->keterangan ?? '')); $keteranganGabungan = trim((string) ($rdata->keterangan ?? ''));
if ($keteranganGabungan !== '') { if ($keteranganGabungan !== '') {
$deskripsiGabungan = $deskripsiGabungan !== '' $deskripsiGabungan = $deskripsiGabungan !== ''
@@ -199,18 +194,18 @@ class GudangController extends Controller
else { $total = $pengeluaran; } else { $total = $pengeluaran; }
$hasil[] = array( $hasil[] = array(
'id' => $rdata->id, 'id' => $rdata->id,
'tanggal' => $rdata->tanggal, 'tanggal' => $rdata->tanggal,
'bulan' => $rdata->bulan, 'bulan' => $rdata->bulan,
'tahun' => $rdata->tahun, 'tahun' => $rdata->tahun,
'deskripsi' => $deskripsiGabungan, '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,
'masa_expired' => $rdata->masa_expired, 'masa_expired' => $rdata->masa_expired,
'keterangan' => $rdata->keterangan, 'keterangan' => $rdata->keterangan,
'tgllengkap' => $tgllengkap, 'tgllengkap' => $tgllengkap,
'total' => $total, 'total' => $total,
); );
} }
echo json_encode($hasil); echo json_encode($hasil);
+159 -114
View File
@@ -254,11 +254,11 @@
<p class="m-b-0"></p> <p class="m-b-0"></p>
<div class="form-group"> <div class="form-group">
<div class="row"> <div class="row">
<div class="col-lg-4"> <div class="form-group col-lg-4">
<input type="text" name="mulai" id="mulai" class="form-control" placeholder="Start Date" data-mask="9999-99-99">
</div> </div>
<div class="col-lg-4"> <div class="form-group col-lg-4">
<input type="text" name="akhir" id="akhir" class="form-control" placeholder="End Date" data-mask="9999-99-99">
</div> </div>
<div class="col-lg-2"> <div class="col-lg-2">
<button class="btn btn-warning btn-flat" type="button" id="btnviewdata">View Report</button> <button class="btn btn-warning btn-flat" type="button" id="btnviewdata">View Report</button>
@@ -756,16 +756,18 @@
$(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'});
$("#op_adj_tanggal").datepicker({format: 'yyyy-mm-dd'}); $("#op_adj_tanggal").datepicker({format: 'yyyy-mm-dd'});
$("#in_masa_expired").datepicker({format: 'dd-mm-yyyy'}); $("#in_masa_expired").datepicker({format: 'dd-mm-yyyy'});
$("#op_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_masa_expired").datepicker({format: 'dd-mm-yyyy'});
$("#mulai").datepicker({format: 'yyyy-mm-dd'});
$("#akhir").datepicker({format: 'yyyy-mm-dd'});
}); });
function openedpage( jQuery ){ function openedpage( jQuery ){
var set01=document.getElementById('cekbln').value; var set01=document.getElementById('mulai').value;
var set02=document.getElementById('cekthn').value; var set02=document.getElementById('akhir').value;
var token=document.getElementById('token').value; var token=document.getElementById('token').value;
var source = { var source = {
datatype: "json", datatype: "json",
@@ -1753,115 +1755,115 @@
return normalizeKode(selected.data('kodejenis') || ''); return normalizeKode(selected.data('kodejenis') || '');
} }
$('#op_in_scan').on('keypress', function(e){ $('#op_in_scan').on('keypress', function(e){
if(e.which === 13){ if(e.which === 13){
e.preventDefault(); e.preventDefault();
var scanVal = $(this).val(); var scanVal = $(this).val();
var ok = setSelectByKode('#op_in_pos', scanVal); var ok = setSelectByKode('#op_in_pos', scanVal);
$(this).val(''); $(this).val('');
if(ok){ if(ok){
if(ok.mode){ if(ok.mode){
$('#op_in_satuan_transaksi').val(ok.mode); $('#op_in_satuan_transaksi').val(ok.mode);
}
syncOpInSelected();
setTimeout(function(){ $('#op_in_total').focus(); }, 100);
}else{
$.toast({ heading: 'Gagal', text: 'Kode barang tidak ditemukan', position: 'top-right', loaderBg: '#bf441d', icon: 'error', hideAfter: 3000, stack: 1 });
} }
syncOpInSelected();
setTimeout(function(){ $('#op_in_total').focus(); }, 100);
}else{
$.toast({ heading: 'Gagal', text: 'Kode barang tidak ditemukan', position: 'top-right', loaderBg: '#bf441d', icon: 'error', hideAfter: 3000, stack: 1 });
} }
}); }
});
$('#op_adj_scan').on('keypress', function(e){ $('#op_adj_scan').on('keypress', function(e){
if(e.which === 13){ if(e.which === 13){
e.preventDefault(); e.preventDefault();
var scanVal = $(this).val(); var scanVal = $(this).val();
var ok = setSelectByKode('#op_adj_pos', scanVal); var ok = setSelectByKode('#op_adj_pos', scanVal);
$(this).val(''); $(this).val('');
if(ok){ if(ok){
if(ok.mode){ if(ok.mode){
$('#op_adj_satuan_transaksi').val(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 });
} }
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;
var kode = ''; var kode = '';
var isNew = false; var isNew = false;
var satuanBesarNew = ''; var satuanBesarNew = '';
var satuanKecilNew = ''; var satuanKecilNew = '';
var konversiNew = 1; var konversiNew = 1;
var stokMinNew = 0; var stokMinNew = 0;
if(jenisSelect === '__NEW__'){ if(jenisSelect === '__NEW__'){
isNew = true; isNew = true;
jenis = ($('#op_in_new_jenis').val() || '').toString().trim(); jenis = ($('#op_in_new_jenis').val() || '').toString().trim();
kode = normalizeKode($('#op_in_kode_barang').val()); kode = normalizeKode($('#op_in_kode_barang').val());
satuanBesarNew = ($('#op_in_new_satuan').val() || '').toString().trim(); satuanBesarNew = ($('#op_in_new_satuan').val() || '').toString().trim();
satuanKecilNew = ($('#op_in_new_satuan_kecil').val() || '').toString().trim(); satuanKecilNew = ($('#op_in_new_satuan_kecil').val() || '').toString().trim();
konversiNew = parseInt($('#op_in_new_konversi').val() || 1, 10); konversiNew = parseInt($('#op_in_new_konversi').val() || 1, 10);
stokMinNew = parseInt($('#op_in_new_stok_minimum').val() || 0, 10); stokMinNew = parseInt($('#op_in_new_stok_minimum').val() || 0, 10);
} else { } else {
kode = getSelectedKode('#op_in_pos'); kode = getSelectedKode('#op_in_pos');
}
var qty = $('#op_in_total').val();
var satuanTransaksi = $('#op_in_satuan_transaksi').val();
var expired = $('#op_in_masa_expired').val();
if(!jenis || !qty){
$.toast({ heading: 'Gagal', text: 'Barang dan jumlah wajib diisi', position: 'top-right', loaderBg: '#bf441d', icon: 'error', hideAfter: 3000, stack: 1 });
return;
}
if(isNew){
if(!kode || kode.length < 2){
$.toast({ heading: 'Gagal', text: 'Kode barang (internal) barang baru wajib (min 2 karakter)', position: 'top-right', loaderBg: '#bf441d', icon: 'error', hideAfter: 3500, stack: 1 });
return;
} }
if(!satuanBesarNew){
var qty = $('#op_in_total').val(); $.toast({ heading: 'Gagal', text: 'Satuan besar barang baru wajib diisi', position: 'top-right', loaderBg: '#bf441d', icon: 'error', hideAfter: 3500, stack: 1 });
var satuanTransaksi = $('#op_in_satuan_transaksi').val();
var expired = $('#op_in_masa_expired').val();
if(!jenis || !qty){
$.toast({ heading: 'Gagal', text: 'Barang dan jumlah wajib diisi', position: 'top-right', loaderBg: '#bf441d', icon: 'error', hideAfter: 3000, stack: 1 });
return; return;
} }
if(isNew){ if(satuanKecilNew !== '' && (!konversiNew || konversiNew <= 1)){
if(!kode || kode.length < 2){ $.toast({ heading: 'Gagal', text: 'Jika memakai satuan kecil, konversi harus > 1', position: 'top-right', loaderBg: '#bf441d', icon: 'error', hideAfter: 3500, stack: 1 });
$.toast({ heading: 'Gagal', text: 'Kode barang (internal) barang baru wajib (min 2 karakter)', position: 'top-right', loaderBg: '#bf441d', icon: 'error', hideAfter: 3500, stack: 1 }); return;
return; }
} if(satuanTransaksi === 'kecil' && satuanKecilNew === ''){
if(!satuanBesarNew){ $.toast({ heading: 'Gagal', text: 'Satuan transaksi kecil dipilih, tapi satuan kecil barang baru belum diisi', position: 'top-right', loaderBg: '#bf441d', icon: 'error', hideAfter: 3500, stack: 1 });
$.toast({ heading: 'Gagal', text: 'Satuan besar barang baru wajib diisi', position: 'top-right', loaderBg: '#bf441d', icon: 'error', hideAfter: 3500, stack: 1 }); return;
return; }
} }
if(satuanKecilNew !== '' && (!konversiNew || konversiNew <= 1)){
$.toast({ heading: 'Gagal', text: 'Jika memakai satuan kecil, konversi harus > 1', position: 'top-right', loaderBg: '#bf441d', icon: 'error', hideAfter: 3500, stack: 1 });
return;
}
if(satuanTransaksi === 'kecil' && satuanKecilNew === ''){
$.toast({ heading: 'Gagal', text: 'Satuan transaksi kecil dipilih, tapi satuan kecil barang baru belum diisi', position: 'top-right', loaderBg: '#bf441d', icon: 'error', hideAfter: 3500, stack: 1 });
return;
}
}
var barcodeValue = ''; var barcodeValue = '';
var jenisId = null; var jenisId = null;
if(!isNew){ if(!isNew){
var selected = $('#op_in_pos option:selected'); var selected = $('#op_in_pos option:selected');
jenisId = parseInt(selected.data('jenisid') || 0, 10); jenisId = parseInt(selected.data('jenisid') || 0, 10);
barcodeValue = buildBarcodeValueById(jenisId, satuanTransaksi); barcodeValue = buildBarcodeValueById(jenisId, satuanTransaksi);
} }
opInLines.push({ opInLines.push({
jenis_id: jenisId, jenis_id: jenisId,
kode: kode, kode: kode,
barcode_value: barcodeValue, barcode_value: barcodeValue,
jenis: jenis, jenis: jenis,
qty: qty, qty: qty,
satuan_transaksi: satuanTransaksi, satuan_transaksi: satuanTransaksi,
masa_expired: expired, masa_expired: expired,
is_new: isNew, is_new: isNew,
new_satuan: satuanBesarNew, new_satuan: satuanBesarNew,
new_satuan_kecil: satuanKecilNew, new_satuan_kecil: satuanKecilNew,
new_konversi: konversiNew, new_konversi: konversiNew,
new_stok_minimum: stokMinNew new_stok_minimum: stokMinNew
});
$('#op_in_total').val('');
$('#op_in_masa_expired').val('');
renderOpInLines();
}); });
$('#op_in_total').val('');
$('#op_in_masa_expired').val('');
renderOpInLines();
});
$(document).on('click', '.btn_op_in_remove', function(){ $(document).on('click', '.btn_op_in_remove', function(){
var idx = parseInt($(this).data('index'), 10); var idx = parseInt($(this).data('index'), 10);
@@ -2082,11 +2084,54 @@
renderOpInLines(); renderOpInLines();
renderOpAdjLines(); renderOpAdjLines();
$('#btnexportreport').click(function(){ $('#btnexportreport').click(function(){
var bln = $('#cekbln').val(); var gridContent = $("#gridreportblnini").jqxGrid('exportdata', 'json');
var thn = $('#cekthn').val(); data = $.parseJSON(gridContent);
var url = "{{ route('reportBHPExport') }}" + "?bulan=" + encodeURIComponent(bln) + "&tahun=" + encodeURIComponent(thn); var noOfContacts = data.length;
window.open(url, '_blank'); if(noOfContacts>0){
return false; var table = document.createElement("table");
table.style.width = '100%';
table.setAttribute('border', '1');
table.setAttribute('cellspacing', '0');
table.setAttribute('cellpadding', '5');
table.setAttribute('id', 'tabelcetak');
table.setAttribute('class', 'text');
var col = [];
for (var i = 0; i < noOfContacts; i++) {
for (var key in data[i]) {
if (col.indexOf(key) === -1) {
col.push(key);
}
}
}
var tHead = document.createElement("thead");
var hRow = document.createElement("tr");
for (var i = 0; i < col.length; i++) {
var th = document.createElement("th");
th.innerHTML = col[i];
hRow.appendChild(th);
}
tHead.appendChild(hRow);
table.appendChild(tHead);
var tBody = document.createElement("tbody");
for (var i = 0; i < noOfContacts; i++) {
var bRow = document.createElement("tr");
for (var j = 0; j < col.length; j++) {
var td = document.createElement("td");
td.setAttribute('style', 'mso-number-format: "\@";');
td.innerHTML = data[i][col[j]];
bRow.appendChild(td);
}
tBody.appendChild(bRow)
}
table.appendChild(tBody);
var divContainer = document.getElementById("tabel_cetak");
divContainer.innerHTML = "";
divContainer.appendChild(table);
}
$("#tabel_cetak").btechco_excelexport({
containerid: "tabel_cetak"
, datatype: $datatype.Table
});
}); });
}); });
</script> </script>