191 lines
5.8 KiB
PHP
191 lines
5.8 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Kopi;
|
|
use App\Models\Suplier;
|
|
use App\Models\Customer;
|
|
use App\Models\BarangKeluar;
|
|
use Illuminate\Http\Request;
|
|
use App\Http\Requests\UpdateBarangKeluarRequest;
|
|
|
|
class BarangKeluarController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
*/
|
|
|
|
public function getKode()
|
|
{
|
|
$produk = BarangKeluar::latest()->first();
|
|
if ($produk == null) {
|
|
$produk = 0;
|
|
} else {
|
|
$produk = $produk->id;
|
|
}
|
|
$produk++;
|
|
$huruf = "KJ";
|
|
$tanggal = date('ymd');
|
|
$kodeproduk = $huruf . $tanggal . sprintf("%04s", $produk);
|
|
return $kodeproduk;
|
|
}
|
|
|
|
|
|
public function cetakstrukbk($id){
|
|
|
|
$data = BarangKeluar::where('id', $id)->get();
|
|
$kodebarang = $data[0]->kode_barang;
|
|
$barcode = \DNS1D::getBarcodePNG($kodebarang, 'C39');
|
|
return view('admin.pages.barang.cetakstrukbk', compact('data', 'barcode'));
|
|
}
|
|
|
|
|
|
public function cetaklaporangbarangkeluar()
|
|
{
|
|
|
|
$data = BarangKeluar::all();
|
|
$viewData = [
|
|
'barangkeluar' => $data
|
|
];
|
|
$html = view('admin.pages.barang.cetakpdfbarangkeluar', $viewData)->render();
|
|
$mpdf = new \Mpdf\Mpdf(['orientation' => 'L']);
|
|
$mpdf->WriteHTML($html);
|
|
$mpdf->Output('laporan-barang-keluar.pdf', 'I');
|
|
return view('admin.pages.barang.cetakpdfbarangkeluar', $viewData);
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
$data = BarangKeluar::orderBy('created_at', 'desc')->get();
|
|
return view('admin.pages.barang.barangkeluar', compact('data'));
|
|
}
|
|
|
|
/**
|
|
* Show the form for creating a new resource.
|
|
*/
|
|
public function create()
|
|
{
|
|
$kopi = Kopi::select('id', 'nama_kopi', 'stok', 'harga_jual')->get();
|
|
$customer = Customer::all();
|
|
return view('admin.pages.barang.createbarangkeluar', compact('kopi', 'customer'));
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
*/
|
|
public function store(Request $request)
|
|
{
|
|
// dd($request);
|
|
$validateData = $request->validate([
|
|
'id_customer' => 'required',
|
|
'id_kopi' => 'required',
|
|
'jenis_kopi' => 'required',
|
|
'harga_kopi' => 'required',
|
|
'jumlah' => 'required|numeric',
|
|
'total_harga' => 'required|numeric',
|
|
'gambardp' => 'image|file',
|
|
'sisa_bayar' => 'required|numeric',
|
|
]);
|
|
|
|
if ($request->dp == null) {
|
|
$validateData['dp'] = 0;
|
|
}else {
|
|
$validateData['dp'] = $request->dp;
|
|
}
|
|
|
|
// Remove currency format
|
|
$validateData['harga_kopi'] = preg_replace('/[^0-9]/', '', $validateData['harga_kopi']);
|
|
$validateData['total_harga'] = preg_replace('/[^0-9]/', '', $validateData['total_harga']);
|
|
$validateData['dp'] = preg_replace('/[^0-9]/', '', $validateData['dp']);
|
|
$validateData['sisa_bayar'] = preg_replace('/[^0-9]/', '', $validateData['sisa_bayar']);
|
|
|
|
$supplier = Customer::where('id', $request->id_customer)->pluck('nama_customer')->first();
|
|
$kopi = Kopi::where('id', $request->id_kopi)->first();
|
|
|
|
$validateData['kode_keluar'] = $this->getKode();
|
|
$validateData['nama_customer'] = $supplier;
|
|
$validateData['id_user'] = 1;
|
|
$validateData['nama_user'] = 'admin';
|
|
$validateData['nama_kopi'] = $kopi->nama_kopi;
|
|
$validateData['status_pembayaran'] = 'belum lunas';
|
|
|
|
if ($validateData['sisa_bayar'] == 0) {
|
|
$validateData['status_pembayaran'] = 'lunas';
|
|
}
|
|
|
|
$validateData['status_transaksi'] = 'sedang diproses';
|
|
$validateData['tanggal_transaksi'] = date('Ymd');
|
|
|
|
$stokKopi = $kopi->stok;
|
|
if ($stokKopi < $validateData['jumlah']) {
|
|
return "<script>alert('Stok kopi kurang dari jumlah pembelian')</script>";
|
|
} else {
|
|
|
|
if ($request->file('gambardp')) {
|
|
$validateData['gambardp'] = $request->file('gambardp')->store('barangkeluardp');
|
|
}
|
|
$stokKopi -= $validateData['jumlah'];
|
|
Kopi::where('id', $kopi->id)->update(['stok' => $stokKopi]);
|
|
BarangKeluar::create($validateData);
|
|
return redirect('/barangkeluar')->with('success', 'data berhasil ditambahkan');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Display the specified resource.
|
|
*/
|
|
public function show($id)
|
|
{
|
|
$data = BarangKeluar::find($id);
|
|
return view('admin.pages.barang.detailbarangkeluar', compact('data'));
|
|
}
|
|
|
|
/**
|
|
* Show the form for editing the specified resource.
|
|
*/
|
|
public function edit(BarangKeluar $barangKeluar)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Update the specified resource in storage.
|
|
*/
|
|
public function update(UpdateBarangKeluarRequest $request, BarangKeluar $barangKeluar)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Remove the specified resource from storage.
|
|
*/
|
|
public function destroy( string $id)
|
|
{
|
|
BarangKeluar::destroy($id);
|
|
return redirect('/barangkeluar')->with('delete', 'data berhasil dihapus');
|
|
}
|
|
|
|
public function ubahstatus(Request $request, $id){
|
|
$check = BarangKeluar::where('id', $id)->where('status_transaksi', '!=', 'selesai sudah diambil')->first();
|
|
if ($check) {
|
|
if ($request->file('gambarpelunasan')) {
|
|
$validateData['gambarpelunasan'] = $request->file('gambarpelunasan')->store('barangkeluarpelunasan');
|
|
}
|
|
BarangKeluar::where('id', $id)->update([
|
|
'status_transaksi' => $request->status_transaksi,
|
|
'status_pembayaran' => 'lunas',
|
|
// 'status_pembayaran' => $check->total_harga
|
|
'sisa_bayar' => 0,
|
|
'gambarpelunasan' => $validateData['gambarpelunasan'],
|
|
'tanggal_selesai' => date('Ymd')
|
|
]);
|
|
|
|
$redirect = '/barangkeluar/'. $check->id;
|
|
return redirect($redirect);
|
|
}else{
|
|
dd('gagal ubah status');
|
|
}
|
|
}
|
|
|
|
}
|