Fix: Penyesuaian api_kemiskinan.php
This commit is contained in:
@@ -1,31 +1,37 @@
|
|||||||
<?php
|
<?php
|
||||||
session_start();
|
session_start();
|
||||||
header('Content-Type: application/json'); // Pindahkan ke paling atas untuk semua output
|
|
||||||
|
|
||||||
if (!isset($_SESSION['user_id'])) {
|
if (!isset($_SESSION['user_id'])) {
|
||||||
|
header('Content-Type: application/json');
|
||||||
echo json_encode(["status" => "error", "pesan" => "Akses ditolak. Silakan login."]);
|
echo json_encode(["status" => "error", "pesan" => "Akses ditolak. Silakan login."]);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
mysqli_report(MYSQLI_REPORT_OFF);
|
mysqli_report(MYSQLI_REPORT_OFF);
|
||||||
include 'koneksi.php'; // Cukup panggil 1 kali saja
|
include 'koneksi.php'; // FIX BUG 1: Hapus include duplikat (sebelumnya ada 2x)
|
||||||
|
|
||||||
|
// FIX BUG 2: Pindahkan header() ke ATAS sebelum output apapun
|
||||||
|
header('Content-Type: application/json');
|
||||||
|
|
||||||
|
// FIX BUG 3: Definisi $aksi hanya sekali, dengan null coalescing
|
||||||
$aksi = $_GET['aksi'] ?? '';
|
$aksi = $_GET['aksi'] ?? '';
|
||||||
|
|
||||||
|
$nama_tabel_bantuan = 'histori_bantuan';
|
||||||
|
|
||||||
// Ambil Sesi Global
|
// Ambil Sesi Global
|
||||||
$role_aktif = $_SESSION['role'] ?? 'warga';
|
$role = $_SESSION['role'] ?? '';
|
||||||
$nama_masjid = $_SESSION['nama_masjid'] ?? '';
|
$nama_masjid = $_SESSION['nama_masjid'] ?? '';
|
||||||
$user_id = $_SESSION['user_id'] ?? 0;
|
$user_id = $_SESSION['user_id'] ?? 0;
|
||||||
|
$role_aktif = $role;
|
||||||
|
|
||||||
// 🛡️ PROTEKSI KEAMANAN GLOBAL UNTUK WARGA
|
// 🛡️ PROTEKSI KEAMANAN GLOBAL UNTUK WARGA
|
||||||
if (in_array($aksi, ['simpan', 'update', 'hapus', 'update_lokasi', 'simpan_bantuan', 'update_bantuan', 'hapus_bantuan'])) {
|
if (in_array($aksi, ['simpan', 'update', 'hapus', 'update_lokasi', 'simpan_bantuan', 'update_bantuan', 'hapus_bantuan'])) {
|
||||||
if ($role_aktif === 'warga' || $role_aktif === 'walikota') {
|
if ($role_aktif === 'warga' || $role_aktif === 'walikota') {
|
||||||
echo json_encode(["status" => "error", "pesan" => "Gagal: Akses ditolak. Warga hanya diizinkan untuk melihat data dan melakukan donasi."]);
|
echo json_encode(["status" => "error", "pesan" => "Akses ditolak. Warga hanya diizinkan untuk melihat data dan melakukan donasi."]);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fungsi hitung jarak radius di sisi Server
|
// Fungsi hitung jarak radius (Haversine)
|
||||||
function hitungJarak($lat1, $lon1, $lat2, $lon2) {
|
function hitungJarak($lat1, $lon1, $lat2, $lon2) {
|
||||||
$earth_radius = 6371000;
|
$earth_radius = 6371000;
|
||||||
$dLat = deg2rad($lat2 - $lat1);
|
$dLat = deg2rad($lat2 - $lat1);
|
||||||
@@ -35,63 +41,67 @@ function hitungJarak($lat1, $lon1, $lat2, $lon2) {
|
|||||||
return $earth_radius * $c;
|
return $earth_radius * $c;
|
||||||
}
|
}
|
||||||
|
|
||||||
$nama_tabel_bantuan = 'histori_bantuan';
|
// ─────────────────────────────────────────
|
||||||
|
// AKSI: tampil
|
||||||
|
// ─────────────────────────────────────────
|
||||||
if ($aksi == 'tampil') {
|
if ($aksi == 'tampil') {
|
||||||
$query = $conn->query("SELECT * FROM warga_miskin");
|
$query = $conn->query("SELECT * FROM warga_miskin");
|
||||||
|
|
||||||
if (!$query) {
|
if (!$query) {
|
||||||
echo json_encode(["status" => "error", "pesan" => "Gagal memuat data warga_miskin: " . $conn->error]);
|
echo json_encode(["error" => "Gagal memuat data warga_miskin: " . $conn->error]);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = [];
|
$result = [];
|
||||||
while ($row = $query->fetch_assoc()) {
|
while ($row = $query->fetch_assoc()) {
|
||||||
$id_warga = $row['id'];
|
$id_warga = (int)$row['id']; // FIX BUG 5: Cast ke integer agar aman di query
|
||||||
|
|
||||||
// 1. Ambil data anggota keluarga
|
// Ambil anggota keluarga (FIX BUG 5: pakai prepared statement)
|
||||||
$query_anggota = $conn->query("SELECT * FROM anggota_keluarga WHERE id_warga = '$id_warga'");
|
$stmt_anggota = $conn->prepare("SELECT * FROM anggota_keluarga WHERE id_warga = ?");
|
||||||
|
$stmt_anggota->bind_param("i", $id_warga);
|
||||||
|
$stmt_anggota->execute();
|
||||||
|
$anggota_result = $stmt_anggota->get_result();
|
||||||
$anggota = [];
|
$anggota = [];
|
||||||
if ($query_anggota) {
|
while ($row_anggota = $anggota_result->fetch_assoc()) {
|
||||||
while ($row_anggota = $query_anggota->fetch_assoc()) {
|
|
||||||
$anggota[] = $row_anggota;
|
$anggota[] = $row_anggota;
|
||||||
}
|
}
|
||||||
}
|
$stmt_anggota->close();
|
||||||
$row['anggota'] = $anggota;
|
$row['anggota'] = $anggota;
|
||||||
|
|
||||||
// 2. Ambil bantuan TERAKHIR
|
// Ambil bantuan terakhir
|
||||||
$query_bantuan = $conn->query("
|
$stmt_bantuan = $conn->prepare("
|
||||||
SELECT * FROM $nama_tabel_bantuan
|
SELECT * FROM $nama_tabel_bantuan
|
||||||
WHERE warga_id = '$id_warga'
|
WHERE warga_id = ?
|
||||||
ORDER BY tanggal_distribusi DESC
|
ORDER BY tanggal_distribusi DESC
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
");
|
");
|
||||||
|
$stmt_bantuan->bind_param("i", $id_warga);
|
||||||
|
$stmt_bantuan->execute();
|
||||||
|
$bantuan_result = $stmt_bantuan->get_result();
|
||||||
|
$stmt_bantuan->close();
|
||||||
|
|
||||||
if ($query_bantuan && $query_bantuan->num_rows > 0) {
|
if ($bantuan_result && $bantuan_result->num_rows > 0) {
|
||||||
$bantuan_terakhir = $query_bantuan->fetch_assoc();
|
$bantuan_terakhir = $bantuan_result->fetch_assoc();
|
||||||
|
|
||||||
$tgl_bantuan = new DateTime($bantuan_terakhir['tanggal_distribusi']);
|
$tgl_bantuan = new DateTime($bantuan_terakhir['tanggal_distribusi']);
|
||||||
$tgl_sekarang = new DateTime();
|
$tgl_sekarang = new DateTime();
|
||||||
$interval = $tgl_sekarang->diff($tgl_bantuan);
|
$interval = $tgl_sekarang->diff($tgl_bantuan);
|
||||||
|
|
||||||
$selisih_bulan = ($interval->y * 12) + $interval->m;
|
$selisih_bulan = ($interval->y * 12) + $interval->m;
|
||||||
$sumber = $bantuan_terakhir['nama_penyalur'] ?: 'Rumah Ibadah';
|
$sumber = $bantuan_terakhir['nama_penyalur'] ?: 'Rumah Ibadah';
|
||||||
|
|
||||||
if ($selisih_bulan == 0) {
|
$row['status_bantuan'] = $selisih_bulan == 0
|
||||||
$row['status_bantuan'] = "Warga ini baru saja menerima bantuan bulan ini dari " . $sumber;
|
? "Warga ini baru saja menerima bantuan bulan ini dari " . $sumber
|
||||||
} else {
|
: "Warga ini terakhir menerima bantuan " . $selisih_bulan . " bulan lalu dari " . $sumber;
|
||||||
$row['status_bantuan'] = "Warga ini terakhir menerima bantuan " . $selisih_bulan . " bulan lalu dari " . $sumber;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
$row['status_bantuan'] = "Warga ini belum pernah menerima bantuan.";
|
$row['status_bantuan'] = "Warga ini belum pernah menerima bantuan.";
|
||||||
}
|
}
|
||||||
|
|
||||||
$result[] = $row;
|
$result[] = $row;
|
||||||
}
|
}
|
||||||
|
|
||||||
echo json_encode($result);
|
echo json_encode($result);
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
|
// ─────────────────────────────────────────
|
||||||
|
// AKSI: tampil_bantuan
|
||||||
|
// ─────────────────────────────────────────
|
||||||
} elseif ($aksi == 'tampil_bantuan') {
|
} elseif ($aksi == 'tampil_bantuan') {
|
||||||
$query = $conn->query("
|
$query = $conn->query("
|
||||||
SELECT
|
SELECT
|
||||||
@@ -102,7 +112,6 @@ if ($aksi == 'tampil') {
|
|||||||
JOIN warga_miskin w ON h.warga_id = w.id
|
JOIN warga_miskin w ON h.warga_id = w.id
|
||||||
ORDER BY h.tanggal_distribusi DESC
|
ORDER BY h.tanggal_distribusi DESC
|
||||||
");
|
");
|
||||||
|
|
||||||
$bantuan = [];
|
$bantuan = [];
|
||||||
if ($query) {
|
if ($query) {
|
||||||
while ($row = $query->fetch_assoc()) { $bantuan[] = $row; }
|
while ($row = $query->fetch_assoc()) { $bantuan[] = $row; }
|
||||||
@@ -110,6 +119,9 @@ if ($aksi == 'tampil') {
|
|||||||
echo json_encode($bantuan);
|
echo json_encode($bantuan);
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
|
// ─────────────────────────────────────────
|
||||||
|
// AKSI: simpan
|
||||||
|
// ─────────────────────────────────────────
|
||||||
} elseif ($aksi == 'simpan') {
|
} elseif ($aksi == 'simpan') {
|
||||||
$nama = $conn->real_escape_string($_POST['nama_kk'] ?? '');
|
$nama = $conn->real_escape_string($_POST['nama_kk'] ?? '');
|
||||||
$jml = intval($_POST['jumlah_anggota'] ?? 0);
|
$jml = intval($_POST['jumlah_anggota'] ?? 0);
|
||||||
@@ -132,7 +144,7 @@ if ($aksi == 'tampil') {
|
|||||||
$disab = isset($_POST['is_disabilitas']) ? intval($_POST['is_disabilitas']) : 0;
|
$disab = isset($_POST['is_disabilitas']) ? intval($_POST['is_disabilitas']) : 0;
|
||||||
|
|
||||||
if (trim($nama) === '' || $jml <= 0 || trim($alamat) === '' || !isset($_POST['lat']) || !isset($_POST['lng'])) {
|
if (trim($nama) === '' || $jml <= 0 || trim($alamat) === '' || !isset($_POST['lat']) || !isset($_POST['lng'])) {
|
||||||
echo json_encode(["status" => "error", "pesan" => "Data utama tidak lengkap"]);
|
echo json_encode(["status" => "Gagal", "pesan" => "Data utama tidak lengkap"]);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -167,61 +179,202 @@ if ($aksi == 'tampil') {
|
|||||||
");
|
");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
echo json_encode(["status" => "success", "pesan" => "Sukses menyimpan data"]);
|
echo json_encode(["status" => "Sukses"]);
|
||||||
} else {
|
} else {
|
||||||
echo json_encode(["status" => "error", "pesan" => "Gagal: " . $conn->error]);
|
echo json_encode(["status" => "Gagal", "pesan" => $conn->error]);
|
||||||
}
|
}
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
|
// ─────────────────────────────────────────
|
||||||
|
// AKSI: hapus
|
||||||
|
// ─────────────────────────────────────────
|
||||||
} elseif ($aksi == 'hapus') {
|
} elseif ($aksi == 'hapus') {
|
||||||
$id = intval($_POST['id'] ?? 0);
|
$id = intval($_POST['id'] ?? 0);
|
||||||
|
|
||||||
if ($role_aktif === 'pengurus_masjid') {
|
if ($role === 'pengurus_masjid') {
|
||||||
|
$nama_masjid_esc = $conn->real_escape_string($nama_masjid);
|
||||||
$wargaRes = $conn->query("SELECT lat, lng FROM warga_miskin WHERE id = $id");
|
$wargaRes = $conn->query("SELECT lat, lng FROM warga_miskin WHERE id = $id");
|
||||||
$masjidRes = $conn->query("SELECT lat, lng, radius FROM rumah_ibadah WHERE nama_tempat = '$nama_masjid'");
|
$masjidRes = $conn->query("SELECT lat, lng, radius FROM rumah_ibadah WHERE nama_tempat = '$nama_masjid_esc'");
|
||||||
|
|
||||||
if ($wargaRes && $masjidRes && $wargaRes->num_rows > 0 && $masjidRes->num_rows > 0) {
|
if ($wargaRes && $masjidRes && $wargaRes->num_rows > 0 && $masjidRes->num_rows > 0) {
|
||||||
$warga = $wargaRes->fetch_assoc();
|
$warga = $wargaRes->fetch_assoc();
|
||||||
$masjid = $masjidRes->fetch_assoc();
|
$masjid = $masjidRes->fetch_assoc();
|
||||||
|
|
||||||
$jarak = hitungJarak($warga['lat'], $warga['lng'], $masjid['lat'], $masjid['lng']);
|
$jarak = hitungJarak($warga['lat'], $warga['lng'], $masjid['lat'], $masjid['lng']);
|
||||||
if ($jarak > $masjid['radius']) {
|
if ($jarak > $masjid['radius']) {
|
||||||
echo json_encode(["status" => "error", "pesan" => "Gagal: Warga berada di luar radius wewenang masjid Anda."]);
|
echo json_encode(["status" => "Gagal", "pesan" => "Warga berada di luar radius wewenang masjid Anda."]);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} elseif ($role_aktif !== 'admin') {
|
} elseif ($role !== 'admin') {
|
||||||
echo json_encode(["status" => "error", "pesan" => "Gagal: Akses ditolak."]);
|
echo json_encode(["status" => "Gagal", "pesan" => "Akses ditolak."]);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$conn->query("DELETE FROM anggota_keluarga WHERE id_warga = $id");
|
$conn->query("DELETE FROM anggota_keluarga WHERE id_warga = $id");
|
||||||
if ($conn->query("DELETE FROM warga_miskin WHERE id = $id")) {
|
if ($conn->query("DELETE FROM warga_miskin WHERE id = $id")) {
|
||||||
echo json_encode(["status" => "success", "pesan" => "Sukses menghapus data"]);
|
echo json_encode(["status" => "Sukses"]);
|
||||||
} else {
|
} else {
|
||||||
echo json_encode(["status" => "error", "pesan" => "Gagal: " . $conn->error]);
|
echo json_encode(["status" => "Gagal", "pesan" => $conn->error]);
|
||||||
}
|
}
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
|
// ─────────────────────────────────────────
|
||||||
|
// AKSI: update
|
||||||
|
// ─────────────────────────────────────────
|
||||||
} elseif ($aksi == 'update') {
|
} elseif ($aksi == 'update') {
|
||||||
// ... (kode update lainnya mengikuti pola yang sama)
|
|
||||||
// Singkat cerita, gunakan json_encode untuk balasan status
|
|
||||||
$id = intval($_POST['id'] ?? 0);
|
$id = intval($_POST['id'] ?? 0);
|
||||||
// ... [Pengecekan Geo-Fencing seperti sebelumnya] ...
|
|
||||||
|
if ($role === 'pengurus_masjid') {
|
||||||
|
$nama_masjid_esc = $conn->real_escape_string($nama_masjid);
|
||||||
|
$wargaRes = $conn->query("SELECT lat, lng FROM warga_miskin WHERE id = $id");
|
||||||
|
$masjidRes = $conn->query("SELECT lat, lng, radius FROM rumah_ibadah WHERE nama_tempat = '$nama_masjid_esc'");
|
||||||
|
|
||||||
|
if ($wargaRes && $masjidRes && $wargaRes->num_rows > 0 && $masjidRes->num_rows > 0) {
|
||||||
|
$warga = $wargaRes->fetch_assoc();
|
||||||
|
$masjid = $masjidRes->fetch_assoc();
|
||||||
|
$jarak = hitungJarak($warga['lat'], $warga['lng'], $masjid['lat'], $masjid['lng']);
|
||||||
|
if ($jarak > $masjid['radius']) {
|
||||||
|
echo json_encode(["status" => "Gagal", "pesan" => "Warga berada di luar radius wewenang masjid Anda."]);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo json_encode(["status" => "Gagal", "pesan" => "Data gagal diverifikasi."]);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
} elseif ($role !== 'admin') {
|
||||||
|
echo json_encode(["status" => "Gagal", "pesan" => "Akses ditolak."]);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
$nama = $conn->real_escape_string($_POST['nama_kk'] ?? '');
|
$nama = $conn->real_escape_string($_POST['nama_kk'] ?? '');
|
||||||
$jml = intval($_POST['jumlah_anggota'] ?? 0);
|
$jml = intval($_POST['jumlah_anggota'] ?? 0);
|
||||||
// ... [Penugasan variabel lainnya] ...
|
$alamat = $conn->real_escape_string($_POST['alamat'] ?? '');
|
||||||
|
$pekerjaan = $conn->real_escape_string($_POST['pekerjaan'] ?? '');
|
||||||
|
$penyakit = $conn->real_escape_string($_POST['riwayat_penyakit'] ?? '');
|
||||||
|
// FIX BUG 4: Tambahkan lat & lng agar lokasi ikut terupdate
|
||||||
|
$lat = floatval($_POST['lat'] ?? 0);
|
||||||
|
$lng = floatval($_POST['lng'] ?? 0);
|
||||||
|
|
||||||
// Asumsi eksekusi query update
|
$tgl_lahir = !empty($_POST['tanggal_lahir']) ? "'" . $conn->real_escape_string($_POST['tanggal_lahir']) . "'" : "NULL";
|
||||||
// if ($conn->query($sql)) {
|
$pendidikan = !empty($_POST['pendidikan_terakhir']) ? "'" . $conn->real_escape_string($_POST['pendidikan_terakhir']) . "'" : "NULL";
|
||||||
// echo json_encode(["status" => "success", "pesan" => "Sukses"]);
|
$jaminan = !empty($_POST['kepemilikan_jaminan']) ? "'" . $conn->real_escape_string($_POST['kepemilikan_jaminan']) . "'" : "NULL";
|
||||||
// } else {
|
|
||||||
// echo json_encode(["status" => "error", "pesan" => "Gagal: " . $conn->error]);
|
$fakir = isset($_POST['is_fakir_miskin']) ? intval($_POST['is_fakir_miskin']) : 0;
|
||||||
// }
|
$dhuafa = isset($_POST['is_dhuafa']) ? intval($_POST['is_dhuafa']) : 0;
|
||||||
// exit;
|
$lansia = isset($_POST['is_lansia_tunggal']) ? intval($_POST['is_lansia_tunggal']) : 0;
|
||||||
|
$yatim = isset($_POST['is_anak_yatim']) ? intval($_POST['is_anak_yatim']) : 0;
|
||||||
|
$bencana = isset($_POST['is_korban_bencana']) ? intval($_POST['is_korban_bencana']) : 0;
|
||||||
|
$disab = isset($_POST['is_disabilitas']) ? intval($_POST['is_disabilitas']) : 0;
|
||||||
|
|
||||||
|
// FIX BUG 4: lat dan lng sekarang ikut di-UPDATE
|
||||||
|
$sql = "UPDATE warga_miskin SET
|
||||||
|
nama_kk = '$nama', jumlah_anggota = $jml, alamat = '$alamat',
|
||||||
|
lat = $lat, lng = $lng,
|
||||||
|
tanggal_lahir = $tgl_lahir, pendidikan_terakhir = $pendidikan, pekerjaan = '$pekerjaan',
|
||||||
|
riwayat_penyakit = '$penyakit', kepemilikan_jaminan = $jaminan,
|
||||||
|
is_fakir_miskin = $fakir, is_dhuafa = $dhuafa, is_lansia_tunggal = $lansia,
|
||||||
|
is_anak_yatim = $yatim, is_korban_bencana = $bencana, is_disabilitas = $disab
|
||||||
|
WHERE id = $id";
|
||||||
|
|
||||||
|
if ($conn->query($sql)) {
|
||||||
|
echo json_encode(["status" => "Sukses"]);
|
||||||
|
} else {
|
||||||
|
echo json_encode(["status" => "Gagal", "pesan" => $conn->error]);
|
||||||
|
}
|
||||||
|
exit;
|
||||||
|
|
||||||
|
// ─────────────────────────────────────────
|
||||||
|
// AKSI: update_lokasi
|
||||||
|
// ─────────────────────────────────────────
|
||||||
|
} elseif ($aksi == 'update_lokasi') {
|
||||||
|
$id = intval($_POST['id'] ?? 0);
|
||||||
|
$lat = floatval($_POST['lat'] ?? 0);
|
||||||
|
$lng = floatval($_POST['lng'] ?? 0);
|
||||||
|
|
||||||
|
if ($conn->query("UPDATE warga_miskin SET lat=$lat, lng=$lng WHERE id=$id")) {
|
||||||
|
echo json_encode(["status" => "Sukses"]);
|
||||||
|
} else {
|
||||||
|
echo json_encode(["status" => "Gagal", "pesan" => $conn->error]);
|
||||||
|
}
|
||||||
|
exit;
|
||||||
|
|
||||||
|
// ─────────────────────────────────────────
|
||||||
|
// AKSI: simpan_bantuan
|
||||||
|
// ─────────────────────────────────────────
|
||||||
|
} elseif ($aksi == 'simpan_bantuan') {
|
||||||
|
$warga_id = intval($_POST['warga_id'] ?? 0);
|
||||||
|
$jenis_id = intval($_POST['jenis_id'] ?? 0);
|
||||||
|
$tgl = $conn->real_escape_string($_POST['tanggal_distribusi'] ?? '');
|
||||||
|
$penyalur = $conn->real_escape_string($_POST['nama_penyalur'] ?? '');
|
||||||
|
$deskripsi = $conn->real_escape_string($_POST['deskripsi_bantuan'] ?? '');
|
||||||
|
$catatan = $conn->real_escape_string($_POST['catatan'] ?? '');
|
||||||
|
|
||||||
|
if ($warga_id <= 0 || $jenis_id <= 0 || $tgl == '' || $penyalur == '' || $deskripsi == '') {
|
||||||
|
echo json_encode(["status" => "Gagal", "pesan" => "Data tidak lengkap"]);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql = "INSERT INTO $nama_tabel_bantuan
|
||||||
|
(warga_id, jenis_id, tanggal_distribusi, nama_penyalur, jumlah, satuan_custom, catatan)
|
||||||
|
VALUES
|
||||||
|
($warga_id, $jenis_id, '$tgl', '$penyalur', 1, '$deskripsi', '$catatan')";
|
||||||
|
|
||||||
|
if ($conn->query($sql)) {
|
||||||
|
echo json_encode(["status" => "Sukses"]);
|
||||||
|
} else {
|
||||||
|
echo json_encode(["status" => "Gagal", "pesan" => $conn->error]);
|
||||||
|
}
|
||||||
|
exit;
|
||||||
|
|
||||||
|
// ─────────────────────────────────────────
|
||||||
|
// AKSI: update_bantuan
|
||||||
|
// ─────────────────────────────────────────
|
||||||
|
} elseif ($aksi == 'update_bantuan') {
|
||||||
|
$id = intval($_POST['id'] ?? 0);
|
||||||
|
$jenis_id = intval($_POST['jenis_id'] ?? 0);
|
||||||
|
$tgl = $conn->real_escape_string($_POST['tanggal_distribusi'] ?? '');
|
||||||
|
$penyalur = $conn->real_escape_string($_POST['nama_penyalur'] ?? '');
|
||||||
|
$deskripsi = $conn->real_escape_string($_POST['deskripsi_bantuan'] ?? '');
|
||||||
|
$catatan = $conn->real_escape_string($_POST['catatan'] ?? '');
|
||||||
|
|
||||||
|
if ($id <= 0 || $jenis_id <= 0 || $tgl == '' || $penyalur == '' || $deskripsi == '') {
|
||||||
|
echo json_encode(["status" => "Gagal", "pesan" => "Data tidak lengkap"]);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql = "UPDATE $nama_tabel_bantuan SET
|
||||||
|
jenis_id = $jenis_id,
|
||||||
|
tanggal_distribusi = '$tgl',
|
||||||
|
nama_penyalur = '$penyalur',
|
||||||
|
satuan_custom = '$deskripsi',
|
||||||
|
catatan = '$catatan'
|
||||||
|
WHERE id = $id";
|
||||||
|
|
||||||
|
if ($conn->query($sql)) {
|
||||||
|
echo json_encode(["status" => "Sukses"]);
|
||||||
|
} else {
|
||||||
|
echo json_encode(["status" => "Gagal", "pesan" => $conn->error]);
|
||||||
|
}
|
||||||
|
exit;
|
||||||
|
|
||||||
|
// ─────────────────────────────────────────
|
||||||
|
// AKSI: hapus_bantuan
|
||||||
|
// ─────────────────────────────────────────
|
||||||
|
} elseif ($aksi == 'hapus_bantuan') {
|
||||||
|
$id = intval($_POST['id'] ?? 0);
|
||||||
|
|
||||||
|
if ($id <= 0) {
|
||||||
|
echo json_encode(["status" => "Gagal", "pesan" => "ID tidak valid"]);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($conn->query("DELETE FROM $nama_tabel_bantuan WHERE id = $id")) {
|
||||||
|
echo json_encode(["status" => "Sukses"]);
|
||||||
|
} else {
|
||||||
|
echo json_encode(["status" => "Gagal", "pesan" => $conn->error]);
|
||||||
|
}
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
// Terapkan perubahan `echo json_encode(...)` yang sama untuk update_lokasi, simpan_bantuan, update_bantuan, dan hapus_bantuan.
|
|
||||||
|
|
||||||
$conn->close();
|
$conn->close();
|
||||||
?>
|
?>
|
||||||
Reference in New Issue
Block a user