<?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'
        ));
    }
}
