<?php
include 'header.php';
$pesan_error = "";

if (!isset($_GET['id'])) {
    header("Location: pinjam_data.php");
    exit;
}
$id = (int)$_GET['id'];

// Ambil data lama untuk tahu status sebelumnya
$result_lama = mysqli_query($koneksi, "SELECT * FROM peminjaman WHERE id = $id");
$data_lama = mysqli_fetch_assoc($result_lama);
if (!$data_lama) {
    header("Location: pinjam_data.php?status=data_tidak_ditemukan");
    exit;
}

// Logika UPDATE
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $nama_peminjam = mysqli_real_escape_string($koneksi, $_POST['nama_peminjam']);
    $tanggal_pinjam = $_POST['tanggal_pinjam'];
    $tanggal_jatuh_tempo = $_POST['tanggal_jatuh_tempo'];
    $status_baru = $_POST['status'];
    $kondisi = $_POST['kondisi']; // Ambil kondisi

    $query_update = "UPDATE peminjaman SET 
                        nama_peminjam = '$nama_peminjam',
                        tanggal_pinjam = '$tanggal_pinjam',
                        tanggal_jatuh_tempo = '$tanggal_jatuh_tempo',
                        status = '$status_baru',
                        kondisi = '$kondisi'
                     WHERE id = $id";

    // Cek apakah status berubah dari 'Dipinjam' menjadi 'Dikembalikan'
    if ($data_lama['status'] == 'Dipinjam' && $status_baru == 'Dikembalikan') {
        // Set tanggal kembali ke hari ini
        $query_update = "UPDATE peminjaman SET 
                            nama_peminjam = '$nama_peminjam',
                            tanggal_pinjam = '$tanggal_pinjam',
                            tanggal_jatuh_tempo = '$tanggal_jatuh_tempo',
                            status = 'Dikembalikan',
                            tanggal_kembali = CURDATE(), -- Set tanggal kembali
                            kondisi = '$kondisi' -- Set kondisi
                         WHERE id = $id";
        
        if (mysqli_query($koneksi, $query_update)) {
            // Kembalikan stok buku HANYA jika kondisinya 'Baik'
            if ($kondisi == 'Baik') {
                mysqli_query($koneksi, "UPDATE buku SET stok = stok + 1 WHERE id = {$data_lama['id_buku']}");
            }
            header("Location: pinjam_data.php?status=buku_dikembalikan");
            exit;
        } else {
            $pesan_error = "Gagal update: " . mysqli_error($koneksi);
        }
    } else {
        // Update biasa tanpa mengubah stok
        if (mysqli_query($koneksi, $query_update)) {
            header("Location: pinjam_data.php?status=edit_sukses");
            exit;
        } else {
            $pesan_error = "Gagal update: " . mysqli_error($koneksi);
        }
    }
}

// Ambil data terbaru (setelah kemungkinan error update)
$result = mysqli_query($koneksi, "SELECT peminjaman.*, buku.judul 
                                  FROM peminjaman 
                                  JOIN buku ON peminjaman.id_buku = buku.id 
                                  WHERE peminjaman.id = $id");
$data = mysqli_fetch_assoc($result);
?>

<h3>Edit Peminjaman</h3>

<div class="card">
    <form action="pinjam_edit.php?id=<?= $id ?>" method="POST">
        <?php if(!empty($pesan_error)) { echo "<p style='color:red;'>$pesan_error</p>"; } ?>
        
        <div class="form-group">
            <label>Judul Buku</label>
            <input type="text" class="form-control" value="<?= htmlspecialchars($data['judul']) ?>" disabled>
        </div>
        <div class="form-group">
            <label>Nama Peminjam</label>
            <input type="text" name="nama_peminjam" class="form-control" value="<?= htmlspecialchars($data['nama_peminjam']) ?>" required>
        </div>
        <div class="form-group">
            <label>Tanggal Pinjam</label>
            <input type="date" name="tanggal_pinjam" class="form-control" value="<?= $data['tanggal_pinjam'] ?>" required>
        </div>
        <div class="form-group">
            <label>Tanggal Jatuh Tempo</label>
            <input type="date" name="tanggal_jatuh_tempo" class="form-control" value="<?= $data['tanggal_jatuh_tempo'] ?>" required>
        </div>
        <div class="form-group">
            <label>Status</label>
            <select name="status" class="form-control" required>
                <option value="Dipinjam" <?= ($data['status'] == 'Dipinjam') ? 'selected' : '' ?>>Dipinjam</option>
                <option value="Dikembalikan" <?= ($data['status'] == 'Dikembalikan') ? 'selected' : '' ?>>Dikembalikan</option>
            </select>
        </div>
        <div class="form-group">
            <label>Kondisi Saat Kembali</label>
            <select name="kondisi" class="form-control">
                <option value="Baik" <?= ($data['kondisi'] == 'Baik') ? 'selected' : '' ?>>Baik</option>
                <option value="Rusak" <?= ($data['kondisi'] == 'Rusak') ? 'selected' : '' ?>>Rusak</option>
            </select>
            <small>Pilih 'Rusak' jika buku kembali dalam keadaan rusak (stok tidak akan bertambah).</small>
        </div>
        
        <button type="submit" class="btn btn-primary">Edit</button>
        <a href="pinjam_data.php" class="btn btn-secondary">Kembali</a>
    </form>
</div>

<?php include 'footer.php'; ?>