MRBoleto pronto para o uso.
Moderador: Moderadores
MRBoleto pronto para o uso.
Você mandou a
harbour-32.dll
O sistema está pedindo a
harbour-32-bcc.dll
[]´s
harbour-32.dll
O sistema está pedindo a
harbour-32-bcc.dll
[]´s
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
MRBoleto pronto para o uso.
Amiguinho,
Renomeia que acho que funciona.
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- Alexandre Silva
- Usuário Nível 3

- Mensagens: 376
- Registrado em: 26 Mar 2007 00:16
- Localização: Itapema - SC
MRBoleto pronto para o uso.
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 ....
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
MRBoleto pronto para o uso.
Rochinha,
Meu harbour3.2 reclama da falta da função tIniFile()
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
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
MRBoleto pronto para o uso.
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.
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
MRBoleto pronto para o uso.
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 ?
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 ?
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
MRBoleto pronto para o uso.
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.
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
MRBoleto pronto para o uso.
Rochinha
Para o Real, dá o mesmo erro que para o Santander.
Para os demais utilizados, BB, Bradesco, Itaú, perfeito.
[]´s
Para o Real, dá o mesmo erro que para o Santander.
Para os demais utilizados, BB, Bradesco, Itaú, perfeito.
[]´s
MRBoleto pronto para o uso.
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+
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
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
MRBoleto pronto para o uso.
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.
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
MRBoleto pronto para o uso.
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:
Até+
No poste no inicio do tópico consta o preenchimento de alguns campos e não sei como preenchê-los:
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?Banco_Ag_Un_A=
Conta_OP_____=
Carteira_Tipo=
NossoNumero__=
Prefixo______=
Prefixo_DV___=
Até+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
MRBoleto pronto para o uso.
Acabei usando o mrboleto pro Bradesco, mas fiz uma classe que herda a original.
Ainda estou fazendo testes junto ao Bradesco.
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/
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/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
MRBoleto pronto para o uso.
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.
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.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
MRBoleto pronto para o uso.
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.
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.
Itamar M. Lins Jr.



