0) $where .= " AND MONTH(b.tanggal_bantuan) = $bulan"; if ($tahun > 0) $where .= " AND YEAR(b.tanggal_bantuan) = $tahun"; $query = mysqli_query($conn, " SELECT b.id, b.tanggal_bantuan, p.nama AS nama_penerima, p.nik, p.alamat, p.kategori_kemiskinan, b.jenis_bantuan, b.jumlah_bantuan, b.keterangan FROM bantuan b LEFT JOIN penduduk_miskin p ON b.penduduk_id = p.id $where ORDER BY b.tanggal_bantuan DESC "); $nama_bulan_arr = ['','Januari','Februari','Maret','April','Mei','Juni','Juli','Agustus','September','Oktober','November','Desember']; $label = ($bulan > 0 ? $nama_bulan_arr[$bulan] . '_' : 'Semua_Bulan_') . $tahun; header('Content-Type: text/csv; charset=UTF-8'); header('Content-Disposition: attachment; filename="Laporan_Bantuan_' . $label . '.csv"'); header('Pragma: no-cache'); echo "\xEF\xBB\xBF"; // BOM UTF-8 agar Excel terbaca benar $out = fopen('php://output', 'w'); fputcsv($out, ['No', 'Tanggal', 'Nama Penerima', 'NIK', 'Alamat', 'Kategori', 'Jenis Bantuan', 'Jumlah Bantuan', 'Keterangan'], ';'); $no = 1; while ($row = mysqli_fetch_assoc($query)) { fputcsv($out, [ $no++, $row['tanggal_bantuan'], $row['nama_penerima'] ?? '-', $row['nik'] ?? '-', $row['alamat'] ?? '-', $row['kategori_kemiskinan'] ?? '-', $row['jenis_bantuan'], $row['jumlah_bantuan'], $row['keterangan'] ?? '-', ], ';'); } fclose($out); exit; } // ==================== AMBIL DATA UNTUK PREVIEW ==================== $bulan_filter = isset($_GET['bulan']) ? intval($_GET['bulan']) : date('n'); $tahun_filter = isset($_GET['tahun']) ? intval($_GET['tahun']) : date('Y'); $where = "WHERE b.tanggal_bantuan IS NOT NULL"; if ($bulan_filter > 0) $where .= " AND MONTH(b.tanggal_bantuan) = $bulan_filter"; if ($tahun_filter > 0) $where .= " AND YEAR(b.tanggal_bantuan) = $tahun_filter"; $query = mysqli_query($conn, " SELECT b.id, b.tanggal_bantuan, p.nama AS nama_penerima, p.nik, p.alamat, p.kategori_kemiskinan, b.jenis_bantuan, b.jumlah_bantuan, b.keterangan FROM bantuan b LEFT JOIN penduduk_miskin p ON b.penduduk_id = p.id $where ORDER BY b.tanggal_bantuan DESC "); // Statistik ringkasan $stats = []; $statQuery = mysqli_query($conn, " SELECT jenis_bantuan, COUNT(*) as jumlah FROM bantuan b $where GROUP BY jenis_bantuan ORDER BY jumlah DESC "); while ($r = mysqli_fetch_assoc($statQuery)) $stats[] = $r; $totalQuery = mysqli_query($conn, "SELECT COUNT(*) as total FROM bantuan b $where"); $totalRow = mysqli_fetch_assoc($totalQuery); $totalBantuan = $totalRow['total']; $nama_bulan_arr = ['','Januari','Februari','Maret','April','Mei','Juni','Juli','Agustus','September','Oktober','November','Desember']; ?> Laporan Bantuan - WebGIS Kemiskinan

πŸ“‹ Laporan Bantuan β€” 0 ? $nama_bulan_arr[$bulan_filter] . ' ' . $tahun_filter : 'Semua Bulan ' . $tahun_filter ?>

πŸ—ΊοΈ Kembali ke Dashboard πŸ–¨οΈ Cetak
⬇️ Download CSV
Total Penyaluran Bantuan
'🌾','Sembako'=>'πŸ›’','Uang Tunai'=>'πŸ’°','Pendidikan'=>'πŸ“š','Kesehatan'=>'πŸ₯']; $colors = ['green','orange','purple','green','orange']; $ci = 0; foreach($stats as $s): $icon = $jenis_icon[$s['jenis_bantuan']] ?? 'πŸ“¦'; $cls = $colors[$ci % count($colors)]; $ci++; ?>

πŸ“„ Rincian Penyaluran Bantuan

πŸ˜• Tidak ada data bantuan untuk periode ini.
No Tanggal Nama Penerima NIK Alamat Kategori Jenis Bantuan Jumlah Keterangan