97 lines
3.0 KiB
PHP
97 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\PengurusMasjid;
|
|
use Illuminate\Http\Request;
|
|
use App\Models\Pemasukan;
|
|
use App\Models\Pengeluaran;
|
|
|
|
|
|
|
|
class LandingPageController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
// Ambil data
|
|
$pengurus = PengurusMasjid::first();
|
|
$rekening = '1234567890 - BSI a.n. Masjid Al-Hikmah';
|
|
|
|
// Ambil pemasukan yang sudah diterima dan semua pengeluaran
|
|
$pemasukans = Pemasukan::all();
|
|
$pengeluarans = Pengeluaran::all();
|
|
|
|
// Gabungkan dan urutkan berdasarkan tanggal terbaru
|
|
$data_kas = $pemasukans->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.');
|
|
|
|
}
|
|
|
|
}
|
|
|