Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Por favor, poste aqui todas as dúvidas que você está tendo sobre a instalação, atualização ou configuração do OpenCart v1.x
Avatar do usuário
Por Guilhermebck
#53445
Bom dia, estou com um problema no meu OpenCart. Na página principal do meu site lista o produto com o valor a vista e o valor da última parcela, porém o valor dessa última parcela está com cálculo do juros incorreto.

Exemplo:
Valor do produto a vista: R$ 179,90
Valor correto do parcelamento: 12x de R$ 18,06
Valor dado pelo php: 12x de R$ 21,35

O código que estou utilizando é esse:
Código: Selecionar todos
<?php
/*
  Configuracoes do sistema de parcelamento
  ----------------------------------------
  $qtd_parcelas = Define a quantidade de parcelas a ser exibida para os produtos
  $juros = Taxa de juros mensal (deixe em 0 para parcelamento sem juros)
  $moeda_da_loja = Permite especificar a moeda utilizada na loja

  $tipo_de_calculo = Permite escolher o tipo de calculo a ser utilizado
  0 = Juros simples (Pagamento Digital)
  1 = Tabela Price (PagSeguro e outros)
*/

$qtd_parcelas = 12;
$juros = 2.99;
$moeda_da_loja = 'R$ ';
$tipo_de_calculo = 0;
$parcela_minima = 5;

if (!$product['special']) {
  $preco_numero = str_replace(',','.',str_replace('.','', str_replace($moeda_da_loja,"",strip_tags($product['price']))));
} else {
  $preco_numero = str_replace(',','.',str_replace('.','', str_replace($moeda_da_loja,"",strip_tags($product['special']))));
}

// Calcula o valor da parcela de acordo com o tipo de calculo utilizado
if ($tipo_de_calculo == 0) {
  $valor_total = ($preco_numero * pow(1+($juros/100), $qtd_parcelas));
  $max_parcelas = intval($valor_total/$parcela_minima);
  if ($max_parcelas < $qtd_parcelas) { $qtd_parcelas = $max_parcelas; }
  $valor_parcela = $valor_total/$qtd_parcelas;
}
if ($tipo_de_calculo == 1) {
  $valor_total = ($preco_numero * ($juros/100));
  $max_parcelas = intval($valor_total/$parcela_minima);
  if ($max_parcelas < $qtd_parcelas) { $qtd_parcelas = $max_parcelas; }
  $valor_parcela = $valor_total/(1-(1/(pow(1+($juros/100), $qtd_parcelas))));
}

// Exibe as frases de parcelamento
echo '<font color="#4d4d4d">ou ' . $qtd_parcelas . 'x de ' . $moeda_da_loja . number_format($valor_parcela, 2, ',', '.') . '</font><br /><br />';
//if ($juros == 0) { echo '<br />sem juros'; } else { echo '<br />com juros de ' . $juros . '% ao m&ecirc;s'; }

?>
Se alguém puder me ajudar, ficarei muito grato!