diff --git a/app/Http/Controllers/admin/BookingsController.php b/app/Http/Controllers/admin/BookingsController.php index 004904f..d8a4a52 100644 --- a/app/Http/Controllers/admin/BookingsController.php +++ b/app/Http/Controllers/admin/BookingsController.php @@ -15,7 +15,15 @@ class BookingsController extends Controller { public function index(Request $request) { - $query = Booking::with(['table', 'user']); + // Ambil venue_id dari admin yang sedang login + // Sesuaikan dengan struktur database kamu: + $adminVenueId = auth()->user()->venue_id; // Asumsi admin punya kolom venue_id + + // Query booking dengan filter venue terlebih dahulu + $query = Booking::with(['table', 'user']) + ->whereHas('table', function ($q) use ($adminVenueId) { + $q->where('venue_id', $adminVenueId); + }); // Search functionality if ($request->has('search') && !empty($request->search)) { @@ -70,14 +78,30 @@ public function index(Request $request) public function show($id) { - $booking = Booking::with(['table', 'user'])->findOrFail($id); + // Pastikan booking yang dilihat adalah milik venue admin + $adminVenueId = auth()->user()->venue_id; + + $booking = Booking::with(['table', 'user']) + ->whereHas('table', function ($q) use ($adminVenueId) { + $q->where('venue_id', $adminVenueId); + }) + ->findOrFail($id); + return view('admin.bookings.show', compact('booking')); } public function edit($id) { - $booking = Booking::findOrFail($id); - $tables = Table::all(); + $adminVenueId = auth()->user()->venue_id; + + // Pastikan booking yang diedit adalah milik venue admin + $booking = Booking::whereHas('table', function ($q) use ($adminVenueId) { + $q->where('venue_id', $adminVenueId); + })->findOrFail($id); + + // Hanya tampilkan tables dari venue admin + $tables = Table::where('venue_id', $adminVenueId)->get(); + return view('admin.bookings.edit', compact('booking', 'tables')); } @@ -89,7 +113,18 @@ public function update(Request $request, $id) 'end_time' => 'required|date|after:start_time', ]); - $booking = Booking::findOrFail($id); + $adminVenueId = auth()->user()->venue_id; + + // Pastikan booking yang diupdate adalah milik venue admin + $booking = Booking::whereHas('table', function ($q) use ($adminVenueId) { + $q->where('venue_id', $adminVenueId); + })->findOrFail($id); + + // Validasi tambahan: pastikan table_id yang dipilih juga milik venue admin + $table = Table::where('id', $request->table_id) + ->where('venue_id', $adminVenueId) + ->firstOrFail(); + $booking->update($request->all()); return redirect()->route('admin.bookings.index') @@ -98,7 +133,12 @@ public function update(Request $request, $id) public function complete($id) { - $booking = Booking::findOrFail($id); + $adminVenueId = auth()->user()->venue_id; + + $booking = Booking::whereHas('table', function ($q) use ($adminVenueId) { + $q->where('venue_id', $adminVenueId); + })->findOrFail($id); + $booking->status = 'selesai'; $booking->save(); @@ -108,7 +148,12 @@ public function complete($id) public function cancel($id) { - $booking = Booking::findOrFail($id); + $adminVenueId = auth()->user()->venue_id; + + $booking = Booking::whereHas('table', function ($q) use ($adminVenueId) { + $q->where('venue_id', $adminVenueId); + })->findOrFail($id); + $booking->status = 'cancelled'; $booking->save(); @@ -118,7 +163,10 @@ public function cancel($id) public function export(Request $request) { + $adminVenueId = auth()->user()->venue_id; $filename = 'bookings-' . Carbon::now()->format('Y-m-d') . '.xlsx'; - return Excel::download(new BookingsExport($request), $filename); + + // Pass venue_id ke export class jika diperlukan + return Excel::download(new BookingsExport($request, $adminVenueId), $filename); } } \ No newline at end of file diff --git a/app/Http/Controllers/admin/TableController.php b/app/Http/Controllers/admin/TableController.php index f6bceba..d94723e 100644 --- a/app/Http/Controllers/admin/TableController.php +++ b/app/Http/Controllers/admin/TableController.php @@ -55,7 +55,7 @@ public function store(Request $request) $validator = Validator::make($request->all(), [ 'name' => 'required|string|max:255', 'brand' => 'required|string|max:255', - 'status' => 'required|in:Available,Booked,Unavailable', + // 'status' => 'required|in:Available,Booked,Unavailable', 'price_per_hour' => 'required|numeric|min:0', ]); @@ -68,7 +68,7 @@ public function store(Request $request) Table::create([ 'name' => $request->name, 'brand' => $request->brand, - 'status' => $request->status, + // 'status' => $request->status, 'price_per_hour' => $request->price_per_hour, 'venue_id' => auth()->user()->venue_id, ]); @@ -101,7 +101,7 @@ public function update(Request $request, $id) $validator = Validator::make($request->all(), [ 'name' => 'required|string|max:255', 'brand' => 'required|string|max:255', - 'status' => 'required|in:Available,Booked,Unavailable', + // 'status' => 'required|in:Available,Booked,Unavailable', 'price_per_hour' => 'required|numeric|min:0', ]); @@ -116,7 +116,7 @@ public function update(Request $request, $id) $table->update([ 'name' => $request->name, 'brand' => $request->brand, - 'status' => $request->status, + // 'status' => $request->status, 'price_per_hour' => $request->price_per_hour, ]); diff --git a/app/Http/Controllers/pages/BookingHistoryController.php b/app/Http/Controllers/pages/BookingHistoryController.php index dcec0b8..63716e0 100644 --- a/app/Http/Controllers/pages/BookingHistoryController.php +++ b/app/Http/Controllers/pages/BookingHistoryController.php @@ -12,7 +12,7 @@ public function index() { $bookings = Booking::where('user_id', Auth::id()) ->with(['table.venue']) - ->orderBy('start_time', 'desc') + ->orderBy('created_at', 'desc') ->paginate(10); return view('pages.booking-history', compact('bookings')); diff --git a/resources/views/admin/bookings/index.blade.php b/resources/views/admin/bookings/index.blade.php index 62950e8..61ca856 100644 --- a/resources/views/admin/bookings/index.blade.php +++ b/resources/views/admin/bookings/index.blade.php @@ -33,7 +33,7 @@ class="form-input w-full rounded-md border-gray-300 focus:border-blue-500 focus: -
{{ $message }}
+{{ $message }}
@enderror -${message}
-${message}
+${message}
-${message}
+Kelola admin untuk setiap venue
+Kelola admin untuk setiap venue
+{{ session('success') }}
-{{ session('success') }}
+