Ir para conteúdo
  • Cadastre-se

dev botao

LerRetorno240 Banco Caixa


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

Recommended Posts

Bom Dia,

estou tentando realizar a leitura do arquivo de retorno da Caixa Econômica e não está sendo possível, pois no lugar do número da conta, o acbrboleto está pegando o código do cedente:

rCedente := trim(Copy(ARetorno[0],47,30));
rAgencia := Copy(ARetorno[0],27,4);
rConta   := Copy(ARetorno[0],34,8);

Entrei em contato com o suporte da Caixa e eles informaram que o layout deles não possuí mais o número da conta, somente o código do cedente.

Vocês estão alterando este fonte?

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
Em 2017-6-7 at 18:55, Wellington Souza disse:

Na procedure

LerRetorno240 não contem essas linhas,

rCedente := trim(Copy(ARetorno[0],47,30));
rAgencia := Copy(ARetorno[0],27,4);
rConta   := Copy(ARetorno[0],34,8);

estas linhas estão no LerRetorno400;

 

Espero ter ajudado;

 

Tive que alterar para ler corretamente o retorno no CNAB 400 (procedure LerRetorno400()) para o seguinte:

rCedente := trim(Copy(ARetorno[0],47,30));  // NOME DO CEDENTE
rAgencia := Copy(ARetorno[0],27,4);
//rConta   := Copy(ARetorno[0],34,8); // ANTERIOR
rConta   := Copy(ARetorno[0],31,6);   // DEVE LER CÓDIGO DO CEDENTE E NÃO MAIS A CONTA

E abaixo quando vai fazer o teste com dados válidos também alterei:

...
   with ACBrBanco.ACBrBoleto do
   begin

      //if (not LeCedenteRetorno) and
      //   ((rAgencia <> OnlyNumber(Cedente.Agencia)) or
      //    (rConta <> OnlyNumber(Cedente.Conta))) then
      //   raise Exception.Create(ACBrStr('Agencia\Conta do arquivo inválido'));
	  // ALTERADO PARA O CODIGO ABAIXO

      if (not LeCedenteRetorno) and
         ((StrToInt(OnlyNumber(rAgencia)) <> StrToInt(OnlyNumber(Cedente.Agencia))) or
          (StrToInt(OnlyNumber(rConta)) <> StrToInt(OnlyNumber(Cedente.CodigoCedente)))) then
         raise Exception.Create(ACBrStr('Agencia\Cedente do arquivo inválido'));
...

Transformei em integer pois a comparação da variável rAgencia estava com 5 casas no componente ACBrBoleto devido a propriedade fpTamanhoAgencia ser 5, no arquivo sempre vem com 4 casas apenas.

Poderia ser colocado zeros a esquerda e comparar como string mesmo com o mesmo tamanho, mas como no manual o tipo (picture) determina somente números, fiz desta maneira, mas aguardo sugestão da JULIANA que mantém este módulo.

 

 

Link para o comentário
Compartilhar em outros sites

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