Page 1 of 1

[Tutorial] Fazer exibir parcela

Posted: Sat Oct 02, 2010 9:53 pm
by maxno
Boa Dia pessoal

http://www.opencartbrasil.com.br/forum/ ... 35&start=0
eu li este post ontem anoite e me deu uma ideia pra fazer o que vão ver abaixo



ai resolvi criar uma coisa parecida
funciona assim

"ele só exibi quantas parcela vão ser e o valor da ultima parcela de acordo com as normas do pagseguro"
normais do pagseguro: valor minimo da parcela é de 5,00 reias; e configurado as taxas de juros de cada parcela
Image


sem chamar um iframe de outro site, ai fika mais fast o site e quem quiser pod configurar o code abaixo como quiser


vamos la istalar

vai na catalog\view\theme\default\template\product\product.tpl


e na linha 50 comça uma TD

assim

Code: Select all

                <td><?php if (!$special) { ?>
                  <?php echo $price; ?>
                  <?php } else { ?>
                  <span style="text-decoration: line-through;"><?php echo $price; ?></span> <span style="color: #F00;"><?php echo $special; ?></span>
                  <?php } ?></td>

agora antes de termina a </td>

voces vão colocar isto

Code: Select all

                  <?php if (!$special) { ?>
                  <?php $preco_sem_sinal = str_replace(',','.',str_replace('.','', str_replace("R$","",$price))); ?>
                  <?php } else { ?>
                  <?php $preco_sem_sinal = str_replace(',','.',str_replace('.','', str_replace("R$","",$special))); ?>
                  <?php } ?>
                  <?php
                  function ultima_parcela_pagseguro($valor,$maximo){$valor = elimina_pontos($valor);$maximo = elimina_pontos($maximo);$parc[2]='1.0299';$parc[3]='1.0401';$parc[4]='1.0502';$parc[5]='1.0605';$parc[6]='1.0708';$parc[7]='1.0812';$parc[8]='1.0916';$parc[9]='1.1021';$parc[10]='1.1127';$parc[11]='1.1233';$parc[12]='1.1340';$parc[13]='1.1448';$parc[14]='1.1556';$parc[15]='1.1665';$parc[16]='1.1775';$parc[17]='1.1885';$parc[18]='1.1996';$var = '';for($i = 2; $i <= 18; $i++){$conf = ($valor * $parc[$i]) / $i;$conf = number_format($conf * '0.01',2);$conf = str_replace(",","",$conf);$conf = number_format($conf, 2, ',', '.');$confV = str_replace(",","",$conf);$confV = str_replace(".","",$confV);
                  if($i == '12'){$te = $i." x ".$conf.'';return $te;}if($confV > $maximo){$var.= $i." x ".$conf.'<br>';$j = $i;$con = $conf;} else {$te = $j." x ".$con.'<br>';return $te;}}}function elimina_pontos($valor){$confV = str_replace(",","",$valor);$confV = str_replace(".","",$confV);return $confV;}$valor = $preco_sem_sinal;$max = '5,00';$var = ultima_parcela_pagseguro($valor,$max);
                  echo ' ou <span style=color:#FF0000>'.$var. '</span>';
                  ?>

meio confuso né? mais que este code eh puro logaritimo pra calcular taxas e imprimir valor


---------------------
se quiser configurar mais ainda
é assim
esse sistema exibi ate 12 parcela, mais no pagseguro tem cartão que pod ate 18x

se quiser colocar 18, apenas mude

Code: Select all

 if($i == '12')
para

Code: Select all

 if($i == '18')


---------------------

o pagseguro só aceita o valor minino de cada parcela de 5 reais
então, por exemplo: se o produto custa 50 reias, ele vai exibir o valor o NUMERO de parcela ate chega a 5 conto; "11x 5,11"



----------

e pra ter certeza que o code ta calculando o valor correto igual do pagseguro, só fazer um teste
ver o valor q ele calcular e depois compara no pagseguro https://pagseguro.uol.com.br/para_seu_n ... guro.jhtml



---------

Re: [Tutorial] Fazer exibir parcela

Posted: Tue Nov 30, 2010 5:36 am
by RodrigoRlx
Ótimo!
Ainda não testei, mas é sensacional! Parabéns!

Re: [Tutorial] Fazer exibir parcela

Posted: Sun Nov 17, 2013 7:04 am
by rotadosul
Ficou muito bom, mas no meu caso quando o valor do produto é de menos que 10 reais o sistema gera um erro na linha

if($i == '12'){$te = $i." x ".$conf.'';return $te;}if($confV > $maximo){$var.= $i." x ".$conf.'<br>';$j = $i;$con = $conf;} else {$te = $j." x ".$con.'<br>';return $te;}}}function elimina_pontos($valor){$confV = str_replace(",","",$valor);$confV = str_replace(".","",$confV);return $confV;}$valor = $preco_sem_sinal;$max = '5,00';$var = ultima_parcela_pagseguro($valor,$max);

Eu fiz alguns testes mas não consegui encontrar o problema.
Alguém faz idéia?