Ir para conteúdo
  • Cadastre-se

dev botao

Erro leitura arquivo Retorno de Baixa Titulo SICREDI via site


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

Recommended Posts

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

Link para o comentário
Compartilhar em outros sites

  • Moderadores

@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

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

  • Moderadores
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;

Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

  • Moderadores

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

Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

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

Att.

  • Curtir 1
Consultora SAC ACBr

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

Link para o comentário
Compartilhar em outros sites

  • Moderadores
  • Solution
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.

Link para o comentário
Compartilhar em outros sites

  • Administradores

Obrigado por reportar.

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

Consultora SAC ACBr

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

Link para o comentário
Compartilhar em outros sites

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