Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia a todos,

estava analisando hoje(08/02/2019) o retorno de um arquivo da CEF e o componente ACBRBoleto apresenta a mensagem:"...Não é um arquivo de Retorno de cobrança com layout CNAB240."

o conteúdo desse arquivo é informando o cliente que a remessa foi processada, ou seja, Registro header de arquivo, posição143, tamanho: 1 informa código: 3 (Remessa Processada). Mas o componente apresenta a mensagem acima e não informa de forma correta(a meu ver) o que ocorre com esse determinado tipo de retorno. Analisando o código encontrei:

unit ACBrBoleto;

procedure TACBrBoleto.LerRetorno(AStream: TStream);
linha: 2813

     case Length(SlRetorno.Strings[0]) of
        240 :
          begin
            if Copy(SlRetorno.Strings[0],143,1) <> '2' then -----> Deveria ser alterado a forma de tratamento para informar ao operador do sistema a situação da remessa de acordo com a tabela abaixo.
              Raise Exception.Create( ACBrStr( NomeArq + sLineBreak + 'Não é um arquivo de Retorno de cobrança com layout CNAB240') );

            BancoRetorno  := Copy(SlRetorno.Strings[0],0,3);
            LayoutRemessa := c240 ;
          end;
...

Código Remessa / Retorno, código adotado pela FEBRABAN para qualificar o envio ou devolução de arquivo entre a Empresa Cliente
e o Banco prestador dos Serviços. Informar:
‘1’ = Remessa (Cliente -> Banco)
‘2’ = Retorno (Banco -> Cliente)
‘3’ = Remessa Processada (Banco -> Cliente - Pré-crítica)
‘4’ = Remessa Processada Parcial (Banco -> Cliente - Pré-crítica)
‘5’ = Remessa Rejeitada (Banco -> Cliente - Pré-crítica)

 

Desde já agradeço a atenção de todos e minhas humildes desculpas se falei alguma besteira.

  • Moderadores
Postado

Boa tarde

Existe essa validação pois todos os arquivos de retorno tratados pelo componente são do tipo "2 - Retorno", realmente não trata a leitura de arquivos de Pré-Critica... 

  • Curtir 1
Consultor SAC ACBr

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

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

Postado
3 horas atrás, EngSoftInformatica EngSoftInformatica disse:

Bom dia a todos,

estava analisando hoje(08/02/2019) o retorno de um arquivo da CEF e o componente ACBRBoleto apresenta a mensagem:"...Não é um arquivo de Retorno de cobrança com layout CNAB240."

o conteúdo desse arquivo é informando o cliente que a remessa foi processada, ou seja, Registro header de arquivo, posição143, tamanho: 1 informa código: 3 (Remessa Processada). Mas o componente apresenta a mensagem acima e não informa de forma correta(a meu ver) o que ocorre com esse determinado tipo de retorno. Analisando o código encontrei:

unit ACBrBoleto;

procedure TACBrBoleto.LerRetorno(AStream: TStream);
linha: 2813

     case Length(SlRetorno.Strings[0]) of
        240 :
          begin
            if Copy(SlRetorno.Strings[0],143,1) <> '2' then -----> Deveria ser alterado a forma de tratamento para informar ao operador do sistema a situação da remessa de acordo com a tabela abaixo.
              Raise Exception.Create( ACBrStr( NomeArq + sLineBreak + 'Não é um arquivo de Retorno de cobrança com layout CNAB240') );

            BancoRetorno  := Copy(SlRetorno.Strings[0],0,3);
            LayoutRemessa := c240 ;
          end;
...

Código Remessa / Retorno, código adotado pela FEBRABAN para qualificar o envio ou devolução de arquivo entre a Empresa Cliente
e o Banco prestador dos Serviços. Informar:
‘1’ = Remessa (Cliente -> Banco)
‘2’ = Retorno (Banco -> Cliente)
‘3’ = Remessa Processada (Banco -> Cliente - Pré-crítica)
‘4’ = Remessa Processada Parcial (Banco -> Cliente - Pré-crítica)
‘5’ = Remessa Rejeitada (Banco -> Cliente - Pré-crítica)

 

Desde já agradeço a atenção de todos e minhas humildes desculpas se falei alguma besteira.

Passo por esse problema no banco itau, o retorno de pessoa fisica, vem completado com zeros antes, e o itau insiste em mandar como pessoa juridica, o que eu faço, é abrir o arquivo antes de mandar para o componente, e mudar, engando assim o componente para o que eu quero.

assim, eu sei que está certo, tem o cpf dentro do arquivo, e ainda assim vem o numero como se fosse cnpj (talvez o retorno seja feito apenas por cnpj no itau, nao sei...), então quando entra na funcao, o  componente aciona aquela funcao de validar o cpf, nisso passa liso.

Não que eu queira que faça algo errado, mas tem hora que tem que ser assim...

 

Detalhe: Se isso acontecer com vc, se for arquivo de critica, e mudar o arquivo, sugiro não fazer ação alguma no banco de dados, apenas mostrar em tela para o usuário...

Postado
39 minutos atrás, Antonio Gomes disse:

Passo por esse problema no banco itau, o retorno de pessoa fisica, vem completado com zeros antes, e o itau insiste em mandar como pessoa juridica, o que eu faço, é abrir o arquivo antes de mandar para o componente, e mudar, engando assim o componente para o que eu quero.

assim, eu sei que está certo, tem o cpf dentro do arquivo, e ainda assim vem o numero como se fosse cnpj (talvez o retorno seja feito apenas por cnpj no itau, nao sei...), então quando entra na funcao, o  componente aciona aquela funcao de validar o cpf, nisso passa liso.

Não que eu queira que faça algo errado, mas tem hora que tem que ser assim...

 

Detalhe: Se isso acontecer com vc, se for arquivo de critica, e mudar o arquivo, sugiro não fazer ação alguma no banco de dados, apenas mostrar em tela para o usuário...

No meu caso é que são muito arquivos não tem como o cliente esta mudando isso..

2 horas atrás, José M. S. Junior disse:

Boa tarde

Existe essa validação pois todos os arquivos de retorno tratados pelo componente são do tipo "2 - Retorno", realmente não trata a leitura de arquivos de Pré-Critica... 

é de justamente o tratamento da pre-critica que estou falando.. porque em arquivos desse tipo causa até um falso erro em relação a mensagem que o sistema emite.

Vou tentar simular algumas situações com a CEF na pre critica e qualquer coisa comunico a vocês, até mesmo para uma possível implementação sobre tal.

Obrigado. 

Postado

Não é o cliente, é vc...

Exemplo: 

 

Arquivo := IBDSPai.FieldByName('NOME_ARQUIVO_BOR').AsString;
      Arquivo := StringReplace(Arquivo, '"', '', [rfReplaceAll]);

      if not FileExists(Arquivo) then
      begin
        Aviso('Arquivo: ' + Arquivo + ' não encontrado.');
        Abort;
      end;
      // CONTEUDO DO ARQUIVO ARQUIVO_RETORNO_BOR
      LS.LoadFromFile(Arquivo);
      P := LS.Count - 1;

      if (IBDSPai.FieldByName('RETORNO_PAGFACIL_BOR').AsString = 'N') and
        (IBDSPai.FieldByName('RETORNO_PESSOA_FISICA_BOR').AsString = 'S') then
        MudarRetornoPosicao2_FisicaJuridica(LS);

      LS.SaveToStream(ArquivoDeRetorno);

 

 

funcao: 

procedure TFCadBorderoBancario.MudarRetornoPosicao2_FisicaJuridica(var ARetornoLido: TStrings);
var
  Linha: string;
  I    : Integer;
begin
  for I := 0 to ARetornoLido.Count - 1 do
  begin
    Linha := ARetornoLido;

    // Mexer nas linhas que correspondem a titulos apenas - iniciados com 1
    if (Copy(Linha, 1, 1) = '1') and (Copy(Linha, 2, 2) = '02') then
    begin
      Delete(Linha, 2, 2);
      Insert('01', Linha, 2);
      ARetornoLido := Linha;
    end;
  end;
end;
 

Voce pode tratar um arquivo temporario também, caso não queira mexer no do cliente...

  • Administradores
Postado

Bom dia @ssouzaacbr

Evite postar tópicos que são dúvidas não relacionadas ao assunto original,  movi sua postagem conforme tópico a seguir

At.

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

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