51 lines
1.8 KiB
PHP
51 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Keuangan;
|
|
use Illuminate\Http\Request;
|
|
|
|
class KeuanganController extends Controller
|
|
{
|
|
public function index(Request $request)
|
|
{
|
|
$model = new Keuangan(); // Model yang mewakili tabel transaksi
|
|
$laporan = $model->getLaporanKeuangan(); // Ini sudah menggabungkan dengan pengeluaran
|
|
|
|
// Daftar bulan dalam bahasa Indonesia
|
|
$months = [
|
|
1 => 'Januari', 2 => 'Februari', 3 => 'Maret', 4 => 'April', 5 => 'Mei', 6 => 'Juni',
|
|
7 => 'Juli', 8 => 'Agustus', 9 => 'September', 10 => 'Oktober', 11 => 'November', 12 => 'Desember'
|
|
];
|
|
|
|
// Ambil daftar tahun unik
|
|
$years = collect($laporan)->pluck('tahun')->unique()->sortDesc()->toArray();
|
|
|
|
// Ambil input filter
|
|
$tahunFilter = $request->input('tahun');
|
|
$bulanFilter = $request->input('bulan');
|
|
|
|
// Filter laporan berdasarkan tahun & bulan jika ada
|
|
$filteredLaporan = collect($laporan)->filter(function ($item) use ($tahunFilter, $bulanFilter) {
|
|
return (!$tahunFilter || $item->tahun == $tahunFilter) &&
|
|
(!$bulanFilter || $item->bulan == $bulanFilter);
|
|
});
|
|
|
|
// Ubah angka bulan menjadi nama bulan
|
|
foreach ($filteredLaporan as $row) {
|
|
$row->bulan = $months[$row->bulan] ?? $row->bulan;
|
|
}
|
|
|
|
// Hitung total pemasukan, pengeluaran, dan keuntungan bersih
|
|
$totalPemasukan = $filteredLaporan->sum('total_pemasukan');
|
|
$totalPengeluaran = $filteredLaporan->sum('total_pengeluaran');
|
|
$totalKeuntungan = $filteredLaporan->sum('keuntungan_bersih');
|
|
|
|
// Kirim ke view
|
|
return view('admin.keuangan', compact(
|
|
'filteredLaporan', 'years', 'months',
|
|
'totalPemasukan', 'totalPengeluaran', 'totalKeuntungan'
|
|
));
|
|
}
|
|
}
|