<?php
// Mulai output buffering di awal file
ob_start();
require_once '../includes/header.php';
require_once '../includes/navbar.php';

if (isset($_POST['pindah_siswa'])) {
    $id_tahun_sumber = mysqli_real_escape_string($conn, $_POST['id_tahun_sumber']);
    $id_tahun_tujuan = mysqli_real_escape_string($conn, $_POST['id_tahun_tujuan']);
    $status_tujuan = mysqli_real_escape_string($conn, $_POST['status_tujuan']);
    $siswa_ids = isset($_POST['siswa_ids']) ? $_POST['siswa_ids'] : [];

    if (empty($siswa_ids)) {
        $_SESSION['error'] = "Tidak ada siswa yang dipilih untuk dipindah!";
        header('Location: kelola-tahun-ajaran.php');
        ob_end_flush();
        exit;
    }

    mysqli_autocommit($conn, false);
    $success = true;
    $total_siswa = 0;

    try {
        foreach ($siswa_ids as $id_datasiswa) {
            $id_datasiswa = mysqli_real_escape_string($conn, $id_datasiswa);
            
            // Dapatkan data siswa
            $query_siswa = "SELECT ds.id_siswa, s.nis, s.nama_lengkap 
                           FROM bind_datasiswa ds 
                           JOIN bind_siswa s ON ds.id_siswa = s.id_siswa 
                           WHERE ds.id_datasiswa = '$id_datasiswa'";
            $result_siswa = mysqli_query($conn, $query_siswa);
            $data_siswa = mysqli_fetch_assoc($result_siswa);
            
            if ($data_siswa) {
                $id_siswa = $data_siswa['id_siswa'];
                
                // Update status di tahun ajaran lama menjadi "Mutasi"
                $query_update = "UPDATE bind_datasiswa SET status = 'Mutasi' 
                                WHERE id_datasiswa = '$id_datasiswa'";
                if (!mysqli_query($conn, $query_update)) {
                    throw new Exception("Gagal update status siswa: " . mysqli_error($conn));
                }
                
                // Cek apakah siswa sudah ada di tahun ajaran tujuan
                $query_cek = "SELECT id_datasiswa FROM bind_datasiswa 
                             WHERE id_siswa = '$id_siswa' AND id_tahunajaran = '$id_tahun_tujuan'";
                $result_cek = mysqli_query($conn, $query_cek);
                
                if (mysqli_num_rows($result_cek) > 0) {
                    // Update jika sudah ada
                    $query_update_tujuan = "UPDATE bind_datasiswa SET status = '$status_tujuan' 
                                           WHERE id_siswa = '$id_siswa' AND id_tahunajaran = '$id_tahun_tujuan'";
                } else {
                    // Insert baru jika belum ada
                    $query_update_tujuan = "INSERT INTO bind_datasiswa (id_tahunajaran, id_siswa, status) 
                                           VALUES ('$id_tahun_tujuan', '$id_siswa', '$status_tujuan')";
                }
                
                if (!mysqli_query($conn, $query_update_tujuan)) {
                    throw new Exception("Gagal pindah siswa: " . mysqli_error($conn));
                }
                
                $total_siswa++;
            }
        }
        
        mysqli_commit($conn);
        $_SESSION['success'] = "{$total_siswa} siswa berhasil dipindah ke tahun ajaran baru!";
        
    } catch (Exception $e) {
        mysqli_rollback($conn);
        $_SESSION['error'] = $e->getMessage();
        $success = false;
    }
    
    mysqli_autocommit($conn, true);
    header('Location: kelola-tahun-ajaran.php');
    ob_end_flush();
    exit;
}

// Jika tidak ada POST data, redirect
header('Location: kelola-tahun-ajaran.php');
ob_end_flush();
exit;
?>