68 lines
2.5 KiB
PHP
68 lines
2.5 KiB
PHP
<?php
|
|
error_reporting(E_ALL & ~E_DEPRECATED & ~E_NOTICE & ~E_WARNING);
|
|
include 'koneksi.php';
|
|
|
|
header('Content-Type: text/csv; charset=utf-8');
|
|
header('Content-Disposition: attachment; filename="Data_Keluarga_Prasejahtera_GeoPoverty.csv"');
|
|
|
|
$output = fopen('php://output', 'w');
|
|
|
|
// Header CSV
|
|
fputcsv($output, [
|
|
'ID',
|
|
'Nama Kepala Keluarga',
|
|
'Alamat',
|
|
'Latitude',
|
|
'Longitude',
|
|
'Status Keluarga',
|
|
'Jumlah Jiwa',
|
|
'Daftar Anggota Keluarga (Nama - Hubungan - Pendidikan)',
|
|
'Total Bantuan Diterima (Kali)',
|
|
'Riwayat Bantuan (Detail)',
|
|
'Laporan Darurat / Kondisi',
|
|
'Tanggal Didata',
|
|
'Terakhir Diubah'
|
|
]);
|
|
|
|
$query = "
|
|
SELECT
|
|
k.id, k.nama_kepala_keluarga, k.alamat, k.latitude, k.longitude, k.status_keluarga, k.jumlah_kk, k.created_at, k.updated_at,
|
|
(SELECT GROUP_CONCAT(CONCAT(nama, ' (', hubungan_keluarga, ' - ', pendidikan, ')') SEPARATOR ' | ') FROM anggota_keluarga WHERE kemiskinan_id = k.id) as rincian_anggota,
|
|
(SELECT COUNT(id) FROM histori_bantuan WHERE kemiskinan_id = k.id AND status_penyaluran = 'tersalur') as total_bantuan,
|
|
(SELECT GROUP_CONCAT(CONCAT(tanggal_bantuan, ': ', jenis_bantuan, ' - ', deskripsi_bantuan) SEPARATOR ' | ') FROM histori_bantuan WHERE kemiskinan_id = k.id AND status_penyaluran = 'tersalur') as riwayat_bantuan,
|
|
(SELECT GROUP_CONCAT(CONCAT(DATE(created_at), ': ', kategori, ' - ', deskripsi) SEPARATOR ' | ') FROM laporan_kondisi WHERE kemiskinan_id = k.id) as laporan_darurat
|
|
FROM kemiskinan k
|
|
ORDER BY k.id DESC
|
|
";
|
|
|
|
$result = mysqli_query($conn, $query);
|
|
|
|
if ($result) {
|
|
while ($row = mysqli_fetch_assoc($result)) {
|
|
|
|
// Clean status label
|
|
$status = ucfirst(str_replace('_', ' ', $row['status_keluarga']));
|
|
if ($row['status_keluarga'] == 'sudah_mampu') $status = 'Sudah Mampu';
|
|
|
|
fputcsv($output, [
|
|
$row['id'],
|
|
$row['nama_kepala_keluarga'],
|
|
$row['alamat'],
|
|
$row['latitude'],
|
|
$row['longitude'],
|
|
$status,
|
|
$row['jumlah_kk'],
|
|
$row['rincian_anggota'] ? $row['rincian_anggota'] : 'Belum didata',
|
|
$row['total_bantuan'] . ' kali',
|
|
$row['riwayat_bantuan'] ? $row['riwayat_bantuan'] : 'Tidak ada catatan bantuan',
|
|
$row['laporan_darurat'] ? $row['laporan_darurat'] : 'Tidak ada laporan',
|
|
$row['created_at'],
|
|
$row['updated_at']
|
|
]);
|
|
}
|
|
}
|
|
|
|
fclose($output);
|
|
exit();
|
|
?>
|