From 740623cf365b1a9ad3fa1e6e217d595a0af987dc Mon Sep 17 00:00:00 2001 From: alfinfadli16 Date: Fri, 13 Jun 2025 07:35:56 +0700 Subject: [PATCH] fix bug 2 --- app/Http/Controllers/PaketController.php | 55 +++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/PaketController.php b/app/Http/Controllers/PaketController.php index 995ca55..9fae0df 100644 --- a/app/Http/Controllers/PaketController.php +++ b/app/Http/Controllers/PaketController.php @@ -90,6 +90,28 @@ public function store(Request $request) } } + // Tambahkan detail_barang (array barang yang dipilih) + $detailBarang = []; + if ($request->has('barang_ids')) { + foreach ($request->barang_ids as $barangId) { + $jumlah = $request->input('jumlah_' . $barangId, 1); + $barang = StockModel::find($barangId); + if ($barang) { + $detailBarang[] = [ + 'id' => $barang->id, + 'nama_barang' => $barang->nama_barang, + 'kode_barang' => $barang->kode_barang, + 'kategori' => $barang->kategori, + 'harga_sewa' => $barang->harga_sewa, + 'jumlah' => $jumlah, + 'deskripsi' => $barang->deskripsi, + ]; + } + } + $paket->detail_barang = $detailBarang; + $paket->save(); + } + DB::commit(); return redirect()->route('paket.index')->with('success', 'Paket berhasil ditambahkan'); } catch (\Exception $e) { @@ -164,6 +186,28 @@ public function update(Request $request, $id) } } + // Update detail_barang (array barang yang dipilih) + $detailBarang = []; + if ($request->has('barang_ids')) { + foreach ($request->barang_ids as $barangId) { + $jumlah = $request->input('jumlah_' . $barangId, 1); + $barang = StockModel::find($barangId); + if ($barang) { + $detailBarang[] = [ + 'id' => $barang->id, + 'nama_barang' => $barang->nama_barang, + 'kode_barang' => $barang->kode_barang, + 'kategori' => $barang->kategori, + 'harga_sewa' => $barang->harga_sewa, + 'jumlah' => $jumlah, + 'deskripsi' => $barang->deskripsi, + ]; + } + } + $paket->detail_barang = $detailBarang; + $paket->save(); + } + DB::commit(); return redirect()->route('paket')->with('success', 'Paket berhasil diperbarui!'); @@ -407,6 +451,15 @@ public function detail($id) try { $paket = Paket::findOrFail($id); $detailBarang = $paket->detail_barang ?? []; + $barangs = []; + foreach ($detailBarang as $barang) { + $barangs[] = [ + 'nama_barang' => $barang['nama_barang'] ?? '', + 'pivot' => [ + 'jumlah' => $barang['jumlah'] ?? 0 + ] + ]; + } return response()->json([ 'id' => $paket->id, 'nama_paket' => $paket->nama_paket, @@ -416,7 +469,7 @@ public function detail($id) 'minimum_order' => $paket->minimum_order, 'keterangan' => $paket->keterangan, 'image' => $paket->image, - 'barangs' => $detailBarang + 'barangs' => $barangs ]); } catch (\Exception $e) { return response()->json(['error' => 'Paket tidak ditemukan'], 404);