MRBoleto pronto para o uso.

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

formiga
Usuário Nível 1
Usuário Nível 1
Mensagens: 7
Registrado em: 11 Abr 2005 07:39

MRBoleto pronto para o uso.

Mensagem por formiga »

Você mandou a
harbour-32.dll

O sistema está pedindo a

harbour-32-bcc.dll


[]´s
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

MRBoleto pronto para o uso.

Mensagem por rochinha »

Amiguinho,

Renomeia que acho que funciona.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
formiga
Usuário Nível 1
Usuário Nível 1
Mensagens: 7
Registrado em: 11 Abr 2005 07:39

MRBoleto pronto para o uso.

Mensagem por formiga »

Camarada, nananina, não funcionou renomear, só mudou o erro:

Imagem
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

MRBoleto pronto para o uso.

Mensagem por Alexandre Silva »

Pessoal, uso o Mr Boleto na versao 3.1 do Harbour há um ano..e tudo bem..
tem alguma atualizaçaao ?? preciso para o Banco 756 - SICOOB ....
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

MRBoleto pronto para o uso.

Mensagem por janio »

Rochinha,

Meu harbour3.2 reclama da falta da função tIniFile()
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

MRBoleto pronto para o uso.

Mensagem por rochinha »

Amiguinho,

tINIFile() é uma classe existente no Fivewin. Volte ao topo do tópico e a encontrará. Mas nada o impede de usar algum outro recurso que já conheça para manipular arquivos .INI.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
formiga
Usuário Nível 1
Usuário Nível 1
Mensagens: 7
Registrado em: 11 Abr 2005 07:39

MRBoleto pronto para o uso.

Mensagem por formiga »

Companheiros

O MrBoleto está funcionando perfeito, exceto para o banco 033 - Santander;
não gera corretamente o código de barras nem o campo Nosso Número.

Alguém está usando o MrBoleto com o Santander ?
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

MRBoleto pronto para o uso.

Mensagem por rochinha »

Amiguinho,

Se o MRBoleto gera boleto para o antigo banco Real, faça o teste, use o bloco do Real para gerar para o Santander e verifique se passa.

Boletos reais do Santander dão problemas mesmo ao ser descontados em outros bancos que não sejam Santander. A desculpa dada nos caixas para dizer que só podem ser descontados no caixa deles é que o código de barras é modelo banco Real.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
formiga
Usuário Nível 1
Usuário Nível 1
Mensagens: 7
Registrado em: 11 Abr 2005 07:39

MRBoleto pronto para o uso.

Mensagem por formiga »

Rochinha

Para o Real, dá o mesmo erro que para o Santander.

Para os demais utilizados, BB, Bradesco, Itaú, perfeito.

[]´s
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

MRBoleto pronto para o uso.

Mensagem por ANDRIL »

Rochinha,

Procurei no codigo fonte e não encontrei uma forma de mandar o PDF criado diretamente para impressora. Sabe me dizer quais funções da classe PDF utilizar para isso? Ao executar o DemoUm.exe abre uma tela que logo some, teria como não exibi-la?


Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

MRBoleto pronto para o uso.

Mensagem por rochinha »

Amiguinho,

Nesta segunda(03/08) irei dar uma olhada, mas o aplicativo é gerenciado por arquivo externo e que pode conferir algum meio de interagir através de alguma variável.

Verifique a existencia de um preview como configuração ou parametro na linha de comando.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

MRBoleto pronto para o uso.

Mensagem por ANDRIL »

Pessoal, alguém conseguiu usar corretamente o MRboleto para B.B (001) com carteira 18 (SEM REGISTRO) com campo LIVRE de 17 posicoes? Emiti um boleto e ao apresentar ao gerente, fazendo a leitura acusou outra empresa e não a agência e conta informada, creio que há algo a ser tratado na geração do codigo de barras e na linha digitável.

No poste no inicio do tópico consta o preenchimento de alguns campos e não sei como preenchê-los:
Banco_Ag_Un_A=
Conta_OP_____=
Carteira_Tipo=
NossoNumero__=
Prefixo______=
Prefixo_DV___=
Na emissão para o Banco do Brasil, o nosso numero usa o Prefixo______+Prefixo_DV___ para compô-lo, so que no meu sistema estes campos estao vazios (nao sei com que preenche-los), seria este o problema de estar acusando o erro de identificação da conta no momento do pagamento?

Até+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

MRBoleto pronto para o uso.

Mensagem por JoséQuintas »

Acabei usando o mrboleto pro Bradesco, mas fiz uma classe que herda a original.
Ainda estou fazendo testes junto ao Bradesco.

Código: Selecionar todos

#include "inkey.ch"
#include "hbclass.ch"

PROCEDURE demojose
   LOCAL oBoleto, nCont
   LOCAL cFilePdf := 'Boleto.PDF'

   REQUEST HB_CODEPAGE_PTISO
   SET( _SET_CODEPAGE, "PTISO" )
   SET EPOCH TO YEAR( DATE() ) - 50
   SET CENTURY ON
   SetMode( 33, 80 )

   oBoleto  := MyBoletoPDFClass():New( cFilePdf )

   //*----------------------------------------------------------------------*
   // BRADESCO
   //*----------------------------------------------------------------------*
   FOR nCont = 1 TO 3
      oBoleto:cCarteira        := "06"
      oBoleto:cNossoNumero     := '12345'
      oBoleto:cDocOrigem       := 'NFe'
      oBoleto:cDocNumero       := '00001234'
      oBoleto:dDocData         := Date()
      oBoleto:dVencimento      := Ctod( "18/09/2014" )
      oBoleto:nValor           := 5.67
      oBoleto:acInstrucoes     := {} 
      oBoleto:acDemonstrativo  := {} 
      oBoleto:acBeneficiario   := { "CNPJ", "NOME", "ENDERECO" }
      oBoleto:acPagador        := { "CNPJ", "NOME", "ENDERECO", "CEP" }
      oBoleto:acAvalista       := { "CNPJ", "NOME", "ENDERECO" }
      oBoleto:AddPage()
      oBoleto:AddCnab()
   NEXT

   oBoleto:Finish()

   IF FILE( cFilePdf )
      hb_Run( "Explorer.exe " + cFilePdf )
   ELSE
      ALERT( "ERRO NA GERACAO DO ARQUIVO...;;" + cFilePdf )
   ENDIF

   RETURN


CREATE CLASS MyBoletoPDFClass INHERIT BoletoPDFClass
   VAR cBanco               INIT "237"
   VAR cBancoAgencia        INIT "0000"
   VAR cBancoAgenciaDV      INIT ""
   VAR cBancoAgenciaUnA     INIT ""
   VAR cBancoConta          INIT "00000"
   VAR cBancoContaDV        INIT "0"
   VAR cBancoContaOP        INIT ""
   VAR cCarteira            INIT "09"
   VAR cCarteiraTipo        INIT ""
   VAR cNossoNumero         INIT ""
   VAR cDocOrigem           INIT ""
   VAR cPrefixo             INIT ""
   VAR cPrefixoDV           INIT ""
   VAR cDocNumero           INIT ""
   VAR cDocAceite           INIT "N"
   VAR cDocEspecie          INIT "R$"
   VAR dDocData             INIT Ctod("")
   VAR dVencimento          INIT Ctod("")
   VAR nValor               INIT 0
   VAR nMultaAuto           INIT 0
   VAR nJurosMes            INIT 9
   VAR nNumeroVias          INIT 3
   VAR acLocalPagamento     INIT { "PAGÁVEL EM QUALQUER BANCO ATÉ O LIMITE DA DATA DO VENCIMENTO" }
   VAR acInstrucoes         INIT {}
   VAR acDemonstrativo      INIT {}
   VAR acBeneficiario       INIT {}
   VAR acPagador            INIT {}
   VAR acAvalista           INIT {}
   VAR Cnab400              INIT {}
   METHOD AddPage()
   METHOD AddCnab()
   METHOD DigitoDoc( cDocNumero, cCarteira )
   METHOD SaveCnab( cPath )
   END CLASS

METHOD AddPage() CLASS MyBoletoPDFClass
   ::Banco________ := ::cBanco
   ::Banco_Agencia := ::cBancoAgencia
   ::Banco_Ag_Dv__ := ::cBancoAgenciaDV
   ::Banco_Ag_Un_A := ::cBancoAgenciaUnA
   ::Conta________ := ::cBancoConta
   ::Conta_DV_____ := ::cBancoContaDV
   ::Conta_OP_____ := ::cBancoContaOP
   ::Carteira_____ := ::cCarteira
   ::Carteira_Tipo := ::cCarteiraTipo
   ::NossoNumero__ := ::cNossoNumero
   ::Doc_Origem___ := ::cDocOrigem
   ::Prefixo______ := ::cPrefixo
   ::Prefixo_DV___ := ::cPrefixoDV
   ::Doc_Numero___ := ::cDocNumero
   ::Doc_Aceite___ := ::cDocAceite
   ::Doc_Especie__ := ::cDocEspecie
   ::Doc_Data_____ := ::dDocData
   ::Vencimento___ := ::dVencimento
   ::Valor________ := ::nValor
   ::Multa_Auto___ := ::nMultaAuto
   ::Juros_Mes____ := ::nJurosMes
   ::Numero_Vias__ := ::nNumeroVias
   ::Local_Pagamen := ::acLocalPagamento
   ::Instrucoes___ := ::acInstrucoes
   ::Demonstrativo := ::acDemonstrativo
   ::Cedente______ := ::acBeneficiario
   ::Sacado_______ := { ::acPagador[ 1 ], ::acPagador[ 2 ], ::acPagador[ 4 ] + " " + ::acPagador[ 3 ] }
   ::Avalista_____ := ::acAvalista
   ::Super:AddPage()
   RETURN NIL

METHOD AddCnab() CLASS MyBoletoPDFClass
   LOCAL cTxt
   IF ::cBanco == "237"
      IF Len( ::Cnab400 ) == 0
         ::Cnab400 := { "", "" }
         //----- registro inicial ---
         /*     */ cTxt := ""
         /* 001 */ cTxt += "0"                                // Fixo: 0=Registro inicial
         /* 002 */ cTxt += "1"                                // Fixo: ID Remessa
         /* 003 */ cTxt += "REMESSA"                          // Fixo: Decricao
         /* 010 */ cTxt += "01"                               // Fixo: Codigo de Servico
         /* 012 */ cTxt += Pad( "COBRANCA", 15 )              // Fixo: Literal Servico
         /* 027 */ cTxt += Padl( "0000000", 20, "0" )         // Codigo da empresa no Bradesco
         /* 047 */ cTxt += Pad( ::acBeneficiario[ 2 ], 30 )   // Nome da empresa
         /* 077 */ cTxt += ::cBanco                           // Fixo: Codigo do Banco
         /* 080 */ cTxt += Pad( "BRADESCO", 15 )              // Fixo: Nome do Banco
         /* 095 */ cTxt += StrZero( Day( Date() ), 2 ) + StrZero( Month( Date() ), 2 ) + Right( StrZero( Year( Date() ), 4 ), 2 ) // Data da gravacao Dia/Mes/Ano, 2 digitos de cada
         /* 101 */ cTxt += Space(8)                           // Espacos
         /* 109 */ cTxt += "01"                               // MX - olhar pag. 16, pag. 20, posicao 109/110 -> 01=remessa
         /* 111 */ cTxt += StrZero( 1, 7 )                    // Num. sequencial de remessa - olhar pag. 16 // nao pode pular, reiniciar ou zerar
         /* 118 */ cTxt += Space(277)                         // Espacos
         /* 395 */ cTxt += StrZero( 1, 6 )                    // Num. sequencial de registro
         ::cnab400[ 1 ] := cTxt
      ENDIF
      // ----- registro detalhe -----
      /*     */ cTxt := ""
      /* 001 */ cTxt += "1"                                   // Fixo: 1=Movimentacao
      /* 002 */ cTxt += StrZero( 0, 5 )                       // Opcional: Agencia do Pagador
      /* 007 */ cTxt += "0"                                   // Opcional: Digito da Agencia do Pagador
      /* 008 */ cTxt += StrZero( 0, 5 )                       // Opcional: Razao da Conta do Pagador
      /* 013 */ cTxt += StrZero( 0, 7 )                       // Opcional: Número da Conta do Pagador
      /* 020 */ cTxt += "0"                                   // Optional: Digito do Número da Conta do Pagador
      /* 021 */ cTxt += "0" + StrZero( Val( ::cCarteira ), 3 ) + StrZero( Val( ::cBancoAgencia ), 5 ) + StrZero( Val( ::cBancoConta ), 7 ) + StrZero( Val( ::cBancoContaDV ), 1 ) // 17 // Zero + Carteira + Agencia sem digito + Conta + Digito Conta do Beneficiario
      /* 038 */ cTxt += Space(25)                             // Número de controle do participante - olhar pag. 17
      /* 063 */ cTxt += StrZero(0, 3 )                        // Codigo do banco a ser debitado - olhar pag.17
      /* 066 */ cTxt += "0"                                   // Multa, 2=percentual, 0=sem multa
      /* 067 */ cTxt += StrZero( 0, 4 )                       // Percentual de multa - olhar pag 17
      /* 071 */ cTxt += StrZero( Val( ::cDocNumero ), 11 )    // ID do titulo no banco - olhar pag. 17 - 10 caracteres + digito = 11 caracteres
      /* 082 */ cTxt += ::DigitoDoc( StrZero( Val( ::cDocNumero ), 10 ) )  // Digito de controle da ID do titulo
      /* 083 */ cTxt += StrZero( 0, 10 )                      // Desconto Bonificacao por dia
      /* 093 */ cTxt += "2"                                   // 1=Banco emite, 2=Cliente emite - olhar pag. 19
      /* 094 */ cTxt += "N"                                   // N=Nao registra, outracoisa=banco emite para debito automatico - olhar pag. 19
      /* 095 */ cTxt += Space(10)                             // Brancos
      /* 105 */ cTxt += Space(1)                              // Indicacao de Rateio
      /* 106 */ cTxt += Space(1)                              // Enderecamento para aviso de debito
      /* 107 */ cTxt += Space(2)                              // Brancos
      /* 109 */ cTxt += "01"                                  // Identificacao da ocorrencia - 01=Remessa
      /* 111 */ cTxt += Space(10)                             // Número do documento
      /* 121 */ cTxt += StrZero( Day( ::dVencimento ), 2 ) + StrZero( Month( ::dVencimento ), 2 ) + Right( StrZero( Year( ::dVencimento ), 4 ), 2 ) // Data vencto DDMMAA
      /* 127 */ cTxt += StrZero( ::nValor * 100, 13 )     // Valor do titulo
      /* 140 */ cTxt += StrZero( 0, 3 )                       // Zeros - Banco Encarregado da cobranca
      /* 143 */ cTxt += StrZero( 0, 5 )                       // Zeros - Agencia depositaria
      /* 148 */ cTxt += "99"                                  // 01-duplicata, 05-Recibo, 99-Outros
      /* 150 */ cTxt += "N"                                   // Sempre N - identificacao
      /* 151 */ cTxt += StrZero( Day( ::dDocData ), 2 ) + StrZero( Month( ::dDocData ), 2 ) + Right( StrZero( Year( ::dDocData ) , 4 ), 2 ) // Data de emissao do titulo DDMMAA
      /* 157 */ cTxt += "00"                                  // Instrucao - olhar pag. 20 // 00=nada,06=protestar,18=Baixar
      /* 159 */ cTxt += "00"                                  // Instrucao - olhar pag. 20 // complemento do anterior, indicando qtde. dias
      /* 161 */ cTxt += StrZero( ::nJurosMes * ::nValor / 30, 13 )    // Multa por dia - olhar pag. 21
      /* 174 */ cTxt += StrZero( 0, 6 )                       // Data limite pra desconto
      /* 180 */ cTxt += StrZero( 0, 13 )                      // Valor do desconto
      /* 193 */ cTxt += StrZero( 0, 13 )                      // Valor IOF
      /* 206 */ cTxt += StrZero( 0, 13 )                      // Valor Abatimento
      /* 219 */ cTxt += iif( Len( SoNumeros( ::acPagador[ 1 ] ) ) == 14, "02", "01" ) // 01=CPF, 02=CNPJ, 98=Nao tem, 99=Outros
      /* 221 */ cTxt += StrZero( Val( SoNumeros( ::acPagador[ 1 ] ) ), 14 )  // Número do CPF ou CNPJ - olhar pag. 21
      /* 235 */ cTxt += Pad( ::acPagador[ 2 ], 40 )            // Nome do pagador
      /* 275 */ cTxt += Pad( ::acPagador[ 3 ], 40 )           // Endereco do pagador
      /* 315 */ cTxt += Space(12)                             // Primeira mensagem
      /* 327 */ cTxt += ::acPagador[ 4 ]                      // CEP
      /* 335 */ cTxt += Space(60)                             // Sacador/Avalista ou segunda mensagem
      /* 395 */ cTxt += StrZero( Len( ::cnab400 ), 6 )        // Número sequencial de registro
      ::cnab400[ Len( ::cnab400 ) ] := cTxt
      // ----- registro final -----
      /*     */ cTxt := ""
      /* 001 */ cTxt += "9"                                   // Fixo: 9=Final
      /* 002 */ cTxt += Space(393)                            // Brancos
      /* 395 */ cTxt += StrZero( Len( ::cnab400 ) + 1, 6 )    // Número de registro
      AAdd( ::cnab400, cTxt )
   ENDIF
   RETURN NIL

METHOD DigitoDoc( cDocNumero, cCarteira ) CLASS MyBoletoPDFClass
   LOCAL nCont, nNumero, nSoma, nResto, cDigito
   nSoma := 0
   FOR nCont = 1 TO 11
      nNumero := Val( Substr( Right( cCarteira, 2 ) + cDocNumero, nCont, 1 ) ) // 2 dig.carteira + 10 dig.Número (11 c/ dig.controle)
      nSoma := nSoma + ( nNumero * { 2, 7, 6, 5, 4, 3, 2, 7, 6, 5, 4, 3, 2 }[ nCont ] )
   NEXT
   nResto := Mod( nSoma, 11 )
   IF nResto == 0
      cDigito := "0"
   ELSEIF nResto == 1
      cDigito := "P"
   ELSE
      cDigito := Str( 11 - nResto, 1 )
   ENDIF
   RETURN cDigito

METHOD SaveCnab( cPath ) CLASS MyBoletoPDFClass
   LOCAL cNumero, cFileName, nCont, cTxt := ""
   IF ::cCarteira != "09"
      RETURN NIL
   ENDIF
   cPath := iif( cPath == NIL, "", cPath )
   cNumero   := "01"
   cFileName := cPath + "CB" + StrZero( Day( Date() ), 2 ) + StrZero( Month( Date() ), 2 )
   DO WHILE File( cFileName + cNumero + ".TST" )
      cNumero := StrZero( Val( cNumero ) + 1, 2 )
   ENDDO
   FOR nCont = 1 TO Len( ::Cnab400 )
      cTxt += ::Cnab400[ nCont ] + HB_EOL()
   NEXT
   hb_MemoWrit( cFileName + cNumero + ".TST", cTxt )
   RETURN NIL
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

MRBoleto pronto para o uso.

Mensagem por Itamar M. Lins Jr. »

Ola!

Aqui um cliente está utilizando p/ o Banco Santander.
Só enfrentei uma pequena dificuldade em entender como jogar os números com ou sem dígito. Porém fui olhando o boleto original e ficou igual.

Saudações,
Itamar M. Lins J.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

MRBoleto pronto para o uso.

Mensagem por Itamar M. Lins Jr. »

José Quintas, você pode enviar o seu código p/ o dono do MRBoleto e ele adicionar.
Esse CNAB400 ? é isso ?
Outro ajuste, é diminuir as linhas não impressa, fica:
1:
2:
3:...
Até 27 sem necessidade.

Saudações,
Itamar M. LIns Jr.
Saudações,
Itamar M. Lins Jr.
Responder