Ir para conteúdo
  • Cadastre-se

dev botao

Ler Arquivo De Retorno


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

Recommended Posts

Postado

pessoal não sei se é pedir demais, porem olhei vários exemplos de tratamento do arquivo de retorno, porem ainda fiquei com duvidas, pra tentar minimizar ao máximo os erros, será que é possível por favor, algum amigo dar um exemplo aqui, de como esta fazendo a leitura e o tratamento dos registros para efetuar as baixas dos titulos no sistema ?

 

fico agradecido desde ja

  • Membros Pro
  • Solution
Postado

Boa noite,

Segue:

// remessa

procedure TForm1.Remessa;
var
  nValorMora : Currency;
  //.. outros 
begin
  ACBrBoleto.ListadeBoletos.Clear;

  TituloACBr := ACBrBoleto.CriarTituloNaLista;

  TituloACBr.TipoDiasProtesto    := diCorridos;
  TituloACBr.CarteiraEnvio       := Iif(Trim(sBancoEmite)='SIM', tceBanco, tceCedente);
  TituloACBr.SeuNumero           := sConrecSeq;
  TituloACBr.Aceite              := atNao;
  TituloACBr.NumeroDocumento     := sNumNotaFiscal;

  TituloACBr.Sacado.CNPJCPF      := sCpfCnpj;

  if(length(trim(TituloACBr.Sacado.CNPJCPF)) > 11) then
    TituloACBr.Sacado.Pessoa     := pJuridica
  else
    TituloACBr.Sacado.Pessoa     := pFisica;

  TituloACBr.Sacado.Logradouro   := sEndereco;
  TituloACBr.Sacado.Numero       := '';
  TituloACBr.Sacado.Complemento  := '';
  TituloACBr.Sacado.Bairro       := sBairro;
  TituloACBr.Sacado.Cidade       := sCidade;
  TituloACBr.Sacado.UF           := sEstado;
  TituloACBr.Sacado.CEP          := sCep;
  TituloACBr.Sacado.Email        := sEmail;
  TituloACBr.Sacado.Fone         := sTelefone;

  TituloACBr.Vencimento          := StrToDate(FormatDateTime('dd/mm/yyyy', dDataVencto));
  TituloACBr.DataDocumento       := StrToDate(FormatDateTime('dd/mm/yyyy', dDataDocto));
  TituloACBr.DataProcessamento   := StrToDate(FormatDateTime('dd/mm/yyyy', Date));
  TituloACBr.ValorDocumento      := rValorDocto;

  TituloACBr.CodigoMora          := '1';
  TituloACBr.ValorMoraJuros      := 0;
  TituloACBr.DataMoraJuros       := 0;

  if njuromensal>0 then
    TituloACBr.PercentualMulta   := njuromensal;

  if nMoraDiaria>0 then
  begin
    nValorMora:=(TituloACBr.ValorDocumento*(nMoraDiaria/30))/100;
    if(nValorMora >= 0.01) then
    begin
      TituloACBr.ValorMoraJuros  := nValorMora;
      TituloACBr.DataMoraJuros   := TituloACBr.Vencimento+1;
    end;
  end;

  if(iDiasProtesto = 0) then
    TituloACBr.DataProtesto      := 0
  else
    TituloACBr.DataProtesto      := StrToDate(FormatDateTime('dd/mm/yyyy', TituloACBr.Vencimento+iDiasProtesto) );

  TituloACBr.EspecieDoc          := 'DM';
  TituloACBr.OcorrenciaOriginal.Tipo := toRemessaRegistrar;

  TituloACBr.Carteira            := sCarteira;
  TituloACBr.LocalPagamento      := sLocalPagto;

  // nosso numero
  TituloACBr.NossoNumero         := sNossoNum;
  TituloACBr.Instrucao1          := '';
  TituloACBr.Instrucao2          := '';
  TituloACBr.Parcela             := iParc;
end;


// ler retorno

procedure TForm1.Retorno;
var 
  i : Integer;
begin
  if OpenDialog1.Execute then
  begin
    //Configurar 
    ConfiguracoesACBr;
    //
    ACBrBoleto.NomeArqRetorno := OpenDialog1.FileName;
    ACBrBoleto.LerRetorno;
    for i := 0 to ACBrBoleto.ListadeBoletos.Count-1 do
    begin
      if ACBrBoleto.ListadeBoletos.Objects[i].ValorRecebido > 0 then
      begin
        SQLAux.Close;
        SQLAux.SQL.Clear;
        SQLAux.SQL.Add('update conrec set');
        SQLAux.SQL.Add('data_baixa = :pData,');
        SQLAux.SQL.Add('valor_pago = :pValor,');
        SQLAux.SQL.Add('taxa_cobranca = :pTaxa');
        SQLAux.SQL.Add('where nosso_numero = :pNossoNum');
        SQLAux.Params.ParamByName('pData').AsDate      := ACBrBoleto.ListadeBoletos.Objects[i].DataCredito;
        SQLAux.Params.ParamByName('pValor').AsFloat    := ACBrBoleto.ListadeBoletos.Objects[i].ValorRecebido;
        SQLAux.Params.ParamByName('pNossoNum').AsString:= Copy(ACBrBoleto.ListadeBoletos.Objects[i].NossoNumero,1,ACBrBoleto.Banco.TamanhoMaximoNossoNum); // vir sem o dígito, se quiser
        SQLAux.Params.ParamByName('pTaxa').AsFloat     := ACBrBoleto.ListadeBoletos.Objects[i].ValorDespesaCobranca;
        SQLAux.ExecSQL(False);
      end;
    end;
    SQLAux.Close;
  end;
end;

procedure TForm1.ConfiguracoesACBr;
begin
  ACBrBoleto.ACBrBoletoFC.DirLogo     := sPathLogo;
  ACBrBoleto.ACBrBoletoFC.Filtro      := fiNenhum;
  ACBrBoleto.ACBrBoletoFC.LayOut      := lPadrao;

  ACBrBoleto.ACBrBoletoFC.MostrarSetup:= true;
  ACBrBoleto.ACBrBoletoFC.SoftwareHouse:= 'SUA EMPRESA';

  ACBrBoleto.Banco.TipoCobranca       := cobSantander; // escolha o seu tipo de cobrança
  ACBrBoleto.Banco.Digito             := iDigBanco; // 33
  ACBrBoleto.Banco.Numero             := iBanco; // 7
  ACBrBoleto.Banco.Nome               := sBanco; // 'Santander';
  ACBrBoleto.Banco.TamanhoMaximoNossoNum := iTamNossoNum; // 12

  ACBrBoleto.Cedente.CaracTitulo      := tcSimples; // simples com registro

  ACBrBoleto.Cedente.Nome             := sNomCedente;
  ACBrBoleto.Cedente.Telefone         := sTelefoneCedente;
  ACBrBoleto.Cedente.UF               := sUFCedente;
  ACBrBoleto.Cedente.Bairro           := sBairroCedente;
  ACBrBoleto.Cedente.CEP              := sCepCedente;
  ACBrBoleto.Cedente.Cidade           := sCidadeCedente;
  ACBrBoleto.Cedente.CNPJCPF          := sCnpjCedente;
  ACBrBoleto.Cedente.Complemento      := '';
  ACBrBoleto.Cedente.Conta            := sContaCorrente;
  ACBrBoleto.Cedente.ContaDigito      := sContaCorrenteDig;
  ACBrBoleto.Cedente.Logradouro       := sLogradouroCedente;
  ACBrBoleto.Cedente.NumeroRes        := '';

  ACBrBoleto.Cedente.Convenio         := sConvenio;   //  
  ACBrBoleto.Cedente.Modalidade       := sModalidade; //  
  ACBrBoleto.Cedente.CodigoCedente    := sCodCedente;
  ACBrBoleto.Cedente.CodigoTransmissao:= sCodigoTransmissao; // no santander tem
  ACBrBoleto.Cedente.ResponEmissao    := Iif(Trim(sBancoEmite)='SIM', tbBancoEmite, tbCliEmite);

  ACBrBoleto.Cedente.TipoInscricao    := pJuridica;
  ACBrBoleto.Cedente.TipoCarteira     := Iif(Trim(sRegistrar)='SIM', tctRegistrada, tctSimples);
  ACBrBoleto.DataArquivo              := Date;
  ACBrBoleto.NomeArqRemessa           := FormatDateTime('DDMMYYYYHHMMSS',Now)+'.TXT';
  ACBrBoleto.DirArqRemessa            := sPathRemessa;
  ACBrBoleto.DirArqRetorno            := sPathRetorno;
  ACBrBoleto.ImprimirMensagemPadrao   := False;
  ACBrBoleto.LayoutRemessa            := Iif(Pos(sLayoutArqRet,'400')>0,c400,c240);
  ACBrBoleto.LeCedenteRetorno         := true;
end;

Veja se te ajuda.

 

Até mais,

 

  • Curtir 2

-- 

Alexandre de Oliveira

Diretor de T.I.

xx16 3811 0155

www.consultatec.com.br - [email protected]

image.png.744a897bbf36127e428c6e687ef05731.png

 

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