- 06 Out 2012, 10:18
#28923
Ficou da seguinte forma:
- No local onde serão colocadas as simulações:
Meu cliente está em fase final de cadastramento de produtos. Assim que a loja estiver liberada, posto o link no tópico de novas lojas do fórum pro pessoal ver como ficou a simulação para mais de um facilitador de pagamento usando tabs.
Abraço,
Ivan Vieira
denisgomes escreveu:Honestamente eu não usaria arrays, faria o cálculo dos juros a partir da taxa mensal como usei no meu código.Realmente o código ficou mais limpo sem o cálculo por fator, que eu havia usado pois não conseguia igualar com a simulação do PagSeguro, que deu certo na price com taxa de 2.49.
Ficou da seguinte forma:
- No local onde serão colocadas as simulações:
Código: Selecionar todos
- No script das Tabs:
<!-- exibe parcelamento -->
<div class="parcelamento"><span>Parcelamento no Cartão:</span>
<div id="parcelamento" class="htabs" style="margin-bottom:0;padding-bottom:0;"><a href="#tab-pagseguro">PagSeguro</a>
<a href="#tab-pagamentodigital">PagamentoDigital</a>
</div>
<div id="tab-pagseguro" class="tab-content" style="margin-bottom:0;padding-bottom:0;">
<?php echo mostraParcelamento($price,$special,1,12,1,5,2.49); ?>
</div>
<div id="tab-pagamentodigital" class="tab-content" style="margin-bottom:0;padding-bottom:0;">
<?php echo mostraParcelamento($price,$special,0); ?>
</div>
</div>
<!-- fim exibe parcelamento -->Código: Selecionar todos
- Na função antes do rodapé:
<script type="text/javascript"><!--
$('#tabs a').tabs();
$('#parcelamento a').tabs();
//--></script>Código: Selecionar todos
Se houver melhor forma de informar seus créditos, peço informar.<?php
/*****************************************************************************************
* Função para exibir simulação de parcelamento
*
* Variáveis:
* precoProduto - Valor normal do produto
* precoPromo - Valor do produto em promoção
* tipoCalculo - Permite escolher juros simples (0) ou tabela price (1)
* maxParcelas - Define a quantidade máxima de parcelas para simulação
* parcelasSemJuros - Define quantas parcelas não terão juros
* parcelaMinima - Valor mínimo da parcela aceito pela loja
* taxaJuros - Taxa mensal de juros
* moedaLoja - String de moeda a ser removido do preço do produto para cálculos
*
* Referências:
* Cálculo de Parcelamento Direto - Dênis Gomes
* - https://forum.opencartbrasil.com.br/viewtopic.php?f=41&t=171
*****************************************************************************************/
function mostraParcelamento($precoProduto,$precoPromo,$tipoCalculo=0,$maxParcelas=12,$parcelasSemJuros=1,$parcelaMinima=5,$taxaJuros=1.99,$moedaLoja='R$') {
if($precoPromo) {
$precoCalculo = str_replace(',','.',str_replace('.','', str_replace($moedaLoja,"",strip_tags($precoPromo))));
} else {
if($precoProduto) {
$precoCalculo = str_replace(',','.',str_replace('.','', str_replace($moedaLoja,"",strip_tags($precoProduto))));
} else {
return "Não foi possível calcular o parcelamento";
}
}
// Inicia a primeira coluna
$retorno = '<div style="width: 50%; float:left; font-size:11px;">';
// Exibicao das parcelas
for ($p = 1; $p <= $maxParcelas; $p++) {
// Se a parcela nao tiver juros
if ($p <= $parcelasSemJuros) {
$valorParcela = $precoCalculo / $p;
} else {
// Se a parcela tiver juros
switch($tipoCalculo) {
case 1: // Tabela price
$valorParcela = ($precoCalculo * ($taxaJuros/100))/(1-(1/(pow(1+($taxaJuros/100), $p))));
break;
default: // Juros simples
$valorParcela = ($precoCalculo * pow(1+($taxaJuros/100), $p))/$p;
}
}
// Escreve a parcela se ela for maior do que a parcela minima
if ($valorParcela >= $parcelaMinima) {
$valorParcela = number_format($valorParcela, 2, ',', '.');
if ($p <= $parcelasSemJuros) {
$retorno.= '<span style="color: #1AA1D9; margin:0; padding:0; line-height:normal;">' . $p . 'x de ' . $moedaLoja . $valorParcela . ' sem juros</span><br />';
} else {
$retorno.= $p . 'x de ' . $moedaLoja . $valorParcela . ' com juros<br />';
}
}
// Fecha a primeira coluna e inicia a segunda
if ($p == intval($maxParcelas/2)+1) {
$retorno.= '</div><div style="width: 50%; float:right; font-size:11px;">';
}
}
// Fecha a segunda coluna
$retorno.= '</div>';
// Exibe informações sobre o parcelamento
$retorno.= '<div style="font-size:9px; padding-top:6px; line-height:normal; clear:both;"><span>Esta é apenas uma simulação, os valores reais serão apresentados no pagamento.';
// Exibe os juros utilizados e o valor minimo da parcela se esta for maior que zero
if ($parcelasSemJuros < $maxParcelas) {
$taxaJuros = number_format($taxaJuros, 2, ',', '.');
$retorno.= ' Juros de ' . $taxaJuros . '% ao mês.';
}
if ($parcelaMinima > 0) {
$parcelaMinima = number_format($parcelaMinima, 2, ',', '.');
$retorno.= ' Parcela mínima de ' . $moedaLoja . $parcelaMinima.'.';
}
$retorno.= '</span></div>';
return $retorno;
}
?>Meu cliente está em fase final de cadastramento de produtos. Assim que a loja estiver liberada, posto o link no tópico de novas lojas do fórum pro pessoal ver como ficou a simulação para mais de um facilitador de pagamento usando tabs.
Abraço,
Ivan Vieira
Editado pela última vez por ivanvieira em 11 Out 2012, 08:40, em um total de 1 vez.
Ivan Vieira - Projetos Opencart em http://www.sedisoft.com.br/




