Last active
August 25, 2023 22:29
-
-
Save adrianobrito/ae4a07dad03677e2547c039ccb5c73dc to your computer and use it in GitHub Desktop.
Parcelometro
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const valorDoProduto = 1000000; | |
//quantidade de parcelas | |
const quantidadeDoParcelamento = 10; | |
//valor pago | |
const valorPago = 7500; | |
function humanizarValorDoProduto() { | |
return valorDoProduto / 100 | |
} | |
// Vamos fazer o bagulho dum jeito que nos calcula as parcelas fixas e a parcela final variavel caso tenha | |
function renderParcela(valorDoProduto, quantidadeDoParcelamento, valorPago) { | |
const valorRestante = humanizarValorDoProduto() - valorPago | |
const parcelaFixa = humanizarValorDoProduto() / quantidadeDoParcelamento | |
// Aqui a gente calcula o resto(operacao matematica) do restante com o valor da parcela | |
// tipo se tu tem 550 e tu quer saber o resto em relacao a 100, o resultado vai ser 50 | |
// Isso pode ser feito com operador % (Remainder) | |
const parcelaVariavel = valorRestante % parcelaFixa | |
// Aqui calculamos o valor piso(floor) da quantiade de parcelas restantes | |
// Isso serve pra gente arredondar 4.5 pra 4 caso aconteca | |
const qtdParcelasFixasPendentes = Math.floor(valorRestante / parcelaFixa) | |
// Aqui vamo ver de caso a caso | |
// Primeiro vemos se existe parcela fixa pendente mas sem excedente variavel | |
if(qtdParcelasFixasPendentes > 0 && parcelaVariavel == 0) { | |
return `Restam ${qtdParcelasFixasPendentes} parcelas de R$ ${parcelaFixa.toFixed(2)}` | |
} else if(qtdParcelasFixasPendentes > 0 && parcelaVariavel > 0) { | |
// aqui nos calcula as parcelas pendentes fixas e variavel | |
return `Restam ${qtdParcelasFixasPendentes} parcelas de R$ ${parcelaFixa.toFixed(2)} e mais 1 parcela de R$ ${parcelaVariavel.toFixed(2)}` | |
} else { | |
// Aqui ja eh o caso mais excepcional onde temos somente uma unica parcela variavel | |
return `Resta 1 parcela de R$ ${parcelaVariavel.toFixed(2)}` | |
} | |
} | |
console.log(renderParcela(valorDoProduto, quantidadeDoParcelamento, valorPago)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment