Ir para conteúdo
  • Cadastre-se

dev botao

Erro boleto Sicredi via API


Ver Solução Respondido por Sady Martins,

Recommended Posts

Postado

Boa tarde!

Estou utilizando os fontes e pacotes do ACBrBoleto para Lazarus e habilitando o envio do boleto via API para o Sicredi.
Ocorre que está retornando o erro O valor do boleto deve ter até 16 dígitos, sendo dois deles para a casa decimal ou então O valor de juros do boleto deve ter até 16 dígitos, sendo dois deles para a casa decimal.

O boleto é sempre o mesmo. Sempre com os mesmos dados. Mas o erro está alternando.

Encontrei o link https://www.projetoacbr.com.br/forum/topic/49530-duvida-sobre-preenchimento-do-juros/ e lá a solução foi atualizar a lib.
No meu caso eu atualizei todos os arquivos via svn, recompilei e reinstalei o pacote ACBrBoleto, mas continuo com o erro em questão.
O trecho de código que está alimentando o componente ACBrBoleto é o seguinte:

      Titulo.ValorDocumento := RoundTo(ATituloList.Items[I].valor, -2);

      if (ATituloList.Items[I].valormulta > 0) then
      begin
        Titulo.PercentualMulta := ATituloList.Items[I].valormulta;
        Titulo.DataMulta := IncDay(ATituloList.Items[I].datavencimento, 1);
        Titulo.MultaValorFixo := UpperCase(ATituloList.Items[I].tipomulta) = 'V';
      end;


      if (ATituloList.Items[I].valorjuro > 0) then
      begin
        if (ATituloList.Items[I].tipojuros = 'V') then
        begin
          if (AACBrBoleto.Banco.Numero = 748) then
          begin
            Titulo.CodigoMoraJuros:= cjValorDia;
            Titulo.CodigoMora     := 'A';
            Titulo.ValorMoraJuros := RoundTo(ATituloList.Items[I].valorjuro, -2);
          end
          else
          begin
            Titulo.ValorMoraJuros := ATituloList.Items[I].valorjuro;
          end;
        end
        else
        begin
          if (AACBrBoleto.Banco.Numero = 748) then
          begin
            Titulo.CodigoMoraJuros:= cjTaxaDiaria;
            Titulo.CodigoMora     := 'B';
            Titulo.ValorMoraJuros := RoundTo(ATituloList.Items[I].valorjuro, -2);
//            Titulo.ValorMoraJuros := RoundTo(ATituloList.Items[I].valor * (ATituloList.Items[I].valorjuro / 100), -2);
          end
          else
          begin
            Titulo.ValorMoraJuros := RoundTo(ATituloList.Items[I].valor * (ATituloList.Items[I].valorjuro / 100), -6);
          end;
        end;
        Titulo.DataMoraJuros := IncDay(ATituloList.Items[I].datavencimento, 1);
      end;

Desculpem-me pelos IFs, mas são em decorrência dos vários testes que já fiz pra tentar corrigir o problema.
Agradeço a atenção!

Postado (editado)

Sim.
Depois que eu criei esse tópico me lembrei do Discord e acabei copiando a pergunta pra lá.

Eu já verifiquei os dados a serem informados e, a princípio, estão todos preenchidos corretamente.
Mas nesse momento fiz uma pausa no desenvolvimento para fazer o curso Dominando o ACBrBoleto que tem na Nutror.
Se não conseguir evoluir daí vou logar com a conta Pro daqui da Oniun e buscar ajuda no Discord novamente.
A propósito, e por favor não é uma crítica, estava olhando o doc Particularidades e observei que no caso do Sicredi especificamente talvez esteja precisando de alguma revisão.
Digo isso porque lá diz que o Código do Cedente não é utilizado, mas ele deve ser informado conforme descrito em https://www.projetoacbr.com.br/forum/topic/57991-acbrboleto-via-webservice/#comment-426542

Vou continuar meu treinamento aqui e depois volto a reportar se consegui evoluir ou não. Quando descobrir qual erro estou comentendo reporto aqui para talvez ajudar outros.

Editado por Sady Martins
  • Solution
Postado

Problema resolvido.
 

Faltava atualizar o pacote e os fontes do ACBrComum.
O erro estava ocorrendo na hora de montar o JSON dentro ao arquivo ACBrBoletoW_Sicredi_APIV2.
Quando passava os valores com decimais no JSON o valor ficava com estouro de tamanho.
Após a atualização do ACBrComum o boleto foi registrado.

  • Moderadores
Postado
39 minutos atrás, Sady Martins disse:

Problema resolvido.
 

Faltava atualizar o pacote e os fontes do ACBrComum.
O erro estava ocorrendo na hora de montar o JSON dentro ao arquivo ACBrBoletoW_Sicredi_APIV2.
Quando passava os valores com decimais no JSON o valor ficava com estouro de tamanho.
Após a atualização do ACBrComum o boleto foi registrado.

Entaõ o ACBR tem que ser atualizado todas as pastas

não pode atualizar parcial pois decorre erros

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.