Files
manjapro_v6/load/data_monitoring_pelanggan.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);
?>