<?php
session_start();
require_once '../koneksi.php';
require_once '../auth.php';

// Validasi akses (Hanya Admin atau Guru/Wali Kelas)
cekAdminAtauGuru();

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Sanitasi input untuk keamanan
    $id_siswa = mysqli_real_escape_string($koneksi, $_POST['id_siswa']);
    $jenis    = mysqli_real_escape_string($koneksi, $_POST['jenis']); // 'Setor' atau 'Tarik'
    $jumlah   = (float) $_POST['jumlah'];
    $tanggal  = mysqli_real_escape_string($koneksi, $_POST['tanggal']);
    $ket      = "Transaksi " . $jenis . " tunai pada " . $tanggal;

    // Validasi dasar
    if ($jumlah <= 0) {
        header("Location: tabungan_siswa.php?pesan=error_nominal");
        exit;
    }

    // Ambil saldo terakhir siswa
    $q_saldo = mysqli_query($koneksi, "SELECT saldo FROM tabungan WHERE id_siswa = '$id_siswa'");
    $data_saldo = mysqli_fetch_assoc($q_saldo);
    $saldo_lama = $data_saldo['saldo'] ?? 0;

    // Cek jika penarikan melebihi saldo
    if ($jenis == 'Tarik' && $jumlah > $saldo_lama) {
        header("Location: tabungan_siswa.php?pesan=error_saldo_tidak_cukup");
        exit;
    }

    // 1. Simpan ke Riwayat (Tabel riwayat_tabungan)
    $sql_riwayat = "INSERT INTO riwayat_tabungan (id_siswa, jenis, jumlah, tanggal, keterangan) 
                    VALUES ('$id_siswa', '$jenis', '$jumlah', '$tanggal', '$ket')";
    mysqli_query($koneksi, $sql_riwayat);

    // 2. Hitung Saldo Baru
    $saldo_baru = ($jenis == 'Setor') ? ($saldo_lama + $jumlah) : ($saldo_lama - $jumlah);

    // 3. Update atau Insert ke Tabel Saldo (tabungan)
    if (mysqli_num_rows($q_saldo) > 0) {
        // Update data yang sudah ada
        $sql_update = "UPDATE tabungan SET saldo = '$saldo_baru' WHERE id_siswa = '$id_siswa'";
        mysqli_query($koneksi, $sql_update);
    } else {
        // Insert data baru jika siswa belum pernah menabung
        $sql_insert = "INSERT INTO tabungan (id_siswa, saldo) VALUES ('$id_siswa', '$saldo_baru')";
        mysqli_query($koneksi, $sql_insert);
    }

    // Redirect kembali ke halaman utama dengan pesan sukses
    header("Location: tabungan_siswa.php?pesan=success");
    exit;

} else {
    // Jika akses file langsung tanpa POST
    header("Location: tabungan_siswa.php");
    exit;
}