MIF_E31211972/app/Http/Controllers/BarangKeluarController.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');
}
}
}