8. MEMBUAT STOK PRODUK
1. BUAT DATABASE = PRODUKS
2. TRANSAKSIS
3. BUAT VIEW TAMPIL DATA PRODUK & MODAL TAMBAH DATA PRODUK
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<a href="" style="margin-left: 8px" data-toggle="modal"
data-target="#exampleModal">
<i class="fa fa-plus"></i> Tambah Produk
</a>
<div class="card">
<div class="card-header" align="center">Data Produk</div>
<div class="card-body">
<table class="table">
<thead class="thead-light">
<tr>
<th scope="col">No</th>
<th scope="col">Kode Barang</th>
<th scope="col">Nama Barang</th>
<th scope="col">Harga Satuan</th>
<th>Pilihan</th>
</tr>
</thead>
<tbody>
@foreach ($produk as $pro)
<tr>
<td>{{$loop->iteration}}</td>
<td>{{$pro->kode_brg}}</td>
<td>{{$pro->nama_brg}}</td>
<td>Rp {{ number_format($pro->harga) }}</td>
<td>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog"
aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Tambah Data Produk</h5>
<button type="button" class="close" data-dismiss="modal"
aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
@if(count($errors) > 0)
<div class="alert alert-danger">
@foreach ($errors->all() as $error)
{{ $error }} <br/>
@endforeach
</div>
@endif
<form class="multisteps-form__form"role="form"
method="post" action="{{ url ('produk-tambah/store')}}"
enctype="multipart/form-data">
@csrf
<div class="form-row mt-4">
<div class="col-12 col-sm-4">
<label>Kode Barang</label>
<input class="multisteps-form__input form-control"
name="kode_brg" type="text"
placeholder="Kode Barang"/>
</div>
<div class="col-12 col-sm-8">
<label>Nama Barang</label>
<input class="multisteps-form__input form-control"
name="nama_brg" type="text"
placeholder="Masukan Nama Barang"/>
</div>
</div>
<div class="form-row mt-4">
<div class="col-12 col-sm-12">
<label>Harga</label>
<input class="multisteps-form__input form-control"
name="harga" type="text"
placeholder="Harga Barang"/>
</div>
<div class="form-row mt-4 ml-1">
<input type="submit" class="btn btn-success"
value="Simpan">
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<!--stop modal-->
</div>
</div>
</div>
@endsection
3. BUAT MODEL PRODUK
protected $table = "produks";
protected $fillable =['kode_brg','nama_brg','harga'];
4. CONTOROLLER TAMPIL DATA PRODUK
public function index()
{
$produk = \App\Produk::get();
return view('produk',compact('produk'));
}
5. CONTROLLER TAMBAH DATA PRODUK
public function store(Request $request)
{
Produk::create([
'kode_brg' => $request->kode_brg,
'nama_brg' => $request->nama_brg,
'harga' => $request->harga,
]);
return redirect()->back();
}
NOTE ; UNTUK TAMBAH PRODUK BLM DI VALIDATE
6. ROUTE WEB.PHP
//produk
Route::get('/produk', 'ProdukController@index');
Route::post('/produk-tambah/store', 'ProdukController@store');
---------------------------------------------------------
LANJUT KE VIEW TRANSAKSI
7. BUAT CONTROLLER TRANSAKSI TAMPIL DATA TRANSAKSI
use App\Produk;
// carbon API FORMAT TANGGAL
use Carbon\Carbon;
use App\Transaksi;
-
public function index()
{
//tampil data transaksi
$transaksi['parse'] = Transaksi::get();
//format tgl API CARBON
$tgl['now'] = Carbon::now()->format('Y-m-d');
//tampil data produk
$data['produks'] = Produk::get();
return view('transaksi',compact('data','transaksi','tgl'));
}
8. VIEW TRANSAKSI tampil riwayat & modal tambah transaksi baru
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<a href="" style="margin-left: 8px" data-toggle="modal"
data-target="#transaksi">
<i class="fa fa-plus"></i> Transaksi Baru
</a>
<div class="card">
<div class="card-header">Transaksi</div>
<div class="card-body">
<table class="table">
<thead class="thead-light">
<tr>
<th scope="col">No</th>
<th scope="col">Tanggal</th>
<th scope="col">Kode</th>
<th scope="col">Nama Barang</th>
<th scope="col">Status</th>
<th scope="col">Jumlah</th>
<th scope="col">Pilihan</th>
</tr>
</thead>
<tbody>
@foreach ($transaksi['parse'] as $tr)
<tr>
<th scope="row">{{$loop->iteration}}</th>
<td><?= Date('d-m-Y', strtotime
($tr->tgl ??'' ));?></td>
<td>{{$tr->produk->kode_brg}}</td>
<td>{{$tr->produk->nama_brg}}</td>
<td>
@if($tr->tipe == 'keluar')
<span class="badge badge-danger">
{{$tr->tipe == 'keluar' ? 'Keluar':'Masuk'}}
</span>
@else
<span class="badge badge-success">
{{$tr->tipe == 'keluar' ? 'Keluar':'Masuk'}}
</span> @endif
</td>
<td>
@if($tr->tipe == 'keluar')
{{$tr->jumlah*-1}}
@else
{{$tr->jumlah}}@endif
</td>
<td>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<!-- Modal -->
<div class="modal fade" id="transaksi" tabindex="-1" role="dialog"
aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">
Tambah Transaksi
</h5>
<button type="button" class="close" data-dismiss="modal"
aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
@if(count($errors) > 0)
<div class="alert alert-danger">
@foreach ($errors->all() as $error)
{{ $error }} <br/>
@endforeach
</div>
@endif
<form class="multisteps-form__form"role="form" method="post"
action="{{ url ('transaksi-stok/store')}}"
enctype="multipart/form-data">
@csrf
<div class="form-row mt-4">
<div class="col-12 col-sm-6">
<label>Tanggal</label>
<input id="datepicker" type="date" name="tgl"
class="form-control"
value="{{$tgl['now']}}" required disabled>
<input hidden id="datepicker" type="date" name="tgl"
class="form-control"
value="{{$tgl['now']}}" required>
</div>
<div class="col-12 col-sm-6">
<label>Keluar/Masuk</label>
<select class="form-control" name="tipe" required>
<option value="">-- Pilih --</option>
<option value="masuk">Masuk</option>
<option value="keluar">Keluar</option>
</select>
</div>
</div>
<div class="form-row mt-4">
<div class="col-12 col-sm-8">
<label>Produk</label>
<select class="form-control" name="produk_id[]"
required>
<option value="">-- Pilih --</option>
@foreach ($data['produks'] as $opt)
<option value="{{$opt->id}}">
{{$opt->nama_brg}}</option>
@endforeach
</select>
</div>
<div class="col-12 col-sm-4">
<label>Jumlah</label>
<input class="multisteps-form__input form-control"
name="jumlah[]" type="number"/>
</div>
</div>
<div class="form-row mt-4">
<div class="form-row mt-4 ml-1">
<input type="submit" class="btn btn-success"
value="Simpan">
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<!--stop modal-->
</div>
</div>
</div>
</div>
@endsection
9. model transaksi
protected $table = "transaksis";
protected $fillable = ['produk_id','jumlah','tgl'];
//RELASI KE DATA PRODUK
public function produk()
{
return $this->belongsTo('App\Produk', 'produk_id');
}
public function jumlah_stok()
{
//laporan stok // HITUNG JUMLAH STOK
$sql = DB::table('transaksis')->select(DB::raw('SUM(jumlah) as jumlah_stok'))
->where('produk_id', $this->produk_id)->first();
return $sql->jumlah_stok;
}
10. route transaksi
//kluar masuk//transaksi
Route::get('/transaksi', 'TransaksiController@index');
Route::post('/transaksi-stok/store', 'TransaksiController@store');
11. view laporan
<table class="table">
<thead class="thead-light">
<tr>
<th scope="col">No</th>
<th scope="col">Kode</th>
<th scope="col">Nama Barang</th>
<th scope="col">Harga Satuan</th>
<th scope="col">Total Stok</th>
</tr>
</thead>
<tbody>
@foreach ($data['parse'] as $lap)
<tr>
<th scope="row">{{$loop->iteration}}</th>
<td>{{$lap[0]->produk->kode_brg}}</td>
<td>{{$lap[0]->produk->nama_brg}}</td>
<td>Rp {{ number_format($lap[0]->produk->harga) }}</td>
<td>{{$lap[0]->jumlah_stok()}}</td>
</tr>
@endforeach
</tbody>
</table>
12. controller laporan
public function index()
{
$total = Transaksi::get();
$data['parse'] = $total->groupBy('produk_id');
return view('laporan-stok',compact('data'));
}
13. route laporan
//laporan
Route::get('/laporan-stok', 'LaporanController@index');
14. INSTAL API CARBON
KUNJUNGI https://carbon.nesbot.com/#gettingstarted
INSTAL DI TERMINAL ATAU GIT composer require nesbot/carbon
0 Response to "8. MEMBUAT STOK PRODUK"
Post a Comment