<?php
// Koneksi ke database
include "config.php";

// Cek apakah form telah disubmit
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Ambil dan sanitasi data dari form
    $id_pelanggaran = intval($_POST['id_pelanggaran']);
    $nama_siswa = mysqli_real_escape_string($conn, $_POST['nama_siswa']);
    $jenis_kelamin = mysqli_real_escape_string($conn, $_POST['jenis_kelamin']);
    $kode_kelas = mysqli_real_escape_string($conn, $_POST['kode_kelas']);
    $kode_tahun_ajaran = mysqli_real_escape_string($conn, $_POST['kode_tahun_ajaran']);
    $tanggal = mysqli_real_escape_string($conn, $_POST['tanggal']);
    $pelanggaran = mysqli_real_escape_string($conn, $_POST['pelanggaran']);
    $poin = intval($_POST['poin']);
    $keterangan = mysqli_real_escape_string($conn, $_POST['keterangan']);
    
    // Validasi data
    $errors = [];
    
    if ($id_pelanggaran <= 0) {
        $errors[] = "ID pelanggaran tidak valid";
    }
    
    if (empty($nama_siswa)) {
        $errors[] = "Nama siswa harus diisi";
    }
    
    if (empty($jenis_kelamin) || !in_array($jenis_kelamin, ['Laki-Laki', 'Perempuan'])) {
        $errors[] = "Jenis kelamin tidak valid";
    }
    
    if (empty($kode_kelas)) {
        $errors[] = "Kelas harus dipilih";
    }
    
    if (empty($kode_tahun_ajaran)) {
        $errors[] = "Tahun ajaran harus dipilih";
    }
    
    if (empty($tanggal)) {
        $errors[] = "Tanggal harus diisi";
    }
    
    if (empty($pelanggaran)) {
        $errors[] = "Jenis pelanggaran harus diisi";
    }
    
    if ($poin < 1 || $poin > 100) {
        $errors[] = "Poin harus antara 1-100";
    }
    
    // Jika tidak ada error, update data di database
    if (empty($errors)) {
        // Query untuk update data
        $query = "UPDATE ctkpoin_pelanggaran_siswa SET
                    kode_tahun_ajaran = ?, 
                    nama_siswa = ?, 
                    jenis_kelamin = ?, 
                    kode_kelas = ?, 
                    tanggal = ?, 
                    pelanggaran = ?, 
                    poin = ?, 
                    keterangan = ?
                  WHERE id_pelanggaran = ?";
        
        // Gunakan prepared statement untuk keamanan
        $stmt = mysqli_prepare($conn, $query);
        mysqli_stmt_bind_param($stmt, "ssssssisi", 
            $kode_tahun_ajaran, 
            $nama_siswa, 
            $jenis_kelamin, 
            $kode_kelas, 
            $tanggal, 
            $pelanggaran, 
            $poin, 
            $keterangan,
            $id_pelanggaran
        );
        
        if (mysqli_stmt_execute($stmt)) {
            // Redirect ke halaman utama dengan pesan sukses
            session_start();
            $_SESSION['success_message'] = "Data pelanggaran berhasil diperbarui!";
            header("Location: index.php");
            exit();
        } else {
            $errors[] = "Gagal mengupdate data: " . mysqli_error($conn);
        }
        
        mysqli_stmt_close($stmt);
    }
    
    // Jika ada error, simpan ke session dan redirect kembali
    if (!empty($errors)) {
        session_start();
        $_SESSION['errors'] = $errors;
        header("Location: index.php");
        exit();
    }
} else {
    // Jika bukan method POST, redirect ke halaman utama
    header("Location: index.php");
    exit();
}

// Tutup koneksi
mysqli_close($conn);
?>