filled('search')) { $query->where(function ($q) use ($request) { $q->where('judul', 'LIKE', "%{$request->search}%"); }); } if ($request->filled('date')) { $query->whereDate('created_at', '=', date('Y-m-d', strtotime($request->date))); } if ($request->filled('status')) { $query->where('status', '=', $request->status); } $tabel_aspirasi = $query->orderByRaw(" CASE WHEN status = 'Diproses' THEN 1 ELSE 2 END ")->orderBy('created_at', 'DESC')->paginate(9); $countDiproses = [ 'aspirasi' => DB::table('aspirasi')->where('status', 'Diproses')->count(), 'keluhan' => DB::table('keluhan')->where('status', 'Diproses')->count(), ]; return view('Aspirasi & Keluhan/Aspirasi', [ 'tabel_aspirasi' => $tabel_aspirasi, 'countDiproses' => $countDiproses ]); } public function detail($id) { $data = DB::table('aspirasi')->where('id', $id)->first(); if (!$data) { return redirect()->back()->with('error', 'Data tidak ditemukan'); } return view('Aspirasi & Keluhan/Detail Aspirasi', compact('data')); } public function edit($id) { $data = DB::table('aspirasi')->where('id', $id)->first(); if (!$data) { return redirect()->back()->with('error', 'Data tidak ditemukan'); } return view('Aspirasi & Keluhan/Form Aspirasi', compact('data')); } public function update(Request $request, $id) { $request->validate([ 'status' => 'required|in:Diproses,Ditolak,Selesai', 'file' => 'nullable|mimes:doc,docx,xls,xlsx,pdf|max:10240' ]); $data = DB::table('aspirasi')->where('id', $id)->first(); if (!$data) { return redirect()->back()->with('error', 'Data tidak ditemukan'); } $updateData = ['status' => $request->status]; if ($request->hasFile('file')) { $file = $request->file('file'); $fileName = 'Dokumen Aspirasi ' . $id . '.' . $file->getClientOriginalExtension(); $file->storeAs('File Aspirasi', $fileName, 'public'); $updateData['file_hasil'] = $fileName; } DB::table('aspirasi')->where('id', $id)->update($updateData); return redirect()->route('Aspirasi')->with('manage_success', true); } }