Ir para conteúdo
  • Cadastre-se

dev botao

Erro em procedure TACBrBoleto.LerRetorno(AStream: TStream);


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

Recommended Posts

Essa  procedure foi alterada e dá problema com a unit "ACBrBancoBradescoSICOOB.pas"  pois o codigo ::

     if ( IntToStrZero(Banco.Numero, 3) <> BancoRetorno ) then
       if LeCedenteRetorno then
         Banco.TipoCobranca := GetTipoCobranca( StrToInt(BancoRetorno))
       else
         raise Exception.Create( ACBrStr( 'Arquivo de retorno de banco diferente do Cedente'));

Altera o tipo de Cobrança de acordo com a leitura do arquivo retorno isso não pode ser,  o correto de a gente setar o tipo de cobrança manualmente o componente não pode fazer isso automático de acordo com o conteúdo do arquivo remessa pois no caso do BradescoSicoob vai estar 756  porém é um boleto do Bradesco assim ele vai alterar para carteira do tipo ACBrBancoBancoob  onde deveria ser ACBrBancoBradescoSICOOB

Assim esse código acima deve ser retirado pois antes de chamar  a procedure LerRetorno a gente seta o componente e depois dentro da LerRetorno não pode mais setar o tipo de cobrança

Outra coisa que está errado é   o retorno do    NossoNumero   := Copy(Linha,76,6);  de acordo com o manual tem que ser     NossoNumero  := Copy(Linha, 71, 11);  Está na pagina 3 do Manual

Coloquei as duas units alteradas em anexo para os administradores subirem para o SVN

 

 

ACBrBancoBradescoSICOOB.pas

ACBrBoleto.pas

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Boa Tarde

O código comentado na unit ACBrBoleto não pode ser alterado, pois não validaria os demais bancos. Para este caso você pode setar a propriedade "LeCedenteRetorno" como (true) e não terá mais este problema, pois vai atualizar o Código do Cedente conforme o arquivo de Retorno.

Referente ao campo Nosso Número o tamanho padrão é 6 dígitos conforme Correspondente Bradesco. Os cinco primeiros dígitos se trata de uma formatação onde os dois primeiros dígitos é o Ano e os próximos três dígitos é o número de convênio passado pelo cedente. Por isso deve ler apenas os seis últimos dígitos; se necessário, o nosso número pode ser tratado depois da leitura do retorno, através da função (FormataNossoNumero).

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

Boa Tarde

O código comentado na unit ACBrBoleto não pode ser alterado, pois não validaria os demais bancos. Para este caso você pode setar a propriedade "LeCedenteRetorno" como (true) e não terá mais este problema, pois vai atualizar o Código do Cedente conforme o arquivo de Retorno.

Não resolveu aqui já estava setado como True a propriedade LeCedenteRetorno  se eu colocar como False ai dispare esse raise

raise Exception.Create( ACBrStr( 'Arquivo de retorno de banco diferente do Cedente'));

O correto então é alterar o codigo para que fique sem esse " Else raise Exception.Create( ACBrStr( 'Arquivo de retorno de banco diferente do Cedente'));"

Ficando assim ::

     if ( IntToStrZero(Banco.Numero, 3) <> BancoRetorno ) then
       if LeCedenteRetorno then
         Banco.TipoCobranca := GetTipoCobranca( StrToInt(BancoRetorno));

Pois de outra forma não será mais possível ler arquivos retorno do BradescoSiccob.

 

Link para o comentário
Compartilhar em outros sites

Conseguir ver o arquivo retorno ?

Acredito que minha solução de alterar o código para 

  if ( IntToStrZero(Banco.Numero, 3) <> BancoRetorno ) then
       if LeCedenteRetorno then
         Banco.TipoCobranca := GetTipoCobranca( StrToInt(BancoRetorno));

Resolve o problema

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Boa Tarde

Foi realizado o Ajuste e já está disponível no repositório, favor atualizar os fontes.

A ajuste foi realizado de outra forma para não interferir na classe de outros bancos onde o retorno vem com código padrão.

Foi Ajustado  a rotina LerRetorno() de forma a validar também o número do correspondente.
    obs: Para os bancos correspondentes específicos, a propriedade LeCedenteRetorno deverá estar desabilitada, uma vez que o arquivo retorno não diz que se trata do retorno do banco como respondente ou não, não seria possível ao componente setar corretamente a propriedade TipoCobranca.

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

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