Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Boa tarde, estou utilizando o componente para leitura do arquivo de retorno do Banco do Brasil, e ao ler o arquivo estou recebendo a mensagem do componente na unit AcbrBancoBrasil.pas:

 

Agencia\Conta do arquivo inválido

 

Conforme código abaixo

 

      if (not LeCedenteRetorno) and
         ((rAgencia <> OnlyNumber(Cedente.Agencia)) or
          (rConta <> OnlyNumber(Cedente.Conta))) then
         raise Exception.Create(ACBrStr('Agencia\Conta do arquivo inválido'));
 
Pude verificar que o componente le assim:
 
   rCedente      := trim(Copy(ARetorno[0],47,30));
   rAgencia      := trim(Copy(ARetorno[0],27,4));
   rDigitoAgencia:= Copy(ARetorno[0],31,1);
   rConta        := trim(Copy(ARetorno[1],32,8));
   rDigitoConta  := Copy(ARetorno[0],40,1);
   
   rCodigoCedente:= Copy(ARetorno[0],150,7);
 
 
Perceba a linha  rConta        := trim(Copy(ARetorno[1],32,8));
 
Está pegando a conta do Detail do Arquivo e não do Header conforme layout do Banco do Brasil, esta informação está no Header!
 

07 027 a 030 9(004) Prefixo da Agência: Número da Agência onde está cadastrado o convênio líder do cedente

08 031 a 031 X(001) Dígito Verificador - D.V. - do Prefixo da Agência.

09 032 a 039 9(008) Número da Conta Corrente: Número da conta onde está cadastrado o Convênio Líder do Cedente

10 040 a 040 X(001) Dígito Verificador - D.V. - da Conta Corrente do Cedente

 

Outra coisa que pude verificar é que o componente este comparando a conta assim:

 

 (rConta <> OnlyNumber(Cedente.Conta))

 

Sendo que a esta verificação pode dar problema assim:

 

 rConta = '00012345' e a informação que o componente le está vindo assim(OnlyNumber(Cedente.Conta) : '0000012345'

 

Sendo assim, peço aos colaboradores que analisem o que estou postando e se possível atualizem o componente para que possamos evoluir, fica ai minha colaboração!

 

Abs.

 

 

  • 2 meses depois ...
Postado (editado)

Na verdade o erro da comparação que citou é devido o tamanho da conta está fixo com 12 dígitos e o correto seria 8.

constructor TACBrBancoBrasil.create(AOwner: TACBrBanco);
begin
   inherited create(AOwner);
   fpDigito := 9;
   fpNome   := 'Banco do Brasil';
   fpNumero := 001;
   fpTamanhoMaximoNossoNum := 0;
   fpTamanhoConta   := 12;
   fpTamanhoAgencia := 4;
   fpTamanhoCarteira:= 2;

end;
Editado por Fenix
  • Este tópico foi criado há 4123 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...