<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;

class Keuangan extends Model
{
    protected $table = 'transaksi';

    public function getLaporanKeuangan()
{
    $query = "
        SELECT 
            tahun,
            bulan,
            SUM(total_pemasukan) AS total_pemasukan,
            SUM(total_pengeluaran) AS total_pengeluaran,
            SUM(total_pemasukan - total_pengeluaran) AS keuntungan_bersih
        FROM (
            SELECT 
                YEAR(tanggal_pembayaran) AS tahun,
                MONTH(tanggal_pembayaran) AS bulan,
                SUM(jumlah_pembayaran) AS total_pemasukan,
                0 AS total_pengeluaran
            FROM transaksi
            WHERE status_transaksi = 'Lunas'
            GROUP BY YEAR(tanggal_pembayaran), MONTH(tanggal_pembayaran)

            UNION ALL

            SELECT 
                YEAR(tanggal_pengeluaran) AS tahun,
                MONTH(tanggal_pengeluaran) AS bulan,
                0 AS total_pemasukan,
                SUM(jumlah_pengeluaran) AS total_pengeluaran
            FROM pengeluaran
            GROUP BY YEAR(tanggal_pengeluaran), MONTH(tanggal_pengeluaran)
        ) AS gabungan
        GROUP BY tahun, bulan
        ORDER BY tahun DESC, bulan DESC
    ";

    return DB::select($query);
}
}