Sady Martins Postado 12 Setembro Postado 12 Setembro 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!
Moderadores Juliomar Marchetti Postado 13 Setembro Moderadores Postado 13 Setembro no caso pega o exemplo do svn preenche os dados para emitir um boleto e faz os testes ao que parece não está informando corretamente os dados e eu acho que já foi respondido no discord isso Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Sady Martins Postado 13 Setembro Autor Postado 13 Setembro (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 13 Setembro por Sady Martins
Solution Sady Martins Postado 17 Setembro Autor Solution Postado 17 Setembro 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 Juliomar Marchetti Postado 17 Setembro Moderadores Postado 17 Setembro 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 Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Moderadores Juliomar Marchetti Postado 17 Setembro Moderadores Postado 17 Setembro Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico. Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Recommended Posts