Página 1 de 1

Harbour Boleto - campo digitavel

Enviado: 14 Jan 2025 17:02
por gilbertosilverio
Ola Amigos,

Uso o harbour boleto e hoje apareceu um problema.

A geração ate o vencimento em 21/02/2025 no campo digitavel do boleto fica desta maneira 99990000819600, sendo 9999 para o vencimento 21/02/2025 e 819600 para o valor.

A partir de 22/02/2025 a meu ver seria 10000, so que em um boleto que gerei no site do bradesco, ele fica 1020 para o vencimento de 14/03/2025, que pelo harbour boleto, fazendo uma alteracao ficaria 10020.

Alguem ja fez a alteracao desta rotina e poderia me ajudar e mostrar como deve ficar.

Fiz essa alteracao no rotina de oBoleto.prg

Código: Selecionar todos

      ::Merge("DTVENC"    , DTOC(::DtVenc))
      ::Merge("DATA"      , DTOC(::DtEmis))
      ::Merge("DATAPROC"  , DTOC(::DtEmis)) // Nao sei se aqui deveria ser DATE().
      ::Merge("VALOR"     , TRANS(::nValor, "@E 99,999,999.99"))
      ::Merge("NMORA"     , TRANS(::nMora, "@E 999,999.99"))
      ::Merge("CVT"       , cCVT)
      ::Merge("AGCC"      , cAgCC)
      ::Merge("NUMDOC"    , ::cNumDoc)
      ::Merge("CARTEIRA"  , cCarteira)
      ::Merge("ESPECIETIT", ::EspecieTit)
      ::Merge("ACEITE"    , ::Aceite)
      ::Merge("NNUMERO"   , TRAN( cNsNm, "@R 99999999999999999-9" ) )

      //cFatorVenc := STRZERO( ::DtVenc - dDataBase , 4 ) // alterado 

// ALTERADO EM 14/01/2025
   if ::DtVenc > ctod([21/02/2025]) 
      cFatorVenc := STRZERO( ::DtVenc - dDataBase , 5 ) //4  > 10000
   else
      cFatorVenc := STRZERO( ::DtVenc - dDataBase , 4 ) //4  < 10000 = 9999
   endif

      // Monta Código de Barras (p/ Banco)
      cDGCB := DC_Mod11( ::cCodBco, 9, .T., ::cCodBco + ::cTipoMoeda + cFatorVenc + STRZERO( ::nValor * 100, 10 ) + cCpoLivre )
      cCodBar := ::cCodBco + ::cTipoMoeda + cDGCB + cFatorVenc + STRZERO( ::nValor * 100, 10 ) + cCpoLivre
      //           3           1            1       4                       10                   25

Agradeco a ajuda.

Harbour Boleto - campo digitavel

Enviado: 14 Jan 2025 17:45
por JoséQuintas
Pois é....
Não adianta avisar adiantado.
Nem sequer pesquisam sobre o assunto.
Avisado em outubro/2024

E aumentar de 4 pra 5 dígitos.... quem disse que pode ? isso só invalida tudo.

https://www.pctoledo.com.br/forum/viewt ... =5&t=27880

Harbour Boleto - campo digitavel

Enviado: 14 Jan 2025 18:09
por gilbertosilverio
Olá Quintas,

Grato pela ajuda.

Não tinha visto essa sua postagem, mais ao baixar o novo manual do BRADESCO achei a resposta.

Código: Selecionar todos

      if ::DtVenc > ctod([21/02/2025])
         cFatorVenc := STRZERO( ((::DtVenc-dDataBase)-9000), 4 )
      else
         cFatorVenc := STRZERO( ::DtVenc - dDataBase , 4 ) //4  < 10000 = 9999
      endif