latest()->paginate(10); return view('pembayarans.index', compact('pembayarans')); } /** * Show the form for creating a new resource. */ public function create() { $santris = Santri::all(); $kelas = Kelas::all(); return view('pembayarans.create', compact('santris', 'kelas')); } /** * Store a newly created resource in storage. */ public function store(Request $request) { $validated = $request->validate([ 'santri_id' => 'required|exists:santris,id', 'kelas_id' => 'required|exists:kelas,id', 'tanggal' => 'required|date', 'jenis_pembayaran' => 'required|string', 'jumlah' => 'required|integer|min:0', 'keterangan' => 'nullable|string', 'status' => 'menunggu', 'bukti_pembayaran' => 'nullable|file|mimes:jpeg,png,jpg,gif,webp,pdf|max:2048', ]); if ($request->hasFile('bukti_pembayaran')) { $validated['bukti_pembayaran'] = $request->file('bukti_pembayaran')->store('bukti_pembayaran', 'public'); } Pembayaran::create($validated); return redirect()->route('pembayarans.index')->with('success', 'Pembayaran berhasil ditambahkan.'); } /** * Display the specified resource. */ public function show(Pembayaran $pembayaran) { $pembayaran->load(['santri', 'kelas']); return view('pembayarans.show', compact('pembayaran')); } /** * Show the form for editing the specified resource. */ public function edit(Pembayaran $pembayaran) { $santris = Santri::all(); $kelas = Kelas::all(); return view('pembayarans.edit', compact('pembayaran', 'santris', 'kelas')); } /** * Update the specified resource in storage. */ public function update(Request $request, Pembayaran $pembayaran) { $validated = $request->validate([ 'santri_id' => 'required|exists:santris,id', 'kelas_id' => 'required|exists:kelas,id', 'tanggal' => 'required|date', 'jenis_pembayaran' => 'required|string', 'jumlah' => 'required|integer|min:0', 'keterangan' => 'nullable|string', 'status' => 'required|in:menunggu,diterima,ditolak', 'bukti_pembayaran' => 'nullable|file|mimes:jpeg,png,jpg,gif,webp,pdf|max:2048', ]); if ($request->hasFile('bukti_pembayaran')) { // Hapus file lama jika ada if ($pembayaran->bukti_pembayaran && \Storage::disk('public')->exists($pembayaran->bukti_pembayaran)) { \Storage::disk('public')->delete($pembayaran->bukti_pembayaran); } $validated['bukti_pembayaran'] = $request->file('bukti_pembayaran')->store('bukti_pembayaran', 'public'); } $pembayaran->update($validated); return redirect()->route('pembayarans.index')->with('success', 'Pembayaran berhasil diupdate.'); } /** * Remove the specified resource from storage. */ public function destroy(Pembayaran $pembayaran) { $pembayaran->delete(); return redirect()->route('pembayarans.index')->with('success', 'Pembayaran berhasil dihapus.'); } }