fix: error geser titik spbu dan memunculkan alat digitasi lahan

This commit is contained in:
2026-06-12 06:16:46 +07:00
parent 90f6166219
commit a9785feeb5
8 changed files with 151 additions and 2 deletions
+30
View File
@@ -0,0 +1,30 @@
<?php
include '../koneksi.php';
header('Content-Type: application/json');
try {
// 1. Fetch all fasilitas_publik
$stmtFp = $pdo->query("SELECT * FROM fasilitas_publik ORDER BY id DESC");
$fasilitasPublik = $stmtFp->fetchAll();
// 2. Fetch all penduduk_miskin (dengan nama FP jika ada join)
$stmtPm = $pdo->query("
SELECT p.*, f.nama as fp_nama
FROM penduduk_miskin p
LEFT JOIN fasilitas_publik f ON p.fasilitas_publik_id = f.id
ORDER BY p.id DESC
");
$pendudukMiskin = $stmtPm->fetchAll();
echo json_encode([
'status' => 'success',
'fasilitasPublik' => $fasilitasPublik,
'pendudukMiskin' => $pendudukMiskin
]);
} catch (PDOException $e) {
echo json_encode([
'status' => 'error',
'message' => 'Database error: ' . $e->getMessage()
]);
}
?>
+20
View File
@@ -0,0 +1,20 @@
<?php
include '../koneksi.php';
header('Content-Type: application/json');
$id = (int)($_GET['id'] ?? 0);
if (!$id) { echo json_encode(['status'=>'error','message'=>'ID tidak valid.']); exit; }
try {
$stmt = $pdo->prepare("SELECT * FROM fasilitas_publik WHERE id=?");
$stmt->execute([$id]);
$data = $stmt->fetch();
if ($data) {
echo json_encode(['status'=>'success','data'=>$data]);
} else {
echo json_encode(['status'=>'error','message'=>'Data tidak ditemukan.']);
}
} catch (PDOException $e) {
echo json_encode(['status'=>'error','message'=>$e->getMessage()]);
}
?>
+24
View File
@@ -0,0 +1,24 @@
<?php
include '../koneksi.php';
header('Content-Type: application/json');
$id = (int)($_GET['id'] ?? 0);
if (!$id) { echo json_encode(['status'=>'error','message'=>'ID tidak valid.']); exit; }
try {
$stmt = $pdo->prepare(
"SELECT pm.*, fp.nama AS fp_nama FROM penduduk_miskin pm
LEFT JOIN fasilitas_publik fp ON pm.fasilitas_publik_id = fp.id
WHERE pm.id=?"
);
$stmt->execute([$id]);
$data = $stmt->fetch();
if ($data) {
echo json_encode(['status'=>'success','data'=>$data]);
} else {
echo json_encode(['status'=>'error','message'=>'Data tidak ditemukan.']);
}
} catch (PDOException $e) {
echo json_encode(['status'=>'error','message'=>$e->getMessage()]);
}
?>
+24
View File
@@ -0,0 +1,24 @@
<?php
include '../koneksi.php';
header('Content-Type: application/json');
$id = $_GET['id'] ?? null;
if (!$id) {
echo json_encode(['status' => 'error', 'message' => 'ID tidak diberikan']);
exit;
}
try {
$stmt = $pdo->prepare("SELECT * FROM points WHERE id = ?");
$stmt->execute([$id]);
$data = $stmt->fetch(PDO::FETCH_ASSOC);
if ($data) {
echo json_encode(['status' => 'success', 'data' => $data]);
} else {
echo json_encode(['status' => 'error', 'message' => 'Data tidak ditemukan']);
}
} catch (PDOException $e) {
echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
}
+23
View File
@@ -0,0 +1,23 @@
<?php
include '../koneksi.php';
header('Content-Type: application/json');
try {
$totalFP = $pdo->query("SELECT COUNT(*) FROM fasilitas_publik")->fetchColumn();
$totalPM = $pdo->query("SELECT COUNT(*) FROM penduduk_miskin")->fetchColumn();
$ditangani= $pdo->query("SELECT COUNT(*) FROM penduduk_miskin WHERE status_jangkauan='Dalam Jangkauan'")->fetchColumn();
$belum = $totalPM - $ditangani;
$persen = $totalPM > 0 ? round(($ditangani / $totalPM) * 100, 1) : 0;
echo json_encode([
'status' => 'success',
'total_ri' => (int)$totalFP,
'total_pm' => (int)$totalPM,
'ditangani' => (int)$ditangani,
'belum_ditangani'=> (int)$belum,
'persentase' => $persen,
]);
} catch (PDOException $e) {
echo json_encode(['status'=>'error','message'=>$e->getMessage()]);
}
?>
+28
View File
@@ -0,0 +1,28 @@
<?php
session_start();
if (!isset($_SESSION['role']) || !in_array($_SESSION['role'], ['admin', 'petugas'])) {
header('Content-Type: application/json');
http_response_code(403);
echo json_encode(['status'=>'error','message'=>'Akses ditolak.']);
exit;
}
include '../koneksi.php';
header('Content-Type: application/json');
$id = (int)($_POST['id'] ?? 0);
$status_bantuan = trim($_POST['status_bantuan'] ?? '');
if (!$id || !$status_bantuan) {
echo json_encode(['status'=>'error','message'=>'Data tidak valid.']);
exit;
}
try {
$stmt = $pdo->prepare("UPDATE penduduk_miskin SET status_bantuan=? WHERE id=?");
$stmt->execute([$status_bantuan, $id]);
echo json_encode(['status'=>'success']);
} catch (PDOException $e) {
echo json_encode(['status'=>'error','message'=>$e->getMessage()]);
}
?>
+1 -1
View File
@@ -393,7 +393,7 @@ $modulTitle = $modulNames[$modul] ?? 'Analisis Spasial';
<?php endif; ?>
<?php if ($modul === 'digitasi' || $modul === 'utuh'): ?>
<?php if ($currentRole === 'admin'): ?>
<?php if ($currentRole === 'admin' || $currentRole === 'petugas'): ?>
<button class="tool-btn" id="btnToolJalan" data-mode="jalan" title="Gambar Jalan">
<span class="tool-icon">🛣️</span>
<span>Jalan</span>
+1 -1
View File
@@ -2,7 +2,7 @@
session_start();
include '../koneksi.php';
if (!isset($_SESSION['user_id'])) {
if (!isset($_SESSION['role']) || !in_array($_SESSION['role'], ['admin', 'petugas'])) {
echo json_encode(['status' => 'error', 'message' => 'Unauthorized']);
exit;
}