NIM_E31222518/app/Http/Controllers/Admin/TransaksiController.php

56 lines
1.5 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Transaksi;
use Illuminate\Http\Request;
class TransaksiController extends Controller
{
public function __construct()
{
$this->middleware('auth');
$this->middleware(\App\Http\Middleware\CheckRole::class . ':admin');
}
public function index()
{
$transaksi = Transaksi::with(['user', 'pesanan'])->latest()->get();
return view('admin.transaksi.index', compact('transaksi'));
}
public function show(Transaksi $transaksi)
{
$transaksi->load(['user', 'pesanan']);
return view('admin.transaksi.show', compact('transaksi'));
}
public function updateStatus(Request $request, Transaksi $transaksi)
{
$request->validate([
'status' => 'required|in:pending,paid,completed,cancelled',
]);
$transaksi->update([
'status' => $request->status,
]);
// Jika transaksi selesai, update status pesanan juga
if ($request->status === 'completed') {
$transaksi->pesanan->update([
'status' => 'completed',
]);
}
// Jika transaksi dibatalkan, update status pesanan juga
if ($request->status === 'cancelled') {
$transaksi->pesanan->update([
'status' => 'cancelled',
]);
}
return redirect()->route('admin.transaksi.show', $transaksi)
->with('success', 'Status transaksi berhasil diperbarui');
}
}