diff --git a/app/Http/Controllers/superadmin/AdminManagementController.php b/app/Http/Controllers/superadmin/AdminManagementController.php index 1d22357..d4ad0cd 100644 --- a/app/Http/Controllers/superadmin/AdminManagementController.php +++ b/app/Http/Controllers/superadmin/AdminManagementController.php @@ -5,6 +5,7 @@ use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Models\User; +use App\Models\Booking; use App\Models\Venue; class AdminManagementController extends Controller @@ -77,4 +78,20 @@ public function store(Request $request) return redirect()->route('superadmin.admin.index') ->with('success', 'Admin berhasil ditambahkan!'); } + + public function destroy($id) +{ + // Temukan user dengan role admin + $admin = User::where('role', 'admin')->findOrFail($id); + + // Hapus semua bookings yang terkait dengan admin ini + Booking::where('user_id', $admin->id)->delete(); + + // Hapus admin + $admin->delete(); + + // Redirect dengan pesan sukses + return redirect()->route('superadmin.admin.index') + ->with('success', 'Admin berhasil dihapus beserta data booking yang terkait.'); +} } \ No newline at end of file diff --git a/app/Http/Controllers/superadmin/VenueManagementController.php b/app/Http/Controllers/superadmin/VenueManagementController.php index 6abfca9..a2fcda3 100644 --- a/app/Http/Controllers/superadmin/VenueManagementController.php +++ b/app/Http/Controllers/superadmin/VenueManagementController.php @@ -4,6 +4,8 @@ use App\Http\Controllers\Controller; use Illuminate\Http\Request; +use App\Models\User; +use App\Models\Booking; use App\Models\Venue; use Illuminate\Support\Facades\Storage; @@ -149,31 +151,38 @@ public function update(Request $request, $id) * @param int $id * @return \Illuminate\Http\Response */ - public function destroy($id) -{ - $venue = Venue::findOrFail($id); + public function destroy($id) + { + $venue = Venue::findOrFail($id); - // Hapus gambar venue jika ada - if ($venue->image && Storage::disk('public')->exists($venue->image)) { - Storage::disk('public')->delete($venue->image); + // Hapus admin yang memiliki venue_id sama + $admins = User::where('venue_id', $venue->id)->get(); + foreach ($admins as $admin) { + // Hapus semua bookings milik admin, jika ada + Booking::where('user_id', $admin->id)->delete(); + $admin->delete(); + } + + // Hapus gambar venue jika ada + if ($venue->image && Storage::disk('public')->exists($venue->image)) { + Storage::disk('public')->delete($venue->image); + } + + // Ambil semua meja yang ada di venue ini + $tables = $venue->tables; + + // Hapus semua bookings yang terkait dengan meja-meja ini + foreach ($tables as $table) { + $table->bookings()->delete(); // pastikan relasi bookings ada di model Table + } + + // Hapus semua meja dari venue + $venue->tables()->delete(); + + // Hapus venue-nya + $venue->delete(); + + return redirect()->route('superadmin.venue.index') + ->with('success', 'Venue dan semua data terkait berhasil dihapus!'); } - - // Ambil semua meja yang ada di venue ini - $tables = $venue->tables; - - // Hapus semua bookings yang terkait dengan meja-meja ini - foreach ($tables as $table) { - $table->bookings()->delete(); // pastikan relasi bookings ada di model Table - } - - // Hapus semua meja dari venue - $venue->tables()->delete(); - - // Hapus venue-nya - $venue->delete(); - - return redirect()->route('superadmin.venue.index') - ->with('success', 'Venue berhasil dihapus!'); -} - } \ No newline at end of file diff --git a/resources/views/superadmin/admin/index.blade.php b/resources/views/superadmin/admin/index.blade.php index e07e19d..ab944c3 100644 --- a/resources/views/superadmin/admin/index.blade.php +++ b/resources/views/superadmin/admin/index.blade.php @@ -127,10 +127,6 @@ class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full {{ $admin-> {{ $admin->created_at->format('d M Y') }}