<?php
session_start();
require 'conexao.php';

error_reporting(E_ALL);
ini_set('display_errors', '1');


// Verifique se o usuário não está logado
if (!isset($_SESSION['user_id'])) {
    // Redirecione-o para a página de login
    header("Location: login.php");
}


?>
<!DOCTYPE html>
<html>
<head>
    <title>Painel de Controle</title>
<link rel="stylesheet" type="text/css" href="style.css">

<title>Confirmação de Compra</title>
</head>
<body>
<img class="bn" src="bn.png" alt=""><br><br>
  
  
  <h1>Confirmação de Compra</h1>
    
    
<?php



$id_ordem_venda = $_SESSION['idvenda'];
$situacao = "livre";
$saldo = $_SESSION['saldolivre'];


if (isset($_POST['confirmar'])) {
    // Obtém o ID da ordem de venda do POST
    


   
  $personagemvendendo = $_SESSION['personagemvend'];
            $valor = $_SESSION['valor'];
   
if ($saldo < $valor) {
echo "Saldo insuficiente, você tem R$ $saldo e o preço é R$ $valor.<br><br>";
echo '<a href="dashboard.php"><button>Página principal</button></a>';
            exit;
}

         
    // Consulte a ordem de venda pelo ID para obter informações
    $sql = "SELECT * FROM ordem_vendas WHERE id = :id";
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':id', $id_ordem_venda, PDO::PARAM_INT);

    if ($stmt->execute()) {
        $ordem_venda = $stmt->fetch(PDO::FETCH_ASSOC);
        if ($ordem_venda != "") {
            // Obtém as informações necessárias
            $personagem = $ordem_venda['personagem'];
            $valor = $ordem_venda['valor'];
$vendedor = $ordem_venda['jogador'];

            // Apaga a linha na tabela "ordens_venda"
            $sqlDelete = "DELETE FROM ordem_vendas WHERE id = :id";
            $stmtDelete = $pdo->prepare($sqlDelete);
            $stmtDelete->bindParam(':id', $id_ordem_venda, PDO::PARAM_INT);

            if ($stmtDelete->execute()) {
                // Faz um UPDATE na tabela "personagens" para alterar o jogador
                $sqlUpdate = "UPDATE personagens SET jogador = :jogador, situacao = :situacao WHERE personagem = :personagem";
                $stmtUpdate = $pdo->prepare($sqlUpdate);
                       $stmtUpdate->bindParam(':jogador', $_SESSION['user_name'], PDO::PARAM_STR);
              $stmtUpdate->bindParam(':situacao', $situacao, PDO::PARAM_STR);
            
                $stmtUpdate->bindParam(':personagem', $personagem, PDO::PARAM_STR);

                if ($stmtUpdate->execute()) {
                    // Obtém a wallet do vendedor da tabela "usersblock"
                    $sqlWallet = "SELECT wallet FROM usersblock WHERE user = :vendedor";
                    $stmtWallet = $pdo->prepare($sqlWallet);
                    $stmtWallet->bindParam(':vendedor', $ordem_venda['jogador'], PDO::PARAM_STR);

                    if ($stmtWallet->execute()) {
                        $walletvendedor = $stmtWallet->fetchColumn();
                        
                        // Faz um INSERT na tabela "mempool"
                        $referencia = "Venda do personagem $personagem";
                        $dataHoraAtual = new DateTime();
$dataHoraAtual->sub(new DateInterval('PT3H')); // Subtrai 4 horas
$dataHoraFormatada = $dataHoraAtual->format('Y-m-d H:i:s');
$dataehora = $dataHoraFormatada;
// Agora $dataHoraFormatada contém a data e hora atual com 4 horas subtraídas


                        $sqlInsertMempool = "INSERT INTO mempool (remetente, destinatario, dataehora, valor, referencia) VALUES (:remetente, :destinatario, :dataehora, :valor, :referencia)";
                        $stmtInsertMempool = $pdo->prepare($sqlInsertMempool);
                        $stmtInsertMempool->bindParam(':remetente', $_SESSION['user_wallet'], PDO::PARAM_STR);
                        $stmtInsertMempool->bindParam(':destinatario', $walletvendedor, PDO::PARAM_STR);
                       $stmtInsertMempool->bindParam(':dataehora', $dataehora, PDO::PARAM_STR);
               
                        $stmtInsertMempool->bindParam(':valor', $valor, PDO::PARAM_STR);
                        $stmtInsertMempool->bindParam(':referencia', $referencia, PDO::PARAM_STR);

$stmtUpdateSituacao = null;


// Agora você pode executar a inserção diretamente aqui, sem a variável $stmtUpdateSituacao
        $sqlInsertVenda = "INSERT INTO vendas (quantidade, preco, dataehora, vendedor, comprador, mediacao) VALUES (:quantidade, :preco, :dataehora, :vendedor, :comprador, :mediacao)";
        $stmtInsertVenda = $pdo->prepare($sqlInsertVenda);

        // Valores para inserção
        $quantidade = 1; // Quantidade definida como 1
        $preco = $valor; // Preço da ordem de venda
        $dataehora = $dataehora; // A mesma data e hora da ordem de venda
        $vendedor = $walletvendedor; // Wallet do vendedor da ordem de venda
        $comprador = $_SESSION['user_wallet']; // Wallet do comprador (usuário logado)
        $mediacao = "ordem de venda"; // ID da ordem de venda

        $stmtInsertVenda->bindParam(':quantidade', $quantidade, PDO::PARAM_INT);
        $stmtInsertVenda->bindParam(':preco', $preco, PDO::PARAM_STR);
        $stmtInsertVenda->bindParam(':dataehora', $dataehora, PDO::PARAM_STR);
        $stmtInsertVenda->bindParam(':vendedor', $vendedor, PDO::PARAM_STR);
        $stmtInsertVenda->bindParam(':comprador', $comprador, PDO::PARAM_STR);
        $stmtInsertVenda->bindParam(':mediacao', $mediacao, PDO::PARAM_INT);

    //    echo  "Valor inserido em vendas";

        if ($stmtInsertVenda->execute()) {
           // echo "Ordem de venda apagada e registro de venda inserido com sucesso!";
        } else {
            echo "Erro ao inserir registro de venda: " . $stmtInsertVenda->errorInfo()[2];
        }



                        if ($stmtInsertMempool->execute()) {
                          //   echo "Ação realizada com sucesso!";
                            echo "Você comprou o personagem $personagem, por R$ $valor.<br><br>";
                            echo '<a href="ordens_venda.php"><button>Ordens de venda</button></a><br><br>';
            
            echo '<a href="dashboard.php"><button>Página principal</button></a><br><br>';
            exit;
                        } else {
                            echo "Erro ao inserir na tabela mempool: " . $stmtInsertMempool->errorInfo()[2];
                        }
                    } else {
                        echo "Erro ao obter a wallet do vendedor: " . $stmtWallet->errorInfo()[2];
                    }
                } else {
                    echo "Erro ao atualizar a tabela personagens: " . $stmtUpdate->errorInfo()[2];
                }
            } else {
                echo "Erro ao apagar da tabela ordens_venda: " . $stmtDelete->errorInfo()[2];
            }
        } else {
           // echo "Ordem de venda, de id $idvenda, não encontrada.";
            echo "Ordem de venda, não encontrada, já foi vendida a alguém ou a você mesmo.<br><br>";
            echo '<a href="dashboard.php"><button>Página principal</button></a>';
            exit;
            
        }
    } else {
        echo "Erro na consulta: " . $stmt->errorInfo()[2];
    }
}
?>


<?php
// Verifique se o usuário está logado
if (!isset($_SESSION['user_id'])) {
    // Redirecione-o para a página de login
    header("Location: login.php");
}

// Verifique se o ID da ordem de venda foi fornecido na URL
if (isset($_GET['id'])) {
    $id_ordem_venda = $_GET['id'];
$_SESSION['idvenda'] = $id_ordem_venda;



    // Consulte a ordem de venda pelo ID
    $sql = "SELECT * FROM ordem_vendas WHERE id = :id";
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':id', $id_ordem_venda, PDO::PARAM_INT);

    if ($stmt->execute()) {
        $ordem_venda = $stmt->fetch(PDO::FETCH_ASSOC);
        if ($ordem_venda) {
            $personagem = $ordem_venda['personagem'];
            $valor = $ordem_venda['valor'];
            $data_publicacao = $ordem_venda['dataehora'];
            $_SESSION['personagemvend'] = $personagem;
            $_SESSION['valor'] = $valor;
            
            
        } else {
            echo "Orxxdem de venda, com o id $id_ordem_venda não encontrada.";
        }
    } else {
        echo "Exxrro na consulta: " . $stmt->errorInfo()[2];
    }
}

echo $vendedor;
?>
</body>
</html>
