- Implement bidirectional KK-KTP linkage system (address-based & NIK-based) - Optimize scanner for mobile devices (touch slop, larger hit areas, modal locking) - Add NIK validation (16-digit numeric) with client-side feedback - Set default RT/RW values to '000' for both KK and KTP forms - Change 'Kpl Keluarga' label to 'Kepala Keluarga' - Improve scanner error messages and user feedback - Remove redundant 'Deteksi Dokumen' button - Add database schema updates and Docker support files
62 lines
1.9 KiB
PHP
62 lines
1.9 KiB
PHP
<?php
|
|
session_start();
|
|
include "../inc/koneksi.php";
|
|
|
|
header('Content-Type: application/json');
|
|
|
|
if (!isset($_SESSION["ses_username"])) {
|
|
echo json_encode(['success' => false, 'message' => 'Unauthorized']);
|
|
exit;
|
|
}
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
|
echo json_encode(['success' => false, 'message' => 'Invalid request method']);
|
|
exit;
|
|
}
|
|
|
|
$id_pend = isset($_POST['id_pend']) ? intval($_POST['id_pend']) : 0;
|
|
$id_kk = isset($_POST['id_kk']) ? intval($_POST['id_kk']) : 0;
|
|
$hubungan = isset($_POST['hubungan']) ? mysqli_real_escape_string($koneksi, $_POST['hubungan']) : 'ANGGOTA';
|
|
|
|
if ($id_pend <= 0 || $id_kk <= 0) {
|
|
echo json_encode(['success' => false, 'message' => 'Invalid ID']);
|
|
exit;
|
|
}
|
|
|
|
// Cek apakah sudah terhubung
|
|
$sql_cek = "SELECT * FROM tb_anggota WHERE id_kk='$id_kk' AND id_pend='$id_pend'";
|
|
$q_cek = mysqli_query($koneksi, $sql_cek);
|
|
|
|
if (mysqli_num_rows($q_cek) > 0) {
|
|
echo json_encode(['success' => false, 'message' => 'Sudah terhubung']);
|
|
exit;
|
|
}
|
|
|
|
// Cek apakah penduduk ada
|
|
$sql_cek_pend = "SELECT * FROM tb_pdd WHERE id_pend='$id_pend'";
|
|
$q_cek_pend = mysqli_query($koneksi, $sql_cek_pend);
|
|
if (mysqli_num_rows($q_cek_pend) == 0) {
|
|
echo json_encode(['success' => false, 'message' => 'Data penduduk tidak ditemukan']);
|
|
exit;
|
|
}
|
|
|
|
// Cek apakah KK ada
|
|
$sql_cek_kk = "SELECT * FROM tb_kk WHERE id_kk='$id_kk'";
|
|
$q_cek_kk = mysqli_query($koneksi, $sql_cek_kk);
|
|
if (mysqli_num_rows($q_cek_kk) == 0) {
|
|
echo json_encode(['success' => false, 'message' => 'Data KK tidak ditemukan']);
|
|
exit;
|
|
}
|
|
|
|
// Hubungkan
|
|
$sql_link = "INSERT INTO tb_anggota (id_kk, id_pend, hubungan) VALUES ('$id_kk', '$id_pend', '$hubungan')";
|
|
$q_link = mysqli_query($koneksi, $sql_link);
|
|
|
|
if ($q_link) {
|
|
echo json_encode(['success' => true, 'message' => 'Berhasil dihubungkan']);
|
|
} else {
|
|
echo json_encode(['success' => false, 'message' => 'Database error: ' . mysqli_error($koneksi)]);
|
|
}
|
|
|
|
mysqli_close($koneksi);
|
|
?>
|