1
resposta

Fiz umas alteracoes no codigo para ter mais interação com o usuario

Caso ja esteja zerado o estoque ele retorna uma msg avisando que estao esgotados, sei que da pra ver o "0", mas tem gente que não presta atenção:

function comprar() {
let tipo = document.getElementById('tipo-ingresso');
let qtd = parseInt(document.getElementById('qtd').value);

if (isNaN(qtd) || qtd <= 0) {
    alert('Por favor, insira uma quantidade válida.');
    document.getElementById('qtd').value = ''; 
    return;
}

if(tipo.value === 'pista'){
    comprarPista(qtd);

} else if(tipo.value === 'superior'){
    comprarSuperior(qtd);

} else{
    comprarInferior(qtd);
}

}

function comprarPista(qtd){
let qtdPista = parseInt(document.getElementById('qtd-pista').textContent);

if (qtdPista === 0) {
    alert('ATENÇÃO: Todos os ingressos do tipo Pista estão ESGOTADOS!');
    document.getElementById('qtd').value = '';
    return;
}

if (qtd > qtdPista) {
    alert('Quantidade indisponível para tipo Pista');
    document.getElementById('qtd').value = '';
} else {
    qtdPista = qtdPista - qtd;
    document.getElementById('qtd-pista').textContent = qtdPista;
    alert('Compra realizada com sucesso!');
    document.getElementById('qtd').value = '';
}

}

function comprarSuperior(qtd){
let qtdSuperior = parseInt(document.getElementById('qtd-superior').textContent);

if (qtdSuperior === 0) {
    alert('ATENÇÃO: Todos os ingressos do tipo Superior estão ESGOTADOS!');
    document.getElementById('qtd').value = '';
    return; 
}

if (qtd > qtdSuperior) {
    alert('Quantidade indisponível para tipo Superior');
    document.getElementById('qtd').value = '';
} else {
    qtdSuperior = qtdSuperior - qtd;
    document.getElementById('qtd-superior').textContent = qtdSuperior;
    alert('Compra realizada com sucesso!');
    document.getElementById('qtd').value = '';
}

}

function comprarInferior(qtd){
let qtdInferior = parseInt(document.getElementById('qtd-inferior').textContent);

if (qtdInferior === 0) {
    alert('ATENÇÃO: Todos os ingressos do tipo Inferior estão ESGOTADOS!');
    document.getElementById('qtd').value = '';
    return; 
}

if (qtd > qtdInferior) {
    alert('Quantidade indisponível para tipo Inferior');
    document.getElementById('qtd').value = '';
} else {
    qtdInferior = qtdInferior - qtd;
    document.getElementById('qtd-inferior').textContent = qtdInferior;
    alert('Compra realizada com sucesso!');
    document.getElementById('qtd').value = '';
}

}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi, Marcia! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei de ver como você pensou na interação com o usuário, adicionando alertas claros quando o estoque está zerado ou a quantidade inserida é inválida. Isso melhora bastante a experiência de quem está usando o sistema.

Uma dica interessante para o futuro é utilizar o método toLocaleString() para exibir números formatados conforme o idioma. Veja este exemplo:


let numero = 1500;
console.log(numero.toLocaleString('pt-BR'));

Esse código mostra o número com separador de milhar, facilitando a leitura de valores maiores.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!