56 lines
1.5 KiB
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');
|
|
}
|
|
}
|