Ir para conteúdo
  • Cadastre-se

dev botao

Ajuda - Ler Retorno Cobranca


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

Recommended Posts

Postado (editado)

Boa noite,

É bem tranquilo, vou te passar parte de um código, ai é só implementar e testar.

var     Titulo : TACBrTitulo;
begin  
  NomeArquivoRetorno        := FileListBox1.Items.Strings[FileListBox1.ItemIndex];
  AcbrBoleto.NomeArqRetorno := NomeArquivoRetorno;
  AcbrBoleto.LerRetorno;
  //----------------------------------------------------------------------------
  for i := 0 to AcbrBoleto.ListadeBoletos.Count -2 do
  begin
    //--------------------------------------------------------------------------
    // Conforme os códigos de ocorrencia você analisa o tipo de ocorrencia : Entrada, baixa, liquidação,,etc..
    //
    if Copy(AcbrBoleto.ListadeBoletos.Objects.OcorrenciaOriginal.Descricao, 1, 2) = '06' then
       vLiquidacao := True;


      MessageDlg('Valor Recebido     R$ '+ FormatFloat('0.,00', AcbrBoleto.ListadeBoletos.Objects.ValorRecebido)+#13+
                 'Documento             '+ AcbrBoleto.ListadeBoletos.Objects.NumeroDocumento+#13+
                 'Seu Documento         '+ AcbrBoleto.ListadeBoletos.Objects.SeuNumero+#13+
                 'Carteira              '+ AcbrBoleto.ListadeBoletos.Objects.Carteira+#13+
                 'Nosso Numero          '+ AcbrBoleto.ListadeBoletos.Objects.NossoNumero+#13+
                 'Ocorrencia '+AcbrBoleto.ListadeBoletos.Objects.OcorrenciaOriginal.Descricao+#13+
                 'Valor Recebido     R$ '+ FormatFloat('0.,00', AcbrBoleto.ListadeBoletos.Objects.ValorRecebido)+#13+
                 'Valor Documento    R$ '+ FormatFloat('0.,00', AcbrBoleto.ListadeBoletos.Objects.ValorDocumento)+#13+
                 'Valor Juros        R$ '+ FormatFloat('0.,00', AcbrBoleto.ListadeBoletos.Objects.ValorMoraJuros)+#13+
                 'Valor Taxa         R$ '+ FormatFloat('0.,00', AcbrBoleto.ListadeBoletos.Objects.ValorDespesaCobranca)+#13+
                 'Valor Pago         R$ '+ FormatFloat('0.,00', AcbrBoleto.ListadeBoletos.Objects.ValorPago), mtInformation, [mbOK], 0);
  end;

Editado por Dercide Alvarez
  • Curtir 1
  • 1 mês depois ...
Postado
Em 01/04/2018 at 20:25, Dercide Alvarez disse:

Boa noite,

É bem tranquilo, vou te passar parte de um código, ai é só implementar e testar.

var     Titulo : TACBrTitulo;
begin  
  NomeArquivoRetorno        := FileListBox1.Items.Strings[FileListBox1.ItemIndex];
  AcbrBoleto.NomeArqRetorno := NomeArquivoRetorno;
  AcbrBoleto.LerRetorno;
  //----------------------------------------------------------------------------
  for i := 0 to AcbrBoleto.ListadeBoletos.Count -2 do
  begin
    //--------------------------------------------------------------------------
    // Conforme os códigos de ocorrencia você analisa o tipo de ocorrencia : Entrada, baixa, liquidação,,etc..
    //
    if Copy(AcbrBoleto.ListadeBoletos.Objects.OcorrenciaOriginal.Descricao, 1, 2) = '06' then
       vLiquidacao := True;


      MessageDlg('Valor Recebido     R$ '+ FormatFloat('0.,00', AcbrBoleto.ListadeBoletos.Objects.ValorRecebido)+#13+
                 'Documento             '+ AcbrBoleto.ListadeBoletos.Objects.NumeroDocumento+#13+
                 'Seu Documento         '+ AcbrBoleto.ListadeBoletos.Objects.SeuNumero+#13+
                 'Carteira              '+ AcbrBoleto.ListadeBoletos.Objects.Carteira+#13+
                 'Nosso Numero          '+ AcbrBoleto.ListadeBoletos.Objects.NossoNumero+#13+
                 'Ocorrencia '+AcbrBoleto.ListadeBoletos.Objects.OcorrenciaOriginal.Descricao+#13+
                 'Valor Recebido     R$ '+ FormatFloat('0.,00', AcbrBoleto.ListadeBoletos.Objects.ValorRecebido)+#13+
                 'Valor Documento    R$ '+ FormatFloat('0.,00', AcbrBoleto.ListadeBoletos.Objects.ValorDocumento)+#13+
                 'Valor Juros        R$ '+ FormatFloat('0.,00', AcbrBoleto.ListadeBoletos.Objects.ValorMoraJuros)+#13+
                 'Valor Taxa         R$ '+ FormatFloat('0.,00', AcbrBoleto.ListadeBoletos.Objects.ValorDespesaCobranca)+#13+
                 'Valor Pago         R$ '+ FormatFloat('0.,00', AcbrBoleto.ListadeBoletos.Objects.ValorPago), mtInformation, [mbOK], 0);
  end;

Bom dia! Copiei seu código e me apresenta o seguinte erro, se puder me ajudar!
 

Erro retorno acbr.jpg

  • Administradores
Postado

Boa tarde.

Caso ainda não tenha resolvido, tente passar "Objects[F].OcorrenciaOriginal"

*troque o F por I

Att.

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

  • 8 meses depois ...
Postado

Ola bom dia, estou com um problema ao ler o retorno do CNAB240 no delphi 7.

Primeiramente estou tendo que efetuar agumas configs de banco para ele não apitar outros erros:

 try
    NomeBoleto := copy(FormatDateTime('yymmdd', Date), 3, 4) + copy(FormatDateTime('hhmmss', Time), 3, 4);
    Boleto.NomeArqRemessa := NomeBoleto + '.rem';

    with (Boleto.Banco) do
    begin
      case (AnsiIndexStr(CodBanco, [BANCO_SICOOB, BANCO_CAIXA])) of
        0:
          TipoCobranca := cobBancoob;
        1:
          TipoCobranca := cobCaixaEconomica;
      end;
    end;

    Boleto.LayoutRemessa := Iif(dtmBaixaRetornoBoleto.qryCarteiraCobrancaCNAB.AsString = 'CNAB240', c240, c400);
    Boleto.DataArquivo := Date;
    Boleto.DirArqRemessa := ExtractFileDir(Application.ExeName) + '\Remessa\' + dtmBaixaRetornoBoleto.qryCarteiraCobrancaCODIGO.AsString + '\';
    Boleto.ACBrBoletoFC.MostrarSetup := False;
    Boleto.ACBrBoletoFC.DirLogo := ExtractFileDir(Application.ExeName) + '\LogosBoleto\';
    ACBrBoletoFCFR1.FastReportFile := ExtractFileDir(Application.ExeName) + '\Relatorios\Boleto.fr3';

    Boleto.ACBrBoletoFC.Filtro := fiNenhum;
    Boleto.ACBrBoletoFC.LayOut := lPadrao;
    Boleto.ACBrBoletoFC.MostrarSetup := True;
    Boleto.ACBrBoletoFC.SoftwareHouse := 'Bitline Soluções Técnologicas';
  except
    on E: Exception do
    begin
      ShowMessage(E.message);
    end;
  end;

 

E o erro que aparece para mim é:

image.thumb.png.de6a85399604d50c67b5a172785b3000.png

 

O problema é que no método validarDadosRetorno() dentro da classe ACBrBancoCaixa, ele tenta comparar o CNPJ com o CNPJ do componente ACBrBanco, porém não sei da onde carrega esse componente, não sei também se tem que popular mais algum campo do ACBrBoleto para que faça a leitura do retorno.

 

Alguem pode dar um help?

  • Moderadores
  • Solution
Postado
10 minutos atrás, lavaprato disse:

O problema é que no método validarDadosRetorno() dentro da classe ACBrBancoCaixa, ele tenta comparar o CNPJ com o CNPJ do componente ACBrBanco, porém não sei da onde carrega esse componente, não sei também se tem que popular mais algum campo do ACBrBoleto para que faça a leitura do retorno.

Experimente definir a propriedade ACBrBoleto.LeCedenteRetorno como True.

  • Obrigado 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Administradores
Postado

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

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