id) ->where('status', 'diajukan') ->orderBy('created_at', 'desc') ->get(); return view('rt.review-rekap.index', compact('rekaps')); } // Lihat detail isi rekap sebelum setuju/tolak public function show($id) { $rt = Auth::user(); $rekap = RekapIuran::where('id', $id) ->where('rt_id', $rt->id) ->with('iurans.penghuni', 'bendahara') ->firstOrFail(); return view('rt.review-rekap.show', compact('rekap')); } // RT setujui -> semua iuran di rekap ini otomatis jadi 'lunas' public function setujui($id) { $rt = Auth::user(); $rekap = RekapIuran::where('id', $id) ->where('rt_id', $rt->id) ->where('status', 'diajukan') ->firstOrFail(); $rekap->update(['status' => 'disetujui']); $rekap->iurans()->update([ 'status' => 'lunas', 'tanggal_bayar' => now(), ]); return redirect()->route('rt.review-rekap.index')->with('success', 'Rekap disetujui, semua iuran di dalamnya jadi lunas.'); } // RT tolak -> rekap_id dilepas dari semua iuran, supaya bisa direkap ulang public function tolak(Request $request, $id) { $rt = Auth::user(); $request->validate([ 'catatan_rt' => 'required|string', ]); $rekap = RekapIuran::where('id', $id) ->where('rt_id', $rt->id) ->where('status', 'diajukan') ->firstOrFail(); // Lepas rekap_id dari semua iuran di dalamnya $rekap->iurans()->update(['rekap_id' => null]); $rekap->update([ 'status' => 'ditolak', 'catatan_rt' => $request->catatan_rt, ]); return redirect()->route('rt.review-rekap.index')->with('success', 'Rekap ditolak, iuran dikembalikan untuk direkap ulang.'); } }