Ir para conteúdo
  • Cadastre-se

dev botao

Boleto Bancoob API: unit 'ACBrBoletoW_Bancoob.pas' rotina 'RequisicaoJson': passando valores fixos


Ver Solução Respondido por Alexandre de Paula,
  • Este tópico foi criado há 499 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia,

Na unit 'ACBrBoletoW_Bancoob.pas' rotina 'RequisicaoJson' a partir da linha 340 o componente está passando valores fixos para os campos identificacaoEmissaoBoleto, identificacaoDistribuicaoBoleto e numeroParcela ao invés de passar os valores definidos no componente. Isso pode acarretar em problemas como por exemplo na composição do código de barras e da linha digitável, impossibilitando o pagamento, visto que os valores enviados ao banco estão diferentes dos informados pelo cliente na geração do boleto.

Código atual:

      Json.Add('identificacaoEmissaoBoleto').Value.AsInteger      := 1;
      Json.Add('identificacaoDistribuicaoBoleto').Value.AsInteger := 1;
      Json.Add('valor').Value.asNumber                            := aTitulo.ValorDocumento;
      Json.Add('dataVencimento').Value.asString                   := DateTimeToDateBancoob(aTitulo.Vencimento);
      Json.Add('numeroParcela').Value.AsInteger                   := 1;

Sugestão:

      if aTitulo.ACBrBoleto.Cedente.ResponEmissao <> tbCliEmite then
        Json.Add('identificacaoEmissaoBoleto').Value.AsInteger    := 1
      else
        Json.Add('identificacaoEmissaoBoleto').Value.AsInteger    := 2; // documentação do banco permite: 1 Banco Emite - 2 Cliente Emite
      if aTitulo.ACBrBoleto.Cedente.IdentDistribuicao = tbBancoDistribui then
        Json.Add('identificacaoDistribuicaoBoleto').Value.AsInteger := 1
      else
        Json.Add('identificacaoDistribuicaoBoleto').Value.AsInteger := 2; // documentação do banco permite: 1 Banco Distribui - 2 Cliente Distribui
      Json.Add('valor').Value.asNumber                            := aTitulo.ValorDocumento;
      Json.Add('dataVencimento').Value.asString                   := DateTimeToDateBancoob(aTitulo.Vencimento);
      Json.Add('numeroParcela').Value.AsInteger                   := ATitulo.Parcela; // documentação do banco permite até '99'

Cordialmente,

ACBrBoletoW_Bancoob.pas

Vinício Rocha

Analista de Sistemas

Logus Soluções

Formiga – MG

þeficazerp.com.br

 

  • Consultores
  • Solution
Postado

Boa tarde,

Criada a TK-4180 para avaliação da contribuição.

Obrigado

  • Curtir 1
Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

  • 2 semanas depois ...
Postado

Bom dia,

Vi que foram feitos os ajustes na unit ACBrBoletoW_Bancoob.pas porém ficou faltando a questão do número da parcela (linha 346). Que é justamente o que pode causar quebra na composição da linha digitável, impossibilitando o pagamento por parte do cliente.

Código atual:

Json.Add('numeroParcela').Value.AsInteger                   := 1;

Sugestão:

Json.Add('numeroParcela').Value.AsInteger                   := ATitulo.Parcela;

 

Vinício Rocha

Analista de Sistemas

Logus Soluções

Formiga – MG

þeficazerp.com.br

 

  • Este tópico foi criado há 499 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.