add files
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/../config.php';
|
||||
$user = requireLogin();
|
||||
$method = $_SERVER['REQUEST_METHOD'];
|
||||
$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
|
||||
$db = getDB();
|
||||
|
||||
switch ($method) {
|
||||
case 'GET':
|
||||
if ($id) {
|
||||
$st = $db->prepare("SELECT ri.*,
|
||||
(SELECT COUNT(*) FROM keluarga k WHERE k.rumah_ibadah_id=ri.id) as jumlah_kk,
|
||||
(SELECT COUNT(*) FROM keluarga k JOIN penduduk p ON p.keluarga_id=k.id WHERE k.rumah_ibadah_id=ri.id AND p.status_hidup='hidup') as jumlah_jiwa,
|
||||
(SELECT COUNT(*) FROM keluarga k WHERE k.rumah_ibadah_id=ri.id AND k.status_ekonomi='miskin') as kk_miskin
|
||||
FROM rumah_ibadah ri WHERE ri.id=?");
|
||||
$st->execute([$id]); jsonOk($st->fetch()); break;
|
||||
}
|
||||
$rows = $db->query("SELECT ri.id, ri.nama, ri.jenis, ri.kontak, ri.lat, ri.lng, ri.alamat, ri.kelurahan,
|
||||
(SELECT COUNT(*) FROM keluarga k WHERE k.rumah_ibadah_id=ri.id) as jumlah_kk,
|
||||
(SELECT COUNT(*) FROM keluarga k WHERE k.rumah_ibadah_id=ri.id AND k.status_ekonomi='miskin') as kk_miskin
|
||||
FROM rumah_ibadah ri ORDER BY ri.nama")->fetchAll();
|
||||
foreach ($rows as &$r) { $r['id']=(int)$r['id']; $r['lat']=(float)$r['lat']; $r['lng']=(float)$r['lng']; }
|
||||
jsonOk($rows); break;
|
||||
|
||||
case 'POST':
|
||||
requireRole(['superadmin']);
|
||||
$b = json_decode(file_get_contents('php://input'), true);
|
||||
$nama = sanitize($b['nama'] ?? '');
|
||||
if (!$nama) jsonErr('Nama wajib diisi.');
|
||||
$db->prepare("INSERT INTO rumah_ibadah (nama,jenis,kontak,lat,lng,alamat,kelurahan) VALUES (?,?,?,?,?,?,?)")
|
||||
->execute([$nama,$b['jenis']??'Masjid',sanitize($b['kontak']??''),(float)($b['lat']??0),(float)($b['lng']??0),sanitize($b['alamat']??''),sanitize($b['kelurahan']??'')]);
|
||||
jsonOk(['id'=>(int)$db->lastInsertId()],'Rumah ibadah ditambahkan.');
|
||||
break;
|
||||
|
||||
case 'PUT':
|
||||
requireRole(['superadmin','pengurus']);
|
||||
if (!$id) jsonErr('ID tidak valid.');
|
||||
$b = json_decode(file_get_contents('php://input'), true);
|
||||
$db->prepare("UPDATE rumah_ibadah SET nama=?,jenis=?,kontak=?,lat=?,lng=?,alamat=?,kelurahan=?,updated_at=NOW() WHERE id=?")
|
||||
->execute([sanitize($b['nama']??''),$b['jenis']??'Masjid',sanitize($b['kontak']??''),(float)($b['lat']??0),(float)($b['lng']??0),sanitize($b['alamat']??''),sanitize($b['kelurahan']??''),$id]);
|
||||
jsonOk(null,'Data diperbarui.');
|
||||
break;
|
||||
|
||||
case 'DELETE':
|
||||
requireRole(['superadmin']);
|
||||
if (!$id) jsonErr('ID tidak valid.');
|
||||
$db->prepare("DELETE FROM rumah_ibadah WHERE id=?")->execute([$id]);
|
||||
jsonOk(null,'Data dihapus.');
|
||||
break;
|
||||
|
||||
default: jsonErr('Method tidak didukung.', 405);
|
||||
}
|
||||
Reference in New Issue
Block a user