<?php
// manajemen_tahun.php

// Panggil header.php (Ini sudah memuat session_start(), config/koneksi.php, dan struktur HTML awal)
include_once 'header.php';

// Pastikan hanya admin yang bisa mengakses halaman ini
if (!isset($_SESSION['user_id']) || !$_SESSION['is_admin']) {
    header("Location: dashboard.php");
    exit();
}

$message = "";

// --- FUNGSI CREATE (Tambah Tahun Baru) ---
if (isset($_POST['add_tahun'])) {
    $tahun = $conn->real_escape_string($_POST['tahun']);
    
    // Validasi sederhana: pastikan tahun berupa angka 4 digit
    if (!preg_match('/^\d{4}$/', $tahun)) {
        $message = "error|Format tahun tidak valid.";
    } else {
        $sql = "INSERT INTO tahun_aktif (tahun, is_aktif) VALUES (?, 0)"; // Tahun baru otomatis tidak aktif
        $stmt = $conn->prepare($sql);
        $stmt->bind_param("s", $tahun);
        
        if ($stmt->execute()) {
            $message = "success|Tahun $tahun berhasil ditambahkan.";
        } else {
            // Check for duplicate key error (if 'tahun' column is unique)
            if ($conn->errno == 1062) { 
                $message = "error|Tahun $tahun sudah ada dalam daftar.";
            } else {
                $message = "error|Gagal menambahkan tahun: " . $stmt->error;
            }
        }
        $stmt->close();
    }
}

// --- FUNGSI UPDATE (Set Tahun Aktif) ---
if (isset($_GET['set_aktif'])) {
    $id_tahun = intval($_GET['set_aktif']);
    
    // 1. Nonaktifkan semua tahun yang saat ini aktif
    $sql_nonaktif = "UPDATE tahun_aktif SET is_aktif = 0";
    $conn->query($sql_nonaktif);
    
    // 2. Aktifkan tahun yang dipilih
    $sql_aktif = "UPDATE tahun_aktif SET is_aktif = 1 WHERE id = ?";
    $stmt = $conn->prepare($sql_aktif);
    $stmt->bind_param("i", $id_tahun);
    
    if ($stmt->execute()) {
        $message = "success|Tahun berhasil diatur sebagai Tahun Aktif!";
    } else {
        $message = "error|Gagal mengatur tahun aktif: " . $stmt->error;
    }
    $stmt->close();
    
    // Redirect untuk menghilangkan parameter GET setelah pemrosesan
    header("Location: manajemen_tahun.php?message=" . urlencode($message));
    exit();
}

// --- FUNGSI READ (Ambil Data Tahun) ---
$tahun_data = [];
$sql_tahun = "SELECT id, tahun, is_aktif FROM tahun_aktif ORDER BY tahun DESC";
$result_tahun = $conn->query($sql_tahun);

if ($result_tahun) {
    while ($row = $result_tahun->fetch_assoc()) {
        $tahun_data[] = $row;
    }
}

// Tangani pesan dari redirect atau setelah pemrosesan POST/GET
if (isset($_GET['message'])) {
    $message = urldecode($_GET['message']);
}

// Parsing pesan
if (!empty($message)) {
    list($msg_type, $msg_content) = explode('|', $message . '|');
} else {
    $msg_type = '';
    $msg_content = '';
}

// Konten halaman dimulai setelah tag <div> class="content col-md-10"
?>

<h2><i class="bi bi-calendar-check"></i> Manajemen Tahun Aktif</h2>
<p class="text-muted">Atur dan kelola tahun kerja yang sedang berjalan. Hanya satu tahun yang boleh Aktif.</p>
<hr>

<?php if ($message && $msg_content): ?>
    <div class="alert alert-<?php echo ($msg_type == 'success' ? 'success' : 'danger'); ?> alert-dismissible fade show" role="alert">
        <?php echo $msg_content; ?>
        <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
    </div>
<?php endif; ?>

<div class="card p-4 mb-4 shadow-sm">
    <h5>Tambah Tahun Kerja Baru</h5>
    <form method="POST" action="manajemen_tahun.php">
        <div class="row g-2">
            <div class="col-md-3">
                <input type="number" class="form-control" name="tahun" placeholder="Contoh: 2025" required min="<?php echo date("Y")-5; ?>" max="<?php echo date("Y")+5; ?>">
            </div>
            <div class="col-md-auto">
                <button type="submit" name="add_tahun" class="btn btn-success"><i class="bi bi-plus-circle"></i> Tambah Tahun</button>
            </div>
        </div>
    </form>
</div>

<h3>Daftar Tahun Kerja</h3>
<div class="table-responsive">
    <table class="table table-hover table-bordered">
        <thead class="table-primary">
            <tr>
                <th>ID</th>
                <th>Tahun</th>
                <th>Status</th>
                <th>Aksi</th>
            </tr>
        </thead>
        <tbody>
            <?php if (empty($tahun_data)): ?>
                <tr><td colspan="4" class="text-center">Belum ada tahun kerja yang dicatat.</td></tr>
            <?php else: ?>
                <?php foreach ($tahun_data as $tahun): ?>
                    <tr>
                        <td><?php echo $tahun['id']; ?></td>
                        <td><?php echo htmlspecialchars($tahun['tahun']); ?></td>
                        <td>
                            <?php if ($tahun['is_aktif']): ?>
                                <span class="badge bg-success"><i class="bi bi-check-circle"></i> AKTIF</span>
                            <?php else: ?>
                                <span class="badge bg-secondary">Tidak Aktif</span>
                            <?php endif; ?>
                        </td>
                        <td>
                            <?php if (!$tahun['is_aktif']): ?>
                                <a href="manajemen_tahun.php?set_aktif=<?php echo $tahun['id']; ?>" class="btn btn-sm btn-primary" onclick="return confirm('Apakah Anda yakin ingin mengatur tahun <?php echo $tahun['tahun']; ?> sebagai TAHUN AKTIF? Tindakan ini akan menonaktifkan tahun lainnya.');">
                                    <i class="bi bi-toggle-on"></i> Set Aktif
                                </a>
                            <?php else: ?>
                                <button class="btn btn-sm btn-outline-success" disabled><i class="bi bi-lock"></i> Aktif Saat Ini</button>
                            <?php endif; ?>
                        </td>
                    </tr>
                <?php endforeach; ?>
            <?php endif; ?>
        </tbody>
    </table>
</div>

<?php 
// Panggil footer.php (Ini menutup sisa tag HTML dan memuat JS)
include_once 'footer.php'; 
?>