Files
jouwdriedee/app/Http/Controllers/Admin/OrderController.php
T
2026-10-31 23:13:42 +01:00

55 lines
1.4 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Order;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;
class OrderController extends Controller
{
/**
* Display a listing of orders.
*/
public function index(Request $request): View
{
$query = Order::with('items')->latest();
if ($request->filled('status')) {
$query->where('status', $request->input('status'));
}
$orders = $query->paginate(20)->withQueryString();
return view('admin.orders.index', compact('orders'));
}
/**
* Display order details.
*/
public function show(Order $order): View
{
$order->load('items.product');
return view('admin.orders.show', compact('order'));
}
/**
* Update order status.
*/
public function updateStatus(Request $request, Order $order): RedirectResponse
{
$validated = $request->validate([
'status' => 'required|string|in:pending,processing,printed,shipped,completed,cancelled',
]);
$order->update(['status' => $validated['status']]);
return redirect()->route('admin.orders.show', $order)
->with('success', "Bestelling #{$order->order_number} status is gewijzigd naar '{$validated['status']}'!");
}
}