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

// Tampilkan pesan sukses atau error
if (isset($_SESSION['success'])) {
    echo '<div class="alert alert-success alert-dismissible fade show" role="alert">
            ' . $_SESSION['success'] . '
            <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
          </div>';
    unset($_SESSION['success']);
}

if (isset($_SESSION['error'])) {
    echo '<div class="alert alert-danger alert-dismissible fade show" role="alert">
            ' . $_SESSION['error'] . '
            <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
          </div>';
    unset($_SESSION['error']);
}

// Query untuk mendapatkan semua tahun ajaran
$query_tahun = "SELECT * FROM bind_tahunajaran ORDER BY tahun_ajaran DESC";
$result_tahun = mysqli_query($conn, $query_tahun);

// Query untuk mendapatkan tahun ajaran aktif
$query_aktif = "SELECT * FROM bind_tahunajaran WHERE aktif = 1";
$result_aktif = mysqli_query($conn, $query_aktif);
$tahun_aktif = $result_aktif ? mysqli_fetch_assoc($result_aktif) : null;
?>

<div class="container mt-4">
    <div class="d-flex justify-content-between align-items-center mb-4">
        <h2><i class="fas fa-calendar-alt me-2"></i>Kelola Tahun Ajaran</h2>
        <button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#modalTambahTahun">
            <i class="fas fa-plus me-1"></i>Tambah Tahun Ajaran
        </button>
    </div>

    <!-- Alert Info -->
    <?php if ($tahun_aktif): ?>
    <div class="alert alert-info">
        <strong>Tahun Ajaran Aktif:</strong> <?php echo htmlspecialchars($tahun_aktif['tahun_ajaran']); ?>
    </div>
    <?php else: ?>
    <div class="alert alert-warning">
        <strong>Perhatian!</strong> Tidak ada tahun ajaran yang aktif. Silakan set tahun ajaran aktif.
    </div>
    <?php endif; ?>

    <div class="card">
        <div class="card-header bg-primary text-white">
            <h5 class="card-title mb-0"><i class="fas fa-list me-2"></i>Daftar Tahun Ajaran</h5>
        </div>
        <div class="card-body">
            <div class="table-responsive">
                <table class="table table-striped table-hover">
                    <thead>
                        <tr>
                            <th width="5%">No</th>
                            <th width="20%">Tahun Ajaran</th>
                            <th width="15%">Status</th>
                            <th width="20%">Jumlah Siswa</th>
                            <th width="15%">Status Siswa</th>
                            <th width="25%">Aksi</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php
                        if ($result_tahun && mysqli_num_rows($result_tahun) > 0) {
                            $no = 1;
                            while ($row = mysqli_fetch_assoc($result_tahun)) {
                                // Hitung jumlah siswa per tahun ajaran dan status
                                $query_count = "SELECT status, COUNT(*) as total 
                                              FROM bind_datasiswa 
                                              WHERE id_tahunajaran = '{$row['id_tahunajaran']}'
                                              GROUP BY status";
                                $result_count = mysqli_query($conn, $query_count);
                                
                                $total_siswa = 0;
                                $status_counts = [
                                    'Aktif' => 0,
                                    'Lulus' => 0,
                                    'Keluar' => 0,
                                    'Mutasi' => 0
                                ];
                                
                                if ($result_count) {
                                    while ($count_row = mysqli_fetch_assoc($result_count)) {
                                        $status_counts[$count_row['status']] = $count_row['total'];
                                        $total_siswa += $count_row['total'];
                                    }
                                }
                                
                                // Tampilkan status siswa
                                $status_info = [];
                                if ($status_counts['Aktif'] > 0) $status_info[] = "Aktif: {$status_counts['Aktif']}";
                                if ($status_counts['Lulus'] > 0) $status_info[] = "Lulus: {$status_counts['Lulus']}";
                                if ($status_counts['Keluar'] > 0) $status_info[] = "Keluar: {$status_counts['Keluar']}";
                                if ($status_counts['Mutasi'] > 0) $status_info[] = "Mutasi: {$status_counts['Mutasi']}";
                                
                                $status_display = $status_info ? implode('<br>', $status_info) : '-';
                                
                                $status_badge = $row['aktif'] == 1 ? 
                                    '<span class="badge bg-success">Aktif</span>' : 
                                    '<span class="badge bg-secondary">Non-Aktif</span>';
                                
                                echo "<tr>
                                    <td>{$no}</td>
                                    <td>" . htmlspecialchars($row['tahun_ajaran']) . "</td>
                                    <td>{$status_badge}</td>
                                    <td>{$total_siswa} Siswa</td>
                                    <td>{$status_display}</td>
                                    <td>
                                        <button class='btn btn-sm btn-info me-1 btn-detail' 
                                                data-id='{$row['id_tahunajaran']}'
                                                data-tahun='" . htmlspecialchars($row['tahun_ajaran']) . "'
                                                title='Lihat Siswa'>
                                            <i class='fas fa-users'></i>
                                        </button>
                                        <button class='btn btn-sm btn-warning me-1 btn-edit' 
                                                data-id='{$row['id_tahunajaran']}'
                                                data-tahun='" . htmlspecialchars($row['tahun_ajaran']) . "'
                                                data-aktif='{$row['aktif']}'
                                                title='Edit'>
                                            <i class='fas fa-edit'></i>
                                        </button>
                                        <button class='btn btn-sm btn-secondary me-1 btn-pindah' 
                                                data-id='{$row['id_tahunajaran']}'
                                                data-tahun='" . htmlspecialchars($row['tahun_ajaran']) . "'
                                                title='Pindah Siswa'>
                                            <i class='fas fa-exchange-alt'></i>
                                        </button>
                                        " . ($row['aktif'] == 0 ? "
                                        <button class='btn btn-sm btn-success me-1 btn-aktifkan' 
                                                data-id='{$row['id_tahunajaran']}'
                                                data-tahun='" . htmlspecialchars($row['tahun_ajaran']) . "'
                                                title='Aktifkan'>
                                            <i class='fas fa-check'></i>
                                        </button>
                                        <button class='btn btn-sm btn-danger btn-hapus' 
                                                data-id='{$row['id_tahunajaran']}'
                                                data-tahun='" . htmlspecialchars($row['tahun_ajaran']) . "'
                                                title='Hapus'>
                                            <i class='fas fa-trash'></i>
                                        </button>" : "") . "
                                    </td>
                                </tr>";
                                $no++;
                            }
                        } else {
                            echo "<tr>
                                <td colspan='6' class='text-center py-4'>
                                    <div class='alert alert-info mb-0'>
                                        <i class='fas fa-info-circle me-2'></i>Belum ada data tahun ajaran
                                    </div>
                                </td>
                            </tr>";
                        }
                        ?>
                    </tbody>
                </table>
            </div>
        </div>
    </div>
</div>

<!-- Modal Tambah Tahun Ajaran -->
<div class="modal fade" id="modalTambahTahun" tabindex="-1" aria-labelledby="modalTambahTahunLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <form action="proses-tahun-ajaran.php" method="POST">
                <div class="modal-header">
                    <h5 class="modal-title" id="modalTambahTahunLabel">Tambah Tahun Ajaran</h5>
                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body">
                    <div class="mb-3">
                        <label for="tahun_ajaran" class="form-label">Tahun Ajaran</label>
                        <input type="text" class="form-control" id="tahun_ajaran" name="tahun_ajaran" 
                               placeholder="Contoh: 2023/2024" required>
                        <div class="form-text">Format: Tahun/Tahun+1 (contoh: 2023/2024)</div>
                    </div>
                    <div class="mb-3">
                        <div class="form-check">
                            <input class="form-check-input" type="checkbox" id="set_aktif" name="set_aktif" value="1">
                            <label class="form-check-label" for="set_aktif">
                                Jadikan tahun ajaran aktif
                            </label>
                        </div>
                        <div class="form-text">Jika dicentang, tahun ajaran ini akan menjadi aktif dan menonaktifkan tahun ajaran aktif sebelumnya</div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
                    <button type="submit" class="btn btn-primary" name="tambah">Simpan</button>
                </div>
            </form>
        </div>
    </div>
</div>

<!-- Modal Edit Tahun Ajaran -->
<div class="modal fade" id="modalEditTahun" tabindex="-1" aria-labelledby="modalEditTahunLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <form action="proses-tahun-ajaran.php" method="POST">
                <div class="modal-header">
                    <h5 class="modal-title" id="modalEditTahunLabel">Edit Tahun Ajaran</h5>
                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body">
                    <input type="hidden" id="edit_id" name="id">
                    <div class="mb-3">
                        <label for="edit_tahun_ajaran" class="form-label">Tahun Ajaran</label>
                        <input type="text" class="form-control" id="edit_tahun_ajaran" name="tahun_ajaran" required>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
                    <button type="submit" class="btn btn-primary" name="edit">Update</button>
                </div>
            </form>
        </div>
    </div>
</div>

<!-- Modal Pindah Siswa -->
<div class="modal fade" id="modalPindahSiswa" tabindex="-1" aria-labelledby="modalPindahSiswaLabel" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <form action="proses-pindah-siswa.php" method="POST" id="formPindahSiswa">
                <div class="modal-header">
                    <h5 class="modal-title" id="modalPindahSiswaLabel">Pindah Siswa ke Tahun Ajaran Baru</h5>
                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body">
                    <input type="hidden" id="pindah_id_sumber" name="id_tahun_sumber">
                    
                    <div class="row">
                        <div class="col-md-6">
                            <div class="mb-3">
                                <label class="form-label">Tahun Ajaran Sumber</label>
                                <input type="text" class="form-control" id="pindah_tahun_sumber" readonly>
                            </div>
                        </div>
                        <div class="col-md-6">
                            <div class="mb-3">
                                <label for="pindah_tahun_tujuan" class="form-label">Tahun Ajaran Tujuan</label>
                                <select class="form-control" id="pindah_tahun_tujuan" name="id_tahun_tujuan" required>
                                    <option value="">Pilih Tahun Ajaran</option>
                                    <!-- Options akan diisi via JavaScript -->
                                </select>
                            </div>
                        </div>
                    </div>
                    
                    <div class="mb-3">
                        <label class="form-label">Siswa yang Akan Dipindah</label>
                        <div class="border p-3" style="max-height: 200px; overflow-y: auto;">
                            <div id="loadingSiswa" class="text-center">
                                <div class="spinner-border spinner-border-sm" role="status">
                                    <span class="visually-hidden">Loading...</span>
                                </div>
                                Memuat data siswa...
                            </div>
                            <div id="listSiswa" style="display: none;"></div>
                        </div>
                    </div>
                    
                    <div class="mb-3">
                        <label for="status_tujuan" class="form-label">Status di Tahun Ajaran Baru</label>
                        <select class="form-control" id="status_tujuan" name="status_tujuan" required>
                            <option value="Aktif">Aktif</option>
                            <option value="Lulus">Lulus</option>
                            <option value="Mutasi">Mutasi</option>
                        </select>
                    </div>
                    
                    <div class="alert alert-info">
                        <small>
                            <i class="fas fa-info-circle me-1"></i>
                            Siswa yang dipindah akan memiliki status baru di tahun ajaran tujuan. 
                            Status di tahun ajaran lama akan diubah menjadi "Mutasi".
                        </small>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
                    <button type="submit" class="btn btn-primary" name="pindah_siswa">Proses Pemindahan</button>
                </div>
            </form>
        </div>
    </div>
</div>

<!-- Modal Detail Siswa -->
<div class="modal fade" id="modalDetailSiswa" tabindex="-1" aria-labelledby="modalDetailSiswaLabel" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="modalDetailSiswaLabel">Data Siswa - <span id="detail_tahun"></span></h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body">
                <div id="loadingDetail" class="text-center py-4">
                    <div class="spinner-border text-primary" role="status">
                        <span class="visually-hidden">Loading...</span>
                    </div>
                    <p class="mt-2">Memuat data...</p>
                </div>
                <div id="contentDetail" style="display: none;">
                    <!-- Content will be loaded via AJAX -->
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Tutup</button>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Edit Tahun Ajaran
    const btnEdit = document.querySelectorAll('.btn-edit');
    btnEdit.forEach(btn => {
        btn.addEventListener('click', function() {
            const id = this.getAttribute('data-id');
            const tahun = this.getAttribute('data-tahun');
            
            document.getElementById('edit_id').value = id;
            document.getElementById('edit_tahun_ajaran').value = tahun;
            
            const modal = new bootstrap.Modal(document.getElementById('modalEditTahun'));
            modal.show();
        });
    });

    // Aktifkan Tahun Ajaran
    const btnAktifkan = document.querySelectorAll('.btn-aktifkan');
    btnAktifkan.forEach(btn => {
        btn.addEventListener('click', function() {
            const id = this.getAttribute('data-id');
            const tahun = this.getAttribute('data-tahun');
            
            Swal.fire({
                title: 'Aktifkan Tahun Ajaran?',
                text: `Anda akan mengaktifkan tahun ajaran ${tahun}. Tahun ajaran aktif sebelumnya akan dinonaktifkan.`,
                icon: 'question',
                showCancelButton: true,
                confirmButtonColor: '#28a745',
                cancelButtonColor: '#6c757d',
                confirmButtonText: 'Ya, Aktifkan!',
                cancelButtonText: 'Batal'
            }).then((result) => {
                if (result.isConfirmed) {
                    window.location.href = `proses-tahun-ajaran.php?aktifkan=${id}`;
                }
            });
        });
    });

    // Hapus Tahun Ajaran
    const btnHapus = document.querySelectorAll('.btn-hapus');
    btnHapus.forEach(btn => {
        btn.addEventListener('click', function() {
            const id = this.getAttribute('data-id');
            const tahun = this.getAttribute('data-tahun');
            
            Swal.fire({
                title: 'Hapus Tahun Ajaran?',
                text: `Data tahun ajaran ${tahun} akan dihapus permanen!`,
                icon: 'warning',
                showCancelButton: true,
                confirmButtonColor: '#d33',
                cancelButtonColor: '#3085d6',
                confirmButtonText: 'Ya, Hapus!',
                cancelButtonText: 'Batal'
            }).then((result) => {
                if (result.isConfirmed) {
                    window.location.href = `proses-tahun-ajaran.php?hapus=${id}`;
                }
            });
        });
    });

    // Pindah Siswa
    const btnPindah = document.querySelectorAll('.btn-pindah');
    btnPindah.forEach(btn => {
        btn.addEventListener('click', function() {
            const id = this.getAttribute('data-id');
            const tahun = this.getAttribute('data-tahun');
            
            document.getElementById('pindah_id_sumber').value = id;
            document.getElementById('pindah_tahun_sumber').value = tahun;
            
            // Reset form
            document.getElementById('pindah_tahun_tujuan').value = '';
            document.getElementById('status_tujuan').value = 'Aktif';
            document.getElementById('loadingSiswa').style.display = 'block';
            document.getElementById('listSiswa').style.display = 'none';
            document.getElementById('listSiswa').innerHTML = '';
            
            const modal = new bootstrap.Modal(document.getElementById('modalPindahSiswa'));
            modal.show();
            
            // Load data tahun ajaran tujuan dan siswa
            loadTahunAjaranTujuan(id);
            loadSiswaUntukPindah(id);
        });
    });

    // Detail Siswa
    const btnDetail = document.querySelectorAll('.btn-detail');
    btnDetail.forEach(btn => {
        btn.addEventListener('click', function() {
            const id = this.getAttribute('data-id');
            const tahun = this.getAttribute('data-tahun');
            
            document.getElementById('detail_tahun').textContent = tahun;
            document.getElementById('loadingDetail').style.display = 'block';
            document.getElementById('contentDetail').style.display = 'none';
            
            const modal = new bootstrap.Modal(document.getElementById('modalDetailSiswa'));
            modal.show();
            
            // Load data via AJAX
            fetch(`ajax-detail-siswa.php?id_tahunajaran=${id}`)
                .then(response => response.text())
                .then(data => {
                    document.getElementById('loadingDetail').style.display = 'none';
                    document.getElementById('contentDetail').style.display = 'block';
                    document.getElementById('contentDetail').innerHTML = data;
                })
                .catch(error => {
                    document.getElementById('loadingDetail').style.display = 'none';
                    document.getElementById('contentDetail').innerHTML = 
                        '<div class="alert alert-danger">Gagal memuat data</div>';
                });
        });
    });

    // Fungsi untuk memuat tahun ajaran tujuan (tidak termasuk tahun ajaran sumber)
    function loadTahunAjaranTujuan(idTahunSumber) {
        fetch(`ajax-tahun-ajaran-tujuan.php?id_tahun_sumber=${idTahunSumber}`)
            .then(response => response.json())
            .then(data => {
                const selectTujuan = document.getElementById('pindah_tahun_tujuan');
                selectTujuan.innerHTML = '<option value="">Pilih Tahun Ajaran</option>';
                
                if (data.success && data.tahun_ajaran.length > 0) {
                    data.tahun_ajaran.forEach(tahun => {
                        const option = document.createElement('option');
                        option.value = tahun.id_tahunajaran;
                        option.textContent = tahun.tahun_ajaran;
                        selectTujuan.appendChild(option);
                    });
                } else {
                    const option = document.createElement('option');
                    option.value = '';
                    option.textContent = 'Tidak ada tahun ajaran tersedia';
                    option.disabled = true;
                    selectTujuan.appendChild(option);
                }
            })
            .catch(error => {
                console.error('Error loading tahun ajaran tujuan:', error);
                const selectTujuan = document.getElementById('pindah_tahun_tujuan');
                selectTujuan.innerHTML = '<option value="">Error memuat data</option>';
            });
    }

    // Fungsi untuk memuat data siswa untuk dipindah
    function loadSiswaUntukPindah(idTahun) {
        fetch(`ajax-siswa-untuk-pindah.php?id_tahunajaran=${idTahun}`)
            .then(response => response.json())
            .then(data => {
                document.getElementById('loadingSiswa').style.display = 'none';
                document.getElementById('listSiswa').style.display = 'block';
                
                if (data.success && data.siswa.length > 0) {
                    let html = '';
                    data.siswa.forEach(siswa => {
                        html += `
                        <div class="form-check">
                            <input class="form-check-input" type="checkbox" name="siswa_ids[]" value="${siswa.id_datasiswa}" data-siswa-id="${siswa.id_siswa}" checked>
                            <label class="form-check-label">
                                ${siswa.nis} - ${siswa.nama_lengkap} (${siswa.status})
                            </label>
                        </div>`;
                    });
                    document.getElementById('listSiswa').innerHTML = html;
                } else {
                    document.getElementById('listSiswa').innerHTML = 
                        '<div class="alert alert-warning mb-0">Tidak ada siswa yang dapat dipindah</div>';
                }
            })
            .catch(error => {
                document.getElementById('loadingSiswa').style.display = 'none';
                document.getElementById('listSiswa').innerHTML = 
                    '<div class="alert alert-danger">Gagal memuat data siswa</div>';
            });
    }
});
</script>

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