47 lines
1.3 KiB
PHP
47 lines
1.3 KiB
PHP
<?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);
|
|
}
|
|
} |