From 865faec964b58b370c283bebb51c8f2eaca5460f Mon Sep 17 00:00:00 2001 From: mikhailkusuma Date: Thu, 1 Feb 2024 22:07:48 +0700 Subject: [PATCH] Add: UpdateMenu Refactor: Paket Irit (Transaksi) --- app/Http/Controllers/Kasir/Menu.php | 118 +++++++++++++- .../views/pages/Kasir/transaksi.blade.php | 23 +++ resources/views/pages/Menu/index.blade.php | 152 +++++++++++++----- 3 files changed, 251 insertions(+), 42 deletions(-) diff --git a/app/Http/Controllers/Kasir/Menu.php b/app/Http/Controllers/Kasir/Menu.php index 3ad368b..8842dc2 100644 --- a/app/Http/Controllers/Kasir/Menu.php +++ b/app/Http/Controllers/Kasir/Menu.php @@ -5,28 +5,35 @@ namespace App\Http\Controllers\Kasir; use App\Http\Controllers\Controller; use App\Models\KategoriProduk; use App\Models\KelompokKategori; +use App\Models\KelompokKategoriPivot; use App\Models\Pesanan; use App\Models\Produk; +use Carbon\Carbon; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Redirect; +use Illuminate\Support\Facades\Session; +use Illuminate\Support\Facades\Validator; class Menu extends Controller { public function index() { + // return $data = KelompokKategoriPivot::with(['kelompokKategori', 'produk'])->first(); $kategori_produks = KategoriProduk::get(); return view('pages.Menu.index', compact('kategori_produks')); } public function kelompokKategori($id) { - $kelompok_kategoris = KelompokKategori::where('kategori_produk_id', $id)->first(); + $kelompok_kategoris = KelompokKategori::where('kategori_produk_id', $id)->get(); return $kelompok_kategoris; } public function getDataMenu() { - $data = Produk::with(['kategori_produk'])->get(); + // $data = Produk::with(['kategori_produk'])->get(); + $data = KelompokKategoriPivot::with(['kelompokKategori', 'produk'])->get(); $nomor = 1; return $datatables = datatables() @@ -34,18 +41,117 @@ class Menu extends Controller ->addColumn('nomor', function ($data) use (&$nomor) { return $nomor++; }) + ->addColumn('kode_produk', function ($data) { + return $data->produk->kode_produk; + }) + ->addColumn('nama_produk', function ($data) { + return $data->produk->nama_produk; + }) + ->addColumn('harga_produk', function ($data) { + return $data->produk->harga_produk; + }) + ->addColumn('nama_kelompok_kategori', function ($data) { + return $data->kelompokKategori->nama_kelompok_kategori; + }) ->addColumn('kategori_produk', function ($data) { - return $data->kategori_produk->nama_kategori_produk; + return $data->produk->kategori_produk->nama_kategori_produk; }) ->addColumn('ubah', function ($data) { return '
- + + Edit +
'; }) - ->rawColumns(['nomor', 'kode_produk', 'ubah']) + ->rawColumns(['nomor', 'ubah']) ->make(true); } - public function store() { + // Tambah Menu + public function store(Request $request) { + // validation + $rules = array( + 'kategori_produk' => 'required', + 'kelompok_produk' => 'required', + 'kode_produk' => 'required', + 'nama_produk' => 'required', + 'harga_produk' => 'required', + 'tersedia' => 'required', + 'deskripsi_produk' => 'required', + ); + $validator = Validator::make($request->all(), $rules); + + // check validation + if ($validator->fails()) { + // If validation fails, return with errors + return response()->json(['errors' => $validator->errors()], 422); + } else { + // create product + $produk = Produk::create([ + 'kategori_produk_id' => $request->kategori_produk, + 'kode_produk' => $request->kode_produk, + 'nama_produk' => $request->nama_produk, + 'harga_produk' => $request->harga_produk, + 'tersedia' => $request->tersedia, + 'deskripsi_produk' => $request->deskripsi_produk, + 'created_at' => Carbon::now() + ]); + + $pivot_produk = KelompokKategoriPivot::create([ + 'kelompok_kategori_id' => $request->kelompok_produk, + 'produk_id' => $produk->id, + 'created_at' => Carbon::now() + ]); + + // Return a success response + return response()->json(['message' => 'Data created successfully']); + } + } + + public function show($id) { + $data = KelompokKategoriPivot::with(['kelompokKategori', 'produk'])->findOrFail($id); + return response()->json($data); + } + + // Ubah Menu + public function update(Request $request, $id) { + // validation + $rules = array( + 'kategori_produk' => 'required', + 'kelompok_produk' => 'required', + 'kode_produk' => 'required', + 'nama_produk' => 'required', + 'harga_produk' => 'required', + 'tersedia' => 'required', + 'deskripsi_produk' => 'required', + ); + $validator = Validator::make($request->all(), $rules); + + // check validation + if ($validator->fails()) { + // If validation fails, return with errors + return response()->json(['errors' => $validator->errors()], 422); + } else { + $pivot = KelompokKategoriPivot::findOrFail($id); + $produk = Produk::find($pivot->produk_id); + + // update pivot produk + $pivot->update([ + 'kelompok_ketegori_id' => $request->kelompok_produk, + ]); + + // update produk + $produk->update([ + 'kategori_produk_id' => $request->kategori_produk, + 'kode_produk' => $request->kode_produk, + 'nama_produk' => $request->nama_produk, + 'harga_produk' => $request->harga_produk, + 'tersedia' => $request->tersedia, + 'deskripsi_produk' => $request->deskripsi_produk, + ]); + + // Return a success response + return response()->json(['message' => 'Data created successfully']); + } } } diff --git a/resources/views/pages/Kasir/transaksi.blade.php b/resources/views/pages/Kasir/transaksi.blade.php index 3f1364b..6afd2ad 100644 --- a/resources/views/pages/Kasir/transaksi.blade.php +++ b/resources/views/pages/Kasir/transaksi.blade.php @@ -337,6 +337,28 @@ @endif @endif @else + @if ($kelompokKategoriPivot->kelompok_kategori_id == 2) +
+
+
+
+ {{ $kelompokKategoriPivot->produk->nama_produk ?? '' }} +
+
+
+
+
+
+ {{ convert_to_rupiah($kelompokKategoriPivot->produk->harga_produk) }} +
+ +
+
+
+
+
+ @else
@@ -364,6 +386,7 @@
+ @endif @endif @endforeach @endif diff --git a/resources/views/pages/Menu/index.blade.php b/resources/views/pages/Menu/index.blade.php index de80739..a347567 100644 --- a/resources/views/pages/Menu/index.blade.php +++ b/resources/views/pages/Menu/index.blade.php @@ -29,7 +29,7 @@

Daftar Menu

-
@@ -46,6 +46,7 @@ Nama Produk Harga Produk Kategori Produk + Kelompok Kategori @@ -57,20 +58,21 @@ -