update
This commit is contained in:
@@ -0,0 +1,630 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\XFiles;
|
||||
use App\SIMBHPJenis;
|
||||
use App\SIMBHPReport;
|
||||
use App\User;
|
||||
use Validator;
|
||||
use Session;
|
||||
|
||||
class GudangController extends Controller
|
||||
{
|
||||
public function viewGudangIndex() {
|
||||
if (Session::get('previlage') == ''){
|
||||
return redirect('/login');
|
||||
} else {
|
||||
$tasks = [];
|
||||
$sekarang = date("Y-m-d");
|
||||
$pegawais = User::select('id', 'nama', 'previlage')->orderBy('nama', 'ASC')->get();
|
||||
$cdatane = SIMBHPJenis::all();
|
||||
$cjenis = count($cdatane);
|
||||
if ($cjenis == 0){
|
||||
$tasks['jjenis'][0]['jenis'] = 'Belum Ada Jenis Barang';
|
||||
$tasks['jjenis'][0]['satuan'] = '';
|
||||
$tasks['jjenis'][0]['satuan_kecil'] = '';
|
||||
$tasks['jjenis'][0]['konversi_kecil'] = 1;
|
||||
$tasks['jjenis'][0]['stok_minimum'] = 0;
|
||||
} else {
|
||||
$i = 0;
|
||||
foreach($cdatane as $rdata){
|
||||
$tasks['jjenis'][$i]['jenis'] = $rdata->jenis;
|
||||
$tasks['jjenis'][$i]['satuan'] = $rdata->satuan;
|
||||
$tasks['jjenis'][$i]['satuan_kecil'] = $rdata->satuan_kecil ?? '';
|
||||
$tasks['jjenis'][$i]['konversi_kecil'] = $rdata->konversi_kecil ?? 1;
|
||||
$tasks['jjenis'][$i]['stok_minimum'] = $rdata->stok_minimum ?? 0;
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
$getdebet = SIMBHPReport::select(DB::raw('SUM(pemasukan) as pemasukan'))->groupBy('marking')->first();
|
||||
if (isset($getdebet->pemasukan)){
|
||||
$totpemasukan = $getdebet->pemasukan;
|
||||
} else { $totpemasukan = 0 ;}
|
||||
$getkredit = SIMBHPReport::select(DB::raw('SUM(pengeluaran) as pengeluaran'))->groupBy('marking')->first();
|
||||
if (isset($getkredit->pengeluaran)){
|
||||
$totpepengeluaran = $getkredit->pengeluaran;
|
||||
} else { $totpepengeluaran = 0 ;}
|
||||
|
||||
$tasks['masuk'] = $totpemasukan;
|
||||
$tasks['keluar'] = $totpepengeluaran;
|
||||
$tasks['pegawai'] = $pegawais;
|
||||
$tasks['tahunne'] = date("Y");
|
||||
$tasks['tanggal'] = $sekarang;
|
||||
$tasks['sidebar'] = 'simbhp';
|
||||
$tasks['stat_harian_masuk'] = $this->getAggregateBaseQty('pemasukan', 'harian');
|
||||
$tasks['stat_harian_keluar'] = $this->getAggregateBaseQty('pengeluaran', 'harian');
|
||||
$tasks['stat_bulanan_masuk'] = $this->getAggregateBaseQty('pemasukan', 'bulanan');
|
||||
$tasks['stat_bulanan_keluar'] = $this->getAggregateBaseQty('pengeluaran', 'bulanan');
|
||||
$tasks['stat_tahunan_masuk'] = $this->getAggregateBaseQty('pemasukan', 'tahunan');
|
||||
$tasks['stat_tahunan_keluar'] = $this->getAggregateBaseQty('pengeluaran', 'tahunan');
|
||||
$tasks['stat_perjenis_harian'] = $this->getUsagePerJenis('harian');
|
||||
$tasks['stat_perjenis_bulanan'] = $this->getUsagePerJenis('bulanan');
|
||||
$tasks['stat_perjenis_tahunan'] = $this->getUsagePerJenis('tahunan');
|
||||
$tasks['warningstok'] = $this->getLowStockWarnings();
|
||||
return view('admin.gudang', $tasks);
|
||||
}
|
||||
}
|
||||
|
||||
public function jsonRekapbhp() {
|
||||
$arraysurat = [];
|
||||
$getdata = SIMBHPJenis::all();
|
||||
if (!empty($getdata)){
|
||||
foreach($getdata as $hasil){
|
||||
$jenis = $hasil->kodejenis;
|
||||
$satuan = $hasil->satuan;
|
||||
$satuanKecil = $hasil->satuan_kecil ?? '';
|
||||
$konversi = (int) ($hasil->konversi_kecil ?? 1);
|
||||
if ($konversi <= 0) { $konversi = 1; }
|
||||
$tlsjenis = $hasil->jenis;
|
||||
$saldoBase = $this->getStockBaseByJenis($tlsjenis);
|
||||
$saldoakhir = $this->formatStockDisplay($saldoBase, $satuan, $satuanKecil, $konversi);
|
||||
$isWarning = $saldoBase <= (int) ($hasil->stok_minimum ?? 0);
|
||||
$arraysurat[] = array(
|
||||
'id' => $hasil->id,
|
||||
'satuan' => $satuan,
|
||||
'jenis' => $jenis,
|
||||
'tlsjenis' => $tlsjenis,
|
||||
'saldo' => $saldoakhir,
|
||||
'warning' => $isWarning ? 'YA' : 'TIDAK',
|
||||
);
|
||||
}
|
||||
}
|
||||
echo json_encode($arraysurat);
|
||||
}
|
||||
|
||||
public function jsonReportbhp(Request $request) {
|
||||
$bulan = $request->input('val01');
|
||||
$tahun = $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();
|
||||
} 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();
|
||||
}
|
||||
}
|
||||
foreach($getdata as $rdata){
|
||||
$dd = $rdata->tanggal;
|
||||
$mm = $rdata->bulan;
|
||||
$yy = $rdata->tahun;
|
||||
$pengeluaran = $rdata->pengeluaran;
|
||||
$pemasukan = $rdata->pemasukan;
|
||||
if ($mm < 10){
|
||||
$tgllengkap = $dd.'-0'.$mm.'-'.$yy;
|
||||
} else {
|
||||
$tgllengkap = $dd.'-'.$mm.'-'.$yy;
|
||||
}
|
||||
if ($pengeluaran == '' OR $pengeluaran == 0) {$total = $pemasukan;}
|
||||
else { $total = $pengeluaran; }
|
||||
|
||||
$hasil[] = array(
|
||||
'id' => $rdata->id,
|
||||
'tanggal' => $rdata->tanggal,
|
||||
'bulan' => $rdata->bulan,
|
||||
'tahun' => $rdata->tahun,
|
||||
'deskripsi' => $rdata->deskripsi,
|
||||
'pemasukan' => number_format( $pemasukan , 0 , '.' , ',' ),
|
||||
'pengeluaran' => number_format( $pengeluaran , 0 , '.' , ',' ),
|
||||
'jenis' => $rdata->jenis,
|
||||
'keterangan' => $rdata->keterangan,
|
||||
'tgllengkap' => $tgllengkap,
|
||||
'total' => $total,
|
||||
);
|
||||
}
|
||||
echo json_encode($hasil);
|
||||
}
|
||||
|
||||
public function jsonReportbhpPaginated(Request $request) {
|
||||
$tanggal = $request->input('tanggal');
|
||||
$deskripsi = $request->input('deskripsi');
|
||||
$kategori = $request->input('kategori');
|
||||
$lm = 10;
|
||||
$limit = ($request->input('limit') == null ? $lm : $request->input('limit'));
|
||||
$order = ($request->input('order') == null ? 'id desc' : $request->input('order'));
|
||||
$data = new SIMBHPReport;
|
||||
if ($kategori != null AND $kategori != '') $data = $data->where('jenis', $kategori);
|
||||
if ($tanggal != null AND $tanggal != '') $data = $data->where('created_at', 'LIKE', '%'.$tanggal.'%');
|
||||
if ($deskripsi != null AND $deskripsi != '') $data = $data->where('deskripsi', 'LIKE', '%'.$deskripsi.'%');
|
||||
$data = $data->orderByRaw($order)->paginate($limit);
|
||||
$hasil = [];
|
||||
$totaldata = $data->total();
|
||||
$debet = 0;
|
||||
$kredit = 0;
|
||||
if (!empty($data)){
|
||||
foreach($data as $rdata){
|
||||
$dd = $rdata->tanggal;
|
||||
$mm = $rdata->bulan;
|
||||
$yy = $rdata->tahun;
|
||||
$pengeluaran = $rdata->pengeluaran;
|
||||
$pemasukan = $rdata->pemasukan;
|
||||
$deskripsi = $rdata->deskripsi;
|
||||
$jenis = $rdata->jenis;
|
||||
$debet = $debet + $pemasukan;
|
||||
$kredit = $kredit + $pengeluaran;
|
||||
$cekjenis = SIMBHPJenis::where('kodejenis', $jenis)->first();
|
||||
if (isset($cekjenis->id)){
|
||||
$kodejenis = $cekjenis->kodejenis;
|
||||
$jenis = $cekjenis->jenis;
|
||||
$satuan = $cekjenis->satuan;
|
||||
} else {
|
||||
$kodejenis = $jenis;
|
||||
$jenis = '';
|
||||
$satuan = '';
|
||||
}
|
||||
|
||||
if ($jenis != ''){
|
||||
$deskripsi = '<strong>'.$jenis.'</strong><br />'.$deskripsi;
|
||||
}
|
||||
|
||||
if ($mm < 10){
|
||||
$tgllengkap = $yy.'-0'.$mm.'-'.$dd;
|
||||
} else {
|
||||
$tgllengkap = $yy.'-'.$mm.'-'.$dd;
|
||||
}
|
||||
if ($pengeluaran == '' OR $pengeluaran == 0) {
|
||||
$total = $pemasukan;
|
||||
$jentrans = 'PEMASUKAN';
|
||||
}
|
||||
else {
|
||||
$total = $pengeluaran;
|
||||
$jentrans = 'PENGELUARAN';
|
||||
}
|
||||
|
||||
$hasil[] = array(
|
||||
'id' => $rdata->id,
|
||||
'tanggal' => $rdata->tanggal,
|
||||
'bulan' => $rdata->bulan,
|
||||
'tahun' => $rdata->tahun,
|
||||
'tlsdeskripsi' => $deskripsi,
|
||||
'deskripsi' => $rdata->deskripsi,
|
||||
'pemasukan' => number_format( $pemasukan , 0 , '.' , ',' ),
|
||||
'pengeluaran' => number_format( $pengeluaran , 0 , '.' , ',' ),
|
||||
'jenis' => $kodejenis,
|
||||
'keterangan' => $rdata->keterangan,
|
||||
'tgllengkap' => $tgllengkap,
|
||||
'created_at' => $rdata->created_at,
|
||||
'nominal' => $total.' '.$satuan,
|
||||
'jentrans' => $jentrans,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$response = [
|
||||
'message' => 'List Data',
|
||||
'data' => $hasil,
|
||||
'totaldata' => $totaldata
|
||||
];
|
||||
return response()->json($response, 200);
|
||||
}
|
||||
|
||||
public function exAddbarang(Request $request) {
|
||||
$deskripsi = $request->input('set01');
|
||||
$pos = $request->input('set02');
|
||||
$tanggal = $request->input('set03');
|
||||
$jumlah = $request->input('set04');
|
||||
$jenis = $request->input('set05');
|
||||
$postujuan = $request->input('set06');
|
||||
$alasan = $request->input('set07');
|
||||
$set08 = $request->input('set08');
|
||||
$set09 = $request->input('set09');
|
||||
$set10 = $request->input('set10');
|
||||
$satuanTransaksi = $request->input('set11');
|
||||
if ($tanggal == '' OR is_null($tanggal)){
|
||||
$tanggal = date("d-m-Y");
|
||||
}
|
||||
$total = (int)str_replace(',','',$jumlah);
|
||||
if ($jenis == 'jenis'){ $jumlah = '-';}
|
||||
if ($deskripsi != '' and $pos != '' and $tanggal != '' and $jumlah != '' and $jenis != ''){
|
||||
if ($jenis == 'jenis'){
|
||||
$jenis = $request->input('set02');
|
||||
$satuan = $request->input('set03');
|
||||
$idne = $request->input('set01');
|
||||
$satuanKecil = $set08;
|
||||
$konversiKecil = (int) $set09;
|
||||
if ($konversiKecil <= 0){ $konversiKecil = 1; }
|
||||
$stokMinimum = (int) $set10;
|
||||
if ($stokMinimum < 0){ $stokMinimum = 0; }
|
||||
$kodejenis = preg_replace('/\s+/', '', $jenis);
|
||||
if ($idne == 'new' OR $idne == ''){
|
||||
$ceksudah = SIMBHPJenis::where('kodejenis', $kodejenis)->where('satuan', $satuan)->count();
|
||||
if ($ceksudah != 0){
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => $jenis.' Sudah Ada, Silahkan Masukkan Jenis Barang Lain']);
|
||||
} else {
|
||||
$input = SIMBHPJenis::create([
|
||||
'kodejenis' => $kodejenis,
|
||||
'jenis' => $jenis,
|
||||
'satuan' => $satuan,
|
||||
'satuan_kecil' => $satuanKecil,
|
||||
'konversi_kecil' => $konversiKecil,
|
||||
'stok_minimum' => $stokMinimum,
|
||||
]);
|
||||
if ($input){
|
||||
return response()->json(['status' => 'Success', 'message' => 'Data '.$jenis.' Sukses Ditambahkan']);
|
||||
} else {
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => $jenis.' Gagal di masukkan, silahkan ulangi beberapa saat lagi']);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$ceksudah = SIMBHPJenis::where('id', '!=', $idne)->where('kodejenis', $kodejenis)->where('satuan', $satuan)->count();
|
||||
if ($ceksudah != 0){
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => $jenis.' Sudah Ada, Silahkan Masukkan Jenis Barang Lain']);
|
||||
} else {
|
||||
$input = SIMBHPJenis::where('id', $idne)->update([
|
||||
'kodejenis' => $kodejenis,
|
||||
'jenis' => $jenis,
|
||||
'satuan' => $satuan,
|
||||
'satuan_kecil' => $satuanKecil,
|
||||
'konversi_kecil' => $konversiKecil,
|
||||
'stok_minimum' => $stokMinimum,
|
||||
]);
|
||||
if ($input){
|
||||
return response()->json(['status' => 'Success', 'message' => 'Data '.$jenis.' Sukses Diupdate']);
|
||||
} else {
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => $jenis.' Gagal di masukkan, silahkan ulangi beberapa saat lagi']);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$ahrf = explode("-", $tanggal);
|
||||
$tahun = $ahrf[0];
|
||||
if(isset($ahrf[1])){ $wulan = (int)$ahrf[1]; } else { $wulan = (int)date("m"); }
|
||||
if(isset($ahrf[2])){ $dino = (int)$ahrf[2]; } else { $dino = (int)date("d"); }
|
||||
if ($jenis == 'pemasukan'){
|
||||
$qtyBase = $this->calculateBaseQty($pos, $total, $satuanTransaksi ?: 'besar');
|
||||
$bayar = SIMBHPReport::create([
|
||||
'tanggal' => $dino,
|
||||
'bulan' => $wulan,
|
||||
'tahun' => $tahun,
|
||||
'deskripsi' => $deskripsi,
|
||||
'pemasukan' => $total,
|
||||
'pengeluaran' => null,
|
||||
'qty_base' => $qtyBase,
|
||||
'satuan_transaksi' => $satuanTransaksi ?: 'besar',
|
||||
'jenis' => $pos,
|
||||
'keterangan' => '',
|
||||
'marking' => '',
|
||||
]);
|
||||
} else if ($jenis == 'pengeluaran'){
|
||||
$getnama = User::where('id', $deskripsi)->first();
|
||||
$nama = $getnama->nama ?? 'Unkown';
|
||||
$deskripsi = 'Diterima oleh '.$nama;
|
||||
$qtyBase = $this->calculateBaseQty($pos, $total, $satuanTransaksi ?: 'kecil');
|
||||
$stokSaatIni = $this->getStockBaseByJenis($pos);
|
||||
if ($qtyBase > $stokSaatIni){
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Nominal Melebihi Stok']);
|
||||
} else {
|
||||
$bayar = SIMBHPReport::create([
|
||||
'tanggal' => $dino,
|
||||
'bulan' => $wulan,
|
||||
'tahun' => $tahun,
|
||||
'deskripsi' => $deskripsi,
|
||||
'pemasukan' => null,
|
||||
'pengeluaran' => $total,
|
||||
'qty_base' => $qtyBase,
|
||||
'satuan_transaksi' => $satuanTransaksi ?: 'kecil',
|
||||
'jenis' => $pos,
|
||||
'keterangan' => '',
|
||||
'marking' => '',
|
||||
]);
|
||||
}
|
||||
|
||||
} else if ($jenis == 'editor'){
|
||||
if ($alasan == ''){
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Alasan Perubahan Data Wajib Di Isi!!!']);
|
||||
} else {
|
||||
$getdebet = SIMBHPReport::select(DB::raw('SUM(pemasukan) as pemasukan'))->where('jenis', $pos)->groupBy('jenis')->first();
|
||||
if (isset($getdebet->pemasukan)){ $totpemasukan = $getdebet->pemasukan; } else { $totpemasukan = 0 ;}
|
||||
$getkredit = SIMBHPReport::select(DB::raw('SUM(pengeluaran) as pengeluaran'))->where('jenis', $pos)->groupBy('jenis')->first();
|
||||
if (isset($getkredit->pengeluaran)){ $totpepengeluaran = $getkredit->pengeluaran; } else { $totpepengeluaran = 0 ;}
|
||||
$totpepengeluaran = $totpepengeluaran + $total;
|
||||
|
||||
$rdatalama = SIMBHPReport::where('id', $postujuan)->first();
|
||||
$ldeskripsi = $rdatalama->deskripsi;
|
||||
$lpemasukan = $rdatalama->pemasukan;
|
||||
$lpengeluaran = $rdatalama->pengeluaran;
|
||||
$ljenis = $rdatalama->jenis;
|
||||
$marking = $rdatalama->marking;
|
||||
if ($lpengeluaran == '' OR $lpengeluaran == 0) {
|
||||
$satuanEdit = $rdatalama->satuan_transaksi ?: 'besar';
|
||||
$qtyBaseEdit = $this->calculateBaseQty($pos, $total, $satuanEdit);
|
||||
$ltotal = number_format( $lpemasukan , 0 , '.' , ',' );
|
||||
if ($marking != ''){
|
||||
SIMBHPReport::where('marking', $marking)->whereNotIn('id', [$postujuan])->update([
|
||||
'tanggal' => $dino,
|
||||
'bulan' => $wulan,
|
||||
'tahun' => $tahun,
|
||||
'pengeluaran' => $total,
|
||||
'qty_base' => $qtyBaseEdit,
|
||||
'satuan_transaksi' => $satuanEdit
|
||||
]);
|
||||
}
|
||||
$bayar = SIMBHPReport::where('id', $postujuan)->update([
|
||||
'tanggal' => $dino,
|
||||
'bulan' => $wulan,
|
||||
'tahun' => $tahun,
|
||||
'deskripsi' => $deskripsi,
|
||||
'jenis' => $pos,
|
||||
'pemasukan' => $total,
|
||||
'qty_base' => $qtyBaseEdit,
|
||||
'satuan_transaksi' => $satuanEdit,
|
||||
'keterangan' => $alasan,
|
||||
'updated_at' => date("Y-m-d H:i:s")
|
||||
]);
|
||||
} else {
|
||||
$satuanEdit = $rdatalama->satuan_transaksi ?: 'kecil';
|
||||
$qtyBaseEdit = $this->calculateBaseQty($pos, $total, $satuanEdit);
|
||||
$totpepengeluaran = $totpepengeluaran + $total;
|
||||
if ($totpepengeluaran > $totpemasukan){
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Nominal Melebihi Stok']);
|
||||
} else {
|
||||
$ltotal = number_format( $lpengeluaran , 0 , '.' , ',' );
|
||||
if ($marking != ''){
|
||||
SIMBHPReport::where('marking', $marking)->whereNotIn('id', [$postujuan])->update([
|
||||
'tanggal' => $dino,
|
||||
'bulan' => $wulan,
|
||||
'tahun' => $tahun,
|
||||
'pemasukan' => $total,
|
||||
'qty_base' => $qtyBaseEdit,
|
||||
'satuan_transaksi' => $satuanEdit
|
||||
]);
|
||||
}
|
||||
$bayar = SIMBHPReport::where('id', $postujuan)->update([
|
||||
'tanggal' => $dino,
|
||||
'bulan' => $wulan,
|
||||
'tahun' => $tahun,
|
||||
'deskripsi' => $deskripsi,
|
||||
'jenis' => $pos,
|
||||
'pengeluaran' => $total,
|
||||
'qty_base' => $qtyBaseEdit,
|
||||
'satuan_transaksi' => $satuanEdit,
|
||||
'keterangan' => $alasan,
|
||||
'updated_at' => date("Y-m-d H:i:s")
|
||||
]);
|
||||
}
|
||||
}
|
||||
$baris1 = '<table class="table table-bordered table-striped"><tr><td colspan=2><p align=center><b>Data Lama</b></p></td><td colspan=2><p align=center><b>Data Perubahan</b></p></td></tr>';
|
||||
$baris2 = '<tr><td>Deskripsi</td><td>'.$ldeskripsi.'</td><td><font color=red>Diubah Menjadi</font></td><td>'.$deskripsi.'</td></tr>';
|
||||
$baris3 = '<tr><td>Jenis</td><td>'.$ljenis.'</td><td><font color=red>Diubah Menjadi</font></td><td>'.$pos.'</td></tr>';
|
||||
$baris4 = '<tr><td>Total</td><td>'.$ltotal.'</td><td><font color=red>Diubah Menjadi</font></td><td>'.$jumlah.'</td></tr>';
|
||||
$baris5 = '<tr><td><b>Dengan Alasan</b></td><td colspan=3>'.$alasan.'</td</tr>';
|
||||
$baris6 = '<tr><td><b>Eksekutor</b></td><td colspan=3>'.Session('nama').'</td</tr></table>';
|
||||
$perubahan = $baris1.$baris2.$baris3.$baris4.$baris5.$baris6;
|
||||
Xfiles::create([
|
||||
'xmarking' => 'SIMBHP-'.$postujuan.'-'.time(),
|
||||
'xtabel' => 'History SIMBHP',
|
||||
'xjenis' => '',
|
||||
'xfile' => $perubahan
|
||||
]);
|
||||
}
|
||||
} else {
|
||||
if ($alasan == ''){
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Alasan Perubahan Data Wajib Di Isi!!!']);
|
||||
}
|
||||
else {
|
||||
$rdatalama = SIMBHPReport::where('id', $postujuan)->first();
|
||||
$ldeskripsi = $rdatalama->deskripsi;
|
||||
$lpemasukan = $rdatalama->pemasukan;
|
||||
$lpengeluaran = $rdatalama->pengeluaran;
|
||||
$ljenis = $rdatalama->jenis;
|
||||
$marking = $rdatalama->marking;
|
||||
if ($lpengeluaran == '' or $lpengeluaran == 0) {
|
||||
$ltotal = number_format( $lpemasukan , 0 , '.' , ',' );
|
||||
} else {
|
||||
$ltotal = number_format( $lpengeluaran , 0 , '.' , ',' );
|
||||
}
|
||||
$baris1 = '<table class="table table-bordered table-striped"><tr><td colspan=2><p align=center><b>Data Lama</b></p></td><td colspan=2><p align=center><b>Data Perubahan</b></p></td></tr>';
|
||||
$baris2 = '<tr><td>Deskripsi</td><td>'.$ldeskripsi.'</td><td colspan=2><font color=red>DIHAPUS</font></td></tr>';
|
||||
$baris3 = '<tr><td>Jenis</td><td>'.$ljenis.'</td><td colspan=2><font color=red>DIHAPUS</font></td></tr>';
|
||||
$baris4 = '<tr><td>Total</td><td>'.$ltotal.'</td><td colspan=2><font color=red>DIHAPUS</font></td></tr>';
|
||||
$baris5 = '<tr><td><b>Dengan Alasan</b></td><td colspan=3>'.$alasan.'</td</tr>';
|
||||
$baris6 = '<tr><td><b>Eksekutor</b></td><td colspan=3>'.Session('nama').'</td</tr></table>';
|
||||
$perubahan = $baris1.$baris2.$baris3.$baris4.$baris5.$baris6;
|
||||
|
||||
Xfiles::create([
|
||||
'xmarking' => 'SIMBHP-'.$postujuan.'-'.time(),
|
||||
'xtabel' => 'History SIMBHP',
|
||||
'xjenis' => '',
|
||||
'xfile' => $perubahan
|
||||
]);
|
||||
if ($marking != ''){
|
||||
$bayar = SIMBHPReport::where('marking', $marking)->delete();
|
||||
} else {
|
||||
$bayar = SIMBHPReport::where('id', $postujuan)->delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($bayar){
|
||||
return response()->json(['status' => 'Success', 'message' => 'Transaksi '.$jenis.' Sukses Dilaksanakan']);
|
||||
} else {
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Update Gagal, Pastikan Data Yang anda Isi Sudah Sesuai']);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Pastikan Formnya Anda Isi dengan Lengkap']);
|
||||
}
|
||||
}
|
||||
|
||||
public function exKwitansi(Request $request)
|
||||
{
|
||||
return response()->json([
|
||||
'status' => 'Info',
|
||||
'message' => 'Fitur kwitansi gudang belum diaktifkan pada versi ini.'
|
||||
]);
|
||||
}
|
||||
|
||||
private function calculateBaseQty($jenisNama, $qtyInput, $satuanTransaksi = 'besar')
|
||||
{
|
||||
$qtyInput = (int) $qtyInput;
|
||||
if ($qtyInput < 0) { $qtyInput = 0; }
|
||||
$jenis = SIMBHPJenis::where('jenis', $jenisNama)->first();
|
||||
$konversi = (int) ($jenis->konversi_kecil ?? 1);
|
||||
if ($konversi <= 0) { $konversi = 1; }
|
||||
|
||||
if ($satuanTransaksi === 'kecil') {
|
||||
return $qtyInput;
|
||||
}
|
||||
|
||||
return $qtyInput * $konversi;
|
||||
}
|
||||
|
||||
private function getStockBaseByJenis($jenisNama)
|
||||
{
|
||||
$rows = SIMBHPReport::where('jenis', $jenisNama)->get();
|
||||
$masuk = 0;
|
||||
$keluar = 0;
|
||||
foreach ($rows as $row) {
|
||||
if (!is_null($row->pemasukan) && (int)$row->pemasukan > 0) {
|
||||
$masuk += $this->extractBaseQty($row, 'pemasukan');
|
||||
}
|
||||
if (!is_null($row->pengeluaran) && (int)$row->pengeluaran > 0) {
|
||||
$keluar += $this->extractBaseQty($row, 'pengeluaran');
|
||||
}
|
||||
}
|
||||
|
||||
return $masuk - $keluar;
|
||||
}
|
||||
|
||||
private function extractBaseQty($row, $direction = 'pemasukan')
|
||||
{
|
||||
if (!is_null($row->qty_base) && (int)$row->qty_base > 0) {
|
||||
return (int) $row->qty_base;
|
||||
}
|
||||
|
||||
if ($direction === 'pengeluaran') {
|
||||
return (int) ($row->pengeluaran ?? 0);
|
||||
}
|
||||
|
||||
return (int) ($row->pemasukan ?? 0);
|
||||
}
|
||||
|
||||
private function formatStockDisplay($saldoBase, $satuanBesar, $satuanKecil, $konversi)
|
||||
{
|
||||
$saldoBase = (int) $saldoBase;
|
||||
$konversi = (int) $konversi;
|
||||
if ($konversi <= 1 || $satuanKecil == '') {
|
||||
return number_format($saldoBase, 0, '.', ',').' '.$satuanBesar;
|
||||
}
|
||||
|
||||
$besar = intdiv($saldoBase, $konversi);
|
||||
$kecil = $saldoBase % $konversi;
|
||||
|
||||
return number_format($besar, 0, '.', ',').' '.$satuanBesar.' + '.number_format($kecil, 0, '.', ',').' '.$satuanKecil;
|
||||
}
|
||||
|
||||
private function getLowStockWarnings()
|
||||
{
|
||||
$warnings = [];
|
||||
$allJenis = SIMBHPJenis::orderBy('jenis', 'ASC')->get();
|
||||
foreach ($allJenis as $item) {
|
||||
$saldoBase = $this->getStockBaseByJenis($item->jenis);
|
||||
$minimum = (int) ($item->stok_minimum ?? 0);
|
||||
if ($saldoBase <= $minimum) {
|
||||
$warnings[] = [
|
||||
'jenis' => $item->jenis,
|
||||
'saldo' => $this->formatStockDisplay(
|
||||
$saldoBase,
|
||||
$item->satuan,
|
||||
$item->satuan_kecil ?? '',
|
||||
$item->konversi_kecil ?? 1
|
||||
),
|
||||
'minimum' => $minimum,
|
||||
'satuan_kecil' => $item->satuan_kecil ?: $item->satuan,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
return $warnings;
|
||||
}
|
||||
|
||||
private function getAggregateBaseQty($direction, $scope = 'harian')
|
||||
{
|
||||
$now = date('Y-m-d');
|
||||
$d = (int) date('d', strtotime($now));
|
||||
$m = (int) date('m', strtotime($now));
|
||||
$y = (int) date('Y', strtotime($now));
|
||||
|
||||
$query = SIMBHPReport::query();
|
||||
if ($scope === 'harian') {
|
||||
$query->where('tanggal', $d)->where('bulan', $m)->where('tahun', $y);
|
||||
} elseif ($scope === 'bulanan') {
|
||||
$query->where('bulan', $m)->where('tahun', $y);
|
||||
} else {
|
||||
$query->where('tahun', $y);
|
||||
}
|
||||
|
||||
$rows = $query->get();
|
||||
$total = 0;
|
||||
foreach ($rows as $row) {
|
||||
if ($direction === 'pemasukan' && !is_null($row->pemasukan) && (int)$row->pemasukan > 0) {
|
||||
$total += $this->extractBaseQty($row, 'pemasukan');
|
||||
}
|
||||
if ($direction === 'pengeluaran' && !is_null($row->pengeluaran) && (int)$row->pengeluaran > 0) {
|
||||
$total += $this->extractBaseQty($row, 'pengeluaran');
|
||||
}
|
||||
}
|
||||
|
||||
return $total;
|
||||
}
|
||||
|
||||
private function getUsagePerJenis($scope = 'harian')
|
||||
{
|
||||
$now = date('Y-m-d');
|
||||
$d = (int) date('d', strtotime($now));
|
||||
$m = (int) date('m', strtotime($now));
|
||||
$y = (int) date('Y', strtotime($now));
|
||||
|
||||
$query = SIMBHPReport::query();
|
||||
if ($scope === 'harian') {
|
||||
$query->where('tanggal', $d)->where('bulan', $m)->where('tahun', $y);
|
||||
} elseif ($scope === 'bulanan') {
|
||||
$query->where('bulan', $m)->where('tahun', $y);
|
||||
} else {
|
||||
$query->where('tahun', $y);
|
||||
}
|
||||
|
||||
$rows = $query->get();
|
||||
$grouped = [];
|
||||
foreach ($rows as $row) {
|
||||
$jenis = $row->jenis ?: 'Tidak Diketahui';
|
||||
if (!isset($grouped[$jenis])) {
|
||||
$grouped[$jenis] = ['jenis' => $jenis, 'masuk' => 0, 'keluar' => 0];
|
||||
}
|
||||
if (!is_null($row->pemasukan) && (int)$row->pemasukan > 0) {
|
||||
$grouped[$jenis]['masuk'] += $this->extractBaseQty($row, 'pemasukan');
|
||||
}
|
||||
if (!is_null($row->pengeluaran) && (int)$row->pengeluaran > 0) {
|
||||
$grouped[$jenis]['keluar'] += $this->extractBaseQty($row, 'pengeluaran');
|
||||
}
|
||||
}
|
||||
|
||||
return array_values($grouped);
|
||||
}
|
||||
}
|
||||
@@ -3,14 +3,8 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Poli;
|
||||
use App\Ruangan;
|
||||
use App\Organisms;
|
||||
use App\XFiles;
|
||||
use App\SIMBHPJenis;
|
||||
use App\SIMBHPReport;
|
||||
use App\User;
|
||||
use App\Periksa;
|
||||
|
||||
use Validator;
|
||||
@@ -20,567 +14,129 @@ class PoliController extends Controller
|
||||
{
|
||||
public function index() {
|
||||
if (Session::get('previlage') == ''){
|
||||
return redirect('/login');
|
||||
} else {
|
||||
$data = [];
|
||||
$data['polis'] = Poli::all();
|
||||
$data['ruangans'] = Ruangan::all();
|
||||
return redirect('/login');
|
||||
} else {
|
||||
$data = [];
|
||||
$data['polis'] = Poli::all();
|
||||
$data['ruangans'] = Ruangan::all();
|
||||
return view('admin.poli', $data);
|
||||
}
|
||||
}
|
||||
public function viewGudangIndex() {
|
||||
if (Session::get('previlage') == ''){
|
||||
return redirect('/login');
|
||||
} else {
|
||||
$tasks = [];
|
||||
$homebase = url("/");
|
||||
$sekarang = date("Y-m-d");
|
||||
$pegawais = User::select('id', 'nama', 'previlage')->orderBy('nama', 'ASC')->get();
|
||||
$cdatane = SIMBHPJenis::all();
|
||||
$cjenis = count($cdatane);
|
||||
if ($cjenis == 0){
|
||||
$tasks['jjenis'][0]['jenis'] = 'Belum Ada Jenis Barang';
|
||||
$tasks['jjenis'][0]['satuan'] = '';
|
||||
} else {
|
||||
$i = 0;
|
||||
foreach($cdatane as $rdata){
|
||||
$tasks['jjenis'][$i]['jenis'] = $rdata->jenis;
|
||||
$tasks['jjenis'][$i]['satuan'] = $rdata->satuan;
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
$getdebet = SIMBHPReport::select(DB::raw('SUM(pemasukan) as pemasukan'))->groupBy('marking')->first();
|
||||
if (isset($getdebet->pemasukan)){
|
||||
$totpemasukan = $getdebet->pemasukan;
|
||||
} else { $totpemasukan = 0 ;}
|
||||
$getkredit = SIMBHPReport::select(DB::raw('SUM(pengeluaran) as pengeluaran'))->groupBy('marking')->first();
|
||||
if (isset($getkredit->pengeluaran)){
|
||||
$totpepengeluaran = $getkredit->pengeluaran;
|
||||
} else { $totpepengeluaran = 0 ;}
|
||||
|
||||
$tasks['masuk'] = $totpemasukan;
|
||||
$tasks['keluar'] = $totpepengeluaran;
|
||||
$tasks['pegawai'] = $pegawais;
|
||||
$tasks['tahunne'] = date("Y");
|
||||
$tasks['tanggal'] = $sekarang;
|
||||
$tasks['sidebar'] = 'simbhp';
|
||||
$previlage = Session('previlage');
|
||||
return view('admin.gudang', $tasks);
|
||||
}
|
||||
}
|
||||
|
||||
public function storePoli(Request $request) {
|
||||
$validator = Validator::make($request->all(), [
|
||||
'poli' => 'required',
|
||||
'poli' => 'required',
|
||||
'modaliti' => 'required'
|
||||
$validator = Validator::make($request->all(), [
|
||||
'poli' => 'required',
|
||||
'poli' => 'required',
|
||||
'modaliti' => 'required'
|
||||
]);
|
||||
if($validator->fails()) {
|
||||
return response()->json(['status' => 'error', 'message' => 'Please fill input field or fill with right input']);
|
||||
} else {
|
||||
$poli = $request->input('poli');
|
||||
$subpoli = $request->input('subpoli');
|
||||
$subsubpoli = $request->input('subsubpoli');
|
||||
$modaliti = $request->input('modaliti');
|
||||
Poli::create([
|
||||
'poli' => $request->input('poli'),
|
||||
'subpoli' => $request->input('subpoli'),
|
||||
'subsubpoli'=> $request->input('subsubpoli'),
|
||||
'modaliti' => $request->input('modaliti'),
|
||||
'modaliti2' => $request->input('modaliti2')
|
||||
]);
|
||||
Periksa::where('reques', $subpoli)->update([
|
||||
'kd_spesimen' => $request->input('subsubpoli'),
|
||||
'nm_spesimen' => $request->input('modaliti'),
|
||||
]);
|
||||
$tulis = 'Data '.$poli.' '.$subpoli.' '.$subsubpoli.' Saved..!!';
|
||||
return response()->json(['status' => 'success', 'message' => $tulis]);
|
||||
}
|
||||
}
|
||||
public function getListPoli() {
|
||||
|
||||
$results = Poli::orderBy('subpoli', 'ASC')->get();
|
||||
echo json_encode($results);
|
||||
}
|
||||
public function updatePoli(Request $request) {
|
||||
$validator = Validator::make($request->all(), [
|
||||
'id' => 'required',
|
||||
'poli' => 'required',
|
||||
'subpoli' => 'required',
|
||||
'modaliti' => 'required'
|
||||
]);
|
||||
if($validator->fails()) {
|
||||
if($validator->fails()) {
|
||||
return response()->json(['status' => 'error', 'message' => 'Please fill input field or fill with right input']);
|
||||
} else {
|
||||
$id = $request->input('id');
|
||||
$poli = $request->input('poli');
|
||||
$subpoli = $request->input('subpoli');
|
||||
$subsubpoli = $request->input('subsubpoli');
|
||||
Poli::where('id', $id)->update([
|
||||
'poli' => $poli,
|
||||
'subpoli' => $subpoli,
|
||||
'subsubpoli'=> $subsubpoli,
|
||||
'modaliti' => $request->input('modaliti'),
|
||||
'modaliti2' => $request->input('modaliti2')
|
||||
]);
|
||||
Periksa::where('reques', $subpoli)->update([
|
||||
'kd_spesimen' => $subsubpoli,
|
||||
'nm_spesimen' => $request->input('modaliti'),
|
||||
$poli = $request->input('poli');
|
||||
$subpoli = $request->input('subpoli');
|
||||
$subsubpoli = $request->input('subsubpoli');
|
||||
Poli::create([
|
||||
'poli' => $request->input('poli'),
|
||||
'subpoli' => $request->input('subpoli'),
|
||||
'subsubpoli'=> $request->input('subsubpoli'),
|
||||
'modaliti' => $request->input('modaliti'),
|
||||
'modaliti2' => $request->input('modaliti2')
|
||||
]);
|
||||
$tulis = 'Data '.$poli.' '.$subpoli.' '.$subsubpoli.' Updated..!!';
|
||||
return response()->json(['status' => 'success', 'message' => $tulis]);
|
||||
Periksa::where('reques', $subpoli)->update([
|
||||
'kd_spesimen' => $request->input('subsubpoli'),
|
||||
'nm_spesimen' => $request->input('modaliti'),
|
||||
]);
|
||||
$tulis = 'Data '.$poli.' '.$subpoli.' '.$subsubpoli.' Saved..!!';
|
||||
return response()->json(['status' => 'success', 'message' => $tulis]);
|
||||
}
|
||||
}
|
||||
public function deletePoli(Request $request) {
|
||||
$id = $request->id;
|
||||
$poli = Poli::find($id);
|
||||
$poli->delete();
|
||||
return back();
|
||||
|
||||
public function getListPoli() {
|
||||
$results = Poli::orderBy('subpoli', 'ASC')->get();
|
||||
echo json_encode($results);
|
||||
}
|
||||
|
||||
public function updatePoli(Request $request) {
|
||||
$validator = Validator::make($request->all(), [
|
||||
'id' => 'required',
|
||||
'poli' => 'required',
|
||||
'subpoli' => 'required',
|
||||
'modaliti' => 'required'
|
||||
]);
|
||||
if($validator->fails()) {
|
||||
return response()->json(['status' => 'error', 'message' => 'Please fill input field or fill with right input']);
|
||||
} else {
|
||||
$id = $request->input('id');
|
||||
$poli = $request->input('poli');
|
||||
$subpoli = $request->input('subpoli');
|
||||
$subsubpoli = $request->input('subsubpoli');
|
||||
Poli::where('id', $id)->update([
|
||||
'poli' => $poli,
|
||||
'subpoli' => $subpoli,
|
||||
'subsubpoli'=> $subsubpoli,
|
||||
'modaliti' => $request->input('modaliti'),
|
||||
'modaliti2' => $request->input('modaliti2')
|
||||
]);
|
||||
Periksa::where('reques', $subpoli)->update([
|
||||
'kd_spesimen' => $subsubpoli,
|
||||
'nm_spesimen' => $request->input('modaliti'),
|
||||
]);
|
||||
$tulis = 'Data '.$poli.' '.$subpoli.' '.$subsubpoli.' Updated..!!';
|
||||
return response()->json(['status' => 'success', 'message' => $tulis]);
|
||||
}
|
||||
}
|
||||
|
||||
public function deletePoli(Request $request) {
|
||||
$id = $request->id;
|
||||
$poli = Poli::find($id);
|
||||
$poli->delete();
|
||||
return back();
|
||||
}
|
||||
|
||||
public function storeRuangan(Request $request) {
|
||||
$validator = Validator::make($request->all(), [
|
||||
'poli' => 'required',
|
||||
'ruangan' => 'required'
|
||||
$validator = Validator::make($request->all(), [
|
||||
'poli' => 'required',
|
||||
'ruangan' => 'required'
|
||||
]);
|
||||
if($validator->fails()) {
|
||||
return response()->json(['status' => 'error', 'message' => 'Please fill input field or fill with right input']);
|
||||
} else {
|
||||
Ruangan::create([
|
||||
'poli' => $request->input('poli'),
|
||||
'ruangan' => $request->input('ruangan')
|
||||
'poli' => $request->input('poli'),
|
||||
'ruangan' => $request->input('ruangan')
|
||||
]);
|
||||
Session::flash('message', 'Data berhasil disimpan');
|
||||
Session::flash('message', 'Data berhasil disimpan');
|
||||
Session::flash('alert-class', 'alert-success');
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
public function getListRuangan(Request $request) {
|
||||
$results = Ruangan::all();
|
||||
$results = Ruangan::all();
|
||||
echo json_encode($results);
|
||||
}
|
||||
|
||||
public function updateRuangan(Request $request) {
|
||||
$validator = Validator::make($request->all(), [
|
||||
'id' => 'required',
|
||||
'poli' => 'required',
|
||||
'ruangan' => 'required'
|
||||
'id' => 'required',
|
||||
'poli' => 'required',
|
||||
'ruangan' => 'required'
|
||||
]);
|
||||
if($validator->fails()) {
|
||||
return response()->json(['status' => 'error', 'message' => 'Please fill input field or fill with right input']);
|
||||
} else {
|
||||
$id = $request->input('id');
|
||||
$id = $request->input('id');
|
||||
Ruangan::where('id', $id)->update([
|
||||
'poli' => $request->input('poli'),
|
||||
'ruangan' => $request->input('ruangan')
|
||||
'poli' => $request->input('poli'),
|
||||
'ruangan' => $request->input('ruangan')
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function deleteRuangan(Request $request) {
|
||||
$id = $request->id;
|
||||
$ruangan = Ruangan::find($id);
|
||||
$id = $request->id;
|
||||
$ruangan = Ruangan::find($id);
|
||||
$ruangan->delete();
|
||||
return back();
|
||||
}
|
||||
public function jsonRekapbhp() {
|
||||
$tahun = date("Y");
|
||||
$thnlalu = $tahun - 1;
|
||||
$totale = 0;
|
||||
$arraysurat = [];
|
||||
$getdata = SIMBHPJenis::all();
|
||||
if (!empty($getdata)){
|
||||
foreach($getdata as $hasil){
|
||||
$jenis = $hasil->kodejenis;
|
||||
$satuan = $hasil->satuan;
|
||||
$tlsjenis = $hasil->jenis;;
|
||||
$getdebet = SIMBHPReport::select(DB::raw('SUM(pemasukan) as pemasukan'))->where('jenis', $tlsjenis)->groupBy('jenis')->first();
|
||||
if (isset($getdebet->pemasukan)){
|
||||
$totpemasukan = $getdebet->pemasukan;
|
||||
} else { $totpemasukan = 0 ;}
|
||||
$getkredit = SIMBHPReport::select(DB::raw('SUM(pengeluaran) as pengeluaran'))->where('jenis', $tlsjenis)->groupBy('jenis')->first();
|
||||
if (isset($getkredit->pengeluaran)){
|
||||
$totpepengeluaran = $getkredit->pengeluaran;
|
||||
} else { $totpepengeluaran = 0 ;}
|
||||
|
||||
$saldoakhir = $totpemasukan - $totpepengeluaran;
|
||||
$arraysurat[] = array(
|
||||
'id' => $hasil->id,
|
||||
'satuan' => $satuan,
|
||||
'jenis' => $jenis,
|
||||
'tlsjenis' => $tlsjenis,
|
||||
'saldo' => number_format( $saldoakhir , 0 , '.' , ',' ),
|
||||
);
|
||||
}
|
||||
}
|
||||
echo json_encode($arraysurat);
|
||||
}
|
||||
public function jsonReportbhp(Request $request) {
|
||||
$bulan = $request->input('val01');
|
||||
$tahun = $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();
|
||||
} 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();
|
||||
}
|
||||
|
||||
}
|
||||
foreach($getdata as $rdata){
|
||||
$dd = $rdata->tanggal;
|
||||
$mm = $rdata->bulan;
|
||||
$yy = $rdata->tahun;
|
||||
$pengeluaran= $rdata->pengeluaran;
|
||||
$pemasukan = $rdata->pemasukan;
|
||||
if ($mm < 10){
|
||||
$tgllengkap = $dd.'-0'.$mm.'-'.$yy;
|
||||
} else {
|
||||
$tgllengkap = $dd.'-'.$mm.'-'.$yy;
|
||||
}
|
||||
if ($pengeluaran == '' OR $pengeluaran == 0) {$total = $pemasukan;}
|
||||
else { $total = $pengeluaran; }
|
||||
|
||||
$hasil[] = array(
|
||||
'id' => $rdata->id,
|
||||
'tanggal' => $rdata->tanggal,
|
||||
'bulan' => $rdata->bulan,
|
||||
'tahun' => $rdata->tahun,
|
||||
'deskripsi' => $rdata->deskripsi,
|
||||
'pemasukan' => number_format( $pemasukan , 0 , '.' , ',' ),
|
||||
'pengeluaran' => number_format( $pengeluaran , 0 , '.' , ',' ),
|
||||
'jenis' => $rdata->jenis,
|
||||
'keterangan' => $rdata->keterangan,
|
||||
'tgllengkap' => $tgllengkap,
|
||||
'total' => $total,
|
||||
);
|
||||
}
|
||||
echo json_encode($hasil);
|
||||
}
|
||||
public function jsonReportbhpPaginated(Request $request) {
|
||||
$tanggal = $request->input('tanggal');
|
||||
$deskripsi = $request->input('deskripsi');
|
||||
$kategori = $request->input('kategori');
|
||||
$lm = 10;
|
||||
$limit = ($request->input('limit') == null ? $lm : $request->input('limit'));
|
||||
$order = ($request->input('order') == null ? 'id desc' : $request->input('order'));
|
||||
$data = new SIMBHPReport;
|
||||
if ($kategori != null AND $kategori != '') $data = $data->where('jenis', $kategori);
|
||||
if ($tanggal != null AND $tanggal != '') $data = $data->where('created_at', 'LIKE', '%'.$tanggal.'%');
|
||||
if ($deskripsi != null AND $deskripsi != '') $data = $data->where('deskripsi', 'LIKE', '%'.$deskripsi.'%');
|
||||
$data = $data->orderByRaw($order)->paginate($limit);
|
||||
$hasil = [];
|
||||
$totaldata = $data->total();
|
||||
$debet = 0;
|
||||
$kredit = 0;
|
||||
if (!empty($data)){
|
||||
foreach($data as $rdata){
|
||||
$dd = $rdata->tanggal;
|
||||
$mm = $rdata->bulan;
|
||||
$yy = $rdata->tahun;
|
||||
$pengeluaran = $rdata->pengeluaran;
|
||||
$pemasukan = $rdata->pemasukan;
|
||||
$deskripsi = $rdata->deskripsi;
|
||||
$jenis = $rdata->jenis;
|
||||
$debet = $debet + $pemasukan;
|
||||
$kredit = $kredit + $pengeluaran;
|
||||
$cekjenis = SIMBHPJenis::where('kodejenis', $jenis)->first();
|
||||
if (isset($cekjenis->id)){
|
||||
$kodejenis = $cekjenis->kodejenis;
|
||||
$jenis = $cekjenis->jenis;
|
||||
$satuan = $cekjenis->satuan;
|
||||
} else {
|
||||
$kodejenis = $jenis;
|
||||
$jenis = '';
|
||||
$satuan = '';
|
||||
}
|
||||
|
||||
if ($jenis != ''){
|
||||
$deskripsi = '<strong>'.$jenis.'</strong><br />'.$deskripsi;
|
||||
}
|
||||
|
||||
if ($mm < 10){
|
||||
$tgllengkap = $yy.'-0'.$mm.'-'.$dd;
|
||||
} else {
|
||||
$tgllengkap = $yy.'-'.$mm.'-'.$dd;
|
||||
}
|
||||
if ($pengeluaran == '' OR $pengeluaran == 0) {
|
||||
$total = $pemasukan;
|
||||
$jentrans = 'PEMASUKAN';
|
||||
}
|
||||
else {
|
||||
$total = $pengeluaran;
|
||||
$jentrans = 'PENGELUARAN';
|
||||
}
|
||||
|
||||
$hasil[] = array(
|
||||
'id' => $rdata->id,
|
||||
'tanggal' => $rdata->tanggal,
|
||||
'bulan' => $rdata->bulan,
|
||||
'tahun' => $rdata->tahun,
|
||||
'tlsdeskripsi' => $deskripsi,
|
||||
'deskripsi' => $rdata->deskripsi,
|
||||
'pemasukan' => number_format( $pemasukan , 0 , '.' , ',' ),
|
||||
'pengeluaran' => number_format( $pengeluaran , 0 , '.' , ',' ),
|
||||
'jenis' => $kodejenis,
|
||||
'keterangan' => $rdata->keterangan,
|
||||
'tgllengkap' => $tgllengkap,
|
||||
'created_at' => $rdata->created_at,
|
||||
'nominal' => $total.' '.$satuan,
|
||||
'jentrans' => $jentrans,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$response = [
|
||||
'message' => 'List Data',
|
||||
'data' => $hasil,
|
||||
'totaldata' => $totaldata
|
||||
];
|
||||
return response()->json($response, 200);
|
||||
}
|
||||
public function exAddbarang(Request $request) {
|
||||
$deskripsi = $request->input('set01');
|
||||
$pos = $request->input('set02');
|
||||
$tanggal = $request->input('set03');
|
||||
$jumlah = $request->input('set04');
|
||||
$jenis = $request->input('set05');
|
||||
$postujuan = $request->input('set06');
|
||||
$alasan = $request->input('set07');
|
||||
$nama = Session('nama');
|
||||
if ($tanggal == '' OR is_null($tanggal)){
|
||||
$tanggal = date("d-m-Y");
|
||||
}
|
||||
$total = (int)str_replace(',','',$jumlah);
|
||||
if ($jenis == 'jenis'){ $jumlah = '-';}
|
||||
if ($deskripsi != '' and $pos != '' and $tanggal != '' and $jumlah != '' and $jenis != ''){
|
||||
if ($jenis == 'jenis'){
|
||||
$jenis = $request->input('set02');
|
||||
$satuan = $request->input('set03');
|
||||
$idne = $request->input('set04');
|
||||
$kodejenis = preg_replace('/\s+/', '', $jenis);
|
||||
if ($idne == 'new' OR $idne == ''){
|
||||
$ceksudah = SIMBHPJenis::where('kodejenis', $kodejenis)->where('satuan', $satuan)->count();
|
||||
if ($ceksudah != 0){
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => $jenis.' Sudah Ada, Silahkan Masukkan Jenis Barang Lain']);
|
||||
return back();
|
||||
} else {
|
||||
$input = SIMBHPJenis::create([
|
||||
'kodejenis' => $kodejenis,
|
||||
'jenis' => $jenis,
|
||||
'satuan' => $satuan,
|
||||
]);
|
||||
if ($input){
|
||||
return response()->json(['status' => 'Success', 'message' => 'Data '.$jenis.' Sukses Ditambahkan']);
|
||||
return back();
|
||||
} else {
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => $jenis.' Gagal di masukkan, silahkan ulangi beberapa saat lagi']);
|
||||
return back();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$ceksudah = SIMBHPJenis::where('id', '!=', $idne)->where('kodejenis', $kodejenis)->where('satuan', $satuan)->count();
|
||||
if ($ceksudah != 0){
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => $jenis.' Sudah Ada, Silahkan Masukkan Jenis Barang Lain']);
|
||||
return back();
|
||||
} else {
|
||||
$input = SIMBHPJenis::where('id', $idne)->update([
|
||||
'kodejenis' => $kodejenis,
|
||||
'jenis' => $jenis,
|
||||
'satuan' => $satuan,
|
||||
]);
|
||||
if ($input){
|
||||
return response()->json(['status' => 'Success', 'message' => 'Data '.$jenis.' Sukses Diupdate']);
|
||||
return back();
|
||||
} else {
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => $jenis.' Gagal di masukkan, silahkan ulangi beberapa saat lagi']);
|
||||
return back();
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$ahrf = explode("-", $tanggal);
|
||||
$tahun = $ahrf[0];
|
||||
if(isset($ahrf[1])){
|
||||
$wulan = (int)$ahrf[1];
|
||||
} else { $wulan = date("m"); $wulan = (int)$wulan; }
|
||||
if(isset($ahrf[2])){
|
||||
$dino = (int)$ahrf[2];
|
||||
} else { $dino = date("d"); }
|
||||
if ($jenis == 'pemasukan'){
|
||||
$bayar = SIMBHPReport::create([
|
||||
'tanggal' => $dino,
|
||||
'bulan' => $wulan,
|
||||
'tahun' => $tahun,
|
||||
'deskripsi' => $deskripsi,
|
||||
'pemasukan' => $total,
|
||||
'pengeluaran' => null,
|
||||
'jenis' => $pos,
|
||||
'keterangan' => '',
|
||||
'marking' => '',
|
||||
]);
|
||||
} else if ($jenis == 'pengeluaran'){
|
||||
$getnama = User::where('id', $deskripsi)->first();
|
||||
$nama = $getnama->nama ?? 'Unkown';
|
||||
$deskripsi = 'Diterima oleh '.$nama;
|
||||
$getdebet = SIMBHPReport::select(DB::raw('SUM(pemasukan) as pemasukan'))->where('jenis', $pos)->groupBy('jenis')->first();
|
||||
if (isset($getdebet->pemasukan)){
|
||||
$totpemasukan = $getdebet->pemasukan;
|
||||
} else { $totpemasukan = 0 ;}
|
||||
$getkredit = SIMBHPReport::select(DB::raw('SUM(pengeluaran) as pengeluaran'))->where('jenis', $pos)->groupBy('jenis')->first();
|
||||
if (isset($getkredit->pengeluaran)){
|
||||
$totpepengeluaran = $getkredit->pengeluaran;
|
||||
} else { $totpepengeluaran = 0 ;}
|
||||
$totpepengeluaran = $totpepengeluaran + $total;
|
||||
if ($totpepengeluaran > $totpemasukan){
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Nominal Melebihi Stok']);
|
||||
return back();
|
||||
} else {
|
||||
$bayar = SIMBHPReport::create([
|
||||
'tanggal' => $dino,
|
||||
'bulan' => $wulan,
|
||||
'tahun' => $tahun,
|
||||
'deskripsi' => $deskripsi,
|
||||
'pemasukan' => null,
|
||||
'pengeluaran' => $total,
|
||||
'jenis' => $pos,
|
||||
'keterangan' => '',
|
||||
'marking' => '',
|
||||
]);
|
||||
}
|
||||
|
||||
} else if ($jenis == 'editor'){
|
||||
if ($alasan == ''){
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Alasan Perubahan Data Wajib Di Isi!!!']);
|
||||
return back();
|
||||
} else {
|
||||
$getdebet = SIMBHPReport::select(DB::raw('SUM(pemasukan) as pemasukan'))->where('jenis', $pos)->groupBy('jenis')->first();
|
||||
if (isset($getdebet->pemasukan)){
|
||||
$totpemasukan = $getdebet->pemasukan;
|
||||
} else { $totpemasukan = 0 ;}
|
||||
$getkredit = SIMBHPReport::select(DB::raw('SUM(pengeluaran) as pengeluaran'))->where('jenis', $pos)->groupBy('jenis')->first();
|
||||
if (isset($getkredit->pengeluaran)){
|
||||
$totpepengeluaran = $getkredit->pengeluaran;
|
||||
} else { $totpepengeluaran = 0 ;}
|
||||
$totpepengeluaran = $totpepengeluaran + $total;
|
||||
|
||||
$rdatalama = SIMBHPReport::where('id', $postujuan)->first();
|
||||
$ldeskripsi = $rdatalama->deskripsi;
|
||||
$lpemasukan = $rdatalama->pemasukan;
|
||||
$lpengeluaran = $rdatalama->pengeluaran;
|
||||
$ljenis = $rdatalama->jenis;
|
||||
$marking = $rdatalama->marking;
|
||||
if ($lpengeluaran == '' OR $lpengeluaran == 0) {
|
||||
$ltotal = number_format( $lpemasukan , 0 , '.' , ',' );
|
||||
if ($marking != ''){
|
||||
SIMBHPReport::where('marking', $marking)->whereNotIn('id', [$postujuan])->update([
|
||||
'tanggal' => $dino,
|
||||
'bulan' => $wulan,
|
||||
'tahun' => $tahun,
|
||||
'pengeluaran' => $total
|
||||
]);
|
||||
}
|
||||
$bayar = SIMBHPReport::where('id', $postujuan)->update([
|
||||
'tanggal' => $dino,
|
||||
'bulan' => $wulan,
|
||||
'tahun' => $tahun,
|
||||
'deskripsi' => $deskripsi,
|
||||
'jenis' => $pos,
|
||||
'pemasukan' => $total,
|
||||
'keterangan' => $alasan,
|
||||
'updated_at' => date("Y-m-d H:i:s")
|
||||
]);
|
||||
} else {
|
||||
$totpepengeluaran = $totpepengeluaran + $total;
|
||||
if ($totpepengeluaran > $totpemasukan){
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Nominal Melebihi Stok']);
|
||||
return back();
|
||||
} else {
|
||||
$ltotal = number_format( $lpengeluaran , 0 , '.' , ',' );
|
||||
if ($marking != ''){
|
||||
SIMBHPReport::where('marking', $marking)->whereNotIn('id', [$postujuan])->update([
|
||||
'tanggal' => $dino,
|
||||
'bulan' => $wulan,
|
||||
'tahun' => $tahun,
|
||||
'pemasukan' => $total
|
||||
]);
|
||||
}
|
||||
$bayar = SIMBHPReport::where('id', $postujuan)->update([
|
||||
'tanggal' => $dino,
|
||||
'bulan' => $wulan,
|
||||
'tahun' => $tahun,
|
||||
'deskripsi' => $deskripsi,
|
||||
'jenis' => $pos,
|
||||
'pengeluaran' => $total,
|
||||
'keterangan' => $alasan,
|
||||
'updated_at' => date("Y-m-d H:i:s")
|
||||
]);
|
||||
}
|
||||
}
|
||||
$baris1 = '<table class="table table-bordered table-striped"><tr><td colspan=2><p align=center><b>Data Lama</b></p></td><td colspan=2><p align=center><b>Data Perubahan</b></p></td></tr>';
|
||||
$baris2 = '<tr><td>Deskripsi</td><td>'.$ldeskripsi.'</td><td><font color=red>Diubah Menjadi</font></td><td>'.$deskripsi.'</td></tr>';
|
||||
$baris3 = '<tr><td>Jenis</td><td>'.$ljenis.'</td><td><font color=red>Diubah Menjadi</font></td><td>'.$pos.'</td></tr>';
|
||||
$baris4 = '<tr><td>Total</td><td>'.$ltotal.'</td><td><font color=red>Diubah Menjadi</font></td><td>'.$jumlah.'</td></tr>';
|
||||
$baris5 = '<tr><td><b>Dengan Alasan</b></td><td colspan=3>'.$alasan.'</td</tr>';
|
||||
$baris6 = '<tr><td><b>Eksekutor</b></td><td colspan=3>'.Session('nama').'</td</tr></table>';
|
||||
$perubahan = $baris1.$baris2.$baris3.$baris4.$baris5.$baris6;
|
||||
Xfiles::create([
|
||||
'xmarking' => 'SIMBHP-'.$postujuan.'-'.time(),
|
||||
'xtabel' => 'History SIMBHP',
|
||||
'xjenis' => '',
|
||||
'xfile' => $perubahan
|
||||
]);
|
||||
}
|
||||
} else {
|
||||
if ($alasan == ''){
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Alasan Perubahan Data Wajib Di Isi!!!']);
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
$rdatalama = SIMBHPReport::where('id', $postujuan)->first();
|
||||
$ldeskripsi = $rdatalama->deskripsi;
|
||||
$lpemasukan = $rdatalama->pemasukan;
|
||||
$lpengeluaran = $rdatalama->pengeluaran;
|
||||
$ljenis = $rdatalama->jenis;
|
||||
$marking = $rdatalama->marking;
|
||||
if ($lpengeluaran == '' or $lpengeluaran == 0) {
|
||||
$ltotal = number_format( $lpemasukan , 0 , '.' , ',' );
|
||||
} else {
|
||||
$ltotal = number_format( $lpengeluaran , 0 , '.' , ',' );
|
||||
}
|
||||
$baris1 = '<table class="table table-bordered table-striped"><tr><td colspan=2><p align=center><b>Data Lama</b></p></td><td colspan=2><p align=center><b>Data Perubahan</b></p></td></tr>';
|
||||
$baris2 = '<tr><td>Deskripsi</td><td>'.$ldeskripsi.'</td><td colspan=2><font color=red>DIHAPUS</font></td></tr>';
|
||||
$baris3 = '<tr><td>Jenis</td><td>'.$ljenis.'</td><td colspan=2><font color=red>DIHAPUS</font></td></tr>';
|
||||
$baris4 = '<tr><td>Total</td><td>'.$ltotal.'</td><td colspan=2><font color=red>DIHAPUS</font></td></tr>';
|
||||
$baris5 = '<tr><td><b>Dengan Alasan</b></td><td colspan=3>'.$alasan.'</td</tr>';
|
||||
$baris6 = '<tr><td><b>Eksekutor</b></td><td colspan=3>'.Session('nama').'</td</tr></table>';
|
||||
$perubahan = $baris1.$baris2.$baris3.$baris4.$baris5.$baris6;
|
||||
|
||||
Xfiles::create([
|
||||
'xmarking' => 'SIMBHP-'.$postujuan.'-'.time(),
|
||||
'xtabel' => 'History SIMBHP',
|
||||
'xjenis' => '',
|
||||
'xfile' => $perubahan
|
||||
]);
|
||||
if ($marking != ''){
|
||||
$bayar = SIMBHPReport::where('marking', $marking)->delete();
|
||||
} else {
|
||||
$bayar = SIMBHPReport::where('id', $postujuan)->delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($bayar){
|
||||
return response()->json(['status' => 'Success', 'message' => 'Transaksi '.$jenis.' Sukses Dilaksanakan']);
|
||||
return back();
|
||||
} else {
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Update Gagal, Pastikan Data Yang anda Isi Sudah Sesuai']);
|
||||
return back();
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Pastikan Formnya Anda Isi dengan Lengkap']);
|
||||
return back();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('simbhpjenis', function (Blueprint $table) {
|
||||
if (!Schema::hasColumn('simbhpjenis', 'satuan_kecil')) {
|
||||
$table->string('satuan_kecil', 100)->nullable()->after('satuan');
|
||||
}
|
||||
if (!Schema::hasColumn('simbhpjenis', 'konversi_kecil')) {
|
||||
$table->integer('konversi_kecil')->default(1)->after('satuan_kecil');
|
||||
}
|
||||
if (!Schema::hasColumn('simbhpjenis', 'stok_minimum')) {
|
||||
$table->integer('stok_minimum')->default(0)->after('konversi_kecil');
|
||||
}
|
||||
});
|
||||
|
||||
Schema::table('simbhpreport', function (Blueprint $table) {
|
||||
if (!Schema::hasColumn('simbhpreport', 'qty_base')) {
|
||||
$table->integer('qty_base')->nullable()->after('pengeluaran');
|
||||
}
|
||||
if (!Schema::hasColumn('simbhpreport', 'satuan_transaksi')) {
|
||||
$table->string('satuan_transaksi', 20)->nullable()->after('qty_base');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('simbhpreport', function (Blueprint $table) {
|
||||
if (Schema::hasColumn('simbhpreport', 'qty_base')) {
|
||||
$table->dropColumn('qty_base');
|
||||
}
|
||||
if (Schema::hasColumn('simbhpreport', 'satuan_transaksi')) {
|
||||
$table->dropColumn('satuan_transaksi');
|
||||
}
|
||||
});
|
||||
|
||||
Schema::table('simbhpjenis', function (Blueprint $table) {
|
||||
if (Schema::hasColumn('simbhpjenis', 'satuan_kecil')) {
|
||||
$table->dropColumn('satuan_kecil');
|
||||
}
|
||||
if (Schema::hasColumn('simbhpjenis', 'konversi_kecil')) {
|
||||
$table->dropColumn('konversi_kecil');
|
||||
}
|
||||
if (Schema::hasColumn('simbhpjenis', 'stok_minimum')) {
|
||||
$table->dropColumn('stok_minimum');
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -52,9 +52,9 @@
|
||||
<div class="col-sm-4">
|
||||
<div class="card-box bg-danger widget-flat border-info text-white">
|
||||
<i class="icon-rocket"></i>
|
||||
<h3 class="m-b-10">{{ $rusak ?? 0 }}</h3>
|
||||
Barang Rusak/Hilang<br />
|
||||
<!-- <a href="#" id="topbtnhapus"><span class="badge badge-primary pull-right"> Add</span></a> -->
|
||||
<h3 class="m-b-10">{{ count($warningstok ?? []) }}</h3>
|
||||
Warning Stok Menipis<br />
|
||||
<a href="#stokWarningArea"><span class="badge badge-warning pull-right"> Lihat</span></a>
|
||||
</div>
|
||||
</div><!-- end col -->
|
||||
</div>
|
||||
@@ -63,6 +63,85 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" id="stokWarningArea">
|
||||
<div class="col-sm-12">
|
||||
<div class="card-box">
|
||||
<h4 class="m-t-0 m-b-15">Warning Barang Segera Habis</h4>
|
||||
@if(isset($warningstok) && count($warningstok) > 0)
|
||||
@foreach($warningstok as $w)
|
||||
<div class="alert alert-warning m-b-10">
|
||||
<b>{{ $w['jenis'] }}</b> tersisa {{ $w['saldo'] }}.
|
||||
Stok minimum: {{ number_format($w['minimum'], 0, '.', ',') }} {{ $w['satuan_kecil'] }}.
|
||||
</div>
|
||||
@endforeach
|
||||
@else
|
||||
<div class="alert alert-success m-b-0">Semua stok masih aman.</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="card-box">
|
||||
<h5 class="m-t-0">Statistik Harian (Base Unit)</h5>
|
||||
<div>Masuk: <b>{{ number_format($stat_harian_masuk ?? 0, 0, '.', ',') }}</b></div>
|
||||
<div>Keluar: <b>{{ number_format($stat_harian_keluar ?? 0, 0, '.', ',') }}</b></div>
|
||||
<hr>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm table-bordered m-b-0">
|
||||
<thead><tr><th>Jenis</th><th>Masuk</th><th>Keluar</th></tr></thead>
|
||||
<tbody>
|
||||
@forelse($stat_perjenis_harian ?? [] as $row)
|
||||
<tr><td>{{ $row['jenis'] }}</td><td class="text-right">{{ number_format($row['masuk'],0,'.',',') }}</td><td class="text-right">{{ number_format($row['keluar'],0,'.',',') }}</td></tr>
|
||||
@empty
|
||||
<tr><td colspan="3" class="text-center">Belum ada transaksi</td></tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="card-box">
|
||||
<h5 class="m-t-0">Statistik Bulanan (Base Unit)</h5>
|
||||
<div>Masuk: <b>{{ number_format($stat_bulanan_masuk ?? 0, 0, '.', ',') }}</b></div>
|
||||
<div>Keluar: <b>{{ number_format($stat_bulanan_keluar ?? 0, 0, '.', ',') }}</b></div>
|
||||
<hr>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm table-bordered m-b-0">
|
||||
<thead><tr><th>Jenis</th><th>Masuk</th><th>Keluar</th></tr></thead>
|
||||
<tbody>
|
||||
@forelse($stat_perjenis_bulanan ?? [] as $row)
|
||||
<tr><td>{{ $row['jenis'] }}</td><td class="text-right">{{ number_format($row['masuk'],0,'.',',') }}</td><td class="text-right">{{ number_format($row['keluar'],0,'.',',') }}</td></tr>
|
||||
@empty
|
||||
<tr><td colspan="3" class="text-center">Belum ada transaksi</td></tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="card-box">
|
||||
<h5 class="m-t-0">Statistik Tahunan (Base Unit)</h5>
|
||||
<div>Masuk: <b>{{ number_format($stat_tahunan_masuk ?? 0, 0, '.', ',') }}</b></div>
|
||||
<div>Keluar: <b>{{ number_format($stat_tahunan_keluar ?? 0, 0, '.', ',') }}</b></div>
|
||||
<hr>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm table-bordered m-b-0">
|
||||
<thead><tr><th>Jenis</th><th>Masuk</th><th>Keluar</th></tr></thead>
|
||||
<tbody>
|
||||
@forelse($stat_perjenis_tahunan ?? [] as $row)
|
||||
<tr><td>{{ $row['jenis'] }}</td><td class="text-right">{{ number_format($row['masuk'],0,'.',',') }}</td><td class="text-right">{{ number_format($row['keluar'],0,'.',',') }}</td></tr>
|
||||
@empty
|
||||
<tr><td colspan="3" class="text-center">Belum ada transaksi</td></tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<div class="card-box ribbon-box">
|
||||
@@ -134,6 +213,19 @@
|
||||
<label>Satuan </label>
|
||||
<input type="text" id="jenis_satuan" name="jenis_satuan" class="form-control">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Satuan Kecil (untuk pecah satuan)</label>
|
||||
<input type="text" id="jenis_satuan_kecil" name="jenis_satuan_kecil" class="form-control" placeholder="contoh: strip / pcs / vial">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Konversi ke Satuan Kecil</label>
|
||||
<input type="number" id="jenis_konversi_kecil" name="jenis_konversi_kecil" class="form-control" value="1" min="1">
|
||||
<small class="text-muted">Contoh: 1 box = 100 strip, isi 100.</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Stok Minimum Warning (dalam satuan kecil/base)</label>
|
||||
<input type="number" id="jenis_stok_minimum" name="jenis_stok_minimum" class="form-control" value="0" min="0">
|
||||
</div>
|
||||
<div class="form-group account-btn text-center m-t-10">
|
||||
<div class="col-12">
|
||||
<input type="hidden" id="jenis_idne" name="jenis_idne" class="form-control">
|
||||
@@ -160,10 +252,17 @@
|
||||
<label>Jenis Barang</label>
|
||||
<select id="in_pos" name="in_pos" class="form-control" >
|
||||
@foreach($jjenis as $rjenis)
|
||||
<option value="{{ $rjenis['jenis'] }}">{{ $rjenis['jenis'] }} ( {{ $rjenis['satuan'] }} )</option>
|
||||
<option value="{{ $rjenis['jenis'] }}" data-satuan="{{ $rjenis['satuan'] }}" data-satuan-kecil="{{ $rjenis['satuan_kecil'] ?? '' }}" data-konversi="{{ $rjenis['konversi_kecil'] ?? 1 }}">{{ $rjenis['jenis'] }} ( {{ $rjenis['satuan'] }} )</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Satuan Input</label>
|
||||
<select id="in_satuan_transaksi" class="form-control">
|
||||
<option value="besar">Satuan Besar</option>
|
||||
<option value="kecil">Satuan Kecil (Pecah Satuan)</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Supplier</label>
|
||||
<input type="text" id="in_deskripsi" name="in_deskripsi" class="form-control">
|
||||
@@ -197,10 +296,17 @@
|
||||
<label>Barang yang diminta</label>
|
||||
<select id="out_pos" name="out_pos" class="form-control" >
|
||||
@foreach($jjenis as $rjenis)
|
||||
<option value="{{ $rjenis['jenis'] }}">{{ $rjenis['jenis'] }} ( {{ $rjenis['satuan'] }} )</option>
|
||||
<option value="{{ $rjenis['jenis'] }}" data-satuan="{{ $rjenis['satuan'] }}" data-satuan-kecil="{{ $rjenis['satuan_kecil'] ?? '' }}" data-konversi="{{ $rjenis['konversi_kecil'] ?? 1 }}">{{ $rjenis['jenis'] }} ( {{ $rjenis['satuan'] }} )</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Satuan Pengeluaran</label>
|
||||
<select id="out_satuan_transaksi" class="form-control">
|
||||
<option value="kecil">Satuan Kecil (Pecah Satuan)</option>
|
||||
<option value="besar">Satuan Besar</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Peminta</label>
|
||||
<select id="out_deskripsi" name="out_deskripsi" class="form-control" >
|
||||
@@ -358,13 +464,16 @@ $(document).ready(function() {
|
||||
var val01=document.getElementById('jenis_idne').value;
|
||||
var val02=document.getElementById('jenis_deskripsi').value;
|
||||
var val03=document.getElementById('jenis_satuan').value;
|
||||
var val04='';
|
||||
var val04=document.getElementById('jenis_konversi_kecil').value;
|
||||
var val05='jenis';
|
||||
var val06='';
|
||||
var val07='';
|
||||
var val08='';
|
||||
var val08=document.getElementById('jenis_satuan_kecil').value;
|
||||
var val09=document.getElementById('jenis_konversi_kecil').value;
|
||||
var val10=document.getElementById('jenis_stok_minimum').value;
|
||||
var val11='besar';
|
||||
$("#modaltambahjenisbrg").modal('hide');
|
||||
$.post('simbhp/exaddbarang', { _token: token, set01: val01, set02: val02, set03: val03, set04: val04, set05: val05, set06: val06, set07: val07, set08: val08 },
|
||||
$.post('simbhp/exaddbarang', { _token: token, set01: val01, set02: val02, set03: val03, set04: val04, set05: val05, set06: val06, set07: val07, set08: val08, set09: val09, set10: val10, set11: val11 },
|
||||
function(data){
|
||||
var status = data.status;
|
||||
var message = data.message;
|
||||
@@ -391,7 +500,10 @@ $(document).ready(function() {
|
||||
var val06='';
|
||||
var val07='';
|
||||
var val08='';
|
||||
$.post('simbhp/exaddbarang', { _token: token, set01: val01, set02: val02, set03: val03, set04: val04, set05: val05, set06: val06, set07: val07, set08: val08 },
|
||||
var val09='';
|
||||
var val10='';
|
||||
var val11=document.getElementById('in_satuan_transaksi').value;
|
||||
$.post('simbhp/exaddbarang', { _token: token, set01: val01, set02: val02, set03: val03, set04: val04, set05: val05, set06: val06, set07: val07, set08: val08, set09: val09, set10: val10, set11: val11 },
|
||||
function(data){
|
||||
$("#modalpemasukan").modal('hide');
|
||||
var status = data.status;
|
||||
@@ -422,7 +534,10 @@ $(document).ready(function() {
|
||||
var val06='';
|
||||
var val07='';
|
||||
var val08='';
|
||||
$.post('simbhp/exaddbarang', { _token: token, set01: val01, set02: val02, set03: val03, set04: val04, set05: val05, set06: val06, set07: val07, set08: val08 },
|
||||
var val09='';
|
||||
var val10='';
|
||||
var val11=document.getElementById('out_satuan_transaksi').value;
|
||||
$.post('simbhp/exaddbarang', { _token: token, set01: val01, set02: val02, set03: val03, set04: val04, set05: val05, set06: val06, set07: val07, set08: val08, set09: val09, set10: val10, set11: val11 },
|
||||
function(data){
|
||||
$("#modalpengeluaran").modal('hide');
|
||||
var status = data.status;
|
||||
@@ -444,7 +559,7 @@ $(document).ready(function() {
|
||||
return false;
|
||||
});
|
||||
});
|
||||
$("#btnsimpanedit").click(function(){
|
||||
$("#btnsimpanedit").click(function(){
|
||||
var val01=document.getElementById('edit_deskripsi').value;
|
||||
var val02=document.getElementById('edit_pos').value;
|
||||
var val03=document.getElementById('edit_tanggal').value;
|
||||
@@ -453,7 +568,10 @@ $(document).ready(function() {
|
||||
var val06=document.getElementById('edit_id').value;
|
||||
var val07=document.getElementById('edit_alasan').value;
|
||||
var val08='';
|
||||
$.post('simbhp/exaddbarang', { _token: token, set01: val01, set02: val02, set03: val03, set04: val04, set05: val05, set06: val06, set07: val07, set08: val08 },
|
||||
var val09='';
|
||||
var val10='';
|
||||
var val11='besar';
|
||||
$.post('simbhp/exaddbarang', { _token: token, set01: val01, set02: val02, set03: val03, set04: val04, set05: val05, set06: val06, set07: val07, set08: val08, set09: val09, set10: val10, set11: val11 },
|
||||
function(data){
|
||||
$("#modaleditor").modal('hide');
|
||||
var status = data.status;
|
||||
@@ -475,7 +593,7 @@ $(document).ready(function() {
|
||||
return false;
|
||||
});
|
||||
});
|
||||
$("#btnsimpanhapus").click(function(){
|
||||
$("#btnsimpanhapus").click(function(){
|
||||
var val01=document.getElementById('edit_deskripsi').value;
|
||||
var val02=document.getElementById('edit_pos').value;
|
||||
var val03=document.getElementById('edit_tanggal').value;
|
||||
@@ -484,7 +602,10 @@ $(document).ready(function() {
|
||||
var val06=document.getElementById('edit_id').value;
|
||||
var val07=document.getElementById('edit_alasan').value;
|
||||
var val08='';
|
||||
$.post('simbhp/exaddbarang', { _token: token, set01: val01, set02: val02, set03: val03, set04: val04, set05: val05, set06: val06, set07: val07, set08: val08 },
|
||||
var val09='';
|
||||
var val10='';
|
||||
var val11='besar';
|
||||
$.post('simbhp/exaddbarang', { _token: token, set01: val01, set02: val02, set03: val03, set04: val04, set05: val05, set06: val06, set07: val07, set08: val08, set09: val09, set10: val10, set11: val11 },
|
||||
function(data){
|
||||
$("#modaleditor").modal('hide');
|
||||
var status = data.status;
|
||||
@@ -518,7 +639,8 @@ $(document).ready(function() {
|
||||
{ name: 'tlsjenis',type: 'text'},
|
||||
{ name: 'jenis',type: 'text'},
|
||||
{ name: 'saldo',type: 'text'},
|
||||
{ name: 'satuan',type: 'text'},
|
||||
{ name: 'satuan',type: 'text'},
|
||||
{ name: 'warning',type: 'text'},
|
||||
],
|
||||
url: 'simbhp/rekapbhp',
|
||||
cache: false,
|
||||
@@ -535,7 +657,8 @@ $(document).ready(function() {
|
||||
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: '35%', cellsalign: 'right', 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) {
|
||||
@@ -619,4 +742,4 @@ $(document).ready(function() {
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@endpush
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
<div id="navigation">
|
||||
<ul class="navigation-menu">
|
||||
@if(Session::get('previlage') == 'developer')
|
||||
<li><a href="/modemobile"><i class="fa fa-h-square"></i></a></li>
|
||||
<li><a href="/modemobile"><i class="fa fa-h-square"></i>Tab Mode</a></li>
|
||||
<li><a href="/reportppds"><i class="fa fa-h-square"></i>SPV Verification</a></li>
|
||||
<li><a href="/pendaftaran"><i class="fa fa-h-square"></i>Registration</a></li>
|
||||
<li class="has-submenu">
|
||||
@@ -92,6 +92,7 @@
|
||||
<li><a href="/pasien"><i class="fa fa-wheelchair"></i>Patient</a></li>
|
||||
<li><a href="/report"><i class="fa fa-hospital-o"></i>Report</a></li>
|
||||
<li><a href="/biorepository"><i class="fa fa-archive"></i>Biorepository</a></li>
|
||||
<li><a href="/gudang"><i class="fa fa-cubes"></i>Gudang</a></li>
|
||||
<li><a href="/pengambilan"><i class="fa fa-stethoscope"></i>Pengambilan</a></li>
|
||||
<li class="has-submenu">
|
||||
<a href="#"><i class="fa fa-user-md"></i>Logbook</a>
|
||||
@@ -108,7 +109,6 @@
|
||||
<li><a href="/user">User Management</a></li>
|
||||
<li><a href="/template">Expertise Template</a></li>
|
||||
<li><a href="/sirab">Database Antibiotik</a></li>
|
||||
<li><a href="/gudang">Gudang</a></li>
|
||||
<li><a href="/backup">Backup</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
@@ -138,6 +138,7 @@
|
||||
</li>
|
||||
<li><a href="/pasien"><i class="fa fa-wheelchair"></i>Patient</a></li>
|
||||
<li><a href="/report"><i class="fa fa-hospital-o"></i>Report</a></li>
|
||||
<li><a href="/gudang"><i class="fa fa-cubes"></i>Gudang</a></li>
|
||||
<li><a href="/pengambilan"><i class="fa fa-stethoscope"></i>Pengambilan</a></li>
|
||||
<li class="has-submenu">
|
||||
<a href="#"><i class="fa fa-user-md"></i>Logbook</a>
|
||||
@@ -154,7 +155,6 @@
|
||||
<li><a href="/user">User Management</a></li>
|
||||
<li><a href="/template">Expertise Template</a></li>
|
||||
<li><a href="/sirab">Database Antibiotik</a></li>
|
||||
<li><a href="/gudang">Gudang</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
@elseif(Session::get('previlage') == 'ppds')
|
||||
@@ -183,6 +183,7 @@
|
||||
<li><a href="/poli"><i class="fa fa-hospital-o"></i>Room and Request List</a></li>
|
||||
<li><a href="/pasien"><i class="fa fa-wheelchair"></i>Patient</a></li>
|
||||
<li><a href="/report"><i class="fa fa-hospital-o"></i>Report</a></li>
|
||||
<li><a href="/gudang"><i class="fa fa-cubes"></i>Gudang</a></li>
|
||||
<li><a href="/pengambilan"><i class="fa fa-stethoscope"></i>Pengambilan</a></li>
|
||||
<li class="has-submenu">
|
||||
<a href="#"><i class="fa fa-medkit"></i>Settings</a>
|
||||
@@ -217,6 +218,7 @@
|
||||
<li><a href="/poli"><i class="fa fa-hospital-o"></i>Room and Request List</a></li>
|
||||
<li><a href="/pasien"><i class="fa fa-wheelchair"></i>Patient</a></li>
|
||||
<li><a href="/report"><i class="icon-book-open"></i>Report</a></li>
|
||||
<li><a href="/gudang"><i class="fa fa-cubes"></i>Gudang</a></li>
|
||||
<li><a href="/pengambilan"><i class="fa fa-stethoscope"></i>Pengambilan</a></li>
|
||||
<li><a href="/template"><i class="fa fa-medkit"></i>Database</a></li>
|
||||
@elseif(Session::get('previlage') == 'admin')
|
||||
@@ -226,7 +228,6 @@
|
||||
<li><a href="/user"><i class="icon-user"></i>User Management</a></li>
|
||||
<li><a href="/pasien"><i class="fa fa-wheelchair"></i>Pasien</a></li>
|
||||
<li><a href="/report"><i class="icon-book-open"></i>Laporan</a></li>
|
||||
<li><a href="/gudang"><i class="fa fa-home"></i>Gudang</a></li>
|
||||
@else
|
||||
<li><a href="/login"><i class="icon-user"></i>Login</a></li>
|
||||
@endif
|
||||
|
||||
@@ -12,6 +12,7 @@ use App\Http\Controllers\TemplateController;
|
||||
use App\Http\Controllers\LogbookController;
|
||||
use App\Http\Controllers\JsonTransferController;
|
||||
use App\Http\Controllers\BiorepositoryController;
|
||||
use App\Http\Controllers\GudangController;
|
||||
|
||||
Route::get('/', [FrontpageController::class, 'index']);
|
||||
|
||||
@@ -65,16 +66,16 @@ Route::group(['middleware' => 'project.ipg'], function() {
|
||||
Route::post('poli/updateruangan', [PoliController::class, 'updateRuangan'])->name('updateRuangan');
|
||||
Route::post('poli/deleteruangan', [PoliController::class, 'deleteRuangan'])->name('deleteRuangan');
|
||||
|
||||
Route::get('gudang', [PoliController::class, 'viewGudangIndex']);
|
||||
Route::get('biorepository', [BiorepositoryController::class, 'index'])->name('biorepository.index');
|
||||
Route::get('gudang', [GudangController::class, 'viewGudangIndex']);
|
||||
Route::post('biorepository/store-cabinet', [BiorepositoryController::class, 'storeCabinet'])->name('biorepository.storeCabinet');
|
||||
Route::post('biorepository/store-rack', [BiorepositoryController::class, 'storeRack'])->name('biorepository.storeRack');
|
||||
Route::post('biorepository/store-specimen', [BiorepositoryController::class, 'storeSpecimen'])->name('biorepository.storeSpecimen');
|
||||
Route::post('biorepository/delete-specimen/{id}', [BiorepositoryController::class, 'deleteSpecimen'])->name('biorepository.deleteSpecimen');
|
||||
Route::post('simbhp/exaddbarang', [PoliController::class, 'exAddbarang'])->name('exAddBarang');
|
||||
Route::post('simbhp/reportbhp', [PoliController::class, 'jsonReportbhp'])->name('reportBHP');
|
||||
Route::post('simbhp/kwitansi', [PoliController::class, 'exKwitansi'])->name('kwitansiBHP');
|
||||
Route::get('simbhp/rekapbhp', [PoliController::class, 'jsonRekapbhp'])->name('rekapBHP');
|
||||
Route::post('simbhp/exaddbarang', [GudangController::class, 'exAddbarang'])->name('exAddBarang');
|
||||
Route::post('simbhp/reportbhp', [GudangController::class, 'jsonReportbhp'])->name('reportBHP');
|
||||
Route::post('simbhp/kwitansi', [GudangController::class, 'exKwitansi'])->name('kwitansiBHP');
|
||||
Route::get('simbhp/rekapbhp', [GudangController::class, 'jsonRekapbhp'])->name('rekapBHP');
|
||||
|
||||
Route::get('dokter', [DokterController::class, 'index']);
|
||||
Route::get('reportppds', [DokterController::class, 'reportppds']);
|
||||
|
||||
Reference in New Issue
Block a user