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
@@ -163,27 +163,22 @@ class GudangController extends Controller
}
public function jsonReportbhp(Request $request) {
$bulan = $request->input('val01');
$tahun = $request->input('val02');
$mulai = $request->input('val01');
$akhir = $request->input('val02');
$hasil = [];
if ($tahun == 'ALL'){
$bulan = date("m");
$tahun = date("Y");
$getdata = SIMBHPReport::where('bulan', $bulan)->where('tahun', $tahun)->orderBy('id', 'DESC')->get();
if ($mulai == $akhir OR $akhir == '' OR $akhir == null){
$getdata = SIMBHPReport::whereDate('created_at', $mulai)->orderBy('id', 'DESC')->get();
} else {
if ($bulan == 'ALL'){
$getdata = SIMBHPReport::where('tahun', $tahun)->orderBy('id', 'DESC')->get();
} else {
$getdata = SIMBHPReport::where('bulan', $bulan)->where('tahun', $tahun)->orderBy('id', 'DESC')->get();
}
$getdata = SIMBHPReport::whereBetween('created_at', [$mulai, $akhir])->orderBy('id', 'DESC')->get();
}
foreach($getdata as $rdata){
$dd = $rdata->tanggal;
$mm = $rdata->bulan;
$yy = $rdata->tahun;
$pengeluaran = $rdata->pengeluaran;
$pemasukan = $rdata->pemasukan;
$deskripsiGabungan = trim((string) ($rdata->deskripsi ?? ''));
$dd = $rdata->tanggal;
$mm = $rdata->bulan;
$yy = $rdata->tahun;
$pengeluaran = $rdata->pengeluaran;
$pemasukan = $rdata->pemasukan;
$deskripsiGabungan = trim((string) ($rdata->deskripsi ?? ''));
$keteranganGabungan = trim((string) ($rdata->keterangan ?? ''));
if ($keteranganGabungan !== '') {
$deskripsiGabungan = $deskripsiGabungan !== ''
@@ -199,18 +194,18 @@ class GudangController extends Controller
else { $total = $pengeluaran; }
$hasil[] = array(
'id' => $rdata->id,
'tanggal' => $rdata->tanggal,
'bulan' => $rdata->bulan,
'tahun' => $rdata->tahun,
'deskripsi' => $deskripsiGabungan,
'pemasukan' => number_format( $pemasukan , 0 , '.' , ',' ),
'pengeluaran' => number_format( $pengeluaran , 0 , '.' , ',' ),
'jenis' => $rdata->jenis,
'masa_expired' => $rdata->masa_expired,
'keterangan' => $rdata->keterangan,
'tgllengkap' => $tgllengkap,
'total' => $total,
'id' => $rdata->id,
'tanggal' => $rdata->tanggal,
'bulan' => $rdata->bulan,
'tahun' => $rdata->tahun,
'deskripsi' => $deskripsiGabungan,
'pemasukan' => number_format( $pemasukan , 0 , '.' , ',' ),
'pengeluaran' => number_format( $pengeluaran , 0 , '.' , ',' ),
'jenis' => $rdata->jenis,
'masa_expired' => $rdata->masa_expired,
'keterangan' => $rdata->keterangan,
'tgllengkap' => $tgllengkap,
'total' => $total,
);
}
echo json_encode($hasil);
+159 -114
View File
@@ -254,11 +254,11 @@
<p class="m-b-0"></p>
<div class="form-group">
<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 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 class="col-lg-2">
<button class="btn btn-warning btn-flat" type="button" id="btnviewdata">View Report</button>
@@ -756,16 +756,18 @@
$(function () {
$("#in_tanggal").datepicker({format: 'yyyy-mm-dd'});
$("#out_tanggal").datepicker({format: 'yyyy-mm-dd'});
$("#edit_tanggal").datepicker({format: 'yyyy-mm-dd'});
$("#op_in_tanggal").datepicker({format: 'yyyy-mm-dd'});
$("#op_adj_tanggal").datepicker({format: 'yyyy-mm-dd'});
$("#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_tanggal").datepicker({format: 'yyyy-mm-dd'});
$("#op_in_tanggal").datepicker({format: 'yyyy-mm-dd'});
$("#op_adj_tanggal").datepicker({format: 'yyyy-mm-dd'});
$("#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'});
$("#mulai").datepicker({format: 'yyyy-mm-dd'});
$("#akhir").datepicker({format: 'yyyy-mm-dd'});
});
function openedpage( jQuery ){
var set01=document.getElementById('cekbln').value;
var set02=document.getElementById('cekthn').value;
var set01=document.getElementById('mulai').value;
var set02=document.getElementById('akhir').value;
var token=document.getElementById('token').value;
var source = {
datatype: "json",
@@ -1753,115 +1755,115 @@
return normalizeKode(selected.data('kodejenis') || '');
}
$('#op_in_scan').on('keypress', function(e){
if(e.which === 13){
e.preventDefault();
var scanVal = $(this).val();
var ok = setSelectByKode('#op_in_pos', scanVal);
$(this).val('');
if(ok){
if(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 });
$('#op_in_scan').on('keypress', function(e){
if(e.which === 13){
e.preventDefault();
var scanVal = $(this).val();
var ok = setSelectByKode('#op_in_pos', scanVal);
$(this).val('');
if(ok){
if(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 });
}
});
}
});
$('#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 });
$('#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(){
var jenisSelect = $('#op_in_pos').val();
var jenis = jenisSelect;
var kode = '';
var isNew = false;
var satuanBesarNew = '';
var satuanKecilNew = '';
var konversiNew = 1;
var stokMinNew = 0;
$('#btn_op_in_addline').on('click', function(){
var jenisSelect = $('#op_in_pos').val();
var jenis = jenisSelect;
var kode = '';
var isNew = false;
var satuanBesarNew = '';
var satuanKecilNew = '';
var konversiNew = 1;
var stokMinNew = 0;
if(jenisSelect === '__NEW__'){
isNew = true;
jenis = ($('#op_in_new_jenis').val() || '').toString().trim();
kode = normalizeKode($('#op_in_kode_barang').val());
satuanBesarNew = ($('#op_in_new_satuan').val() || '').toString().trim();
satuanKecilNew = ($('#op_in_new_satuan_kecil').val() || '').toString().trim();
konversiNew = parseInt($('#op_in_new_konversi').val() || 1, 10);
stokMinNew = parseInt($('#op_in_new_stok_minimum').val() || 0, 10);
} else {
kode = getSelectedKode('#op_in_pos');
if(jenisSelect === '__NEW__'){
isNew = true;
jenis = ($('#op_in_new_jenis').val() || '').toString().trim();
kode = normalizeKode($('#op_in_kode_barang').val());
satuanBesarNew = ($('#op_in_new_satuan').val() || '').toString().trim();
satuanKecilNew = ($('#op_in_new_satuan_kecil').val() || '').toString().trim();
konversiNew = parseInt($('#op_in_new_konversi').val() || 1, 10);
stokMinNew = parseInt($('#op_in_new_stok_minimum').val() || 0, 10);
} else {
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;
}
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 });
if(!satuanBesarNew){
$.toast({ heading: 'Gagal', text: 'Satuan besar barang baru wajib diisi', position: 'top-right', loaderBg: '#bf441d', icon: 'error', hideAfter: 3500, 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){
$.toast({ heading: 'Gagal', text: 'Satuan besar barang baru wajib diisi', position: 'top-right', loaderBg: '#bf441d', icon: 'error', hideAfter: 3500, stack: 1 });
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;
}
}
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 jenisId = null;
if(!isNew){
var selected = $('#op_in_pos option:selected');
jenisId = parseInt(selected.data('jenisid') || 0, 10);
barcodeValue = buildBarcodeValueById(jenisId, satuanTransaksi);
}
opInLines.push({
jenis_id: jenisId,
kode: kode,
barcode_value: barcodeValue,
jenis: jenis,
qty: qty,
satuan_transaksi: satuanTransaksi,
masa_expired: expired,
is_new: isNew,
new_satuan: satuanBesarNew,
new_satuan_kecil: satuanKecilNew,
new_konversi: konversiNew,
new_stok_minimum: stokMinNew
});
$('#op_in_total').val('');
$('#op_in_masa_expired').val('');
renderOpInLines();
var barcodeValue = '';
var jenisId = null;
if(!isNew){
var selected = $('#op_in_pos option:selected');
jenisId = parseInt(selected.data('jenisid') || 0, 10);
barcodeValue = buildBarcodeValueById(jenisId, satuanTransaksi);
}
opInLines.push({
jenis_id: jenisId,
kode: kode,
barcode_value: barcodeValue,
jenis: jenis,
qty: qty,
satuan_transaksi: satuanTransaksi,
masa_expired: expired,
is_new: isNew,
new_satuan: satuanBesarNew,
new_satuan_kecil: satuanKecilNew,
new_konversi: konversiNew,
new_stok_minimum: stokMinNew
});
$('#op_in_total').val('');
$('#op_in_masa_expired').val('');
renderOpInLines();
});
$(document).on('click', '.btn_op_in_remove', function(){
var idx = parseInt($(this).data('index'), 10);
@@ -2082,11 +2084,54 @@
renderOpInLines();
renderOpAdjLines();
$('#btnexportreport').click(function(){
var bln = $('#cekbln').val();
var thn = $('#cekthn').val();
var url = "{{ route('reportBHPExport') }}" + "?bulan=" + encodeURIComponent(bln) + "&tahun=" + encodeURIComponent(thn);
window.open(url, '_blank');
return false;
var gridContent = $("#gridreportblnini").jqxGrid('exportdata', 'json');
data = $.parseJSON(gridContent);
var noOfContacts = data.length;
if(noOfContacts>0){
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>