Ir para conteúdo
  • Cadastre-se

dev botao

Boleto Banco do Brasil erro na validação de dias recebimento após vencimento


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

Recommended Posts

Postado

Bom dia, Gostaria de saber qual campo vc preenche para resolver este problema:

Orientações:
1. Regularize as informações marcadas abaixo;
 
*******************************  Detalhe tipo 5  ********************************
Posições 023 a 025: Caso o preenchimento permaneça com 000 dias, o título não poderá ser recebido após o seu vencimento .
Para recebimento após vencimento alterar campos com "Quantidade de dias para recebimento após vencimento". Ou preencher com "Brancos"
  • Moderadores
Postado

Bom dia
Creio que esteja se referindo ao campo DataLimitePagto o BB trabalha com esse campo, a qtd de dias será baseado na diferença entre DataLimitePagto e Vencimento.

Consultor SAC ACBr

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

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

Postado

                   with Titulo do
                   begin
                     Carteira:= dmFinancas.CedentesCarteira.Value;
                     CarteiraEnvio:= tceCedente;
         

                     Vencimento  := dmFinancas.Titulos1Vencimento.AsDateTime;
                     DataLimitePagto:= dmFinancas.Titulos1Vencimento.AsDateTime + dmFinancas.CedentesPeriodoProtestoTitulo.asinteger;
         

                     DataDocumento   := dmFinancas.Titulos1Emissao.AsDateTime;
                     NumeroDocumento := Trim(dmFinancas.Titulos1NumeroDoc2.Text);
                     EspecieDoc:= 'DM';
                     Aceite:= atSim;
                     DataProcessamento:= Date;
                     NossoNumero:= dmFinancas.Titulos1NumeroDoc2.Text;
                     EspecieMod:= 'R$';
                     ValorDocumento:= dmFinancas.Titulos1ValorBoleto.AsCurrency;

 

 

 

===============================================================

O meu código ta assim, inserindo o vencimento e a datalimitepagamento, porém não insere esses dias de diferença no arquivo remessa. Arquivo em anexo.
         

CB070658.REM

  • Administradores
Postado

Boa tarde.

Consegue reproduzir o mesmo no demo?

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

  • Moderadores
Postado

A regra para gerar os dias de pagamento é essa: 

(TipoOcorrencia = '01') and ( DataLimitePagto > Vencimento )   

Caso contrário preenche com 0

Consultor SAC ACBr

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

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

Postado

Código do Demo e o arquivo remessa gerado por ele.  

===================================================

 with dm.ACBrBoleto.Banco do
   begin
        TipoCobranca:= cobBancoDoBrasil;
   end;


  with dm.ACBrBoleto.Cedente do
  begin
     Nome:= 'L. C.SDDDD';
     CodigoCedente:='001';
     Agencia:= '4222';
     AgenciaDigito:= '6';
     Conta:= '11566';
     ContaDigito:= '5';
     Convenio:= '3107702';
     TipoCarteira:= tctRegistrada;
     ResponEmissao:= tbCliEmite;
     CaracTitulo:= tcSimples;
     CNPJCPF:= '03225988000185';
     TipoInscricao:= pJuridica;
     Logradouro:= ' sda';
     NumeroRes:= '23';
     Complemento:='ds';
     Bairro:= 'e';
     Cidade:= 'ws';
     UF:= 'PA';
     CEP:= '66083390';
     Modalidade:= '019';

   end;


  dm.ACBrBoleto.Cedente.FantasiaCedente := 'Nome Fantasia';
  dm.ACBrBoleto.Cedente.Nome := 'Nome do cedente';
  dm.ACBrBoleto.Cedente.Logradouro := 'Logradouro do cedente';
  dm.ACBrBoleto.Cedente.Bairro := 'Bairro do cedente';
  dm.ACBrBoleto.Cedente.Cidade := 'Cidade do cedente';
  dm.ACBrBoleto.Cedente.CEP := 'CEP do cedente';
  dm.ACBrBoleto.Cedente.Telefone := '(xx) 99999-9999';

  Titulo := dm.ACBrBoleto.CriarTituloNaLista;

  with Titulo do
  begin
    Vencimento        := StrToDate(edtVencimento.Text);
    DataDocumento     := StrToDate(edtDataDoc.Text);
    NumeroDocumento   := edtNumeroDoc.Text;
    EspecieDoc        := edtEspecieDoc.Text;
    if cbxAceite.ItemIndex = 0 then
       Aceite := atSim
    else
       Aceite := atNao;
    DataProcessamento := Now;
    Carteira          := edtCarteira.Text;
    NossoNumero       := edtNossoNro.Text;
    ValorDocumento    := StrToCurr(edtValorDoc.Text);
    Sacado.NomeSacado := edtNome.Text;
    Sacado.CNPJCPF    := OnlyNumber(edtCPFCNPJ.Text);
    Sacado.Logradouro := edtEndereco.Text;
    Sacado.Numero     := edtNumero.Text;
    Sacado.Bairro     := edtBairro.Text;
    Sacado.Cidade     := edtCidade.Text;
    Sacado.UF         := edtUF.Text;
    Sacado.CEP        := OnlyNumber(edtCEP.Text);
    ValorAbatimento   := StrToCurrDef(edtValorAbatimento.Text,0);
    LocalPagamento    := edtLocalPag.Text;
    ValorMoraJuros    := StrToCurrDef(edtMoraJuros.Text,0);
    ValorDesconto     := StrToCurrDef(edtValorDesconto.Text,0);
    ValorAbatimento   := StrToCurrDef(edtValorAbatimento.Text,0);
    DataMoraJuros     := StrToDateDef(edtDataMora.Text, 0);
    DataDesconto      := StrToDateDef(edtDataDesconto.Text, 0);
    DataAbatimento    := StrToDateDef(edtDataAbatimento.Text, 0);
    DataProtesto      := StrToDateDef(edtDataProtesto.Text, 0);
    DataLimitePagto   := StrToDate(edtVencimento.Text)+20;
    PercentualMulta   := StrToCurrDef(edtMulta.Text,0);
    //Mensagem.Text     := memMensagem.Text;
    OcorrenciaOriginal.Tipo := toRemessaBaixar;
    Instrucao1        := PadRight(trim(edtInstrucoes1.Text),2,'0');
    Instrucao2        := PadRight(trim(edtInstrucoes2.Text),2,'0');

    QtdePagamentoParcial:= 1;
    TipoPagamento:= tpNao_Aceita_Valor_Divergente;
    PercentualMinPagamento:= 0;
    PercentualMaxPagamento:= 0;
    ValorMinPagamento:= 0;
    ValorMaxPagamento:= 0;

   // dm.ACBrBoleto.AdicionarMensagensPadroes(Titulo,Mensagem);

    if cbxLayOut.ItemIndex = 6 then
    begin
      for i:=0 to 3 do
      begin
        VLinha := '.';

        VQtdeCarcA := length('Descrição Produto/Serviço ' + IntToStr(I));
        VQtdeCarcB := Length('Valor:');
        VQtdeCarcC := 85 - (VQtdeCarcA + VQtdeCarcB);

        VLinha := PadLeft(VLinha,VQtdeCarcC,'.');

        Detalhamento.Add('Descrição Produto/Serviço ' + IntToStr(I) + ' '+ VLinha + ' Valor:   '+  PadRight(FormatCurr('R$ ###,##0.00', StrToCurr(edtValorDoc.Text) * 0.25),18,' ') );
      end;
      Detalhamento.Add('');
      Detalhamento.Add('');
      Detalhamento.Add('');
      Detalhamento.Add('');
      Detalhamento.Add('Desconto ........................................................................... Valor: R$ 0,00' );
    end;

    logo:= ExtractFileDir(ParamStr(0)) + '\acbr_logo.jpg';

    ArquivoLogoEmp := logo;  // logo da empresa
    //ShowMessage(logo);

    Verso := ((cbxImprimirVersoFatura.Checked) and ( cbxImprimirVersoFatura.Enabled = true ));
  end;

cb070606.rem

Postado
35 minutos atrás, José M. S. Junior disse:

A regra para gerar os dias de pagamento é essa: 

(TipoOcorrencia = '01') and ( DataLimitePagto > Vencimento )   

Caso contrário preenche com 0

Esse campo TipoOcorrencia, fica no Titulo? Não encontrei ele.

  • Moderadores
  • Solution
Postado

 

1 hora atrás, epantoja22 disse:

Esse campo TipoOcorrencia, fica no Titulo? Não encontrei ele.

Corresponde ao OcorrenciaOriginal.Tipo := toRemessaBaixar;

 

Pesquise pela variável wDiasPagto na unit ACBrBancodoBrasil, e tente realizar um debug para identifica por que não está gerando a qtd de dias.

Consultor SAC ACBr

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

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

×
×
  • 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.