Fix resident aid saving bug and implement Bantuan Darurat status
This commit is contained in:
+1
-1
@@ -82,7 +82,7 @@ if ($type === 'penduduk') {
|
||||
$subtitle = 'WebGIS Sebaran Penduduk Miskin — ' . APP_NAME;
|
||||
$cols = ['No', 'Nama KK', 'NIK', 'Anggota', 'Kecamatan', 'Status', 'Nominal Bantuan', 'Rumah Ibadah', 'Jarak'];
|
||||
$tableRows = array_map(function($r, $i) {
|
||||
$sc = ['sudah' => '#22c55e', 'menunggu' => '#f59e0b', 'belum' => '#ef4444'][$r['status_bantuan']] ?? '#ef4444';
|
||||
$sc = ['sudah' => '#22c55e', 'menunggu' => '#f59e0b', 'belum' => '#ef4444', 'darurat' => '#a855f7'][$r['status_bantuan']] ?? '#ef4444';
|
||||
return [$i + 1, $r['kk_nama'], $r['nik'] ?: '—', $r['jumlah_anggota'],
|
||||
$r['kecamatan'] ?: '—',
|
||||
"<span style='color:{$sc};font-weight:700'>".ucfirst($r['status_bantuan']).'</span>',
|
||||
|
||||
+1
-1
@@ -95,7 +95,7 @@ if ($type === 'penduduk') {
|
||||
$lng = (float)$row[7];
|
||||
if ($lat === 0.0 && $lng === 0.0) { $skipped++; continue; }
|
||||
|
||||
$status = in_array($row[8] ?? '', ['sudah','belum','menunggu']) ? $row[8] : 'belum';
|
||||
$status = in_array($row[8] ?? '', ['sudah','belum','menunggu','darurat']) ? $row[8] : 'belum';
|
||||
$tanggal_bantuan = !empty($row[10]) ? sanitize($row[10]) : null;
|
||||
$nominal_bantuan = isset($row[11]) && $row[11] !== '' ? (float)str_replace(['.', ','], ['', '.'], $row[11]) : null;
|
||||
|
||||
|
||||
@@ -20,6 +20,11 @@ $db = getDB();
|
||||
$method = $_SERVER['REQUEST_METHOD'];
|
||||
$id = isset($_GET['id']) ? (int)$_GET['id'] : null;
|
||||
|
||||
// Override method if it's a POST request with an ID, to support multipart/form-data in updates (PUT)
|
||||
if ($method === 'POST' && $id !== null) {
|
||||
$method = 'PUT';
|
||||
}
|
||||
|
||||
// ── GET ────────────────────────────────────────────────────────
|
||||
if ($method === 'GET') {
|
||||
if ($id) {
|
||||
@@ -155,9 +160,10 @@ if ($method === 'POST') {
|
||||
if ($method === 'PUT') {
|
||||
if (!$id) jsonResponse(['success' => false, 'message' => 'ID wajib disertakan'], 400);
|
||||
|
||||
// Cek apakah multipart (ada file) atau JSON
|
||||
$isMultipart = str_contains($_SERVER['CONTENT_TYPE'] ?? '', 'multipart/form-data');
|
||||
$body = $isMultipart ? $_POST : (json_decode(file_get_contents('php://input'), true) ?? []);
|
||||
// Cek apakah form-data (ada file / urlencoded) atau JSON
|
||||
$contentType = $_SERVER['CONTENT_TYPE'] ?? '';
|
||||
$isForm = str_contains($contentType, 'multipart/form-data') || str_contains($contentType, 'application/x-www-form-urlencoded');
|
||||
$body = $isForm ? $_POST : (json_decode(file_get_contents('php://input'), true) ?? []);
|
||||
|
||||
$current = $db->prepare("SELECT * FROM penduduk_miskin WHERE id = ?");
|
||||
$current->execute([$id]);
|
||||
|
||||
+3
-1
@@ -16,7 +16,8 @@ $totalMiskin = $db->query("SELECT COUNT(*) FROM penduduk_miskin")->fetchColumn()
|
||||
$sudahDibantu = $db->query("SELECT COUNT(*) FROM penduduk_miskin WHERE status_bantuan='sudah'")->fetchColumn();
|
||||
$belumDibantu = $db->query("SELECT COUNT(*) FROM penduduk_miskin WHERE status_bantuan='belum'")->fetchColumn();
|
||||
$menunggu = $db->query("SELECT COUNT(*) FROM penduduk_miskin WHERE status_bantuan='menunggu'")->fetchColumn();
|
||||
$totalNominal = $db->query("SELECT COALESCE(SUM(nominal_bantuan),0) FROM penduduk_miskin WHERE status_bantuan='sudah' AND nominal_bantuan IS NOT NULL")->fetchColumn();
|
||||
$darurat = $db->query("SELECT COUNT(*) FROM penduduk_miskin WHERE status_bantuan='darurat'")->fetchColumn();
|
||||
$totalNominal = $db->query("SELECT COALESCE(SUM(nominal_bantuan),0) FROM penduduk_miskin WHERE status_bantuan IN ('sudah','darurat') AND nominal_bantuan IS NOT NULL")->fetchColumn();
|
||||
$totalNominalAll = $db->query("SELECT COALESCE(SUM(nominal_bantuan),0) FROM penduduk_miskin WHERE nominal_bantuan IS NOT NULL")->fetchColumn();
|
||||
|
||||
// Per jenis ibadah
|
||||
@@ -54,6 +55,7 @@ jsonResponse([
|
||||
'sudah_dibantu' => (int)$sudahDibantu,
|
||||
'belum_dibantu' => (int)$belumDibantu,
|
||||
'menunggu' => (int)$menunggu,
|
||||
'darurat' => (int)$darurat,
|
||||
'total_nominal' => (float)$totalNominal,
|
||||
'total_nominal_all' => (float)$totalNominalAll,
|
||||
'jenis_stats' => $jenisStats,
|
||||
|
||||
Reference in New Issue
Block a user