gerencianet / gn-api-sdk-php

SDK em PHP integrada às APIs da Gerencianet preparada para emissão de cobranças Pix com QR Code e Pix Copia e Cola, split/divisão de Pix, boletos, carnês, cartão de crédito, assinatura, link de pagamento, marketplance, iniciação de pagamento Pix via Open Finance, pagamento de boletos, dentre outras funcionalidades.
https://dev.gerencianet.com.br/docs/instalacao-sdk-php
MIT License
86 stars 45 forks source link

Como calcular o valor recebido? #36

Closed mano290 closed 3 years ago

mano290 commented 3 years ago

Olá boa tarde pessoal?

Sei que talvez aqui não seja o melhor lugar para pedir isso.. mas tentei pelo chat de vocês e não consegui Estou querendo gerar relatórios automáticos em nosso sistema.. pelo que olhei não consegui via API saber o valor recebido pela transação (valor transacionado - taxas pagas)

Então tentei criar uma função para fazer esse cálculo mas não deu certo.. por acaso tens como ajudar? Exemplo:

Um pagamento com valor transacional de R$ 516.93 e foi parcelado em 10x
Com as taxas padrão de 4,99% + 0,29 e 1,99% a.m
O valor recebido foi R$ 432,58 
A diferença é de R$ 84,35

Aqui está a função que tentamos criar para calcular isso 👇

calculaJurosGerenciaNet(516.93, 10); 
function calculaJurosGerenciaNet(float $valor, int $parcelamento) {
      $parcelas = [];
      $recebido_total = 0;

      // Valor - taxa transacional 4,99% + 0,29
      $taxa = (float) number_format(($valor / 100 * 4.99) + 0.29, 2);
      $valor_menos_taxa = (float) number_format($valor - $taxa, 2);

      // Valor - taxa antecipacao 1,99%
      $valor_parcela = (float) number_format($valor_menos_taxa / $parcelamento, 2);
      $valor_liq_parcela = (float) number_format($valor_parcela - ($valor_parcela / 100 * 1.99), 2);

      for($i = 1; $i <= $parcelamento; $i++) {

          $juros_parcela = $i * 1.99;
          $recebido_parcela = (float) number_format($valor_liq_parcela - ($valor_liq_parcela / 100 * $juros_parcela), 2);

          $parcelas[] = [
              'parcela' => $i,
              'liquido_parcela' => $recebido_parcela,
              'juros' => $juros_parcela
          ];

          $recebido_total += $recebido_parcela;
      }

      dd($recebido_total, ($valor - $recebido_total));
}
guilhermecotaGn commented 3 years ago

Olá, @mano290. Tudo bem com você?

Estive analisando sua demanda em relação ao cálculo dos tarifas, junto à equipe do comercial também. De acordo com as diversas configurações possíveis para o recebimento com cartão de crédito, que varia conforme definição de cliente a cliente, seria necessário diversas configurações nesta regra atender a todos.

O que é disponibilizado para isso, já buscando a configuração de cada conta, você pode obter através do front-end no painel da Gerencianet para realizar as simulações.

Contudo, estou levando sua sugestão para a equipe avaliar uma forma para trazer uma solução à sua demanda.