<?php
require('../session.php');

// Nonaktifkan error output agar tidak ganggu header()
error_reporting(0);
ini_set('display_errors', 0);

// Pastikan parameter cuid dikirim
if (!isset($_GET['cuid']) || empty($_GET['cuid'])) {
    header('Location: ' . $urlweb . '/topup.php?notif=7'); // notif=7 → parameter tidak valid
    exit();
}

$id = intval($_GET['cuid']);

// Ambil data transaksi topup
$sql_1 = mysqli_query($conn, "SELECT * FROM tb_transaksi WHERE cuid = '$id' LIMIT 1");
if (!$sql_1 || mysqli_num_rows($sql_1) === 0) {
    header('Location: ' . $urlweb . '/topup.php?notif=6'); // notif=6 → transaksi tidak ditemukan
    exit();
}

$s1 = mysqli_fetch_assoc($sql_1);
$usersID = $s1['userID'];
$amounts = floatval($s1['total']);
$status  = intval($s1['status']);

// Hanya bisa dibatalkan kalau status masih pending (0)
if ($status === 0) {

    // Update status transaksi jadi dibatalkan
    $update = mysqli_query($conn, "
        UPDATE tb_transaksi 
        SET status = 2,
            keterangan = 'Deposit dibatalkan oleh admin',
            update_date = NOW()
        WHERE cuid = '$id'
    ");

    if ($update) {
        // Pastikan saldo user tidak minus jika sempat diproses pending
        mysqli_query($conn, "
            UPDATE tb_balance 
            SET pending = IF(pending >= '$amounts', pending - '$amounts', 0)
            WHERE userID = '$usersID'
        ") or die(mysqli_error($conn));

        // Redirect sukses
        header('Location: ' . $urlweb . '/topup.php?notif=2'); // notif=2 → berhasil dibatalkan
        exit();
    } else {
        header('Location: ' . $urlweb . '/topup.php?notif=5'); // notif=5 → gagal update database
        exit();
    }

} else {
    // Jika transaksi sudah pernah diproses
    header('Location: ' . $urlweb . '/topup.php?notif=9'); // notif=9 → transaksi sudah diproses
    exit();
}
?>
