prepare($sql); if ($types) stmt_bind($stmt, $types, $params); $stmt->execute(); $row = $stmt->get_result()->fetch_assoc(); return (int) array_values($row)[0]; } $riAdminList = ($role === 'admin_rumah_ibadah') ? get_admin_rumah_ibadah_list((int)$user['id'], true) : []; $riAdminIds = array_map('intval', array_column($riAdminList, 'id')); $stats = []; if ($role === 'super_admin') { $stats['Total Rumah Ibadah'] = scalar_count("SELECT COUNT(*) FROM rumah_ibadah WHERE COALESCE(status_hapus,'normal')<>'disetujui'"); $stats['Rumah Ibadah Menunggu'] = scalar_count("SELECT COUNT(*) FROM rumah_ibadah WHERE status_pengajuan='menunggu' AND COALESCE(status_hapus,'normal')<>'disetujui'"); $stats['Total Penerima'] = scalar_count("SELECT COUNT(*) FROM penerima_bantuan WHERE COALESCE(status_hapus,'normal')<>'disetujui'"); $stats['Penerima Menunggu'] = scalar_count("SELECT COUNT(*) FROM penerima_bantuan WHERE status_pengajuan='menunggu' AND COALESCE(status_hapus,'normal')<>'disetujui'"); $stats['Penerima Diterima'] = scalar_count("SELECT COUNT(*) FROM penerima_bantuan WHERE status_pengajuan='diterima' AND COALESCE(status_hapus,'normal')<>'disetujui'"); $stats['Penerima Ditolak'] = scalar_count("SELECT COUNT(*) FROM penerima_bantuan WHERE status_pengajuan='ditolak' AND COALESCE(status_hapus,'normal')<>'disetujui'"); $stats['Penerima Dibatalkan'] = scalar_count("SELECT COUNT(*) FROM penerima_bantuan WHERE status_pengajuan='dibatalkan' AND COALESCE(status_hapus,'normal')<>'disetujui'"); $stats['Program Aktif'] = scalar_count("SELECT COUNT(*) FROM program_bantuan WHERE status_program='aktif'"); $stats['Bantuan Tersalurkan'] = scalar_count("SELECT COUNT(*) FROM penyaluran_bantuan"); } elseif ($role === 'admin_rumah_ibadah') { if (!empty($riAdminIds)) { $stats['Jumlah Rumah Ibadah'] = count($riAdminIds); $stats['Rumah Ibadah'] = implode(', ', array_column($riAdminList, 'nama_rumah_ibadah')); $types = ''; $params = []; $in = build_in_condition('rumah_ibadah_id', $riAdminIds, $types, $params); $stats['Pengajuan Dalam Radius'] = scalar_count("SELECT COUNT(*) FROM penerima_bantuan WHERE $in AND status_pengajuan='menunggu' AND COALESCE(status_hapus,'normal')<>'disetujui'", $types, $params); $types = ''; $params = []; $in = build_in_condition('rumah_ibadah_id', $riAdminIds, $types, $params); $stats['Penerima Diterima'] = scalar_count("SELECT COUNT(*) FROM penerima_bantuan WHERE $in AND status_pengajuan='diterima' AND COALESCE(status_hapus,'normal')<>'disetujui'", $types, $params); $types = ''; $params = []; $in = build_in_condition('rumah_ibadah_id', $riAdminIds, $types, $params); $stats['Penerima Ditolak'] = scalar_count("SELECT COUNT(*) FROM penerima_bantuan WHERE $in AND status_pengajuan='ditolak' AND COALESCE(status_hapus,'normal')<>'disetujui'", $types, $params); $types = ''; $params = []; $in = build_in_condition('rumah_ibadah_id', $riAdminIds, $types, $params); $stats['Program Aktif'] = scalar_count("SELECT COUNT(*) FROM program_bantuan WHERE $in AND status_program='aktif'", $types, $params); $types = ''; $params = []; $in = build_in_condition('rumah_ibadah_id', $riAdminIds, $types, $params); $stats['Bantuan Tersalurkan'] = scalar_count("SELECT COUNT(*) FROM penyaluran_bantuan WHERE $in", $types, $params); } else { $stats['Rumah Ibadah'] = 'Belum ada rumah ibadah diterima'; } } elseif ($role === 'penerima') { $uid = (int)$user['id']; $stats['Pengajuan Saya'] = scalar_count("SELECT COUNT(*) FROM penerima_bantuan WHERE user_id=? AND COALESCE(status_hapus,'normal')<>'disetujui'", 'i', [$uid]); $stats['Status Diterima'] = scalar_count("SELECT COUNT(*) FROM penerima_bantuan WHERE user_id=? AND status_pengajuan='diterima' AND COALESCE(status_hapus,'normal')<>'disetujui'", 'i', [$uid]); $stats['Bantuan Bulan Ini'] = scalar_count("SELECT COUNT(*) FROM penyaluran_bantuan pn JOIN penerima_bantuan pb ON pb.id=pn.penerima_id WHERE pb.user_id=? AND MONTH(pn.tanggal_penyaluran)=? AND YEAR(pn.tanggal_penyaluran)=?", 'iii', [$uid, $bulanIni, $tahunIni]); } $hapusRumahRows = []; $hapusPenerimaRows = []; if ($role === 'super_admin') { $stmt = $koneksi->prepare("SELECT ri.*, u.nama AS nama_admin, u.username AS username_admin FROM rumah_ibadah ri LEFT JOIN users u ON u.id=ri.user_id WHERE ri.status_hapus='menunggu' ORDER BY ri.updated_at DESC"); $hapusRumahRows = fetch_all_stmt($stmt); $stmt = $koneksi->prepare("SELECT pb.*, u.username AS username_penerima, ri.nama_rumah_ibadah FROM penerima_bantuan pb LEFT JOIN users u ON u.id=pb.user_id LEFT JOIN rumah_ibadah ri ON ri.id=pb.rumah_ibadah_id WHERE pb.status_hapus='menunggu' ORDER BY pb.updated_at DESC"); $hapusPenerimaRows = fetch_all_stmt($stmt); } ?>
Admin rumah ibadah dan penerima hanya mengajukan hapus. Marker benar-benar hilang dari peta setelah disetujui super admin.
| Rumah Ibadah | Admin | Alasan | Aksi |
|---|---|---|---|
| Tidak ada pengajuan hapus rumah ibadah. | |||
| = htmlspecialchars($r['nama_rumah_ibadah']) ?> = htmlspecialchars($r['agama']) ?> | = htmlspecialchars($r['alamat']) ?> |
= htmlspecialchars($r['nama_admin'] ?? '-') ?> = htmlspecialchars($r['username_admin'] ?? '-') ?> |
= htmlspecialchars($r['alasan_hapus'] ?? '-') ?> | |
| Penerima | Rumah Ibadah | Alasan | Aksi |
|---|---|---|---|
| Tidak ada pengajuan hapus penerima. | |||
| = htmlspecialchars($p['nama_penerima']) ?> User: = htmlspecialchars($p['username_penerima'] ?? '-') ?> | = htmlspecialchars($p['alamat']) ?> |
= htmlspecialchars($p['nama_rumah_ibadah'] ?? '-') ?> | = htmlspecialchars($p['alasan_hapus'] ?? '-') ?> | |
Super admin dapat mengelola akun penerima dan admin rumah ibadah. Akun super admin lain tidak ditampilkan di daftar ini. Admin rumah ibadah hanya dapat mengelola akun penerima. Akun admin rumah ibadah lain tidak bisa dilihat atau diubah.
| Akun | Role | Status | Relasi Data | Dibuat/Update | Aksi |
|---|---|---|---|---|---|
| Memuat akun... | |||||
| Program | Periode | Jenis | Nominal/Item | Status | Aksi |
|---|---|---|---|---|---|
| Memuat program... | |||||
| Penerima | Rumah Ibadah | Program | Target | Jumlah | Status | Terakhir | Riwayat Bulan Ini | Aksi |
|---|---|---|---|---|---|---|---|---|
| Memuat data... | ||||||||