Add remaining project files (exclude ignored folders)
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
header('Content-Type: application/json');
|
||||
|
||||
include "../config/connect.php";
|
||||
|
||||
try {
|
||||
// Ambil tahun dari query string, jika tidak ada gunakan tahun saat ini
|
||||
$tahun = isset($_GET['year']) && is_numeric($_GET['year']) ? (int)$_GET['year'] : (int)date('Y');
|
||||
$sqldata = isset($_GET['i']) ? trim($_GET['i']) : '';
|
||||
$sqlid = isset($_GET['d']) ? trim($_GET['d']) : '';
|
||||
|
||||
// Menentukan filter tambahan berdasarkan input
|
||||
$sqlkar = ($sqlid === 'all' || $sqlid === '') ? '' : "AND id_penyelesai_tiket = :id_penyelesai";
|
||||
|
||||
// Menyiapkan query SQL
|
||||
$query = "
|
||||
SELECT
|
||||
SUM(jumlah_tiket) AS jumlah_tiket,
|
||||
CASE WHEN COUNT(waktu) > 0 THEN SUM(rata_rata_sebelum) / COUNT(waktu) / 60 ELSE 0 END AS rata_rata_sebelum,
|
||||
CASE WHEN COUNT(waktu) > 0 THEN SUM(rata_rata_sesudah) / COUNT(waktu) / 60 ELSE 0 END AS rata_rata_sesudah,
|
||||
SUM(tiket_jalur) AS tiket_jalur,
|
||||
SUM(tiket_lain) AS tiket_lain,
|
||||
SUM(bobot) AS bobot,
|
||||
waktu
|
||||
FROM
|
||||
v_akumulasi_kinerja_by_tiket
|
||||
WHERE
|
||||
SUBSTRING(waktu, 1, 4) = :tahun
|
||||
$sqldata
|
||||
$sqlkar
|
||||
GROUP BY
|
||||
waktu
|
||||
";
|
||||
|
||||
// Persiapan dan eksekusi query
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->bindParam(':tahun', $tahun, PDO::PARAM_INT);
|
||||
if (!empty($sqlkar)) {
|
||||
$stmt->bindParam(':id_penyelesai', $sqlid, PDO::PARAM_STR);
|
||||
}
|
||||
$stmt->execute();
|
||||
$jumbulan = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
// Inisialisasi array untuk menyimpan data bulanan
|
||||
$jumTiket = array_fill(0, 12, 0);
|
||||
$rata2sebelum = array_fill(0, 12, 0);
|
||||
$rata2sesudah = array_fill(0, 12, 0);
|
||||
$tiketJalur = array_fill(0, 12, 0);
|
||||
$tiketLain = array_fill(0, 12, 0);
|
||||
$bobot = array_fill(0, 12, 0);
|
||||
$bulan = [];
|
||||
|
||||
// Mengisi data ke dalam array berdasarkan bulan
|
||||
foreach ($jumbulan as $row) {
|
||||
$monthIndex = (int)date('n', strtotime($row['waktu'])) - 1; // Bulan ke indeks array (0-11)
|
||||
$jumTiket[$monthIndex] = (int)$row['jumlah_tiket'];
|
||||
$rata2sebelum[$monthIndex] = '-'.(float)$row['rata_rata_sebelum'];
|
||||
$rata2sesudah[$monthIndex] = '-'.(float)$row['rata_rata_sesudah'];
|
||||
$tiketJalur[$monthIndex] = (int)$row['tiket_jalur'];
|
||||
$tiketLain[$monthIndex] = (int)$row['tiket_lain'];
|
||||
$bobot[$monthIndex] = (int)$row['bobot'];
|
||||
}
|
||||
|
||||
// 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
|
||||
'jumlah' => $jumTiket,
|
||||
'createToProses' => $rata2sebelum,
|
||||
'prosesToClose' => $rata2sesudah,
|
||||
'tiketJalur' => $tiketJalur,
|
||||
'tiketLain' => $tiketLain,
|
||||
'bobot' => $bobot
|
||||
];
|
||||
|
||||
// Mengirimkan data sebagai JSON
|
||||
echo json_encode($data);
|
||||
|
||||
} catch (Exception $e) {
|
||||
// Jika terjadi kesalahan, kirim pesan error sebagai JSON
|
||||
http_response_code(500); // Kirim kode status HTTP 500
|
||||
echo json_encode(['error' => 'Terjadi kesalahan pada server.', 'details' => $e->getMessage()]);
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user