MIF_E31220480/app/Http/Controllers/KeuanganController.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'
));
}
}