<?php 
header('Content-Type: application/json');

include "../config/connect.php";

// Ambil tahun dari query string, jika tidak ada gunakan tahun saat ini
$tahun = isset($_GET['year']) ? $_GET['year'] : date('Y');
$sqldata = isset($_GET['s']) ? $_GET['s'] : '';

// Mengambil data dari database berdasarkan tahun
$stmt = $pdo->prepare("SELECT SUM(pemasukan) AS pemasukan, SUM(pengeluaran) AS pengeluaran, SUM(saldo) AS saldo, bulan AS bulan FROM v_jumlah_transaksi_bulanan WHERE SUBSTRING(bulan, 1, 4) = :tahun $sqldata GROUP BY bulan");
$stmt->bindParam(':tahun', $tahun, PDO::PARAM_INT);
$stmt->execute();
$jumbulan = $stmt->fetchAll(PDO::FETCH_ASSOC);

// Inisialisasi array untuk menyimpan pemasukan, pengeluaran, dan saldo
$pemasukan = array_fill(0, 12, 0); // Inisialisasi dengan 0 untuk semua bulan
$pengeluaran = array_fill(0, 12, 0);
$saldo = array_fill(0, 12, 0);
$bulan = [];

// Mengisi data ke dalam array
foreach ($jumbulan as $row) {
    $monthIndex = (int) date('n', strtotime($row['bulan'])) - 1; // Ubah bulan ke indeks array (0-11)
    $pemasukan[$monthIndex] = (int) $row['pemasukan'];
    $pengeluaran[$monthIndex] = (int) $row['pengeluaran'];
    $saldo[$monthIndex] = (int) $row['saldo'];
}

// Buat array bulan untuk label
for ($i = 0; $i < 12; $i++) {
    $bulan[] = sprintf('%s-%02d', $tahun, $i + 1); // format Y-m
}

// Mengemas data menjadi array untuk JSON
$data = [
    'bulan' => $bulan, // data bulan yang ditampilkan di label
    'pemasukan' => $pemasukan,
    'pengeluaran' => $pengeluaran,
    'saldo' => $saldo
];

// Mengirimkan data sebagai JSON
echo json_encode($data);
?>
