middleware('auth'); $this->middleware(\App\Http\Middleware\CheckRole::class . ':admin'); } public function index() { $query = Pesanan::with(['user', 'barang']); // Filter berdasarkan tanggal if (request('start_date')) { $query->whereDate('created_at', '>=', request('start_date')); } if (request('end_date')) { $query->whereDate('created_at', '<=', request('end_date')); } // Filter berdasarkan status if (request('status')) { $query->where('status', request('status')); } $pesanan = $query->latest()->paginate(10); return view('admin.pesanan.index', compact('pesanan')); } public function show(Pesanan $pesanan) { $pesanan->load(['user', 'barang']); return view('admin.pesanan.show', compact('pesanan')); } public function updateStatus(Request $request, Pesanan $pesanan) { $request->validate([ 'status' => 'required|in:pending,diproses,dikirim,selesai,dibatalkan', ]); $pesanan->update([ 'status' => $request->status, ]); return redirect()->route('admin.pesanan.show', $pesanan) ->with('success', 'Status pesanan berhasil diperbarui'); } public function cetakResi(Pesanan $pesanan) { $pdf = PDF::loadView('admin.pesanan.resi', compact('pesanan')); return $pdf->stream('resi-' . $pesanan->id . '.pdf'); } }