<?php
require_once '../includes/header.php';
require_once '../includes/navbar.php';

// Cek apakah parameter ID tersedia
if (!isset($_GET['id']) || empty($_GET['id'])) {
    echo "<script>
        Swal.fire({
            icon: 'error',
            title: 'Error',
            text: 'ID orang tua tidak valid!'
        }).then(() => {
            window.location.href = 'index.php';
        });
    </script>";
    exit();
}

$id_orangtua = mysqli_real_escape_string($conn, $_GET['id']);

// Ambil data orang tua berdasarkan ID
$query_orangtua = "SELECT ot.*, s.id_siswa, s.nisn, s.nis, s.nama_lengkap 
                   FROM bind_orang_tua ot 
                   JOIN bind_siswa s ON ot.id_siswa = s.id_siswa 
                   WHERE ot.id_orangtua = '$id_orangtua'";
$result_orangtua = mysqli_query($conn, $query_orangtua);

if (mysqli_num_rows($result_orangtua) == 0) {
    echo "<script>
        Swal.fire({
            icon: 'error',
            title: 'Error',
            text: 'Data orang tua tidak ditemukan!'
        }).then(() => {
            window.location.href = 'index.php';
        });
    </script>";
    exit();
}

$orangtua = mysqli_fetch_assoc($result_orangtua);

// Fungsi untuk menangani nilai null sebelum htmlspecialchars
function safe_html($value) {
    return ($value !== null) ? htmlspecialchars($value) : '';
}

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Ambil data dari form
    $id_siswa = $_POST['id_siswa'];
    $hubungan = $_POST['hubungan'];
    $nama = $_POST['nama'];
    $tempat_lahir = $_POST['tempat_lahir'];
    $tanggal_lahir = (!empty($_POST['tanggal_lahir'])) ? $_POST['tanggal_lahir'] : NULL;
    $agama = $_POST['agama'];
    $kewarganegaraan = $_POST['kewarganegaraan'];
    $pendidikan_terakhir = $_POST['pendidikan_terakhir'];
    $pekerjaan = $_POST['pekerjaan'];
    $penghasilan_bulanan = (!empty($_POST['penghasilan_bulanan'])) ? $_POST['penghasilan_bulanan'] : NULL;
    $alamat = $_POST['alamat'];
    $no_hp = $_POST['no_hp'];
    $status_hidup = $_POST['status_hidup'];
    
    // Validasi: Cek apakah siswa sudah memiliki data orang tua dengan hubungan yang sama (kecuali data yang sedang diedit)
    $query_cek = "SELECT ot.id_orangtua, s.nisn, s.nama_lengkap 
                 FROM bind_orang_tua ot 
                 JOIN bind_siswa s ON ot.id_siswa = s.id_siswa 
                 WHERE ot.id_siswa = '$id_siswa' 
                 AND ot.hubungan = '$hubungan' 
                 AND ot.id_orangtua != '$id_orangtua'";
    $result_cek = mysqli_query($conn, $query_cek);
    
    if (mysqli_num_rows($result_cek) > 0) {
        $data_siswa = mysqli_fetch_assoc($result_cek);
        echo "<script>
            Swal.fire({
                icon: 'error',
                title: 'Gagal',
                html: 'Data $hubungan untuk siswa <b>" . addslashes($data_siswa['nama_lengkap']) . "</b> (NISN: " . $data_siswa['nisn'] . ") sudah ada.<br>Silakan pilih hubungan yang berbeda.'
            });
        </script>";
    } else {
        // Update data dengan prepared statement
        $sql = "UPDATE bind_orang_tua SET 
                id_siswa = ?,
                hubungan = ?,
                nama = ?,
                tempat_lahir = ?,
                tanggal_lahir = ?,
                agama = ?,
                kewarganegaraan = ?,
                pendidikan_terakhir = ?,
                pekerjaan = ?,
                penghasilan_bulanan = ?,
                alamat = ?,
                no_hp = ?,
                status_hidup = ?
                WHERE id_orangtua = ?";
        
        $stmt = $conn->prepare($sql);
        $stmt->bind_param("issssssssdsssi", 
            $id_siswa,
            $hubungan,
            $nama,
            $tempat_lahir,
            $tanggal_lahir,
            $agama,
            $kewarganegaraan,
            $pendidikan_terakhir,
            $pekerjaan,
            $penghasilan_bulanan,
            $alamat,
            $no_hp,
            $status_hidup,
            $id_orangtua
        );
        
        if ($stmt->execute()) {
            echo "<script>
                Swal.fire({
                    icon: 'success',
                    title: 'Berhasil',
                    text: 'Data orang tua berhasil diperbarui'
                }).then(() => {
                    window.location.href = 'index.php';
                });
            </script>";
        } else {
            echo "<script>
                Swal.fire({
                    icon: 'error',
                    title: 'Gagal',
                    text: 'Terjadi kesalahan: " . addslashes($conn->error) . "'
                });
            </script>";
        }
        $stmt->close();
    }
}
?>

<div class="container mt-4">
    <div class="d-flex justify-content-between align-items-center mb-4">
        <h2><i class="fas fa-edit me-2"></i>Edit Data Orang Tua / Wali</h2>
        <a href="index.php" class="btn btn-secondary">
            <i class="fas fa-arrow-left me-1"></i> Kembali
        </a>
    </div>
    
    <div class="card border-0 shadow-lg">
        <div class="card-header bg-primary text-white py-3">
            <h5 class="card-title mb-0"><i class="fas fa-users me-2"></i>Edit Data Orang Tua / Wali</h5>
        </div>
        <div class="card-body p-4">
            <form method="POST" id="formEditOrangTua">
                <!-- Input hidden untuk menyimpan id_siswa -->
                <input type="hidden" name="id_siswa" value="<?= $orangtua['id_siswa']; ?>">
                
                <div class="row">
                    <div class="col-md-6">
                        <div class="mb-3">
                            <label for="id_siswa_display" class="form-label">Siswa</label>
                            <div class="input-group">
                                <span class="input-group-text"><i class="fas fa-user-graduate"></i></span>
                                <select class="form-select select2" id="id_siswa_display" name="id_siswa_display" disabled>
                                    <option value="">Pilih Siswa</option>
                                    <option value="<?= $orangtua['id_siswa']; ?>" selected>
                                        <?= htmlspecialchars($orangtua['nisn'] . ' - ' . $orangtua['nama_lengkap'] . ' (' . $orangtua['nis'] . ')'); ?>
                                    </option>
                                </select>
                            </div>
                            <small class="form-text text-muted">Data siswa tidak dapat diubah setelah data orang tua dibuat</small>
                        </div>
                        
                        <div class="mb-3">
                            <label for="hubungan" class="form-label">Hubungan <span class="text-danger">*</span></label>
                            <div class="input-group">
                                <span class="input-group-text"><i class="fas fa-heart"></i></span>
                                <select class="form-select" id="hubungan" name="hubungan" required>
                                    <option value="">Pilih Hubungan</option>
                                    <option value="Ayah" <?= ($orangtua['hubungan'] == 'Ayah') ? 'selected' : ''; ?>>Ayah</option>
                                    <option value="Ibu" <?= ($orangtua['hubungan'] == 'Ibu') ? 'selected' : ''; ?>>Ibu</option>
                                    <option value="Wali" <?= ($orangtua['hubungan'] == 'Wali') ? 'selected' : ''; ?>>Wali</option>
                                </select>
                            </div>
                        </div>
                        
                        <div class="mb-3">
                            <label for="nama" class="form-label">Nama Lengkap <span class="text-danger">*</span></label>
                            <div class="input-group">
                                <span class="input-group-text"><i class="fas fa-user"></i></span>
                                <input type="text" class="form-control" id="nama" name="nama" required 
                                       value="<?= safe_html($orangtua['nama']); ?>" placeholder="Nama lengkap orang tua/wali">
                            </div>
                        </div>
                        
                        <div class="mb-3">
                            <label for="tempat_lahir" class="form-label">Tempat Lahir</label>
                            <div class="input-group">
                                <span class="input-group-text"><i class="fas fa-map-marker-alt"></i></span>
                                <input type="text" class="form-control" id="tempat_lahir" name="tempat_lahir" 
                                       value="<?= safe_html($orangtua['tempat_lahir']); ?>" placeholder="Tempat lahir">
                            </div>
                        </div>
                        
                        <div class="mb-3">
                            <label for="tanggal_lahir" class="form-label">Tanggal Lahir</label>
                            <div class="input-group">
                                <span class="input-group-text"><i class="fas fa-calendar"></i></span>
                                <input type="date" class="form-control" id="tanggal_lahir" name="tanggal_lahir" 
                                       value="<?= $orangtua['tanggal_lahir']; ?>">
                            </div>
                        </div>
                        
                        <div class="mb-3">
                            <label for="agama" class="form-label">Agama</label>
                            <div class="input-group">
                                <span class="input-group-text"><i class="fas fa-pray"></i></span>
                                <select class="form-select" id="agama" name="agama">
                                    <option value="">Pilih Agama</option>
                                    <option value="Islam" <?= ($orangtua['agama'] == 'Islam') ? 'selected' : ''; ?>>Islam</option>
                                    <option value="Kristen" <?= ($orangtua['agama'] == 'Kristen') ? 'selected' : ''; ?>>Kristen</option>
                                    <option value="Katolik" <?= ($orangtua['agama'] == 'Katolik') ? 'selected' : ''; ?>>Katolik</option>
                                    <option value="Hindu" <?= ($orangtua['agama'] == 'Hindu') ? 'selected' : ''; ?>>Hindu</option>
                                    <option value="Buddha" <?= ($orangtua['agama'] == 'Buddha') ? 'selected' : ''; ?>>Buddha</option>
                                    <option value="Konghucu" <?= ($orangtua['agama'] == 'Konghucu') ? 'selected' : ''; ?>>Konghucu</option>
                                </select>
                            </div>
                        </div>
                         <div class="mb-3">
                            <label for="kewarganegaraan" class="form-label">Kewarganegaraan</label>
                            <div class="input-group">
                                <span class="input-group-text"><i class="fas fa-globe"></i></span>
                                <input type="text" class="form-control" id="kewarganegaraan" name="kewarganegaraan" 
                                       value="<?= safe_html($orangtua['kewarganegaraan']); ?>" placeholder="Kewarganegaraan">
                            </div>
                        </div>
                    </div>
                    
                    <div class="col-md-6">
                        <div class="mb-3">
                            <label for="pendidikan_terakhir" class="form-label">Pendidikan Terakhir</label>
                            <div class="input-group">
                                <span class="input-group-text"><i class="fas fa-graduation-cap"></i></span>
                                <select class="form-select" id="pendidikan_terakhir" name="pendidikan_terakhir">
                                    <option value="">Pilih Pendidikan</option>
                                    <option value="Tidak Sekolah" <?= ($orangtua['pendidikan_terakhir'] == 'Tidak Sekolah') ? 'selected' : ''; ?>>Tidak Sekolah</option>
                                    <option value="SD/Sederajat" <?= ($orangtua['pendidikan_terakhir'] == 'SD/Sederajat') ? 'selected' : ''; ?>>SD/Sederajat</option>
                                    <option value="SMP/Sederajat" <?= ($orangtua['pendidikan_terakhir'] == 'SMP/Sederajat') ? 'selected' : ''; ?>>SMP/Sederajat</option>
                                    <option value="SMA/Sederajat" <?= ($orangtua['pendidikan_terakhir'] == 'SMA/Sederajat') ? 'selected' : ''; ?>>SMA/Sederajat</option>
                                    <option value="D1/D2/D3" <?= ($orangtua['pendidikan_terakhir'] == 'D1/D2/D3') ? 'selected' : ''; ?>>D1/D2/D3</option>
                                    <option value="S1/D4" <?= ($orangtua['pendidikan_terakhir'] == 'S1/D4') ? 'selected' : ''; ?>>S1/D4</option>
                                    <option value="S2" <?= ($orangtua['pendidikan_terakhir'] == 'S2') ? 'selected' : ''; ?>>S2</option>
                                    <option value="S3" <?= ($orangtua['pendidikan_terakhir'] == 'S3') ? 'selected' : ''; ?>>S3</option>
                                </select>
                            </div>
                        </div>
                        
                        <div class="mb-3">
                            <label for="pekerjaan" class="form-label">Pekerjaan</label>
                            <div class="input-group">
                                <span class="input-group-text"><i class="fas fa-briefcase"></i></span>
                                <input type="text" class="form-control" id="pekerjaan" name="pekerjaan" 
                                       value="<?= safe_html($orangtua['pekerjaan']); ?>" placeholder="Pekerjaan">
                            </div>
                        </div>
                        
                        <div class="mb-3">
                            <label for="penghasilan_bulanan" class="form-label">Penghasilan Bulanan (Rp)</label>
                            <div class="input-group">
                                <span class="input-group-text"><i class="fas fa-money-bill-wave"></i></span>
                                <input type="number" class="form-control" id="penghasilan_bulanan" name="penghasilan_bulanan" 
                                       value="<?= $orangtua['penghasilan_bulanan']; ?>" min="0" step="100000" placeholder="0">
                            </div>
                        </div>
                        
                        <div class="mb-3">
                            <label for="alamat" class="form-label">Alamat</label>
                            <div class="input-group">
                                <span class="input-group-text"><i class="fas fa-home"></i></span>
                                <textarea class="form-control" id="alamat" name="alamat" rows="4" 
                                          placeholder="Alamat lengkap"><?= safe_html($orangtua['alamat']); ?></textarea>
                            </div>
                        </div>
                        
                        <div class="mb-3">
                            <label for="no_hp" class="form-label">No. HP</label>
                            <div class="input-group">
                                <span class="input-group-text"><i class="fas fa-phone"></i></span>
                                <input type="text" class="form-control" id="no_hp" name="no_hp" 
                                       value="<?= safe_html($orangtua['no_hp']); ?>" placeholder="Nomor handphone">
                            </div>
                        </div>
                        
                        <div class="mb-3">
                            <label for="status_hidup" class="form-label">Status <span class="text-danger">*</span></label>
                            <div class="input-group">
                                <span class="input-group-text"><i class="fas fa-heartbeat"></i></span>
                                <select class="form-select" id="status_hidup" name="status_hidup" required>
                                    <option value="Hidup" <?= ($orangtua['status_hidup'] == 'Hidup') ? 'selected' : ''; ?>>Hidup</option>
                                    <option value="Meninggal" <?= ($orangtua['status_hidup'] == 'Meninggal') ? 'selected' : ''; ?>>Meninggal</option>
                                </select>
                            </div>
                        </div>
                    </div>
                </div>
                
                <div class="d-flex justify-content-end mt-4">
                    <a href="index.php" class="btn btn-secondary me-2">
                        <i class="fas fa-times me-1"></i> Batal
                    </a>
                    <button type="submit" class="btn btn-primary">
                        <i class="fas fa-save me-1"></i> Perbarui
                    </button>
                </div>
            </form>
        </div>
    </div>
</div>

<!-- jQuery (required for Select2) -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<!-- Select2 CSS -->
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<!-- Select2 JS -->
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Form validation
    document.getElementById('formEditOrangTua').addEventListener('submit', function(e) {
        let isValid = true;
        const requiredInputs = this.querySelectorAll('[required]');
        
        requiredInputs.forEach(input => {
            if (!input.value.trim()) {
                isValid = false;
                input.classList.add('is-invalid');
            } else {
                input.classList.remove('is-invalid');
            }
        });
        
        if (!isValid) {
            e.preventDefault();
            Swal.fire({
                icon: 'error',
                title: 'Oops...',
                text: 'Harap isi semua field yang wajib diisi!',
                confirmButtonColor: '#3085d6'
            });
        }
    });
});

$(document).ready(function() {
    // Inisialisasi Select2 untuk dropdown yang disabled
    $('#id_siswa_display').select2({
        theme: 'bootstrap4',
        placeholder: "Pilih Siswa",
        allowClear: false,
        language: {
            noResults: function() {
                return "Tidak ditemukan";
            },
            searching: function() {
                return "Mencari...";
            }
        }
    });
    
    // Nonaktifkan interaksi dengan Select2
    $('#id_siswa_display').next('.select2-container').css('pointer-events', 'none').css('opacity', '0.7');
});
</script>

<style>
/* Style untuk Select2 */
.select2-container--bootstrap4 .select2-selection--single {
    height: 38px;
    padding: 4px 12px;
    font-size: 1rem;
    border: 1px solid #ced4da;
    border-radius: 0.375rem;
}

.select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered {
    padding-left: 0;
}

.select2-container--bootstrap4 .select2-dropdown {
    border: 1px solid #ced4da;
    border-radius: 0.375rem;
}

.select2-container--bootstrap4 .select2-search--dropdown .select2-search__field {
    border: 1px solid #ced4da;
    border-radius: 0.375rem;
}

.select2-container--bootstrap4 .select2-results__option--highlighted {
    background-color: #0d6efd;
    color: white;
}

/* Menyesuaikan tampilan dengan input group */
.input-group .select2-container--bootstrap4 {
    flex: 1 1 auto;
    width: 1% !important;
}

.input-group .select2-container--bootstrap4 .select2-selection {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    border-left: 0;
}

/* Style untuk select yang disabled */
.select2-container--disabled {
    opacity: 0.7;
    pointer-events: none;
}
</style>

<?php
require_once '../includes/footer.php';
?>