67 lines
1.8 KiB
PHP
67 lines
1.8 KiB
PHP
<?php
|
|
header('Content-Type: application/json');
|
|
require_once 'db_config.php';
|
|
|
|
$sql = "
|
|
SELECT
|
|
w.id as warga_id,
|
|
w.kemiskinan_id,
|
|
w.nik,
|
|
w.nama_warga,
|
|
w.hubungan_keluarga,
|
|
w.tanggal_lahir,
|
|
w.pendidikan,
|
|
w.riwayat_penyakit,
|
|
k.nama_kk,
|
|
k.alamat,
|
|
k.jumlah_kk,
|
|
(SELECT COUNT(*) FROM histori_bantuan hb WHERE hb.kemiskinan_id = k.id) as jumlah_bantuan
|
|
FROM warga w
|
|
LEFT JOIN kemiskinan k ON w.kemiskinan_id = k.id
|
|
ORDER BY w.updated_at DESC
|
|
";
|
|
|
|
$result = $conn->query($sql);
|
|
$data = [];
|
|
|
|
if ($result) {
|
|
while($row = $result->fetch_assoc()) {
|
|
// Hitung kategori berdasarkan jumlah_kk dari tabel kemiskinan
|
|
$jumlah = intval($row['jumlah_kk'] ?? 1);
|
|
$kategori = 'Hampir Miskin';
|
|
$badge_color = '#3b82f6'; // Blue
|
|
|
|
if($jumlah >= 5) {
|
|
$kategori = 'Sangat Miskin';
|
|
$badge_color = '#dc2626'; // Red
|
|
} else if($jumlah >= 3) {
|
|
$kategori = 'Miskin';
|
|
$badge_color = '#ea580c'; // Orange
|
|
}
|
|
|
|
// Hitung umur
|
|
$usia = '-';
|
|
if (!empty($row['tanggal_lahir'])) {
|
|
$bday = new DateTime($row['tanggal_lahir']);
|
|
$today = new DateTime('today');
|
|
$usia = $bday->diff($today)->y . ' thn';
|
|
$tgl_format = $bday->format('d M Y');
|
|
} else {
|
|
$tgl_format = '-';
|
|
}
|
|
|
|
$row['kategori_label'] = $kategori;
|
|
$row['kategori_color'] = $badge_color;
|
|
$row['usia_label'] = $usia;
|
|
$row['tgl_lahir_format'] = $tgl_format;
|
|
|
|
$data[] = $row;
|
|
}
|
|
echo json_encode(["status" => "success", "data" => $data]);
|
|
} else {
|
|
echo json_encode(["status" => "error", "message" => $conn->error]);
|
|
}
|
|
|
|
$conn->close();
|
|
?>
|