-1
I made a script in Java to give the calculation of ST for use and consumption. The calculation is working, but when I add CSS to style the page, when executing the code it appears the answer in thousandths of seconds and already Zera all fields.
What am I doing wrong? Below are the files ST.html
and the ST.css
.
ST.html
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>ST</title>
<link rel="stylesheet" href="reset.css">
<link rel="stylesheet" href="st.css">
</head>
<body>
<form>
<div class="entradas">
<label for="tipo">Tipo</label>
<select id="tipo">
<option name="tipo1" value="1">Contribuinte</option>
<option name="tipo2" value="2">Não Contribuinte</option>
</select>
<label for="origem">Origem</label>
<select id="origem">
<option name="nacional" value="1">Nacional</option>
<option name="importado" value="2">Importado</option>
</select>
<label for="estado">Estado <span id="resultadoIcms"></span></label>
<select id="estado">
<option name="AC" value="1">Acre</option>
<option name="AL" value="2">Alagoas</option>
<option name="AM" value="3">Amazonas</option>
<option name="AP" value="4">Amapá</option>
<option name="BA" value="5">Bahia</option>
<option name="CE" value="6">Ceara</option>
<option name="DF" value="7">Distrito Federal</option>
<option name="ES" value="8">Espirito Santo</option>
<option name="GO" value="9">Goias</option>
<option name="MA" value="10">Maranhão</option>
<option name="MG" value="11">Minas Gerais</option>
<option name="MS" value="12">Mato Grosso do Sul</option>
<option name="MT" value="13">Mato Grosso</option>
<option name="PA" value="14">Para</option>
<option name="PB" value="15">Paraíba</option>
<option name="PE" value="16">Pernambuco</option>
<option name="PI" value="17">Piauí</option>
<option name="PR" value="18">Paraná</option>
<option name="RJ" value="19">Rio de Janeiro</option>
<option name="RN" value="20">Rio Grande do Norte</option>
<option name="RO" value="21">Rondonia</option>
<option name="RR" value="22">Roraima</option>
<option name="RS" value="23">Rio Grande do Sul</option>
<option name="SC" value="24">Santa Catarina</option>
<option name="SE" value="25">Sergipe</option>
<option name="TO" value="26">Tocantins</option>
</select>
<label for="valorProduto">Valor do Produto</label>
<input id="valorProduto"/>
<label for="aliquotaInterna">Aliquota Interna</label>
<input id="aliquotaInterna" value="18"/>
</div>
<button id="botao">Calcular</button>
<div class="saidas">
<label for="resultado1">Valor Total:</label>
<span id="resultado1"></span>
<label for="resultado2">Difal:</label>
<span id="resultado2"></span>
</div>
</form>
</body>
<script>
function naoContribuinte(valorProduto, icms, aliquotaInterna) {
var diferencial = aliquotaInterna - icms;
var valor = valorProduto * 1;
var difal = (valorProduto * (diferencial / 100));
if (resultado1.textContent === undefined) { //Chrome
resultado1.textContent = valor.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });
resultado2.textContent = difal.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });
resultadoIcms.textContent = icms + "%";
} else { //IE
resultado1.innerText = valor.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });
resultado2.innerText = difal.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });
resultadoIcms.innerText = icms + "%";
}
}
function direto(valorProduto, icms, aliquotaInterna) {
var diferencial = aliquotaInterna - icms;
var difal = valorProduto * (diferencial / 100);
var totalNf = parseFloat(valorProduto) + parseFloat(difal);
if (resultado1.textContent === undefined) { //Chrome
resultado1.textContent = totalNf.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });
resultado2.textContent = difal.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });
resultadoIcms.textContent = icms + "%";
} else { //IE
resultado1.innerText = totalNf.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });
resultado2.innerText = difal.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });
resultadoIcms.innerText = icms + "%";
}
}
function porDentro(valorProduto, icms, aliquotaInterna) {
var icmsProduto = valorProduto * (icms / 100);
var aliqInterPorcent = aliquotaInterna / 100;
var base = (valorProduto - icmsProduto) / (1 - aliqInterPorcent);
var difal = base - valorProduto;
var totalNf = parseFloat(valorProduto) + parseFloat(difal);
if (resultado1.textContent === undefined) { //Chrome
resultado1.textContent = totalNf.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });
resultado2.textContent = difal.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });
resultadoIcms.textContent = icms + "%";
} else { //IE
resultado1.innerText = totalNf.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });
resultado2.innerText = difal.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });
resultadoIcms.innerText = icms + "%";
}
}
function calcula() {
if (tipo.value == 2) {
for (var doz = 0; doz < doze.length; doz++) {
if(estado.value == doze[doz]) {
if(origem.value == 2) {
return naoContribuinte(valor.value, 4, interna.value);
} else {
return naoContribuinte(valor.value, 12, interna.value);
}
}
}
for (var set = 0; set < sete.length; set++) {
if(estado.value == sete[set]) {
if(origem.value == 2) {
return naoContribuinte(valor.value, 4, interna.value);
} else {
return naoContribuinte(valor.value, 7, interna.value);
}
}
}
}
if (tipo.value == 1) {
for (var diret = 0; diret < cDireto.length; diret++) {
if(estado.value == cDireto[diret]) {
for (var set = 0; set < sete.length; set++) {
if(estado.value == sete[set]) {
if(origem.value == 2) {
return direto(valor.value, 4, interna.value);
} else {
return direto(valor.value, 7, interna.value);
}
}
}
for (var doz = 0; doz < doze.length; doz++) {
if(estado.value == doze[doz]) {
if(origem.value == 2) {
return direto(valor.value, 4, interna.value);
} else {
return direto(valor.value, 12, interna.value);
}
}
}
}
}
for (var dentro = 0; dentro < cPorDentro.length; dentro++) {
if(estado.value == cPorDentro[dentro]) {
for (var set = 0; set < sete.length; set++) {
if(estado.value == sete[set]) {
if(origem.value == 2) {
return porDentro(valor.value, 4, interna.value);
} else {
return porDentro(valor.value, 7, interna.value);
}
}
}
for (var doz = 0; doz < doze.length; doz++) {
if(estado.value == doze[doz]) {
if(origem.value == 2) {
return porDentro(valor.value, 4, interna.value);
} else {
return porDentro(valor.value, 12, interna.value);
}
}
}
}
}
}
}
var doze = [11, 18, 19, 23, 24];
var sete = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 20, 21, 22, 25, 26];
var cDireto = [3, 4, 6, 7, 8, 10, 12, 13, 15, 17, 19, 20, 22];
var cPorDentro = [1, 2, 5, 9, 11, 14, 16, 18, 21, 23, 24, 25, 26];
var tipo = document.getElementById("tipo");
var origem = document.getElementById("origem");
var estado = document.getElementById("estado");
var valor = document.getElementById("valorProduto");
var interna = document.getElementById("aliquotaInterna");
var botao = document.getElementById("botao");
var resultado1 = document.getElementById("resultado1");
var resultado2 = document.getElementById("resultado2");
var resultadoIcms = document.getElementById("resultadoIcms");
document.addEventListener('keypress', function(usarEnter) {
if(usarEnter.which == 13) {
calcula();
}
}, false);
botao.onclick = calcula;
tipo.focus();
</script>
</html>
ST.css
body {
margin: 50px 0 0 100px;
}
.entradas {
display: inline-block;
border: 2px solid #3366ff;
border-radius: 10px;
padding: 5px;
}
.entradas label {
display: block;
font-size: 17px;
font-weight: bold;
margin: 0 0 0 0;
}
.entradas select {
display: block;
margin: 5px 0 15px 0;
}
.entradas input {
display: block;
margin: 5px 0 15px 0;
}
button {
display: block;
margin: 15px 0 15px 60px;
}
.saidas {
display: inline-block;
padding: 15px;
font-size: 17px;
font-weight: bold;
}
.saidas span {
display: block;
margin: 15px auto;
}
It sends to some other page or the result is on the same page?
– Matheus Franco
The result is on the same page. It appears in the result1 span and result2.
– Will Oliveira
Just remove the tags
<form>
.– Sam