46 lines
1.6 KiB
PHP
46 lines
1.6 KiB
PHP
<?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);
|
|
?>
|