Initial WebGIS portal project
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
require_once __DIR__ . '/db_pdo.php';
|
||||
require_once __DIR__ . '/spatial_helpers.php';
|
||||
|
||||
$input = get_json_input();
|
||||
|
||||
$id = (int) ($input['id'] ?? 0);
|
||||
$namaPemilik = trim((string) ($input['nama_pemilik'] ?? ''));
|
||||
$statusKepemilikan = trim((string) ($input['status_kepemilikan'] ?? ''));
|
||||
$luasM2 = (float) ($input['luas_m2'] ?? 0);
|
||||
$wkt = sanitize_wkt((string) ($input['wkt'] ?? ''), 'POLYGON');
|
||||
|
||||
$allowedStatus = ['SHM', 'HGB', 'HGU', 'HP'];
|
||||
|
||||
if ($id <= 0) {
|
||||
json_response(422, [
|
||||
'success' => false,
|
||||
'message' => 'ID parsil tidak valid.',
|
||||
]);
|
||||
}
|
||||
|
||||
if ($namaPemilik === '' || !in_array($statusKepemilikan, $allowedStatus, true)) {
|
||||
json_response(422, [
|
||||
'success' => false,
|
||||
'message' => 'Nama pemilik wajib diisi dan status harus SHM/HGB/HGU/HP.',
|
||||
]);
|
||||
}
|
||||
|
||||
if ($luasM2 <= 0) {
|
||||
json_response(422, [
|
||||
'success' => false,
|
||||
'message' => 'Luas tanah harus lebih dari 0 m2.',
|
||||
]);
|
||||
}
|
||||
|
||||
$sql = 'UPDATE parsil_tanah SET nama_pemilik = :nama_pemilik, status_kepemilikan = :status_kepemilikan, luas_m2 = :luas_m2, geom = ST_GeomFromText(:wkt), updated_at = CURRENT_TIMESTAMP WHERE id = :id';
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$stmt->execute([
|
||||
':id' => $id,
|
||||
':nama_pemilik' => $namaPemilik,
|
||||
':status_kepemilikan' => $statusKepemilikan,
|
||||
':luas_m2' => $luasM2,
|
||||
':wkt' => $wkt,
|
||||
]);
|
||||
|
||||
if ($stmt->rowCount() < 1) {
|
||||
$checkStmt = $pdo->prepare('SELECT id FROM parsil_tanah WHERE id = :id LIMIT 1');
|
||||
$checkStmt->execute([':id' => $id]);
|
||||
if (!$checkStmt->fetch()) {
|
||||
json_response(404, [
|
||||
'success' => false,
|
||||
'message' => 'Data parsil tidak ditemukan.',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
json_response(200, [
|
||||
'success' => true,
|
||||
'message' => 'Data parsil tanah berhasil diperbarui.',
|
||||
]);
|
||||
Reference in New Issue
Block a user