Ir para conteúdo
  • Cadastre-se

dev botao

Refactory AcbrBoleto


digao_go
Ver Solução Respondido por José M. S. Junior,
  • Este tópico foi criado há 1238 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde,

09/04/2020
-- ACBrBoleto, ACBrBancoBradesco, ACBrBancoUnicredRS, ACBrBancoUnicredSC, ACBrBancoUnicredES --
[*] Realização de Refactory nas classes dos Bancos, unificando funcionalidades criadas na classe principal ACBrBancoClass, notei que a função LerRetorno240, agora fica dentro da AcbrBoleto, vale lembrar que alguns bancos retorna o "Valor pago" e o "Valor Creditado", isso havia sido padronizado um tempo atrás, e depois modificou. Estou trabalhando no Bradesco neste momento e conforme manual existe o Valor Pago, e Valor Creditado, que antes vinha no campo valor Recebido. Sugiro que mesmo que alguns bancos não retorne o valor recebido, seja utilizado da forma que estava, pois acredito ser o 2 commit que altera e afeta.

Sugiro que mantenha o padrão anterior pois no banco do Brasil volta dados na posição 93, diferente do Bradesco que por algum motivo não informa o valor creditado.

ValorPago           := StrToFloatDef(copy(Linha, 78, 15), 0) / 100;
ValorRecebido       := StrToFloatDef(copy(Linha, 93, 15), 0) / 100;

 

image.thumb.png.7ea7937bcc9ea5901d2cdef19256eeb9.png

Existe um outro Tópico também sobre o assunto que achei

 

ACBrBoleto.pas

Editado por digao_go
Posição informada errada
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Boa tarde

O Refactory realizado até o momento afeta apenas as classes Bradesco e Unicred. Note que os demais bancos permanecem com todas as funções implementadas na própria classe, portanto não utilizam os métodos unificados na classe ACBrBoleto. Isso está sendo ajustado a medida que for sendo realizado a reescrita de cada classe.

Talvez esse problema possa ser local dessa classe. Chegou a fazer um debug?

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

19 minutos atrás, José M. S. Junior disse:

Boa tarde

O Refactory realizado até o momento afeta apenas as classes Bradesco e Unicred. Note que os demais bancos permanecem com todas as funções implementadas na própria classe, portanto não utilizam os métodos unificados na classe ACBrBoleto. Isso está sendo ajustado a medida que for sendo realizado a reescrita de cada classe.

Talvez esse problema possa ser local dessa classe. Chegou a fazer um debug?

Boa tarde,

Não estou na verdade tendo problemas, apenas indicando que siga o padrão de nomenclatura do manual, ao invés do campo ValorRecebido, usar o ValorPago, pois é o nome que volta no manual na posição 78. Assim quando unificar banco que tem valor pago e valor recebido não teremos novamente problemas como citados no Post que coloquei de referência.

ValorPago           := StrToFloatDef(copy(Linha, 78, 15), 0) / 100;
ValorRecebido       := StrToFloatDef(copy(Linha, 93, 15), 0) / 100;

 

Link para o comentário
Compartilhar em outros sites

Bom dia!

 

tem 3 campos que não esta sendo tratado 

    fBancoCobrador     : String;
    fAgenciaCobrador      : String;
    fDvAgenciaCobrador    : String;

 

sempre tenho que ajustar quando baixo o acbrboleto, estes campos são do Bradesco, não sei se afeta outros bancos.

LerRetorno400:

 BancoCobrador        := Copy(Linha,166,3);
  AgenciaCobrador        := Copy(Linha,169,5);

 

Seria possível adicionar estes campos no repositório?


Desde já agradeço

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

3 horas atrás, hugo_fabricio disse:

sempre tenho que ajustar quando baixo o acbrboleto, estes campos são do Bradesco, não sei se afeta outros bancos.

Por favor crie um novo tópico anexando os fontes.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

Boa tarde,

Segue novos ajustes para o Refactory. Falei no Bradesco para homologação e no manual onde diz carteira posição 58(Carteira) na verdade é a característica do Titulo, notei pois estava vindo um digito 1 e estou usando a carteira 09.

Então foi alterado conforme instruções.

          Carteira := copy(Linha, 39, 2);
          case strtoint(copy(Linha, 58, 1)) of
           '1': CaracTitulo := tcSimples;
           '2': CaracTitulo := tcVinculada;
           '3': CaracTitulo := tcCaucionada;
           '4': CaracTitulo := tcDescontada;
           '5': CaracTitulo := tcVendor;
          end;

image.png.86ae5a14e7c03608be7a1fa7de7dcd9a.png

image.png.db61eed864d44dfe31f54e6096cfe49c.png

image.thumb.png.b297d4663ebaccbbefb98cac482b0f89.png

ACBrBoleto.pas

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

Deverá ser analisado em breve pelo @José M. S. Junior

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • 5 meses depois ...
  • Moderadores

Boa tarde, mesmo algumas funções sendo migradas para a unit ACBrBoleto, aparentemente não houve mudanças quanto ao campo, aparentemente diversos Bancos utilizam apenas um campo para a leitura do valor pago. Se houver alterações por favor anexe a sugestão e o manual para análise.

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Em 03/11/2020 at 17:00, José M. S. Junior disse:

Boa tarde, mesmo algumas funções sendo migradas para a unit ACBrBoleto, aparentemente não houve mudanças quanto ao campo, aparentemente diversos Bancos utilizam apenas um campo para a leitura do valor pago. Se houver alterações por favor anexe a sugestão e o manual para análise.

Bom dia,

Antes do refactory temos a leitura dos 2 campos, seja Valor pago e valor liquido previsto no manual. Depois do refactory não temos. Segue em anexo a Unit, acredito que se eles existem, devemos manter e os nomes poderiam ser sugestivos conforme layout do banco (Vlr pago e Vlr Liquido). No componente é Vlr Pago e valor Recebido, gera uma ambiguidade. Segue foto do banco do brasil que ainda está sem ajustes pelo que notei.

Outro detalhe ValorRecebido agora no refactory mudou a posição:

Antes:

 ValorPago           := StrToFloatDef(copy(Linha, 78, 15), 0) / 100;
 ValorRecebido       := StrToFloatDef(copy(Linha, 93, 15), 0) / 100;

Agora 

 ValorRecebido       := StrToFloatDef(copy(Linha, 78, 15), 0) / 100;

Ou seja eu tenho uma rotina para leitura de Arquivos retornos unica, porém quando vem do BB preciso ler ValorPago para ter acesso a 78 com 15, quando vem de outro banco preciso ler ValorRecebido para ter acesso.

 

image.thumb.png.01686fc5e86e8284b5ebe9473ac8fc2f.png

ACBrBoleto.pas

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Boa tarde, o Banco do Brasil ainda não faz uso desta função unificada, note que a função LerRetorno deste banco permanece a mesma na Unit do Banco do Brasil. Quando essa Unit for refatorada precisaremos realizar adaptações.  Mas no momento note que permanece a leitura nos campos ValorPago e ValorRecebido na classe do BB.

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, José M. S. Junior disse:

Boa tarde, o Banco do Brasil ainda não faz uso desta função unificada, note que a função LerRetorno deste banco permanece a mesma na Unit do Banco do Brasil. Quando essa Unit for refatorada precisaremos realizar adaptações.  Mas no momento note que permanece a leitura nos campos ValorPago e ValorRecebido na classe do BB.

Correto, mas ai no caso eu precisaria ficar testando (Se banco = 237 leia ValorRecebido, se 001 - Valor Pago) pois mudou as posições. Acredito que de toda forma por existir as posições vai precisar de ajustar como eu fiz pois temos 2 informações distintas no retorno. Primeiro houve uma mudança no nome do campo, ao ser transportado para a Unificada, permaneceu o ValorRecebido, que antes lia uma determina posição e agora passou a ler outras, isso gerou inconsistência no sistema todo. Se for mudar elas, teria que manter no mesmo padrão até todos os bancos serem transportados para a Unificada, assim eu sei que estou lendo ValorPago/ValorRecebido, e a posição é a mesma para todos os bancos. Agora da foram que foi feito, mudou posição

Antes
ValorRecebido       := StrToFloatDef(copy(Linha, 93, 15), 0) / 100;

Agora  
 ValorRecebido       := StrToFloatDef(copy(Linha, 78, 15), 0) / 100;

Se manter igual, fica transparente essa modificação até tudo ser unificado. #Sugestão

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1238 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.