Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Simulação de Financiamento Salve comunidade do Adianti Framework. Venho aqui dar minha primeira contribuição para a comunidade. Para quem quiser uma idéia de como criar uma tela de simulação de financiamentos, que gere vencimentos e parcelas de acordo com informações dadas pelo usuário, que somadas retornem o valor total exato, basta copiar e colar esse código para ver como fazer: Não esqueça de comentar se func...
FM
Simulação de Financiamento  
Fechado
Salve comunidade do Adianti Framework. Venho aqui dar minha primeira contribuição para a comunidade. Para quem quiser uma idéia de como criar uma tela de simulação de financiamentos, que gere vencimentos e parcelas de acordo com informações dadas pelo usuário, que somadas retornem o valor total exato, basta copiar e colar esse código para ver como fazer:
Não esqueça de comentar se funcionou para você !!!

  1. <?php
  2. class geradorFinaciamentos extends TPage {
  3.    
  4.    protected $form;
  5.    private $datagrid;
  6.    
  7.    function __construct() {
  8.       
  9.       parent::__construct();
  10.       $this->form = new TForm('form_Vencimentos');
  11.       $table = new TTable;
  12.       $this->form->add($table);
  13.       
  14.       $texto = new TEntry('texto');
  15.       $venci = new TDate('venci');
  16.       $total = new TEntry('total');
  17.       $titulo = new TLabel('<font color = red><h3>Fomulário para criação de parcelas</h3></font');  
  18.       $this->label = new TLabel();
  19.       $this->vtotal = new TLabel();
  20.       $botao TButton::create('testar', array($this'onTeste'), 'Simular parcelamento''fa:eye green');
  21.       $this->datagrid = new TQuickGrid;
  22.       $this->datagrid->setHeight(320);
  23.       
  24.       $this->datagrid->addQuickColumn('Parcela',    'parcela',    'center'50);
  25.       $this->datagrid->addQuickColumn('Vencimento''vencimento''center'100);
  26.       $this->datagrid->addQuickColumn('Valor',      'valor',      'right'80);
  27.       
  28.       $this->datagrid->createModel();
  29.       
  30.       $botao->popover 'true';
  31.       $botao->poptitle '<font color = red /><b>SIMULAR PARCELAMENTO</b>';
  32.       $botao->popcontent '<font color = blue>Simula o parcelamento, deixando parcelas com valor exato e calculando vencimentos.</font>';
  33.         
  34.       
  35.       $venci->setMask('dd/mm/yyyy');
  36.       
  37.       $table->addRowSet(new TLabel('Data da compra: '),$venci);
  38.       $table->addRowSet(new TLabel('Parcelas:'),$texto);
  39.       $table->addRowSet(new TLabel('Valor: '), $total);
  40.       $table->addRowSet($botao);
  41.       
  42.       $this->form->setFields(array($this->label,$texto$venci$botao,$total));
  43.       
  44.       $container = new TVBox;
  45.       $container->add($titulo);
  46.       $container->add($this->form);
  47.       $container->add($this->label);
  48.       $container->add($this->datagrid);
  49.       $container->add($this->vtotal);
  50.       
  51.       parent::add($container);
  52.    }
  53.    
  54.    function onTeste() {
  55.       $data $this->form->getData();
  56.       $date TDate::date2us(date($data->venci));
  57.       $date = new DateTime$date );
  58.       $vezes $data->texto;
  59.       $total $data->total;
  60.       $valor = ($total $vezes);
  61.       $this->datagrid->clear();
  62.      for ($n=1$n<=$vezes$n++)
  63.      {
  64.          $date->add(new DateInterval('P1M'));
  65.          //echo $date->format('Y-m-d');
  66.          //echo "n";
  67.          $nueba $nueba $date->format('Y-m-d').';';
  68.          //echo $nueba;
  69.          
  70.      }
  71.      $binda explode(';'$nueba);
  72.      $NumerodeParcelas $data->texto;
  73.      
  74.      if(substr($data->total, -31) == ',') {
  75.         $data->total substr_replace($data->total'.', -31);
  76.      }
  77.      
  78.      // joga o valor total informado na var $ValordaCompra
  79.      $ValordaCompra $data->total;
  80.      //desta forma se obtem o valor das parcelas desprezando os centavos
  81.      $Parcelas floor($ValordaCompra/$NumerodeParcelas);
  82.      //obtendo o valor da primeira parcela
  83.      $PrimeiraParcela $ValordaCompra-($Parcelas*($NumerodeParcelas-1));
  84.      echo "<br/><br/>";
  85.      for ($y 1$y<=$vezes$y++)
  86.      {
  87.         $x $y;
  88.         $x -= 1;
  89.        // while($y <= $vezes) {
  90.         // cria a classe standard para armazenar os resultados
  91.         $item = new StdClass;
  92.         $item->vencimento TDate::date2br($binda[$x]);
  93.         $item->parcela     $y."º";
  94.         // se for a primeira parcela exibe a var $PrimeiraParcela
  95.         if($y == 1){
  96.            $item->valor  number_format($PrimeiraParcela,2,",",".");
  97.         } else {  // se não for a 1º parcela exibe o valor de $Parcelas
  98.            $item->valor  number_format($Parcelas,2,",",".");
  99.         }
  100.         $this->datagrid->addItem($item);
  101.        // }
  102.            
  103.          
  104.         
  105.      }
  106.      // soma as parcelas alteradas
  107.      $totala = ($Parcelas*($NumerodeParcelas-1)) + $PrimeiraParcela;
  108.      $cacaca number_format($totala,2,",",".");
  109.      $item->vencimento '<b>TOTAL:</b>';
  110.      $item->parcela     '-----';
  111.      $item->valor "<font color = red><b>$cacaca</b></font>";
  112.      $this->datagrid->addItem($item);
  113.      
  114.      //$data->texto = 'texto para o label';
  115.      //$this->label->setValue('<br/>Dividido em '.$data->texto.' vezes de R$ '.number_format($valor,2,",",".") . '<br/>');
  116.      $this->form->setData($data);
  117.      // exibe as parcelas
  118.      /*$this->vtotal->setValue('<br/>              
  119.                                              
  120.                                              
  121.                                              
  122.                                  R$<b> '.number_format($totala,2,",",".").'</b>');
  123.     */ 
  124.     // libera as variáveis da memória
  125.     unset($totala);
  126.     unset($cacaca);
  127.     unset($valor);
  128.     unset($data);
  129.     unset($date);
  130.     unset($item);
  131.     unset($ValordaCompra);
  132.    }
  133.    
  134.    
  135.    
  136. }
  137. ?>

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (4)


JA

parabéns pela rotina! em uma divisão de 99,00 em 24 parcelas ele cria a primeira com 7,00 e as demais como 4,00.
JE

Boa Noite amigo, aqui pra mim caiu como uma luva. Perfeito, agora gostaria de pegar o resultado e colocar no banco de dados. Poderia me ajudar?
Desde já muito obrigado.
FM

Olá Jurandir, me manda uma mensagem no meu email que eu te ajudo sim ,sem problemas, a noite estarei com mais tempo e te respondo, só me manda um e-mail para eu te mandar a solução na resposta. meu email é flaviocwbpr@gmail.com
EF

Também gostaria de saber como manipular esse código com o banco de de dados!