concat($pengeluarans)->sortByDesc('tanggal')->values(); // Hitung total pemasukan $total_pemasukan = $pemasukans->sum(function ($item) { return $item->kategori === 'barang' ? $item->quantity * $item->harga : $item->jumlah; }); // Hitung total pengeluaran $total_pengeluaran = $pengeluarans->sum(function ($item) { return $item->kategori === 'barang' ? $item->quantity * $item->harga : $item->jumlah; }); // Hitung saldo akhir $saldo_akhir = $total_pemasukan - $total_pengeluaran; // Kirim data ke view return view('landing', compact( 'pengurus', 'rekening', 'data_kas', 'total_pemasukan', 'total_pengeluaran', 'saldo_akhir' )); } public function storeSumbangan(Request $request) { $request->validate([ 'tanggal' => 'required|date', 'nama' => 'required|string|max:255', 'email' => 'required|email|max:255', 'kategori' => 'required|in:uang,barang', 'nominal' => 'nullable|required_if:kategori,uang|numeric', 'quantity' => 'nullable|required_if:kategori,barang|numeric', 'harga' => 'nullable|required_if:kategori,barang|numeric', 'subtotal' => 'nullable|required_if:kategori,barang|numeric', 'keterangan' => 'nullable|string', 'bukti' => 'required|image|mimes:jpeg,png,jpg|max:2048', ]); $data = [ 'tanggal' => $request->tanggal, 'nama' => $request->nama, 'email' => $request->email, 'kategori' => $request->kategori, 'keterangan' => $request->keterangan, 'jumlah' => $request->kategori === 'uang' ? $request->nominal : $request->subtotal, 'quantity' => $request->kategori === 'barang' ? $request->quantity : null, 'harga' => $request->kategori === 'barang' ? $request->harga : null, 'status' => 'menunggu', ]; if ($request->hasFile('bukti')) { $data['bukti'] = $request->file('bukti')->store('bukti_sumbangan', 'public'); } Pemasukan::create($data); return redirect()->to(url()->previous() . '#formSumbangan') ->with('success', 'Terima kasih! Sumbangan Anda telah berhasil dikirim. Kami akan menghubungi Anda setelah proses verifikasi selesai.'); } }