Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Douglas.Pootz

[Resolvido] Calculando JUROS com taxa ao mes...

Recommended Posts

Seguinte, estou com probleminha...

 

 

$valor = 100,00;

$taxa = 0.10; // 10%

$meses = 3;

 

for($i = 1; $i <= $meses; $i++){

 

ele ira fazer 3 meses com Juros compostos...

Primeiro = 110,00

Segundo = 121,00

Terceiro = 133,10 algo assim.... certo?ok...

 

agora vamos supor que seja assim,

 

 

$valor = 100,00;

$Data_da_compra = 01/01/2009

$Data_Hoje = 01/03/2009

 

( TAXA DO MES 1 = 0,32%, MES 2 = 0,11%, MES 3 = 1%, encontrao-se no BD, como fazer que ele pegue a taxa no banco de dados, e separe mes por mes igual o exemplo e execute o LOOP multiplicando....)

 

for($i = 1; $i <= $meses; $i++){

 

 

Sei que ta um pouco complicado mas dei o meu maximo :P

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estava eu pensando nesse modelo aqui....

 

Exemplo 01/2009 ate 06/2009 entao teriamos 6 taxas certo, o id das taxas seriam os mes/ano (01/2009 = taxa 0,1), dai na hora em que eu digita-se a data da compra (01/2009) ele ia pega todas as taxas ate o dia atual (06/2009) soma-las e multiplicar pelo valor...

 

seria um mode de fazer, mas como seria o codigo dele pegar as taxas no bd de 01/2009 ate 06/2009 ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce teria um exemplo para me mostrar?

ou algo do tipo....

pq eu queria que ele pegasse o as datas a partir da que eu selecionei ate a data atuall.....

e se nao me engano usando o BETWEEN seria para eu colocar as datas exemplo

 

data1 BETWEEN data2 BETWEEN data3 ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exato, veja:

 

$data_inicial = $_POST['data_inicial'];

$data_final = $_POST['data_final'];

 

$sql = mysql_query ( "SELECT * FROM asdf WHERE data BETWEEN '$data_inicial' AND '$data_final' ORDER BY data ASC" );

 

Pronto, listamos as taxas dos mêses informados, por exemplo, num formulário.

Você pode trabalhar com esse resultado assim:

 

while( $meses_taxas = mysql_fetch_array( $sql ) )

{

echo 'No mês: '.$meses_taxas['mes'].' a taxa é de '.$meses_taxas['campo_de_taxas'];

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

A estrutura da TABLE seria

 

 

ID - TAXA

 

01/2008 - 1,4%

02/2008 - 2,5%

...

...

...

03/2009 - 5,4%

 

data inicial eu vou colocar (01/2008) dai ele vai pegar a taxa do 01/2008 ate o dia de hoje que seria 03/2009 entao

nesse intervalo de tempo ele ira pegar TODAS AS TAXAS e multiplicar por um valor fazendo um MONTANTE.. entende?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok! Mãos a obra:

 

$data_inicial = $_POST['data_inicial'];
$data_final = $_POST['data_final'];
$valor_parcela = $_POST['valor_parcela'];

//Selecionamos a soma das taxas do intervalo mensal fornecido e as datas.
$sql = mysql_query ( "SELECT SUM(taxa) AS taxa_total, data FROM asdf WHERE data BETWEEN '$data_inicial' AND '$data_final' ORDER BY data ASC" );
$meses_taxas = mysql_fetch_array( $sql );

//Multiplicação do valor da conta pelo total
$valor_total = $valor_parcela * $meses_taxa['taxa_total'];

Dessa maneira funcionaria, porém a lógica estaria errada pois o valor final da conta não bateria.

O correto seria múltiplicar o valor da parcela do mês pelo valor da taxa do mês e no final somar todas as parcelas.

Então temos o modo correto:

 

//O novo SELECT correto
$sql = mysql_query ( "SELECT taxa AS taxa_mensal, data FROM asdf WHERE data BETWEEN '$data_inicial' AND '$data_final' ORDER BY data ASC" );

$i = 0;

//Loop pelo intervalo.
while( $meses_taxas = mysql_fetch_array( $sql ) )
{
	$valor_parcela_mes_atual = array();
	$valor_parcela_mes_atual[$i] = $valor_parcela * $meses_taxas['taxa'];
	$i++;
}

//Agora precisamos somar os valores das parcelas do intervalo
foreach( $valor_parcela_mes_atual as $key=> $value )
{
	//Valor total da conta
	$total_conta .= $value;
}

Postei os dois modos, o errado e o correto para o seu caso.

O primeiro modo seria o correto apenas se o valor das taxas não fossem diferentes a cada mês.

Estude o código e entenda o porque disso.

Ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, estava olhando o codigo e eee nesse raciocionio mesmo, porem é o seguinte....

cada mes tem uma taxa, mas cada mes nao tem 1 boleto...

exemplo

 

Eu comprei 1 ap 01/2009, primeira parcela eee em 5/2009, entao essa parcela vai pegar e ser multiplicada pela soma das taxas desses 5 meses entende.....

mas acho que com sua explicacao lah em cima eu consigo fazer....

vlw brother... abraçao viu, terminando e dando certo eu posto aki...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso mesmo,

 

 

 

<?

 

$data_inicial = 01/2009

$data_final = 03/2009

$valor_parcela = 100

 

//Selecionamos a soma das taxas do intervalo mensal fornecido e as datas.

$sql = mysql_query ( "SELECT SUM(taxa) AS taxa_total, id FROM teste WHERE id BETWEEN '$data_inicial' AND '$data_final' ORDER BY id ASC" );

$meses_taxas = mysql_fetch_array( $sql );

 

//Multiplicação do valor da conta pelo total

$valor_total = $valor_parcela * $meses_taxa['taxa_total'];

 

?>

 

esta dando erro na linha 17 = data_final se nao me engano......

 

 

BD esta assim

 

TABLE = teste , Campos ID, TAXA

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, seria o primeiro mesmo, porem ele esta ocorrendo um error, já fiz de tudo e nada muda..

 

Notice: Undefined variable: meses_taxa in d:\easyphp1-8\www\cal.php on line 25

Compartilhar este post


Link para o post
Compartilhar em outros sites

EU CONSEGUI NESSE MODELO :P

 

 

 

<?

 

$data_inicial = 1;

$data_final = 3;

$valorx = 414;

 

 

$sql = mysql_query ("SELECT SUM(taxa) AS taxa_total FROM teste WHERE id BETWEEN '$data_inicial' AND '$data_final' ORDER BY id ASC");

 

 

 

while ($a = mysql_fetch_array($sql)) {

$taxa_total = $a['taxa_total'];

 

 

$valor_total = $valorx * ($taxa_total/100) + $valorx;

?>

 

 

 

 

<?=$valor_total;?>

 

 

<?

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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