Modifikasi logika hapus admin dan hapus venue
This commit is contained in:
parent
ca61a6b0fe
commit
f3020d2089
|
@ -5,6 +5,7 @@
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
use App\Models\Booking;
|
||||||
use App\Models\Venue;
|
use App\Models\Venue;
|
||||||
|
|
||||||
class AdminManagementController extends Controller
|
class AdminManagementController extends Controller
|
||||||
|
@ -77,4 +78,20 @@ public function store(Request $request)
|
||||||
return redirect()->route('superadmin.admin.index')
|
return redirect()->route('superadmin.admin.index')
|
||||||
->with('success', 'Admin berhasil ditambahkan!');
|
->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.');
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -4,6 +4,8 @@
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use App\Models\Booking;
|
||||||
use App\Models\Venue;
|
use App\Models\Venue;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
|
||||||
|
@ -149,31 +151,38 @@ public function update(Request $request, $id)
|
||||||
* @param int $id
|
* @param int $id
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function destroy($id)
|
public function destroy($id)
|
||||||
{
|
{
|
||||||
$venue = Venue::findOrFail($id);
|
$venue = Venue::findOrFail($id);
|
||||||
|
|
||||||
// Hapus gambar venue jika ada
|
// Hapus admin yang memiliki venue_id sama
|
||||||
if ($venue->image && Storage::disk('public')->exists($venue->image)) {
|
$admins = User::where('venue_id', $venue->id)->get();
|
||||||
Storage::disk('public')->delete($venue->image);
|
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!');
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -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') }}
|
{{ $admin->created_at->format('d M Y') }}
|
||||||
</td>
|
</td>
|
||||||
<td class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
|
<td class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
|
||||||
<a href="{{ route('superadmin.admin.edit', $admin->id) }}"
|
|
||||||
class="text-blue-600 hover:text-blue-800 mr-3">
|
|
||||||
<i class="fas fa-edit"></i>
|
|
||||||
</a>
|
|
||||||
<button type="button" data-admin-id="{{ $admin->id }}" data-admin-name="{{ $admin->name }}"
|
<button type="button" data-admin-id="{{ $admin->id }}" data-admin-name="{{ $admin->name }}"
|
||||||
class="text-red-600 hover:text-red-800 delete-admin-btn">
|
class="text-red-600 hover:text-red-800 delete-admin-btn">
|
||||||
<i class="fas fa-trash-alt"></i>
|
<i class="fas fa-trash-alt"></i>
|
||||||
|
|
Loading…
Reference in New Issue