Files
WEB-GIS/update_verifikasi_lapangan.php
T
2026-05-12 10:16:16 +07:00

84 lines
3.1 KiB
PHP

<?php
header('Content-Type: application/json');
include 'db_config.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$id = (int)($_POST['id'] ?? 0);
$jenisTarget = trim($_POST['jenis_target'] ?? 'penduduk_miskin');
$targetNama = trim($_POST['target_nama'] ?? '');
$petugasNama = trim($_POST['petugas_nama'] ?? '');
$statusVerifikasi = trim($_POST['status_verifikasi'] ?? 'menunggu');
$hasilTemuan = trim($_POST['hasil_temuan'] ?? '');
$tindakLanjut = trim($_POST['tindak_lanjut'] ?? '');
$latitude = $_POST['latitude'] ?? '';
$longitude = $_POST['longitude'] ?? '';
if ($id <= 0 || $petugasNama === '' || empty($latitude) || empty($longitude)) {
http_response_code(400);
echo json_encode(['status' => 'error', 'message' => 'Data verifikasi tidak lengkap']);
$conn->close();
exit;
}
$fotoSql = '';
$foto = null;
if (isset($_FILES['foto']) && $_FILES['foto']['error'] === UPLOAD_ERR_OK) {
$allowed = ['jpg', 'jpeg', 'png', 'gif', 'webp'];
$filename = $_FILES['foto']['name'];
$ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
if (!in_array($ext, $allowed, true)) {
http_response_code(400);
echo json_encode(['status' => 'error', 'message' => 'Format foto hanya JPG, PNG, GIF, WEBP']);
$conn->close();
exit;
}
if (!is_dir('uploads')) {
mkdir('uploads', 0755, true);
}
$foto = 'uploads/' . time() . '_' . basename($filename);
if (!move_uploaded_file($_FILES['foto']['tmp_name'], $foto)) {
http_response_code(500);
echo json_encode(['status' => 'error', 'message' => 'Gagal upload foto']);
$conn->close();
exit;
}
$fotoSql = ', foto = ?';
}
$sql = 'UPDATE verifikasi_lapangan SET jenis_target = ?, target_nama = ?, petugas_nama = ?, status_verifikasi = ?, hasil_temuan = ?, tindak_lanjut = ?, latitude = ?, longitude = ?' . $fotoSql . ' WHERE id = ?';
$stmt = $conn->prepare($sql);
if (!$stmt) {
http_response_code(500);
echo json_encode(['status' => 'error', 'message' => $conn->error]);
$conn->close();
exit;
}
$latitude = (float)$latitude;
$longitude = (float)$longitude;
if ($foto !== null) {
$stmt->bind_param('sssssssddi', $jenisTarget, $targetNama, $petugasNama, $statusVerifikasi, $hasilTemuan, $tindakLanjut, $foto, $latitude, $longitude, $id);
} else {
$stmt->bind_param('ssssssddi', $jenisTarget, $targetNama, $petugasNama, $statusVerifikasi, $hasilTemuan, $tindakLanjut, $latitude, $longitude, $id);
}
if ($stmt->execute()) {
echo json_encode(['status' => 'success', 'message' => 'Verifikasi lapangan berhasil diperbarui']);
} else {
http_response_code(500);
echo json_encode(['status' => 'error', 'message' => $stmt->error]);
}
$stmt->close();
$conn->close();
exit;
}
http_response_code(405);
echo json_encode(['status' => 'error', 'message' => 'Method tidak diizinkan']);
$conn->close();
?>