Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

boa tarde a todos

mais uma vez venho solicitar a ajuda da equipe para um problema talvez simples , mas nao consegui sozinho resolver.

consegui fazer com que minha aplicacao gerar o boleto, gerar pdf e imprimir e ate fazer o retorno tudo perfeito, porem os meus boletos quando envio para o banco e aceita o arquivo de remessa mas esta ficando registrado no banco. o meu cliente consegue fazer o pagamento porem estou com problema com relacao ao valor do boleto e o pior quando meu cliente atrasa nao estou conseguindo gerar segunda via do boleto por ele nao constar no banco de dados de cobranca do banco.

segue abaixo minha rotina e um dos arquivos que estou enviando ao banco e gostaria que alguem possa me mostrar onde estou errando e vale lembrar que a ferramenta de validacao do banco do brasil esta retornando sucesso na avaliacao da ferramenta.

// gerar remessa

      // captura o numero da proxima remessa
      Dm_BD.ds_id_remessa.open;
      Dm_BD.ds_id_remessa.Insert;
      Dm_BD.ds_id_remessaSTATUS.AsString     :='F';
      Dm_BD.ds_id_remessa.Post;
      Dm_BD.ds_id_remessa.ApplyUpdates(-1);
      Dm_BD.ds_id_remessa.Close;
      Dm_BD.ds_id_remessa.Open;
      Dm_BD.ds_id_remessa.Last;
      v_nro_remessa := Dm_BD.ds_id_remessaNRO_REMESSA.AsString;

      ACBrBoleto1.ListadeBoletos.Clear;

      Dm_BD.ds_contas.CLOSE;
      Dm_BD.sql_contas.CLOSE;
      Dm_BD.sql_contas.CommandText:='SELECT * FROM CONTAS WHERE DT_VENCIMENTO BETWEEN :data1 AND :data2 AND STATUS_REMESSA = ''N'' order by cliente';
      Dm_BD.sql_contas.ParamByName('data1').AsDate := DateTimePicker1.Date;
      Dm_BD.sql_contas.ParamByName('data2').AsDate := DateTimePicker2.Date;
      Dm_BD.ds_contas.OPEN;

      while not Dm_BD.ds_contas.Eof do
         begin
         Titulo := Frm_Contas.ACBrBoleto1.CriarTituloNaLista;

         ConfiguraComponenteAcBr;

         Titulo.Vencimento        := Dm_BD.ds_contasDT_VENCIMENTO.AsDateTime;
         Titulo.DataDocumento     := Dm_BD.ds_contasDT_EMISSAO.AsDateTime;
         Titulo.NumeroDocumento   := Dm_BD.ds_contasNRO_BOLETO.AsString;
         Titulo.EspecieDoc        := 'DM';
         Titulo.Aceite            := atSim;
         Titulo.DataProcessamento := Dm_BD.ds_contasDT_PROCESSAMENTO.AsDateTime;
         Titulo.Carteira          := Dm_BD.ds_configBoletoCARTEIRA.AsString;
         Titulo.EspecieMod        := 'R$';
         Titulo.NossoNumero       := Dm_BD.ds_contasNOSSO_NUMERO.AsString;
         Titulo.ValorDocumento    := Dm_BD.ds_contasVALOR_MENSAL.AsCurrency;
         Titulo.Sacado.NomeSacado := Dm_BD.ds_contasCLIENTE.AsString;
         Titulo.Sacado.CNPJCPF    := Dm_BD.ds_contasCNPJ_CPF.AsString;
         Titulo.Sacado.Logradouro := Dm_BD.ds_contasENDERECO.AsString;
         Titulo.Sacado.Numero     := Dm_BD.ds_contasNUMERO.AsString;
         Titulo.Sacado.Bairro     := Dm_BD.ds_contasBAIRRO.AsString;
         Titulo.Sacado.Cidade     := Dm_BD.ds_contasCIDADE.AsString;
         Titulo.Sacado.UF         := Dm_BD.ds_contasUF.AsString;
         Titulo.Sacado.CEP        := Dm_BD.ds_contasCEP.AsString;
         Titulo.PercentualMulta   := Dm_BD.ds_configBoletoMULTA_MES.AsCurrency;
         Titulo.ValorMoraJuros    := Dm_BD.ds_configBoletoJUROS_DIARIO.AsCurrency;
         Titulo.Instrucao1        := 'Protestar após 03 dias do vencimento';
         Titulo.LocalPagamento    := 'Pagável em Qualquer Banco Até o Vencimento. Após Atualize no Site Banco Brasil';
         Titulo.Mensagem.Text     := 'Deposito em Conta NÃO É ACEITO COMO PAGAMENTO e NÃO QUITA SEU DÉBITO';
         Titulo.ValorAbatimento   := 0;
         Titulo.ValorDesconto     := 0;
         Titulo.TotalParcelas     := StrToInt(Dm_BD.ds_contasTOTAL_PARCELAS.AsString);
         Titulo.Parcela           := StrToInt(Dm_BD.ds_contasNRO_PARCELA.AsString);
         Titulo.OcorrenciaOriginal.Tipo := toRemessaRegistrar;


      Qr_Atualiza.Close;
      Qr_Atualiza.SQL.Text:='update contas set status_remessa = ''S'' where NRO_BOLETO = '+QuotedStr(Dm_BD.ds_contasNRO_BOLETO.AsString);
      Qr_Atualiza.ExecSQL(true);

      Dm_BD.ds_contas.Next;
      end; // fecha a leitura de todos titulos do mesmo vencimento
      ShowMessage('GERAÇÃO DE REMESSA CONCLUÍDO COM SUCESSO !!!');
      ACBrBoleto1.GerarRemessa(1);

//alimentando componente

procedure TFrm_Contas.ConfiguraComponenteAcBr;
begin
    ACBrBoleto1.ACBrBoletoFC.DirLogo     := Dm_BD.ds_configBoletoPATH_LOGOTIPO.AsString;
    ACBrBoleto1.ACBrBoletoFC.Filtro      := fiNenhum;

    if Dm_BD.ds_configBoletoTIPO_LAYOUT.AsString = 'lPadrao' then
       ACBrBoleto1.ACBrBoletoFC.LayOut      := lPadrao;

    if Dm_BD.ds_configBoletoTIPO_LAYOUT.AsString = 'lPadraoEntrega' then
       ACBrBoleto1.ACBrBoletoFC.LayOut      := lPadraoEntrega;

    if Dm_BD.ds_configBoletoTIPO_LAYOUT.AsString = 'lCarne' then
       ACBrBoleto1.ACBrBoletoFC.LayOut      := lCarne;

    if Dm_BD.ds_configBoletoTIPO_LAYOUT.AsString = 'lFatura' then
       ACBrBoleto1.ACBrBoletoFC.LayOut      := lFatura;

    ACBrBoleto1.ACBrBoletoFC.NomeArquivo := Dm_BD.ds_configBoletoPATH_GERARPDF.AsString + v_cliente +'.PDF';
    ACBrBoleto1.Banco.TipoCobranca       := cobBancoDoBrasil;
    ACBrBoleto1.Banco.TamanhoMaximoNossoNum:= 10;
    ACBrBoleto1.Banco.Nome               := 'Banco do Brasil';//Dm_BD.ds_conta_bancoNOME_BANCO.AsString;
    ACBrBoleto1.Banco.Digito             := 9; //Dm_BD.ds_conta_bancoDIGITO_NUMERO_BANCO.AsInteger;
    ACBrBoleto1.Banco.Numero             := Dm_BD.ds_conta_bancoNUMERO_BANCO.AsInteger;
    ACBrBoleto1.Banco.NumeroCorrespondente:= 0;
    ACBrBoleto1.Banco.TipoOcorrenciaToCodRemessa(toRemessaRegistrar);    // adicionado codigo de remessa *****************
    ACBrBoleto1.Cedente.Nome             := Dm_BD.ds_conta_bancoCEDENTE.AsString;
    ACBrBoleto1.Cedente.CodigoCedente    := Dm_BD.ds_conta_bancoCOD_CEDENTE.AsString;
    ACBrBoleto1.Cedente.Agencia          := '03584';
    ACBrBoleto1.Cedente.AgenciaDigito    := 'X'; // Dm_BD.ds_conta_bancoDIGITO_AGENCIA.AsString;  ******************
    ACBrBoleto1.Cedente.Conta            := FormatFloat('000000000000',Dm_BD.ds_conta_bancoNUMERO_CONTA.AsFloat);
    ACBrBoleto1.Cedente.ContaDigito      := FormatFloat('0',Dm_BD.ds_conta_bancoDIGITO_CONTA.AsFloat);
    ACBrBoleto1.Cedente.UF               := Dm_BD.ds_conta_bancoUF_AGENCIA.AsString;
    ACBrBoleto1.Cedente.Nome             := Dm_BD.ds_conta_bancoCEDENTE.AsString;
    ACBrBoleto1.Cedente.CEP              := Dm_BD.ds_conta_bancoCOD_CEDENTE.AsString;
    ACBrBoleto1.Cedente.CNPJCPF          := Dm_BD.Ds_EmpresaCNPJ.AsString;
    ACBrBoleto1.Cedente.Logradouro       := Dm_BD.Ds_EmpresaLOGRADOURO.AsString+' No. '+Dm_BD.Ds_EmpresaNRO.AsString;
    ACBrBoleto1.Cedente.Cidade           := Dm_BD.Ds_EmpresaCIDADE.AsString+' - '+Dm_BD.Ds_EmpresaUF.AsString;
    ACBrBoleto1.Cedente.CEP              := Dm_BD.Ds_EmpresaCEP.AsString;
    ACBrBoleto1.Cedente.TipoCarteira     := tctRegistrada;
    ACBrBoleto1.Cedente.ResponEmissao    := tbCliEmite;
    ACBrBoleto1.Cedente.TipoInscricao    := pJuridica;
    ACBrBoleto1.Cedente.TipoDocumento    := Tradicional;  // mudei de escritural para tradicional *******************
    ACBrBoleto1.Cedente.CaracTitulo      := tcSimples;
    ACBrBoleto1.Cedente.Convenio         := FormatFloat('0000000',Dm_BD.ds_configBoletoCONT_REMESSA.AsFloat);
    ACBrBoleto1.Cedente.Modalidade       := '027';
    ACBrBoleto1.DirArqRemessa            := Dm_BD.ds_configBoletoPATH_REMESSA.AsString;
    ACBrBoleto1.DirArqRetorno            := Dm_BD.ds_configBoletoPATH_RETORNO.AsString;
    ACBrBoleto1.LayoutRemessa            := c240;  // adicionei este campo para força o tipo de envio e retorno       *************
    ACBrBoleto1.LeCedenteRetorno         := True;

    if v_nro_remessa > '0' then
       ACBrBoleto1.NomeArqRemessa           := 'CNAB240_3584_27248_'+copy(DateToStr(now),1,2)+copy(DateToStr(now),4,2)+copy(DateToStr(now),9,2)  + v_nro_remessa + '.REM';

    ACBrBoleto1.LayoutRemessa            := c240;
    ACBrBoleto1.LeCedenteRetorno         := True;
    ACBrBoleto1.ImprimirMensagemPadrao   := True;
end;

 

obrigado
 

CNAB240_3584_27248_170118979.REM

Postado
8 horas atrás, acgubamg disse:

o aceite desse boleto é S?

o nosso numero é 10 mesmo ?

Qual erro deu ao incluir a remessa no banco?

bom dia acgubamg

o aceite esta como sim o nosso numero esta formado com 10 digitos mais 7 digitos do convenio

e o erro é simplesmente que o banco nao me mostra este boletos em aberto a receber é como se nao tivesse recebido, porem nao houve erro algum no processo de enviar o arquivo ao banco e pra piorar houve apenas dois titulos que ele reconheceu e os outros trinta nao

 

  • 2 semanas depois ...
Postado

boa tarde a todos

quero agradece muito ao parceiros que me ajuda nesta caminhada da automacao comercial.

e quero informar que consegui fazer o envio e o retorno do banco do brasiil, mas uma outra duvida que tenho seria com relacao ao meus clientes que tem DDA cadastrado para meu cnpj, ou seja, quando eu usava outro programa do proprio banco o sistema ja reconhecia os clientes dda, mas neste mes quando enviei minha remessa os clientes que sao dda nao pagaram o boleto, estranho.

 

entao gostaria de saber se existe alguma funcao no componete onde deve ser informado sobre opcao de dda, exite isso ?

obrigado

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