prepare("DELETE FROM rumah_ibadah WHERE id=:id")->execute([':id'=>$id]); logAktivitas($pdo, (int)$_SESSION['user_id'], 'DELETE', 'rumah_ibadah', (string)$id); $msg = "Rumah ibadah #$id dihapus."; } catch(Exception $e) { $err = 'Gagal hapus: '.$e->getMessage(); } } // SAVE if ($canEdit && isset($_POST['save'])) { $nama = trim($_POST['nama'] ?? ''); $lat = $_POST['latitude'] ?? ''; $lng = $_POST['longitude'] ?? ''; $idEdit = (int)($_POST['id_edit'] ?? 0); if (strlen($nama) < 3) $err = 'Nama terlalu pendek.'; elseif (!is_numeric($lat) || !is_numeric($lng)) $err = 'Latitude/Longitude tidak valid.'; else { try { $data = [ ':nama' => $nama, ':jenis' => $_POST['jenis']??'Lainnya', ':kontak'=> $_POST['kontak']??'' ?: null, ':rad' => (float)($_POST['radius_meter']??300), ':lat' => (float)$lat, ':lng' => (float)$lng, ':almt' => $_POST['alamat']??'' ?: null, ':kel' => $_POST['kelurahan']??'' ?: null, ':kec' => $_POST['kecamatan']??'' ?: null, ':kota' => $_POST['kota']??'' ?: null, ':desk' => $_POST['deskripsi']??'' ?: null, ]; if ($idEdit) { $data[':id'] = $idEdit; $pdo->prepare("UPDATE rumah_ibadah SET nama=:nama,jenis=:jenis,kontak=:kontak,radius_meter=:rad, latitude=:lat,longitude=:lng,alamat=:almt,kelurahan=:kel,kecamatan=:kec,kota=:kota,deskripsi=:desk WHERE id=:id")->execute($data); $msg = "$nama diperbarui."; logAktivitas($pdo, (int)$_SESSION['user_id'], 'UPDATE', 'rumah_ibadah', (string)$idEdit); } else { $pdo->prepare("INSERT INTO rumah_ibadah (nama,jenis,kontak,radius_meter,latitude,longitude,alamat,kelurahan,kecamatan,kota,deskripsi) VALUES(:nama,:jenis,:kontak,:rad,:lat,:lng,:almt,:kel,:kec,:kota,:desk)")->execute($data); $msg = "$nama berhasil ditambahkan."; logAktivitas($pdo, (int)$_SESSION['user_id'], 'CREATE', 'rumah_ibadah', (string)$pdo->lastInsertId()); } } catch(Exception $e) { $err = $e->getMessage(); } } } $edit = null; if (isset($_GET['edit'])) { $s = $pdo->prepare("SELECT * FROM rumah_ibadah WHERE id=:id"); $s->execute([':id'=>(int)$_GET['edit']]); $edit = $s->fetch() ?: null; } $rows = $pdo->query(" SELECT ri.*, (SELECT COUNT(*) FROM keluarga k WHERE k.rumah_ibadah_id=ri.id) AS jml_kk FROM rumah_ibadah ri ORDER BY ri.nama ")->fetchAll(); $jenisOpts = ['Masjid','Musholla','Gereja Protestan','Gereja Katolik','Pura','Vihara','Klenteng','Lainnya']; render_header('Rumah Ibadah'); ?>