1
resposta

Faça como eu fiz: lógica para comprar um tipo ingresso

function comprar() {
    //recuperar o valor do tipo de ingresso
    let tipo = document.getElementById('tipo-ingresso').value;
    //recuperar o valor da quantidade
    let quantidade = parseInt(document.getElementById('qtd').value);
    //validação de entrada
    if (quantidade <= 0 || !Number.isInteger(quantidade)) {
        alert(`Por favor, digite uma quantidade válida!`)
        document.getElementById('qtd').value = '';
        return;
    }
    compararIngresso(tipo, quantidade);
}

function compararIngresso(tipo, quanitadade) {
    let estoque = document.getElementById(`qtd-${tipo}`).textContent;
    let quantidadeDisponivel = parseInt(estoque);
    
    //comparar a quanitadade escolhida com a disponível
    if(quanitadade > quantidadeDisponivel) {
        alert(`Quantidade indispinível para tipo ${tipo} !`);
    } else {
        quantidadeDisponivel -= quanitadade;
        document.getElementById(`qtd-${tipo}`).textContent = quantidadeDisponivel; 
        alert('Compra realizada com sucesso!')
    }
}
1 resposta

Olá João!

Percebi que há um pequeno erro de digitação no seu código que pode estar causando problemas. Na função compararIngresso, a variável quantidade está escrita incorretamente como quanitadade. Isso pode estar impedindo que a lógica funcione corretamente.

Aqui está uma versão corrigida do seu código:

function comprar() {
    // Recuperar o valor do tipo de ingresso
    let tipo = document.getElementById('tipo-ingresso').value;
    // Recuperar o valor da quantidade
    let quantidade = parseInt(document.getElementById('qtd').value);
    // Validação de entrada
    if (quantidade <= 0 || !Number.isInteger(quantidade)) {
        alert(`Por favor, digite uma quantidade válida!`);
        document.getElementById('qtd').value = '';
        return;
    }
    compararIngresso(tipo, quantidade);
}

function compararIngresso(tipo, quantidade) {
    let estoque = document.getElementById(`qtd-${tipo}`).textContent;
    let quantidadeDisponivel = parseInt(estoque);
    
    // Comparar a quantidade escolhida com a disponível
    if (quantidade > quantidadeDisponivel) {
        alert(`Quantidade indisponível para tipo ${tipo}!`);
    } else {
        quantidadeDisponivel -= quantidade;
        document.getElementById(`qtd-${tipo}`).textContent = quantidadeDisponivel; 
        alert('Compra realizada com sucesso!');
    }
}

Espero ter ajudado e bons estudos!