<?php
// Mulai output buffering untuk menghindari headers already sent
ob_start();
require_once '../includes/header.php';
require_once '../includes/navbar.php';

if (isset($_POST['tambah'])) {
    // Tambah tahun ajaran baru
    $tahun_ajaran = mysqli_real_escape_string($conn, $_POST['tahun_ajaran']);
    $set_aktif = isset($_POST['set_aktif']) ? 1 : 0;
    
    // Validasi format tahun ajaran
    if (!preg_match('/^\d{4}\/\d{4}$/', $tahun_ajaran)) {
        $_SESSION['error'] = "Format tahun ajaran tidak valid. Gunakan format: 2023/2024";
        header('Location: kelola-tahun-ajaran.php');
        ob_end_flush();
        exit;
    }
    
    // Cek duplikasi
    $query_cek = "SELECT * FROM bind_tahunajaran WHERE tahun_ajaran = '$tahun_ajaran'";
    $result_cek = mysqli_query($conn, $query_cek);
    
    if (mysqli_num_rows($result_cek) > 0) {
        $_SESSION['error'] = "Tahun ajaran sudah ada!";
        header('Location: kelola-tahun-ajaran.php');
        ob_end_flush();
        exit;
    }
    
    // Jika set aktif, nonaktifkan semua tahun ajaran lainnya
    if ($set_aktif) {
        mysqli_query($conn, "UPDATE bind_tahunajaran SET aktif = 0");
    }
    
    // Insert tahun ajaran baru
    $query_insert = "INSERT INTO bind_tahunajaran (tahun_ajaran, aktif) VALUES ('$tahun_ajaran', '$set_aktif')";
    
    if (mysqli_query($conn, $query_insert)) {
        $_SESSION['success'] = "Tahun ajaran berhasil ditambahkan!";
    } else {
        $_SESSION['error'] = "Gagal menambahkan tahun ajaran: " . mysqli_error($conn);
    }
    
    header('Location: kelola-tahun-ajaran.php');
    ob_end_flush();
    exit;
}

if (isset($_POST['edit'])) {
    // Edit tahun ajaran
    $id = mysqli_real_escape_string($conn, $_POST['id']);
    $tahun_ajaran = mysqli_real_escape_string($conn, $_POST['tahun_ajaran']);
    
    // Validasi format tahun ajaran
    if (!preg_match('/^\d{4}\/\d{4}$/', $tahun_ajaran)) {
        $_SESSION['error'] = "Format tahun ajaran tidak valid. Gunakan format: 2023/2024";
        header('Location: kelola-tahun-ajaran.php');
        ob_end_flush();
        exit;
    }
    
    // Cek duplikasi (kecuali data yang sedang diedit)
    $query_cek = "SELECT * FROM bind_tahunajaran WHERE tahun_ajaran = '$tahun_ajaran' AND id_tahunajaran != '$id'";
    $result_cek = mysqli_query($conn, $query_cek);
    
    if (mysqli_num_rows($result_cek) > 0) {
        $_SESSION['error'] = "Tahun ajaran sudah ada!";
        header('Location: kelola-tahun-ajaran.php');
        ob_end_flush();
        exit;
    }
    
    $query_update = "UPDATE bind_tahunajaran SET tahun_ajaran = '$tahun_ajaran' WHERE id_tahunajaran = '$id'";
    
    if (mysqli_query($conn, $query_update)) {
        $_SESSION['success'] = "Tahun ajaran berhasil diupdate!";
    } else {
        $_SESSION['error'] = "Gagal mengupdate tahun ajaran: " . mysqli_error($conn);
    }
    
    header('Location: kelola-tahun-ajaran.php');
    ob_end_flush();
    exit;
}

if (isset($_GET['aktifkan'])) {
    // Aktifkan tahun ajaran
    $id = mysqli_real_escape_string($conn, $_GET['aktifkan']);
    
    // Nonaktifkan semua tahun ajaran
    mysqli_query($conn, "UPDATE bind_tahunajaran SET aktif = 0");
    
    // Aktifkan tahun ajaran yang dipilih
    $query_aktifkan = "UPDATE bind_tahunajaran SET aktif = 1 WHERE id_tahunajaran = '$id'";
    
    if (mysqli_query($conn, $query_aktifkan)) {
        $_SESSION['success'] = "Tahun ajaran berhasil diaktifkan!";
    } else {
        $_SESSION['error'] = "Gagal mengaktifkan tahun ajaran: " . mysqli_error($conn);
    }
    
    header('Location: kelola-tahun-ajaran.php');
    ob_end_flush();
    exit;
}

if (isset($_GET['hapus'])) {
    // Hapus tahun ajaran
    $id = mysqli_real_escape_string($conn, $_GET['hapus']);
    
    // DEBUG: Tampilkan ID yang akan dihapus
    error_log("Mencoba menghapus tahun ajaran dengan ID: " . $id);
    
    // Cek apakah tahun ajaran ada
    $query_cek_ada = "SELECT * FROM bind_tahunajaran WHERE id_tahunajaran = '$id'";
    $result_cek_ada = mysqli_query($conn, $query_cek_ada);
    
    if (mysqli_num_rows($result_cek_ada) == 0) {
        $_SESSION['error'] = "Tahun ajaran tidak ditemukan!";
        header('Location: kelola-tahun-ajaran.php');
        ob_end_flush();
        exit;
    }
    
    $data_cek_ada = mysqli_fetch_assoc($result_cek_ada);
    
    // Cek apakah tahun ajaran aktif
    if ($data_cek_ada['aktif'] == 1) {
        $_SESSION['error'] = "Tidak dapat menghapus tahun ajaran yang sedang aktif!";
        header('Location: kelola-tahun-ajaran.php');
        ob_end_flush();
        exit;
    }
    
    // CEK PENGGUNAAN DI SEMUA TABEL YANG BERELASI
    
    $error_messages = [];
    
    // 1. Cek apakah ada data siswa yang menggunakan tahun ajaran ini
    $query_cek_siswa = "SELECT COUNT(*) as total FROM bind_datasiswa WHERE id_tahunajaran = '$id'";
    $result_cek_siswa = mysqli_query($conn, $query_cek_siswa);
    
    if ($result_cek_siswa) {
        $data_cek_siswa = mysqli_fetch_assoc($result_cek_siswa);
        if ($data_cek_siswa['total'] > 0) {
            $error_messages[] = "masih digunakan oleh data siswa";
        }
    }
    
    // 2. Cek apakah ada data GTK yang menggunakan tahun ajaran ini
    $query_cek_gtk = "SELECT COUNT(*) as total FROM bind_gtk WHERE id_tahunajaran = '$id'";
    $result_cek_gtk = mysqli_query($conn, $query_cek_gtk);
    
    if ($result_cek_gtk) {
        $data_cek_gtk = mysqli_fetch_assoc($result_cek_gtk);
        if ($data_cek_gtk['total'] > 0) {
            $error_messages[] = "masih digunakan oleh data GTK";
        }
    }
    
    // 3. Cek tabel lain yang mungkin menggunakan tahun ajaran
    // Tambahkan pengecekan lain di sini jika diperlukan
    
    // Jika ada error messages, tampilkan pesan error
    if (!empty($error_messages)) {
        $error_message = "Tidak dapat menghapus tahun ajaran karena " . implode(" dan ", $error_messages) . "!";
        $_SESSION['error'] = $error_message;
        error_log("Error hapus tahun ajaran: " . $error_message);
        header('Location: kelola-tahun-ajaran.php');
        ob_end_flush();
        exit;
    }
    
    // Jika tidak ada kendala, lakukan penghapusan
    $query_hapus = "DELETE FROM bind_tahunajaran WHERE id_tahunajaran = '$id'";
    
    if (mysqli_query($conn, $query_hapus)) {
        $_SESSION['success'] = "Tahun ajaran berhasil dihapus!";
    } else {
        $_SESSION['error'] = "Gagal menghapus tahun ajaran: " . mysqli_error($conn);
    }
    
    header('Location: kelola-tahun-ajaran.php');
    ob_end_flush();
    exit;
}

// Redirect jika akses langsung
header('Location: kelola-tahun-ajaran.php');
ob_end_flush();
exit;
?>