Ir para conteúdo
  • Cadastre-se

dev botao

Erro leitura arquivo Retorno de Baixa Titulo SICREDI via site


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

Recommended Posts

Postado

Estou tendo problemas na leitura do arquivo de retorno do Banco SICREDI.

Efetuei 3 baixas via site do banco, recebi o arquivo de retorno informando codOcorrencia 09, que de acordo com o manual é "09 -Baixado Automaticamente Via Arquivo".

1            A016OY000002                      182026123                                                    091601192019010138                    1001190000000008400         K000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000                          0000000000                                                                  000002

Estou recebendo do Acbr como '02-Entrada Confirmada'.

Ao conferir o código fonte, constatei que a função TACBrBancoSicredi.CodOcorrenciaToTipo, está retornando toRetornoBaixadoViaArquivo, mas ao utilizar a  função TACBrBancoSicredi.TipoOCorrenciaToCod, não existe o tipo de ocorrencia toRetornoBaicadoViaArquivo, tem apenas toRetornoBaixado, o que acaba provocando o retorno do  Result := '02'.

segue arquivo de retorno do banco

12345117.CRT

  • Moderadores
Postado

@jburda

Estive analisando o código de leitura de retorno da unit ACBrBancoSicredi.pas;

Pelo que pude ver o código esta certo e o retorno 09 e capturado e retornado corretamente.

Citar

 Linha: 646     OcorrenciaOriginal.Tipo := CodOcorrenciaToTipo(StrToIntDef(copy(Linha,109,2),0));
 Linha: 646     CodOcorrencia := StrToIntDef(IfThen(copy(Linha,109,2) = '00','00',copy(Linha,109,2)),0);

Observe que nas linhas citadas o código esta coerente e obtendo o valor das colunas corretas.

Citar

function TACBrBancoSicredi.CodOcorrenciaToTipo()

begin

case CodOcorrencia of

LInha 1449 :     09: Result := toRetornoBaixadoViaArquivo;

end;

Observe que o tratamento também e feito para que o retorno ocorra no enumerado citado por ti;

No meu ponto de vista você precisa revisar seu código e ver se descobre o que ocorre nele;

Vou aproveitar e sugerir uma pequena melhoria nas linhas de captura do código;

Citar

 Linha: 646     OcorrenciaOriginal.Tipo := CodOcorrenciaToTipo(StrToIntDef(copy(Linha,109,2),0));
 Linha: 646     CodOcorrencia := StrToIntDef(IfThen(copy(Linha,109,2) = '00','00',copy(Linha,109,2)),0);

Nas linhas acima gostaria de trocar por:
 

    CodOcorrencia := StrToIntDef(copy(Linha,109,2),0);
    OcorrenciaOriginal.Tipo := CodOcorrenciaToTipo(CodOcorrencia);

Observe que agora ocorre apenas um Copy e não dois como no código original;

Alem de não usar o IfThen para testar se torna 00 que nesse caso o tratamento de StrToIntDef( String, 0 ); ja faz;

 

 

ACBrBancoSicredi.pas

Postado

Estou utilizando desta forma

        ACBrBoleto1.ListadeBoletos.Clear;
        ACBrBoleto1.LerRetorno;

        quant_tit := ACBrBoleto1.ListadeBoletos.Count;

        for i := 0 to (quant_tit - 1) do
        begin
          with ACBrBoleto1.ListadeBoletos.Objects do
          begin
            ProgressBar1.Position := i + 1;
            mOcorrencia := copy(ACBrBoleto1.Banco.TipoOcorrenciaToDescricao(OcorrenciaOriginal.Tipo), 1, 2);
            txtOcorrencia := ACBrBoleto1.Banco.TipoOcorrenciaToDescricao(OcorrenciaOriginal.Tipo);

         ///// as linhas abaixo foram incluidas apenas para colocar em um memo o retorno para este post           

           memo2.Lines.Add('ACBrBoleto1.Banco.TipoOcorrenciaToDescricao '+ACBrBoleto1.Banco.TipoOcorrenciaToDescricao(OcorrenciaOriginal.Tipo));
            memo2.Lines.Add('mOcorrencia '+mOcorrencia);
            memo2.Lines.Add('txtOcorrencia: '+ACBrBoleto1.Banco.TipoOcorrenciaToDescricao(OcorrenciaOriginal.Tipo));
            memo2.Lines.Add('-------------------------------');

       //////////////////////
          end;
        end;

Este foi o retorno obtido

Memo2
ACBrBoleto1.Banco.TipoOcorrenciaToDescricao 02-Entrada Confirmada
Mocorrencia 02
txtOcorrencia: 02-Entrada Confirmada
-------------------------------
ACBrBoleto1.Banco.TipoOcorrenciaToDescricao 02-Entrada Confirmada
Mocorrencia 02
txtOcorrencia: 02-Entrada Confirmada
-------------------------------
ACBrBoleto1.Banco.TipoOcorrenciaToDescricao 02-Entrada Confirmada
Mocorrencia 02
txtOcorrencia: 02-Entrada Confirmada
-------------------------------
ACBrBoleto1.Banco.TipoOcorrenciaToDescricao 28-Débito de Tarifas Custas
Mocorrencia 28
txtOcorrencia: 28-Débito de Tarifas Custas

  • Moderadores
Postado
Citar

with ACBrBoleto1.ListadeBoletos.Objects do

Não deveria ser?
 

with ACBrBoleto1.ListadeBoletos.Objects[I] do  

Você não esta considerando o "I" com isso seu código não assume o cursor do loop e fica parado no mesmo lugar;

 

Tem ias erros no seu código em seguida posto mais;

Postado (editado)

Está desta forma!

No postar, a pagina está removendo o "[ I ]", então substitui na postagem por [X]

        for X := 0 to (quant_tit - 1) do
        begin
          with ACBrBoleto1.ListadeBoletos.Objects[X} do
          begin
            ProgressBar1.Position :=X + 1;

Editado por jburda
pagina removeu '[ i ]' da postagem
  • Moderadores
Postado

Seu arquivo de retorno tem um erro:

Na no header ele esta com o código do banco errado, em vez de 748 ele tem 744;

Teste com o arquivo em anexo;

Havia um erro na função de conversão de enumerador para string;

Eu acho que vão te solicitar o manual desse banco, se tiver ja anexa pra amanha o pessoal fazer a analise e aprovar ou não essas alterações.

 

ACBrBancoSicredi.pas

Postado (editado)
11 horas atrás, Waldir Paim disse:

Seu arquivo de retorno tem um erro:

Na no header ele esta com o código do banco errado, em vez de 748 ele tem 744;

Teste com o arquivo em anexo;

Havia um erro na função de conversão de enumerador para string;

Eu acho que vão te solicitar o manual desse banco, se tiver ja anexa pra amanha o pessoal fazer a analise e aprovar ou não essas alterações.

 

ACBrBancoSicredi.pas

o Arquivo original está correto. o que coloquei, mudei os dados do cliente.

Este é o arquivo de retorno original

40296117.CRT

Editado por jburda
anexar arquivo de retorno para testes
Postado (editado)
11 horas atrás, Waldir Paim disse:

Arquivo ACBrBoleto.pas com tratamento para evitar erro de conversão;

 

ACBrBoleto.pas

Deu certo! Eu havia abaixado apenas o ACbrBoleto. Com a correção na Unit do Sicredi, agora o retorno está correto.

Não consigo anexar o layout enviado pelo banco, pois está em pdf e é maior que o tamanho permitido para postagem.

Obrigado

Editado por jburda
Correção da informação
  • Moderadores
Postado

 

7 minutos atrás, jburda disse:

Deu certo! Eu havia abaixado apenas o ACbrBoleto. Com a correçãoa na Unit do Sicredi, agora o retorno está correto.

Obrigado

Ok, vou pedir para o pessoal avaliar essa alteração proposta;

  • Curtir 1
  • Administradores
Postado

Boa tarde.

O @José M. S. Junior ficou de analisar.

Att.

  • Curtir 1
Consultora ACBr Pro

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 !!

  • Membros Pro
Postado

Boa tarde Pessoal, creio que já existem 2 tópicos sobre este assunto, são eles:

 

 

Creio que o pessoal está analisando a correção para ser submetida ao repositório de fontes do SVN

 

  • Curtir 1
  • Moderadores
  • Solution
Postado
4 horas atrás, Waldir Paim disse:

Ok, vou pedir para o pessoal avaliar essa alteração proposta;

Boa tarde Waldir,

Ajustes disponíveis no SVN, juntamente com outras correções deste banco. Favor atualizar os fontes...

Obrigado!

  • Curtir 2
  • Obrigado 1
Consultor SAC ACBr

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

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

  • Administradores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultora ACBr Pro

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 !!

  • Este tópico foi criado há 2385 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...