Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Bom dia, acredito que encontrei um erro no ACBrBancoSicredi.pas

O erro esta na hora de buscar um arquivo de retorno. No arquivo ACBrBancoSicredi.pas, na linha [639] existe a seguinte verificação:

         

CodMotivo := IfThen(Copy(Linha,MotivoLinha,2) = '00',
                              '00',
                              Copy(Linha,MotivoLinha,2));

E no arquivo de retorno do banco, em uma determinada linha, a partir do primeiro código de retorno esta vindo somente espaços (Ex: 'H5        ').
Nesse caso esta dando erro de:  [''  '' is not a valid integer value].
Alterei a verificação para:

         

 CodMotivo := IfThen(Copy(Linha,MotivoLinha,2) = '  ',
                              '00',
                              Copy(Linha,MotivoLinha,2));

Assim funcionou e acredito ser uma forma mais correta, porque se os códigos forem '00' ele já vai entrar no 'else' e retornar '00'.

 

Estou anexando o arquivo de retorno que recebi do banco.

86537921.TXT

  • Curtir 1
Postado

Também aconteceu comigo para resolver tive que colocar essa solução.

De acordo com a documentação do Sicredi esses campos deveriam vir 00 se for sem ocorrência mais não é isso mais que está acontecendo;

"319 a 328 010 Motivos da ocorrência
XXXXXXXXXX Cada dois dígitos “XX” correspondem a um motivo. Se “00”, não há motivo de ocorrência; Confira tabela no item 6.3.
329 "

João Paulo F. Bellucci

Analista e Programador

  • Membros Pro
Postado

Boa tarde pessoal,

Só para compartilhar a informação, acabei de receber do suporte do Sicredi por meio da agência aqui da cidade a informação de que o problema é a nível nacional e que estão trabalhando para corrigir.... pelo que informaram, este problema dos espaços em branco após o H5 deverá voltar a ser preenchido com zeros tão logo finalizem a correção.

Att.

Postado

Legal, mas por garantia o correto é manter a logica oferecida acima pois a anterior não faz sentido.

CodMotivo := IfThen(Copy(Linha,MotivoLinha,2) = '  ',
                              '00',
                              Copy(Linha,MotivoLinha,2));

  • Curtir 1

João Paulo F. Bellucci

Analista e Programador

Postado

Pessoal, bom dia!

Da pra resolver assim no arquivo ACBrBancoSicredi.pas na linha 652 onde rodam os demais motivos da mesma linha:

Está assim no arquivo original do ACBR:

if CodMotivo <> '00' then     //Após o 1º motivo os 00 significam que não existe mais motivo
   begin
....

end;

 

Coloque assim com dois caracteres em branco e não tem mais nada pra alterar:

if (CodMotivo <> '00') and (CodMotivo <> '  ') then     //Após o 1º motivo os 00 significam que não existe mais motivo
    begin
....

end;

Onde o CodMotivo <> '  ' ignora caso esses motivos vierem em branco.

Ou aguardamos o Sicredi resolver.

 

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