80 lines
2.5 KiB
PHP
80 lines
2.5 KiB
PHP
<?php
|
|
header('Content-Type: application/json');
|
|
|
|
include "../config/connect.php";
|
|
|
|
// Ambil tahun dan bulan dari query string, jika tidak ada gunakan tahun dan bulan saat ini
|
|
$tahun = date('Y');
|
|
$bulan = isset($_GET['m']) ? $_GET['m'] : date('m');
|
|
$id = isset($_GET['i']) ? $_GET['i'] : '6258';
|
|
|
|
// Mengambil data dari database berdasarkan tahun dan bulan
|
|
$stmt = $pdo->prepare("SELECT * FROM monitoring_pelanggan WHERE id_pelanggan = :id AND YEAR(waktu) = :tahun AND MONTH(waktu) = :bulan");
|
|
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
|
|
$stmt->bindParam(':tahun', $tahun);
|
|
$stmt->bindParam(':bulan', $bulan);
|
|
$stmt->execute();
|
|
$monitor = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
// Memeriksa apakah data ditemukan
|
|
if (!empty($monitor)) {
|
|
$status = [];
|
|
$waktu = [];
|
|
|
|
$status[] = 4;
|
|
$waktu[] = date('Y-'.$bulan.'-01 00:00:01');
|
|
|
|
$days = date('d') - 1; // Mendapatkan jumlah hari dalam bulan
|
|
|
|
// Saya ingin data per harinya ada sesuai dengan status hari sebelumnya
|
|
for ($day = 2; $day <= $days; $day++) {
|
|
$wak = date('Y-'.$bulan.'-'.str_pad($day, 2, '0', STR_PAD_LEFT));
|
|
$found = false;
|
|
|
|
foreach ($monitor as $row) {
|
|
if (substr($row['waktu'], 0, 10) == $wak) {
|
|
$status[] = $row['status'];
|
|
$waktu[] = $row['waktu'];
|
|
$found = true;
|
|
// break;
|
|
}
|
|
}
|
|
|
|
if (!$found) {
|
|
$status[] = 4; // Status default
|
|
$waktu[] = $wak . ' 00:00:00'; // Waktu default
|
|
$status[] = 4; // Status default
|
|
$waktu[] = $wak . ' 09:00:00'; // Waktu default
|
|
$status[] = 4; // Status default
|
|
$waktu[] = $wak . ' 18:00:00'; // Waktu default
|
|
}
|
|
}
|
|
|
|
// Tambahkan status dan waktu saat ini
|
|
$status[] = 4; // Menambahkan status sekarang
|
|
if (date('m') == $bulan) {
|
|
$waktu[] = date('Y-m-d H:i:s'); // Menambahkan waktu saat ini
|
|
} else {
|
|
$date = new DateTime('last day of previous month');
|
|
$waktu[] = $date->format('Y-m-d 00:00:00');
|
|
}
|
|
|
|
// Mengisi data ke dalam array hasil
|
|
$data = [
|
|
'status' => $status,
|
|
'waktu' => $waktu,
|
|
];
|
|
} else {
|
|
// Jika tidak ada data ditemukan
|
|
$d1 = date('Y-'.$bulan.'-01 00:00:01');
|
|
$d2 = date('Y-'.$bulan.'-t H:i:s'); // Menggunakan 't' untuk hari terakhir dalam bulan
|
|
$data = [
|
|
'status' => [4, 4],
|
|
'waktu' => [$d1, $d2],
|
|
];
|
|
}
|
|
|
|
// Mengirimkan data sebagai JSON
|
|
echo json_encode($data);
|
|
?>
|