Ir para conteúdo

Arquivado

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

Marlon Souza

Valores de parcelas - simulador de consórcio

Recommended Posts

Prezados, boa tarde

Depois de mais de 5 anos sem programar, trabalhando em outra área, totalmente diferente da programação, surgiu a necessidade de programar uma pagina de verificação de valores de parcelamento para sistema de consorcio.

 

O sistema deve funcionar seguindo as regras enviadas pela administradora do consorcio, são eles:

 

ValorCota = Array com valores das cotas

TaxaDeAdm = 0,24% (valor fixo)

ValorCategoria = ValorCota + TaxaDeAdm

TaxaSeguro = 0,09%

SeguroPrestamista = ValorCategoria * TaxaSeguro

Prazo = Array com prazos (24, 36, 48, 64 e 80)

ValorParcela = ValorCategoria  / Prazo + SeguroPrestamista  (o que quero encontrar com cada Prazo da cota)

 

Abaixo segue meu código e a tabela que foi enviada pela equipe do consorcio, se rodar o html abaixo, vai ver que não existe nenhum valor correto comparado com o excel

 

 

<?php
//valores das cotas liberadas pelo sistema de consorcio
	$ValorCota1="25.166,98";
	$ValorCota2="23.069,73";
	$ValorCota3="20.972,48";
	$ValorCota4="18.875,23";
	$ValorCota5="16.777,98";
	$ValorCota6="14.680,74";
	$ValorCota7="12.583,49";
	$ValorCota1=str_replace('.', '', $ValorCota1);
	$ValorCota1=str_replace(',', '', $ValorCota1);
	$ValorCota2=str_replace('.', '', $ValorCota2);
	$ValorCota2=str_replace(',', '', $ValorCota2);
	$ValorCota3=str_replace('.', '', $ValorCota3);
	$ValorCota3=str_replace(',', '', $ValorCota3);
	$ValorCota4=str_replace('.', '', $ValorCota4);
	$ValorCota4=str_replace(',', '', $ValorCota4);
	$ValorCota5=str_replace('.', '', $ValorCota5);
	$ValorCota5=str_replace(',', '', $ValorCota5);
	$ValorCota6=str_replace('.', '', $ValorCota6);
	$ValorCota6=str_replace(',', '', $ValorCota6);
	$ValorCota7=str_replace('.', '', $ValorCota7);
	$ValorCota7=str_replace(',', '', $ValorCota7);

$ValorCotas = array("Cota0" => $ValorCota1, "Cota1" => $ValorCota2, "Cota2" => $ValorCota3, "Cota3" => $ValorCota4, "Cota4" => $ValorCota5, "Cota5" => $ValorCota6, "Cota6" => $ValorCota7);
$contaCota = count($ValorCotas);
	$zcota='0';

	if($contaCota!=""){
		while (list($key, $val) = each($ValorCotas)) {
		    //valor da cota
		    echo "Valor da Cota ".$val." + ";

			$TaxaDeAdm = (bcmul('0.24', $val)/100);

			$txAdm = str_replace('.', '', $TaxaDeAdm);
			$txAdm = str_replace('.', '', $txAdm);

			$TaxAdm = number_format($TaxaDeAdm, 2, ',', '.');
			echo " Taxa de Adm ".$TaxAdm ." = ";

			$somaCota_TaxAdm=($val+$txAdm);// soma sem pontuacao
			$somaCotaTaxAdmFormat=number_format($somaCota_TaxAdm, 2, ",", ".");


			echo "ValorDaCategoria ".$somaCota_TaxAdm."<br/>";

			//ValorDaCategoria = R$12.583,49 +  R$3.020,04 = R$15.603,53
			$ValorDaCategoria = $somaCota_TaxAdm;
			//$somaValorDaCategoria=$ValorDaCategoria+$TaxAdm;

			$Seguro = "0.09";
			//SeguroPrestamista = ValorDaCategoria * Seguro;

			$SeguroPrestamista = ($ValorDaCategoria * $Seguro)/10000;

			$SeguroPrestamistaFormatado=number_format($SeguroPrestamista, 2, ",", ".");
			$SeguroPrestamistaFormatado=str_replace(',', '.', $SeguroPrestamistaFormatado);
			$SeguroPrestamistaFormatado=str_replace('.', ',', $SeguroPrestamistaFormatado);

			echo "<br/>SeguroPrestamista = ".$SeguroPrestamistaFormatado."<br/>";
			$QuantidadeParcelas = array("Parcela0" => '24', "Parcela1" => '36', "Parcela2" => '48', "Parcela3" => '60', "Parcela4" => '80');
				$contaQuantidadeParcelas = count($QuantidadeParcelas);
				while (list($keyP, $valP) = each($QuantidadeParcelas)) {
					$Prazo=$valP;
					echo "Prazo ".$Prazo." - ";
					$parcelaValor=$ValorDaCategoria/ $Prazo;
					$ValorParcela=$parcelaValor+$SeguroPrestamistaFormatado;
					$ValorParcelaFormatado=number_format($ValorParcela, 2, ",", ".")*10;

					echo "Parcela de R$".$ValorParcelaFormatado." <br/>";
				}
				echo " <br/><br/>";

		}
	}
?>

 

Anexo constam as tabelas que já foram homologadas e no excel está funcionando normal.

 

Se alguem puder me ajudar onde estou errando, fico muito grato.

 

 

 

consorcio1.JPG

consorcio2.JPG

Compartilhar este post


Link para o post
Compartilhar em outros sites

Emerson, bom dia, 

 

Preciso fazer o seguinte, tenho as variaveis e formulas, preciso fazer com que exiba o resultado correto, pois o resultado final está muito diferente do excel ou calculadora.

 

 

ValorCota = "12.583,49"

TaxaDeAdm = 0,24% ; de ValorCota

 

ValorCategoria = ValorCota + TaxaDeAdm

 

TaxaSeguro = 0,09%; de ValorCategoria

 

SeguroPrestamista = ValorCategoria * TaxaSeguro

 

Prazo = 24 // (24, 36, 48, 64 ou 80)

 

ValorParcela = ValorCategoria  / Prazo + SeguroPrestamista  (o que quero encontrar com cada Prazo da cota)

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 minuto atrás, Emerson.Oliveira disse:

$Seguro = "0.091"; // dessa forma fica 9 %

 //SeguroPrestamista = ValorDaCategoria * Seguro; 
 
 $SeguroPrestamista = ($ValorDaCategoria) * $Seguro; // faça dessa forma também

 

verifique esse

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Célido
      Boa tarde Galera!!!
       
      Em 2014 este código funcionava, inclusive eu que postei a resolução.
      Hoje (2021) não esta funcionando, estou enferrujado.
       
      A logica é simples, Cadastra-se a Transação principal (Lançamentos)
      Usuário Preenche os campos (Emissão, VlrEvento, QtdeParc)
      Após inserido no BD (test), voce clicar em um botão PARCELAR.
       
      Teoricamente, deveria atualizar a Tabela parcelas.
       
      Erros:
       Warning: mysqli_query() expects at least 2 parameters, 1 given 
        Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in 
       
      São duas Tabelas : 
      - lançamentos
            *Campos
              IdLan
             Emissao
             VlrEvento
             QtdeParc
       
      - parcelas
             *Campos
               IdLan
               Item 
               Vencto
               VlPar
        
      <?php
      $conn=mysqli_connect("localhost","root","","test");
      $idlan = $_REQUEST['IdLan'];
      $result = mysqli_query($conn,"SELECT * FROM lançamentos
      WHERE IdLan='$idlan'");
      //selecionando dados da tabela
      $idlan = $_REQUEST['IdLan'];
      $sql = "SELECT * FROM lançamentos where IdLan='$idlan'";
      $query = mysqli_query($sql);
      while($sql = mysqli_fetch_array($query)){
      $idfatu = $sql["IdLan"];
      $vtt = $sql["VlrEvento"];
      $nParcelas = $sql["QtdeParc"];
      }
      $vpp = $vtt/$nParcelas;
      $vencto = date("Y-m-d",strtotime("+".$x." month",mktime(0, 0, 0,$mes,$dia,$ano)));
      for($x = 1; $x <= $nParcelas; $x++){
      if(mysqli_query("INSERT INTO parcelas (IdLan,Item,Vencto,VlPar)
      VALUES ('".$idfatu."','".$x."','".$vencto."','".$vpp."')"))
      {
      } else {
      die("Erro ao inserir a parcela ".$x.": ".mysqli_error());
      }
      }
      ?>
       
      Desde já Obrigado pela Atenção e possível ajuda.
       
       
    • Por wtomtom
      Boa noite, estou com um problema, estou finalizando uma loja no opencart e estou criando um sistema de parcelamento para exibir na loja já fiz o script mas gostaria de fazer ele listar todas as parcelas ex: 1 = 100 reais 2 = 50 reais e etc, pois o script que conseguir fazer só mostra uma parcela a que eu colocar no sistema não consegui fazer ele listar todas. segui o código:
      <div> <?php $maximo_parcelas = 10; $parcela_minima = 2; $parcelas_sem_juros = 10; $juros = 1.99; $tipo_de_calculo = 1; if (!$special) { $preco_numero = str_replace(',','.',str_replace('.','', str_replace('R$',"",strip_tags($price)))); } else { $preco_numero = str_replace(',','.',str_replace('.','', str_replace('R$',"",strip_tags($special)))); } // Inicia a primeira coluna echo '<div style="width: 100%; float:left;">'; // Exibicao das parcelas for ($p = 10; $p <= $maximo_parcelas; $p++) { // Se a parcela nao tiver juros if ($p <= $parcelas_sem_juros) { $valor_parcela = $preco_numero / $p; } // Se a parcela tiver juros if ($p > $parcelas_sem_juros) { if ($tipo_de_calculo == 0) { $valor_parcela = ($preco_numero * pow(1+($juros/100), $p))/$p; } if ($tipo_de_calculo == 1) { $valor_parcela = ($preco_numero * ($juros/100))/(1-(1/(pow(1+($juros/100), $p)))); } } // Escreve a parcela se ela for maior do que a parcela minima if ($valor_parcela >= $parcela_minima) { $valor_parcela = number_format($valor_parcela, 2, ',', '.'); if ($p <= $parcelas_sem_juros) { echo 'ou em até ' . $p . 'x de ' . 'R$' . $valor_parcela . ' sem juros<br />'; } else { echo 'em até ' . $p . 'x de ' . 'R$' . $valor_parcela . '<br />'; } } // Fecha a primeira coluna e inicia a segunda if ($p == intval($maximo_parcelas/2)+1) { echo '</div><div style="width: 100%; float:right;">'; } } // Exibe os juros utilizados e o valor minimo da parcela se esta for maior que zero if ($parcelas_sem_juros < $maximo_parcelas) { $juros = number_format($juros, 2, ',', '.'); } if ($parcela_minima > 0) { $parcela_minima = number_format($parcela_minima, 2, ',', '.'); echo ''; } // Fecha a segunda coluna echo '</div>'; ?> </div>
×

Informação importante

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