Ir para conteúdo
Pitag346

Calculo em Javascript

Recommended Posts

Olá pessoal, tudo bem ?

 

Estou com um probleminha bem chato que não faço ideia como resolver... Espero que me ajudem! Agradeço desde já.

 

Vamos lá.

Preciso fazer um calculo com a seguinte expressão:  (ValorAtual/100*10)+parseFloat(ValorAtual)-parseFloat(Saque)+parseFloat(Deposito);

Até o momento estou obtendo sucesso com a expressão acima.  Agora vem o problema.

 

Após eu obter o resultado da expressão acima, eu preciso substituir a variável ValorAtual com o  resultado do mesmo, isso 12 vezes. (12 meses).

Não sei se ficou muito bem explicado, porem eu preciso fazer essa função com valores já definidos e as próximas 12 vezes com valores a definir ou 0.

Vou fazer uma nova explicação com os códigos comentados:

 

var ValorAtual = 1000;

var Saque = 0;  // zero seria o padrão, eu poderia adicionar valores diferentes. (para cada mês, se possivel).

var Deposito = 0; // zero seria o padrão, eu poderia adicionar valores diferentes. (para cada mês, se possivel)..

var resultado = (ValorAtual/100*10)+parseFloat(ValorAtual)-parseFloat(Saque)+parseFloat(Deposito);

Preciso recuperar o primeiro resultado, no exemplo acima seria: 1100

Então após recuperar o valor acima, eu precisaria substituir o ValorAtual para 1100.

Isso, 12 vezes... Recuperando o valor e substituindo como se fosse um calculo de juros mensais (12 meses).

 

 

Tentei fazer com while mas não obtive exito. Estou parado com a função simples que detalhei acima. Obrigado.

 

Espero tenham entendido e agradeço desde já!

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pitag346

Não ficou muito bem explicadoo que você precisa.

Porém pelo o que entendi você precisa atualizar o valorAtual com o novo calor calculado após expressão, certo?

Basta você atribuir o resultado para o valorAtual

 

var ValorAtual = 1000;

var Saque = 0;

var Deposito = 0;

var resultado = (ValorAtual/100*10)+parseFloat(ValorAtual)-parseFloat(Saque)+parseFloat(Deposito);

ValorAtual = resultado ; //valorAtual atualizado com o valor calculado, DE 1000 PARA 1100;

 

Agora essa parte eu não entendi:

Isso, 12 vezes... Recuperando o valor e substituindo como se fosse um calculo de juros mensais (12 meses).

 

O que você quer? Pegar o valor 1100 e dividir em 12 e colocar um valor de juros em cima?

Explique melhor essa parte pois ficou incompreensível.

Se você quer colocar um valor total com juros.

Digamos que você quer pegar esse valor e calcular um rendimento em 12 meses com um valor de juros, primeiro você precisa dizer se é JUROS SIMPLES (juros fixo mensal) ou JUROS COMPOSTO (juros sobre juros mensal).

 

Caso você queira saber o valor a Juros Simples é simples.

Basta você pegar o valorAtual e multiplicar por um valor percentual, digamos que o valor seja 6%, então você multiplica por 0,06 ou 6/100.

Com isso você vai ter o valor do juros mensal, então basta multiplicar este valor por 12 e você tem o juros anual.

var calcJuros = (valorAtual * 0,06) * 12;

 

Caso seja a juros composto você precisa criar um FOR

 

var calcJuros = valorAtual;
for(var=1;<;++){ calcJuros = (calcJuros * 0,06);};

Isso gera juros sobre juros.

 

Agora o que eu não entendi é como você esta chamando essa função e como você pretente alterar os valores SaqueDeposito, você ira inputar os dados com formulário HTML?

 

Existem muitos meios de se fazer as coisas, caso não seja nada disso, explique melhor como você ira alterar os dados, se é uma aplicação HTML e como você quer exibir os valores? E como é essa "regra":

Isso, 12 vezes... Recuperando o valor e substituindo como se fosse um calculo de juros mensais (12 meses).

 

Se a minha resposta for útil não esqueça de agradecer e votar positivo.

Espero ter ajudado de alguma forma.

 

Att
Felipe Guedes Coutinho

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Felipe Guedes Coutinho  Muito obrigado pela resposta, eu utilizei o FOR com a expressão que eu criei e acabou dando certo.

 

Vou tentar explicar melhor sobre o meses.

Oque eu estou querendo fazer é um sistema de simulação de rendimento, onde o 10% do ValorAtual é somado com ele mesmo, subtraído o valor que você sacou/retirou e adicionando o valor que depositou/entrou.

Os valores de Saque e Deposito seriam adicionados via HTML/INPUT.

Em uma página html tenho 12 quadros que mostram os 12 meses, dentro desses quadros existem 2 campos, SAQUE E DEPOSITO onde eu posso deixar em branco e utilizar o valor 0 ou preencher. Caso preencher alterar os valores seguintes.


O resultado utilizando dessa forma: 

for(var i = 0; i < 13; i++){
var resultado = (parseFloat(valoratual)/100*10)+parseFloat(valoratual)-parseFloat(saquev)+parseFloat(depositov);
valoratual = resultado;
console.log(valoratual); //retorna os 12 valores corretamente.

};
 

Como podemos ver acima, os valores de cada mês, se dependem. Ou seja, eu não sei de que forma eu possa gerar os 12 valores onde eu posso alterar os dados SAQUE E DEPOSITO do mês e eles se atualizarem. um exemplo abaixo:

Utilizando a função acima o resultado será (exemplo);

Valor Atual: 10

Saque: 10

Deposito: 10

Janeiro - Resultado: 11

Fevereiro - Resultado: 12.1

Março - Resultado: 13.3

Abril - Resultado: 14.6

Maio - Resultado: 16.1 (Caso eu alterar os valores de SAQUE e DEPOSITO a partir desse resultado os demais abaixo, atualizam pois o resultado final será outro, e o mês abaixo calcula conforme o resultado final desse mês.).

Junho - Resultado: 17.7

Julho - Resultado: 19.4

Agosto - Resultado: 21.4

Setembro - Resultado: 23.5

Outubro - Resultado: 25.9

Novembro - Resultado: 28.5

Dezembro - Resultado: 31.3

 

 

Cada mês teria seu Valor de SAQUE E DEPOSITO, porem os resultados finais tem que se encontrar. O resultado final do mes de janeiro é o valoratual para o mês de fevereiro e assim vai...

 

é dificil explicar, porem ao entender fica mais facil. 

Eu não faço ideia como fazer.

Obrigado, se tiver ficado muito confuso não precisa quebrar a cabeça pra tentar entender não kkkk Obrigado!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pitag346

Fala ai fera, vou te ser sincero, foi um pouco complicado entender o que você precisa, mas no final das contas eu consegui entender ou pelo menos eu acho que consegui.

 

Vamos lá, primeiro, o que parece é que você quer fazer um Simulador de Juros em uma conta e dependendo do valor do Saque ou do Deposito os meses seguintes precisam refletir essas ações, estou certo?

Então assim, por você não ter disponibilizado nenhum código, tomei a liberdade de fazer algo do começo ao fim.

Por favor, se você testar e for algo relevante, não deixe de me agradecer, afinal de contas levei um tempo para tentar fazer algo para que você possa aproveitar. o código ficou um pouco extenso e complexo para quem não entende de JavaScript.

 

Segue o código, LEIA AS REGRAS PARA PODER USAR O CÓDIGO DA MELHOR MANEIRA, pois não existem todos os tratamentos, está bem "crú" o código.

<style>
table {
    border-collapse: separate;
    border-spacing: 1px 8px;
    margin-top: -8px;
}
td {
    border: 1px solid #97B0E6;
    border-left-width: 0;
    min-width: 120px;
    height: 18px;
}
td:first-child {
    border-left-width: 1px;
}
textarea, input, select {
    box-shadow: 0 0 0 0;
    border: 0 none;
    outline: 0;
}
.text-white, .text-white-houve:hover, button {
    color: #97B0E6 !important;
}
.shadow-1, button, .container {
    box-shadow: 0 1px 3px rgba(0, 0, 255, 0.12), 0 1px 2px rgba(0, 0, 255, 0.24);
}
.shadow-2, button:hover, .context_menu_pai, .box_login, .datepicker.dropdown-menu, .dialogbox, .overflow-menu ul {
    box-shadow: 0 2px 5px 0 rgba(0, 0, 255, 0.16), 0 2px 10px 0 rgba(0, 0, 255, 0.12);
}
.transition-1, button {
    transition: all .3s ease-out;
    transition-property: all;
    transition-duration: .3s;
    transition-timing-function: ease-out;
}
button {
    background-color: #FFFFFF;
    text-align: center
    border: 0;
    padding: 0px;
    width: 70px;
    height: 20px;
    display: inline-block;
    margin: 5px;
    cursor: pointer;
    border-radius: 4px;
}
</style>
<script>
function clearCampos() {
    for (var i = 1; i <= 12; i++) {
        document.getElementById('m'+i).value = " ";
        document.getElementById('s'+i).value = " ";
        document.getElementById('d'+i).value = " ";
    }
}

function AtivarValor() {
    clearCampos();
    var valorMes = document.getElementById('st').value;
    var sizeMes  = document.getElementById('st').value.length;
	if(sizeMes == 0) {
        valorMes = 0.00;
    } else {
        while (valorMes.indexOf(".") >= 0) { valorMes = valorMes.replace(".", ""); }
        valorMes = valorMes.replace(',', '.');
	};
    
	var juros = parseFloat(valorMes) * (parseFloat(document.getElementById('taxaJuros').value) / 100 );
	
	for (var i = document.getElementById('MesAtivar').value; i < 13; i++) {
        //Calcula juros de 10% em cima do valor digitado.
        var calc_total = parseFloat(valorMes) * (1 + parseFloat(document.getElementById('taxaJuros').value) / 100 );		
        //Novo Valor do Mês.
        valorMes = calc_total;
        //Realiza tratamento na variável para colocar
        //pontos das casas de milhares
        //virgual das casas de decimais.
        var numero = calc_total.toFixed(2).split('.');
        numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.');
        //Atribui resultado para os campos.
        document.getElementById('m'+i).value = numero;
	};
};

function SaqueMes() {
    if (document.getElementById('MesAcionar').value >= 1 && document.getElementById('MesAcionar').value <= 6) {
        document.getElementById('SaqueText1').style.visibility='visible';
        document.getElementById('SaqueText1').style.display='';
        document.getElementById('SaqueSaldo1').style.visibility='visible';
        document.getElementById('SaqueSaldo1').style.display='';
    };
    if (document.getElementById('MesAcionar').value >= 7 && document.getElementById('MesAcionar').value <= 12) {
        document.getElementById('SaqueText2').style.visibility='visible';
        document.getElementById('SaqueText2').style.display='';
        document.getElementById('SaqueSaldo2').style.visibility='visible';
        document.getElementById('SaqueSaldo2').style.display='';
    };

    document.getElementById('s'+document.getElementById('MesAcionar').value).value = document.getElementById('s0').value;
    var valorSaque = document.getElementById('s0').value;
    var sizeSaque  = document.getElementById('s0').value.length;
    if(sizeSaque == 0) {
        valorSaque = 0.00;
    } else {
        while (valorSaque.indexOf(".") >= 0) { valorSaque = valorSaque.replace(".", ""); }
        valorSaque = valorSaque.replace(',', '.');
    };
    var valorMesSacado = document.getElementById('m'+document.getElementById('MesAcionar').value).value;
    var sizeMesSacado  = document.getElementById('s0').value.length;
    if(sizeMesSacado == 0) {
        valorMesSacado = 0.00;
    } else {
        while (valorMesSacado.indexOf(".") >= 0) { valorMesSacado = valorMesSacado.replace(".", ""); }
        valorMesSacado = valorMesSacado.replace(',', '.');
    };
    
    var saqueMes = document.getElementById('MesAcionar').value;
    var saldo = parseFloat(valorMesSacado) - parseFloat(valorSaque);
    var valorMes = saldo;
    var numero = saldo.toFixed(2).split('.');
    numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.');
    document.getElementById('m'+document.getElementById('MesAcionar').value).value = numero;
    
    for (var i = parseFloat(document.getElementById('MesAcionar').value) + 1; i <= 12; i++) {
        //Calcula juros de 10% em cima do valor digitado.
        var calc_total = parseFloat(valorMes) * (1 + parseFloat(document.getElementById('taxaJuros').value) / 100 );		
        //Novo Valor do Mês.
        valorMes = calc_total;
        //Realiza tratamento na variável para colocar
        //pontos das casas de milhares
        //virgual das casas de decimais.
        var numero = calc_total.toFixed(2).split('.');
        numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.');
        //Atribui resultado para os campos.
        document.getElementById('m'+i).value = numero;
    };
};

function DepositoMes() {
    if (document.getElementById('MesAcionar').value >= 1 && document.getElementById('MesAcionar').value <= 6) {
        document.getElementById('DepositoText1').style.visibility='visible';
        document.getElementById('DepositoText1').style.display='';
        document.getElementById('DepositoSaldo1').style.visibility='visible';
        document.getElementById('DepositoSaldo1').style.display='';
	};
    if (document.getElementById('MesAcionar').value >= 7 && document.getElementById('MesAcionar').value <= 12) {
        document.getElementById('DepositoText2').style.visibility='visible';
        document.getElementById('DepositoText2').style.display='';
        document.getElementById('DepositoSaldo2').style.visibility='visible';
        document.getElementById('DepositoSaldo2').style.display='';
	};
	document.getElementById('d'+document.getElementById('MesAcionar').value).value = document.getElementById('d0').value;
    var valorDeposito = document.getElementById('d0').value;
    var sizeDeposito  = document.getElementById('d0').value.length;
	if(sizeDeposito == 0) {
        valorDeposito = 0.00;
    } else {
        while (valorDeposito.indexOf(".") >= 0) { valorDeposito = valorDeposito.replace(".", ""); }
        valorDeposito = valorDeposito.replace(',', '.');
	};
    var valorMesDepositado = document.getElementById('m'+document.getElementById('MesAcionar').value).value;
    var sizeMesDepositado  = document.getElementById('d0').value.length;
	if(sizeMesDepositado == 0) {
        valorMesDepositado = 0.00;
    } else {
        while (valorMesDepositado.indexOf(".") >= 0) { valorMesDepositado = valorMesDepositado.replace(".", ""); }
        valorMesDepositado = valorMesDepositado.replace(',', '.');
	};
	
	var depositoMes = document.getElementById('MesAcionar').value;
	var saldo = parseFloat(valorMesDepositado) + parseFloat(valorDeposito);
	var valorMes = saldo;
	var numero = saldo.toFixed(2).split('.');
    numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.');
	document.getElementById('m'+document.getElementById('MesAcionar').value).value = numero;

	for (var i = parseFloat(document.getElementById('MesAcionar').value) + 1; i <= 12; i++) {
        //Calcula juros de 10% em cima do valor digitado.
        var calc_total = parseFloat(valorMes) * (1 + parseFloat(document.getElementById('taxaJuros').value) / 100 );		
        //Novo Valor do Mês.
        valorMes = calc_total;
        //Realiza tratamento na variável para colocar
        //pontos das casas de milhares
        //virgual das casas de decimais.
        var numero = calc_total.toFixed(2).split('.');
        numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.');
        //Atribui resultado para os campos.
        document.getElementById('m'+i).value = numero;
	};
};

function DescMesAtivar() {
    if (document.getElementById('MesAtivar').value == 1) {
        document.getElementById("DescMesAtivar").innerHTML = 'Janeiro';
    };
    if (document.getElementById('MesAtivar').value == 2) {
        document.getElementById("DescMesAtivar").innerHTML = 'Fevereiro';
    };
    if (document.getElementById('MesAtivar').value == 3) {
        document.getElementById("DescMesAtivar").innerHTML = 'Março';
    };
    if (document.getElementById('MesAtivar').value == 4) {
        document.getElementById("DescMesAtivar").innerHTML = 'Abril';
    };
    if (document.getElementById('MesAtivar').value == 5) {
        document.getElementById("DescMesAtivar").innerHTML = 'Maio';
    };
    if (document.getElementById('MesAtivar').value == 6) {
        document.getElementById("DescMesAtivar").innerHTML = 'Junho';
    };
    if (document.getElementById('MesAtivar').value == 7) {
        document.getElementById("DescMesAtivar").innerHTML = 'Julho';
    };
    if (document.getElementById('MesAtivar').value == 8) {
        document.getElementById("DescMesAtivar").innerHTML = 'Agosto';
    };
    if (document.getElementById('MesAtivar').value == 9) {
        document.getElementById("DescMesAtivar").innerHTML = 'Setembro';
    };
    if (document.getElementById('MesAtivar').value == 10) {
        document.getElementById("DescMesAtivar").innerHTML = 'Outubro';
    };
    if (document.getElementById('MesAtivar').value == 11) {
        document.getElementById("DescMesAtivar").innerHTML = 'Novembro';
    };
    if (document.getElementById('MesAtivar').value == 12) {
        document.getElementById("DescMesAtivar").innerHTML = 'Dezembro';
    };
};

function DescMesAcionar() {
    if (document.getElementById('MesAcionar').value == 1) {
        document.getElementById("DescMesAcionar").innerHTML = 'Janeiro';
    };
    if (document.getElementById('MesAcionar').value == 2) {
        document.getElementById("DescMesAcionar").innerHTML = 'Fevereiro';
    };
    if (document.getElementById('MesAcionar').value == 3) {
        document.getElementById("DescMesAcionar").innerHTML = 'Março';
    };
    if (document.getElementById('MesAcionar').value == 4) {
        document.getElementById("DescMesAcionar").innerHTML = 'Abril';
    };
    if (document.getElementById('MesAcionar').value == 5) {
        document.getElementById("DescMesAcionar").innerHTML = 'Maio';
    };
    if (document.getElementById('MesAcionar').value == 6) {
        document.getElementById("DescMesAcionar").innerHTML = 'Junho';
    };
    if (document.getElementById('MesAcionar').value == 7) {
        document.getElementById("DescMesAcionar").innerHTML = 'Julho';
    };
    if (document.getElementById('MesAcionar').value == 8) {
        document.getElementById("DescMesAcionar").innerHTML = 'Agosto';
    };
    if (document.getElementById('MesAcionar').value == 9) {
        document.getElementById("DescMesAcionar").innerHTML = 'Setembro';
    };
    if (document.getElementById('MesAcionar').value == 10) {
        document.getElementById("DescMesAcionar").innerHTML = 'Outubro';
    };
    if (document.getElementById('MesAcionar').value == 11) {
        document.getElementById("DescMesAcionar").innerHTML = 'Novembro';
    };
    if (document.getElementById('MesAcionar').value == 12) {
        document.getElementById("DescMesAcionar").innerHTML = 'Dezembro';
    };
};
</script>
<table border="0" bordercolor="#97B0E6">
<tr>
    <td colspan="3">
	Saldo R$ <input type="text" id="st" size="100" tabindex="1" value="10,00" placeholder="Seguir sempre o padrão da moeda Brasileira R$ 1.000,00" autofocus>
	</td>
	<td colspan="1">
	Mês: 
	<select id="MesAtivar" tabindex="2" onchange="DescMesAtivar()">
	        <option selected>1</option>
	        <option>2</option>
	        <option>3</option>
	        <option>4</option>
	        <option>5</option>
	        <option>6</option>
	        <option>7</option>
	        <option>8</option>
	        <option>9</option>
	        <option>10</option>
	        <option>11</option>
	        <option>12</option>
    </select><label id="DescMesAtivar">Janeiro</label>
	</td>
	<td colspan="1">Taxa Juros: <input type="text" id="taxaJuros" tabindex="3" placeholder="Taxa sempre com ponto ou 2 ou 2.5 sem %." value="10" ></td>
	<td><button type="submit" onclick="AtivarValor()" tabindex="4" >Ativar</button></td>
</tr>
</tr>
    <td colspan="2">Mês: 
	<select id="MesAcionar" tabindex="5" onchange="DescMesAcionar()">
	        <option selected>1</option>
	        <option>2</option>
	        <option>3</option>
	        <option>4</option>
	        <option>5</option>
	        <option>6</option>
	        <option>7</option>
	        <option>8</option>
	        <option>9</option>
	        <option>10</option>
	        <option>11</option>
	        <option>12</option>
    </select><label id="DescMesAcionar">Janeiro</label>
    </td>
    <td colspan="2">Saque R$ <input type="text" id="s0" placeholder="Seguir sempre o padrão da moeda Brasileira R$ 1.000,00" value="1,00" tabindex="6" >
	<button type="submit" onclick="SaqueMes()" tabindex="7" >Sacar</button></td>
    <td colspan="2">Deposito R$ <input type="text" id="d0" placeholder="Seguir sempre o padrão da moeda Brasileira R$ 1.000,00" value="1,00" tabindex="8" >
	<button type="submit" onclick="DepositoMes()" tabindex="9" >Depositar</button></td>
</tr>
<tr><th colspan="6" align="left">Resultados</th></tr>
<tr>
    <td width="20%">Janeiro</td>
    <td width="20%">Fevereiro</td>
    <td width="20%">Março</td>
    <td width="20%">Abril</td>
    <td width="20%">Maio</td>
    <td width="20%">Junho</td>
</tr>
<tr>
    <td>R$ <input type="text" id="m1" readonly></td>
    <td>R$ <input type="text" id="m2" readonly></td>
    <td>R$ <input type="text" id="m3" readonly></td>
    <td>R$ <input type="text" id="m4" readonly></td>
    <td>R$ <input type="text" id="m5" readonly></td>
    <td>R$ <input type="text" id="m6" readonly></td>
</tr>
<tr id="SaqueText1" style="visibility:hidden;display:none">
    <td>Saque Janeiro</td>
    <td>Saque Fevereiro</td>
    <td>Saque Março</td>
    <td>Saque Abril</td>
    <td>Saque Maio</td>
    <td>Saque Junho</td>
</tr>
<tr id="SaqueSaldo1" style="visibility:hidden;display:none">
    <td>R$ <input type="text" id="s1" readonly ></td>
    <td>R$ <input type="text" id="s2" readonly ></td>
    <td>R$ <input type="text" id="s3" readonly ></td>
    <td>R$ <input type="text" id="s4" readonly ></td>
    <td>R$ <input type="text" id="s5" readonly ></td>
    <td>R$ <input type="text" id="s6" readonly ></td>
</tr>
<tr id="DepositoText1" style="visibility:hidden;display:none">
    <td>Deposito Janeiro</td>
    <td>Deposito Fevereiro</td>
    <td>Deposito Março</td>
    <td>Deposito Abril</td>
    <td>Deposito Maio</td>
    <td>Deposito Junho</td>
</tr>
<tr id="DepositoSaldo1" style="visibility:hidden;display:none">
    <td>R$ <input type="text" id="d1" readonly ></td>
    <td>R$ <input type="text" id="d2" readonly ></td>
    <td>R$ <input type="text" id="d3" readonly ></td>
    <td>R$ <input type="text" id="d4" readonly ></td>
    <td>R$ <input type="text" id="d5" readonly ></td>
    <td>R$ <input type="text" id="d6" readonly ></td>
</tr>
<tr>
    <td>Julho</td>
    <td>Agosto</td>
    <td>Setembro</td>
    <td>Outubro</td>
    <td>Novembro</td>
    <td>Dezembro</td>
</tr>
<tr>
    <td>R$ <input type="text" id="m7" readonly></td>
    <td>R$ <input type="text" id="m8" readonly></td>
    <td>R$ <input type="text" id="m9" readonly></td>
    <td>R$ <input type="text" id="m10" readonly></td>
    <td>R$ <input type="text" id="m11" readonly></td>
    <td>R$ <input type="text" id="m12" readonly></td>
</tr>
<tr id="SaqueText2" style="visibility:hidden;display:none">
    <td>Saque Julho</td>
    <td>Saque Agosto</td>
    <td>Saque Setembro</td>
    <td>Saque Outubro</td>
    <td>Saque Novembro</td>
    <td>Saque Dezembro</td>
</tr>
<tr id="SaqueSaldo2" style="visibility:hidden;display:none">
    <td>R$ <input type="text" id="s7" readonly ></td>
    <td>R$ <input type="text" id="s8" readonly ></td>
    <td>R$ <input type="text" id="s9" readonly ></td>
    <td>R$ <input type="text" id="s10" readonly ></td>
    <td>R$ <input type="text" id="s11" readonly ></td>
    <td>R$ <input type="text" id="s12" readonly ></td>
</tr>
<tr id="DepositoText2" style="visibility:hidden;display:none">
    <td>Deposito Julho</td>
    <td>Deposito Agosto</td>
    <td>Deposito Setembro</td>
    <td>Deposito Outubro</td>
    <td>Deposito Novembro</td>
    <td>Deposito Dezembro</td>
</tr>
<tr id="DepositoSaldo2" style="visibility:hidden;display:none">
    <td>R$ <input type="text" id="d7" readonly ></td>
    <td>R$ <input type="text" id="d8" readonly ></td>
    <td>R$ <input type="text" id="d9" readonly ></td>
    <td>R$ <input type="text" id="d10" readonly ></td>
    <td>R$ <input type="text" id="d11" readonly ></td>
    <td>R$ <input type="text" id="d12" readonly ></td>
</tr>
</table>

Regras.

 

  1. Para o valor de ativação se você for usar casas decimais, nunca colocar PONTO no lugar da VIRGULA exemplo 10.00 (NÃO) 10,00 (SIM). pois fiz um tratamento para que o JavaScript faça o calculo corretamente, você ainda pode usar o ponto caso tenha casas de milhar como por exemplo o valor 1.000.000,00 mas caso use o ponto para as casas de decimais, não esquecer que para as casas de decimais deve por virgula, pois ele não entende VIRGULA como separador de casas decimais, essa regra você deve usar para o VALOR DE ATIVAÇÃO, VALOR DE SAQUE e VALOR DE DEPOSITO.
  2. Para o valor de TAXA DE JUROS, não colocar VIRGULA. apenas PONTO. exemplo de taxa de juros de 2,5% você deve colocar 2.5 apenas.
  3. Recomendo você a copiar o código em um arquivo e abrir. para o seu primeiro teste clique apenas nos botões, ATIVAR, depois SAQUE e depois DEPOSITO, pois já coloquei valores iniciais nos campos para os cálculos como exemplo. Feito isso, brinque com os MESES DE ATIVAÇÃO. altere o mês para se iniciar em um mês diferente de 1 Janeiro. é uma simulação caso a pessoa abra uma conta poupança em um mês qualquer.
  4. Depois altere o MÊS DE AÇÃO DA CONTA que corresponde ao SAQUE e ao DEPOSITO e clique nos botões para efetuar o saque no mês selecionado e o deposito no mês selecionado, você pode alterar os meses para cada botão.
  5. Os valores de SAQUE e DEPOSITO iram aparecer em uma linha no referido mês.

 

Claro que existem coisas a se fazer, mas acho que isso é mais ou menos o que eu entendi sobre a sua necessidade e atende a regra que você pediu: 

"Maio - Resultado: 16.1 (Caso eu alterar os valores de SAQUE e DEPOSITO a partir desse resultado os demais abaixo, atualizam pois o resultado final será outro, e o mês abaixo calcula conforme o resultado final desse mês.)."

 

Eu espero ter ajudado, foi um desafio legal de se fazer e brincar, até eu vou guardar esse código, pois achei que ficou bacana para se brincar.

 

Se você por acaso conseguir usar o meu código e melhorar de acordo com a sua necessidade, vou te pedir que compartilhe com todos aqui, combinado? Valeu.

 

:lol::thumbsup:

 

* PRECISO DE AJUDA - Vejá meu problema aqui Problemas com SELECT

 

Espero ter ajudado de alguma forma.

 

Att
Felipe Guedes Coutinho

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Felipe Guedes Coutinho , perdão pela demora amigo. Acabei ficando sem acesso a internet. 

 

Muito obrigado mesmo, solucionou meu problema! e ACHEI SEU CÓDIGO INCRÍVEL!

 

por algum motivo não estou conseguindo reagir ao post! 

 

Mas eu agradeço muito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por Thiago Duarte
      Oi, gostaria de arrastar imagem e ao soltar formar bloco html, meu bloco de html ficaria com nome, content-1.html, content-2.html, etc
       
      Alguem pode me ajudar?
    • Por belann
      Olá!
       
      Estou fazendo o upload de arquivos com fetch dessa forma
      fetch(url, {
              method: 'POST',
              headers: {'Content-Type': 'multipart/form-data',},
              body: formData 
          }).catch((error) => (console.log("Problemas com o Upload"), error));
       
      estou usando input type=file
      e criando uma const formData = new FormData(); 
      mas não faz e não dá nenhum erro.
      estou fazendo o upload com a url="http://localhost/dashboard/dados".
    • Por joeythai
      Boa tarde pessoal,
       
      Eu criei um formulário em que tenho 3 interações: evento click, change e uma chamada ajax. No evento on change ("select#removal_table_from" )eu faço uma chamada ajax onde eu passo como parametro o id do item selecionado e construo uma tabela dinamica com o próprio javascript, após isto, tenho um input em que o usuario coloca um valor de percentual para que eu possa preencher em 3 colunas da tabela que foi criada dinamicamente: moto_atualizado, carro_atualizado e caminhao_atualizado, até aí tudo bem, o codigo está fazendo isso, porém, como a tabela é criada dinamicamente eu preciso de alguma forma enviar o arrayData para meu backend mas quando faço o calculo dentro do loop apos resposta do meu ajax, os valores desses 3 campos chegam como null, não sei se é possível fazer o que pretendo ou se é ainda não sei como faz
       
      <code>
           $(document).ready(function (event) {   let arrayData = []; let percentage; let removal_vehicle; let removal_motorcycle; let removal_tuck; let apply_removal = $('#apply_removal');   // apply_removal.on('click', function () { // percentage = $('#percentage').val();   // $('.table-body tr').each(function () {   // let veiculo = $(this).find('.veiculo').text(); // let moto = $(this).find('.moto').text(); // let caminhao = $(this).find('.caminhao').text();   // let removal_vehicle = parseFloat(veiculo) + (parseFloat(veiculo) * parseFloat(percentage)) / 100; // let removal_motorcycle = parseFloat(moto) + (parseFloat(moto) * parseFloat(percentage)) / 100; // let removal_tuck = parseFloat(caminhao) + (parseFloat(caminhao) * parseFloat(percentage)) / 100;   // arrayData.push({ // removal_vehicle, // removal_motorcycle, // removal_tuck // })   // $(this).find('.veiculo_atualizado').val(removal_vehicle.toFixed(2)); // $(this).find('.moto_atualizado').val(removal_motorcycle.toFixed(2)); // $(this).find('.caminhao_atualizado').val(removal_tuck.toFixed(2)); // }); // });   apply_removal.on('click', function () { percentage = $('#percentage').val();   $('.table-body tr').each(function () {   let veiculo = $(this).find('.veiculo').text(); let moto = $(this).find('.moto').text(); let caminhao = $(this).find('.caminhao').text();   removal_vehicle = parseFloat(veiculo) + (parseFloat(veiculo) * parseFloat(percentage)) / 100; removal_motorcycle = parseFloat(moto) + (parseFloat(moto) * parseFloat(percentage)) / 100; removal_tuck = parseFloat(caminhao) + (parseFloat(caminhao) * parseFloat(percentage)) / 100;   arrayData.push({ removal_vehicle, removal_motorcycle, removal_tuck })   $(this).find('.veiculo_atualizado').val(removal_vehicle.toFixed(2)); $(this).find('.moto_atualizado').val(removal_motorcycle.toFixed(2)); $(this).find('.caminhao_atualizado').val(removal_tuck.toFixed(2));     console.log('Removal Vehicle:', removal_vehicle); console.log('Removal Motorcycle:', removal_motorcycle); console.log('Removal Truck:', removal_tuck); }); });   $('select#removal_table_from').on('change', function (e) { let table_id = $(this).val(); let action = route('removal.removal-values.show', table_id);   $.ajax({ type: "GET", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },   success: function (data) { $('.table-body').empty();   for (let i = 0; i < data.length; i++) { let carro = parseFloat(data[i].CARRO); let moto = parseFloat(data[i].MOTO); let caminhao = parseFloat(data[i].CAMINHAO); let distancia = data[i].DISTANCIA; let origem = data[i].ORIGEM; let destino = data[i].DESTINO; let localidadeOrigem = data[i].LocalidadeOrigem_ID; let localidadeDestino = data[i].LocalidadeDestino_ID;   let newRow = '<tr class="removal-row">' + '<td class="align-middle">' + '<div class="row">' + '<div class="col-1">' + '<span class="font-weight-bold">Origem</span><br>' + '<span class="origem">' + origem + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Destino</span><br>' + '<span class="destino">' + destino + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">KM</span><br>' + '<span class="km">' + distancia + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Veículo</span><br>' + '<span class="veiculo">' + carro + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Veículo Atualizado</span><br>' + '<input type="text" class="veiculo_atualizado">' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Moto</span><br>' + '<span class="moto">' + moto + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Moto Atualizado</span><br>' + '<input type="text" class="moto_atualizado">' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Caminhão</span><br>' + '<span class="caminhao">' + caminhao + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Caminhão Atualizado</span><br>' + '<input type="text" class="caminhao_atualizado">' + '</div>' + '</div>' + '</div>' + '</td>' + '</tr>';   $('.table-body').append(newRow); //let row = $('.removal-row:last');   // Calcula o valor atualizado e define nos campos diretamente // let veiculo_atualizado = carro + (carro * percentage) / 100; // let moto_atualizado = moto + (moto * percentage) / 100; // let caminhao_atualizado = caminhao + (caminhao * percentage) / 100; // console.log('PORCENTS: ', percentage); //console.log('Veiculo Atualizado:', veiculo_atualizado, 'Moto Atualizado:', moto_atualizado, 'Caminhao Atualizado:', caminhao_atualizado);   // Define os valores diretamente nos campos da nova linha // row.find('.veiculo_atualizado').val(veiculo_atualizado.toFixed(2)); // row.find('.moto_atualizado').val(moto_atualizado.toFixed(2)); // row.find('.caminhao_atualizado').val(caminhao_atualizado.toFixed(2));   arrayData.push({ carro, moto, caminhao, distancia, origem, destino, localidadeOrigem, localidadeDestino, removal_vehicle, removal_motorcycle, removal_tuck }); }   $('#copy_data_table').val(JSON.stringify(arrayData)); }   }); });   //javascript para o formulario de cadastro // $(document).ready(function (event) { $('#uf').change(function () { let code_city = $(this).val(); let deposit = localStorage.getItem('selected_deposit_id'); let action = route('removal.removal-values.cities', code_city); $.ajax({ type: "POST", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: { code_city: code_city },   success: function (data) {   $('#city').empty(); $('#deposit').empty();   for (let i = 0; i < data.cities.length; i++) { $('#city').append('<option value="' + data.cities[i].NM + '">' + data.cities[i].NM + '<option>'); }   if (data.deposits.length > 0) { for (let i = 0; i < data.deposits.length; i++) { $('#deposit').append('<option value="' + data.deposits[i].NM + '">' + data.deposits[i].NM + '<option>'); } } else { // $('#deposit').prop('disabled', true); // $('#city').prop('disabled', false); }   $('#city').trigger('change'); } });   });   $('#deposit').on('change', function () { depositId = $(this).val(); localStorage.setItem('selected_deposit_id', depositId); });   $('#uf_destiny').change(function () { let code_city = $(this).val(); let depositDestiny = localStorage.getItem('selected_deposit_destiny_id'); let action = route('removal.removal-values.cities', code_city); $.ajax({ type: "POST", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: { code_city: code_city },   success: function (data) {   $('#city_destiny').empty(); $('#deposit_destiny').empty();   for (let i = 0; i < data.cities.length; i++) { $('#city_destiny').append('<option value="' + data.cities[i].NM + '">' + data.cities[i].NM + '</option>'); }   if (data.deposits.length > 0) { // $('#deposit_destiny').prop('disabled', false); //$('#city_destiny').empty(); // $('#city_destiny').prop('disabled', true); for (let i = 0; i < data.deposits.length; i++) { $('#deposit_destiny').append('<option value="' + data.deposits[i].NM + '">' + data.deposits[i].NM + '</option>'); } } else { // $('#deposit_destiny').prop('disabled', true); // $('#city_destiny').prop('disabled', false); }   $('#city_destiny').trigger('change'); } }); });   $('#deposit_destiny').on('change', function () { let depositDestinyId = $(this).val(); localStorage.setItem('selected_deposit_destiny_id', depositDestinyId); });   }); </code>
    • Por gersonab
      Bom dia a todos, estou usando o datatable com uma consulta mysql e funciona 100% , meu único problema é na hora que eu exporto para pdf, este não vem com sua largura da tabela exportada em 100%, dependendo da situação ocupa apenas 30% da página, infelizmente após varias pesquisas ainda não encontrei uma forma de fazer.
      segue meu código de forma simples:
      $('#exportar').DataTable( { language: { url: '//cdn.datatables.net/plug-ins/1.13.7/i18n/pt-BR.json', }, dom: 'Bfrtip', order: [[ 0, 'desc' ]], buttons: [ 'pdfHtml5' ] } ); desde já agradeço toda ajuda possível
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.