60 lines
2.3 KiB
PHP
60 lines
2.3 KiB
PHP
<?php
|
|
require_once 'db_pdo.php';
|
|
require_once 'auth.php';
|
|
require_once 'penduduk_feature_helper.php';
|
|
require_admin_login(true);
|
|
header('Content-Type: application/json');
|
|
|
|
try {
|
|
ensurePendudukFeatureSchema($pdo);
|
|
refreshAllPriorityScores($pdo);
|
|
|
|
$stats = [];
|
|
|
|
$ri = $pdo->query("SELECT COUNT(*) as total FROM rumah_ibadah")->fetch();
|
|
$stats['total_rumah_ibadah'] = $ri['total'];
|
|
|
|
$pm = $pdo->query("SELECT COUNT(*) as total FROM penduduk_miskin")->fetch();
|
|
$stats['total_penduduk'] = $pm['total'];
|
|
|
|
$pm_sudah = $pdo->query("SELECT COUNT(*) as total FROM penduduk_miskin WHERE status_bantuan = 'Sudah dibantu'")->fetch();
|
|
$stats['sudah_dibantu'] = $pm_sudah['total'];
|
|
|
|
$pm_belum = $pdo->query("SELECT COUNT(*) as total FROM penduduk_miskin WHERE status_bantuan = 'Belum dibantu'")->fetch();
|
|
$stats['belum_dibantu'] = $pm_belum['total'];
|
|
|
|
$pm_tunggu = $pdo->query("SELECT COUNT(*) as total FROM penduduk_miskin WHERE status_bantuan = 'Menunggu verifikasi'")->fetch();
|
|
$stats['menunggu_verifikasi'] = $pm_tunggu['total'];
|
|
|
|
$blank = $pdo->query("SELECT COUNT(*) as total FROM penduduk_miskin WHERE is_blank_spot = 1")->fetch();
|
|
$stats['luar_radius'] = $blank['total'];
|
|
|
|
$prioritas = $pdo->query("SELECT COUNT(*) as total FROM penduduk_miskin WHERE skor_prioritas >= 70")->fetch();
|
|
$stats['prioritas_tinggi'] = $prioritas['total'];
|
|
|
|
$survei = $pdo->query("SELECT COUNT(*) as total FROM penduduk_miskin WHERE tindak_lanjut IN ('Sudah disurvei', 'Sudah diverifikasi')")->fetch();
|
|
$stats['sudah_survei'] = $survei['total'];
|
|
|
|
$stats['top_prioritas'] = $pdo->query("
|
|
SELECT id, kk_nama, kategori_kebutuhan, tindak_lanjut, skor_prioritas
|
|
FROM penduduk_miskin
|
|
ORDER BY skor_prioritas DESC, id DESC
|
|
LIMIT 5
|
|
")->fetchAll();
|
|
|
|
$stats['kebutuhan_terbanyak'] = $pdo->query("
|
|
SELECT COALESCE(NULLIF(kategori_kebutuhan, ''), 'Belum diisi') AS kategori, COUNT(*) AS total
|
|
FROM penduduk_miskin
|
|
GROUP BY COALESCE(NULLIF(kategori_kebutuhan, ''), 'Belum diisi')
|
|
ORDER BY total DESC
|
|
LIMIT 5
|
|
")->fetchAll();
|
|
|
|
echo json_encode([
|
|
'success' => true,
|
|
'data' => $stats
|
|
]);
|
|
} catch (Exception $e) {
|
|
echo json_encode(['success' => false, 'message' => $e->getMessage()]);
|
|
}
|