marcioe Posted October 14, 2014 Report Share Posted October 14, 2014 amigos alguem tem algo para emissao de boletos banco do brasilEstava usando a cobrebem, mas o nome deveria ser COBRERUIM, pois o suporte é nota -10 Será que alguem fez para o banco do brasil, (gerando o boleto, gerando remessa e recebendo retorno) que possa postar o código Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 14, 2014 Report Share Posted October 14, 2014 No PCTOLEDO, procure por: Boleto Banco do Brasil Quote Link to comment Share on other sites More sharing options...
marcioe Posted October 15, 2014 Author Report Share Posted October 15, 2014 Amigos, será que alguem tem com a geração de remessa, ou exemplo de remessa. Quote Link to comment Share on other sites More sharing options...
jhilbert Posted October 15, 2014 Report Share Posted October 15, 2014 Olá Colegas, Estou terminando uma rotina completa para o Banco do Brasil, desde a geração do boleto, a emissão de remessa/retorno pelo banco quando a carteira for com registro. A rotina não usará nenhuma DLL externa, facilitando assim a implementação. Assim que estiver pronta colocarei a informação aqui no FORUM. Abraços, Quote Link to comment Share on other sites More sharing options...
marcioe Posted October 15, 2014 Author Report Share Posted October 15, 2014 Agradeço ao amigo .: Quote Link to comment Share on other sites More sharing options...
fladimir Posted October 16, 2014 Report Share Posted October 16, 2014 Marcio eu tenho pelo Cobrebem rodando em alguns clientes, emissão boleto e Remessa, vc não esta conseguindo ou é pq quer mudar? Quote Link to comment Share on other sites More sharing options...
marcioe Posted October 17, 2014 Author Report Share Posted October 17, 2014 50% de cada, A dificuldade de conseguir algo, Principalmente na cobrebem. Alias os Boletos são pouco documentados aqui, ou quem tem nao se preocupa em compartinhar.Se tiver como postar como esta gerando Boletos do Banco do brasil, ou o source da sua rotina Quote Link to comment Share on other sites More sharing options...
fladimir Posted October 17, 2014 Report Share Posted October 17, 2014 #include "common.ch" // hb_sendmail FUNCTION Main() LOCAL oWnd, oAcx cVersao:="1.2 d" SETCURSOR(0) // Desliga a apresenta‡„o do cursor. SET(_SET_CONSOLE, .F.) // Desliga a apresenta‡„o de sa¡das de comandos. SET(_SET_DATEFORMAT,"DD/MM/YYYY") // Coloca vari veis data no formato dd/mm/aa. SET CENTURY ON SET EPOCH TO 1930 SET(_SET_DELETED, .T.) // Ignora os registros deletados no processamento. SET(_SET_CANCEL, .F.) // Desliga a op‡„o de saida por Alt+C SET(_SET_WRAP, .T.) SET(_SET_SCOREBOARD, .F.) SET(_SET_EXACT, .T.) SET DECIMALS TO 2 RegisterServer( "CobreBemX.ocx" ) ExemploCBXBoleto() return nil ******************************************************************************** STATIC FUNCTION ExemploCBXBoleto() LOCAL oCBX, oBoleto /* Gere um novo arquivo de licença para a carteira 18-7 e preencha as propriedades de configuração conforme tabela abaixo, sendo que caso o valor seja menor que a máscara, deverá ser completado com zeros a esquerda: Propriedades de Configuração: Propriedade Conteúdo Formato CodigoAgencia Agência 0000-A NumeroContaCorrente Conta Corrente 00000000-A CodigoCedente Código do Convênio 0000000 OutroDadoConfiguracao1 Variação da Carteira 000 OutroDadoConfiguracao2 Sigla do Cedente AAAAAAAAAA Somente utilizado para remessa de arquivo com o layout CBR454 InicioNossoNumero Início Nosso Número 0000000000 FimNossoNumero Fim Nosso Número 0000000000 Faça os testes e qualquer dúvida, retorne o contato. */ // http://www.cobrebem.com.br/suportecbx.html // http://www.cobrebem.com/cgi-bin/GeraArquivoLicencaTeste FOR n := 1 to 20 Alert( 'Fazendo o Boleto de No. ' + strzero(n,3)) // Necessário efetuar download da lib TOleAuto em http://www.cobrebem.com/downloads/cbx/hbole.zip oCBX := TOleAuto():New("CobreBemX.ContaCorrente") xTipo:= Valtype(oCBX) If Valtype( oCBX ) <> "O" Alert( "Erro...") Endif *=============== Instruções de Cobrança /* if boleto->taxa > 0 oBoleto:ValorOutrosAcrescimos := boleto->taxa endif if cDados[1]>0 nVMulta:=round((boleto->valor*cDados[1])/100,2) cInstru+='APOS VENCIMENTO COBRAR MULTA R$ '+transform( nVMulta, '@E 99,999.99')+' endif if cDados[2]>0 nVlrMora:=((boleto->Valor*cDados[2])/100) cInstru+='APOS VENCIMENTO COBRAR JUROS DIARIOS DE R$ '+transform(nVlrMora,'@E 99,999.99')+' endif cInstru+=cDados[3] cInstru+=cDados[4] cInstru+=cDados[5] oCBX:PadroesBoleto:InstrucoesCaixa:=cInstru *============= TIPOS DE RECIBO ================================================= if cDados[6]=1 mcct = grava_html() oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto = "PadraoReciboPersonalizado" oCBX:PadroesBoleto:PadroesBoletoImpresso:HTMLReciboPersonalizado := mCCt oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto = "Padrao" // margem sup 10 ok mas sai 2 vias primeira zerada esse nao da oCbx:PadroesBoleto:PadroesBoletoImpresso:margemsuperior := 20 oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto = "Invertido" // deu certo com 20 mas mesma ideia do de cima oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto = "CarnetReciboLateralDireita" //Ok - mas sai 1 zerado devido precisar de mais vias na folha oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto = "CarnetReciboLateralEsquerda" // Ok- mas sai 1 zerado devido precisar de mais vias na folha oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto = "PadraoReciboPersonalizado" // Ok - mas sai 1 zerado oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto = "InvertidoReciboPersonalizado" // Ok mas sai 1 zerado oCbx:PadroesBoleto:PadroesBoletoImpresso:margemsuperior := 20 oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto = "PadraoEnderecadoVerso" // Ok mas sai 1 zerado oCbx:PadroesBoleto:PadroesBoletoImpresso:margemsuperior := 20 oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto = "InvertidoEnderecadoVerso" // Ok mas sai 1 zerado oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto = "PadraoVersoPersonalizado" // Ok mas sai 1 zerado oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto = "InvertidoVersoPersonalizado" oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto = "PadraoVersoPersonalizadoReciboPersonalizado" oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto = "InvertidoVersoPersonalizadoReciboPersonalizado" oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto = "CarnetReciboLateralDireitaPersonalizado" // tem q personalizar o recibo oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto = "CarnetReciboLateralEsquerdaPersonalizado" // Tem q personalizar o Recibo oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto = "PadraoEnderecadoVersoReciboPersonalizado" // ok mas meio estranho oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto = "InvertidoEnderecadoVersoREciboPersonalizado" // Ok mas meio estranhos */ // Monta arquivo de licenca BB Convenio 18 por 7 posiçoes /* oCBX:ArquivoLicenca := CurDirSys() + "licencas\00000000000146-001-18-7.conf" // Carteira 18 com 7 Posicoes */ // Outras Configuracoes oCBX:PadroesBoleto:PadroesBoletoImpresso:ArquivoLogotipo := curdirsys()+"Imagens\suaimagem.gif" oCbx:PadroesBoleto:PadroesBoletoImpresso:margemsuperior := 10 oCBX:PadroesBoleto:PadroesBoletoImpresso:CaminhoImagensCodigoBarras := curdirsys()+"Imagens\" mcct = grava_html() oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto = "PadraoReciboPersonalizado" oCBX:PadroesBoleto:PadroesBoletoImpresso:HTMLReciboPersonalizado := mCCt oCBX:PadroesBoleto:InstrucoesCaixa := "Conceder desconto de 5%" oCBX:PadroesBoleto:Demonstrativo := "Referentes a compras na Web" // Monta dados da conta corrente oCBX:CodigoAgencia := '0000-3' oCBX:NumeroContaCorrente := '0000004-7' oCBX:CodigoCedente := '0000007' // Código do Convenio 7 posições BB oCBX:LocalPagamento := "Pagável em qualquer banco até o vencimento" nSequenciaNossoNumero := 0 + n && n ‚ do FOR nSequenciaNossoNumero := STR( nSequenciaNossoNumero, 6 ) oCBX:OutroDadoConfiguracao1 := '027' && Variacao da Carteira 027 oCBX:OutroDadoConfiguracao2 := 'AAAAAAAAAA' oCBX:InicioNossoNumero := strzero(8, 10) oCBX:FimNossoNumero := '9999999999' oCBX:ProximoNossoNumero := strzero(8,10) *=============================================================================== //oCBX:DocumentosCobranca:Add() oBoleto := oCBX:DocumentosCobranca:Add() // Para fazer o X mai£sculo MDados := oBoleto:MeusDados:Add() MDados:Nome := "NumeroBancoXMaiusculo" MDados:Valor := "X" // Monta dados do sacado oBoleto:NomeSacado := "Nome do Sacado TESTE" oBoleto:CPFSacado := '11111111111' oBoleto:EnderecoSacado := 'Rua Teste, 1023' oBoleto:BairroSacado := 'CENTRO' oBoleto:CidadeSacado := 'NOME DA CIDADE' oBoleto:EstadoSacado := 'SP' oBoleto:CepSacado := '00000000' // Monta dados do documento de cobrança oBoleto:DataDocumento := TRANSF( Date() ,'@E 99/99/9999' ) //"02/05/2012" oBoleto:DataProcessamento := TRANSF( Date() ,'@E 99/99/9999' ) //"03/05/2012" oBoleto:DataVencimento := TRANSF( Date() + n*10 ,'@E 99/99/9999' )//"21/05/2012" oBoleto:NumeroDocumento := 'TESTE.'+ STRZERO(n,3) //"12345" oBoleto:ValorDocumento := n * 8 oBoleto:ValorDesconto:= {'0','1'}[n%2+1] // Pega Par ou Impar oBoleto:ValorjurosdiaAtraso := 0 oBoleto:TipoDocumentoCobranca :='DM' /* IMPRIME */ lPreviewLocal := .T. If lPreviewLocal oCBX:ImprimeBoletos() // Visualiza e permite direcionar impressão Else oCBX:ImprimeBoletosSemPreview() // Assim vai na impressora Default Endif oCBX := NIL NEXT RETURN( NIL ) FUNCTION Grava_HTML() ******************************************************************************** Local cHTML cHTML := '<table border=0 cellpadding=0 cellspacing=0 width=730><tr><td width=40% valign=bottom height=60><p align=left><#LogotipoCedente></td><td width=25% valign=bottom><p align=center><font size=2><b>Comprovante de Entrega</b></font></td></tr></table> '+ CHR(13) + CHR(10) +; '<table border=1 cellpadding=1 cellspacing=0 width=730><tr><td colspan=3 width=320><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td width=100%><font size=1>Cedente</font></td></tr><tr><td width=100%><font size=2><b><#NomeCedente></b></font></td></tr></table> '+ CHR(13) + CHR(10) +; '</td><td width=168><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td width=100%><font size=1>Agência/Código Cedente</font></td></tr><tr><td width=100%><p align=center><font size=2><b><#AgenciaCodigoCedente></b></font></td></tr></table> '+ CHR(13) + CHR(10) +; '</td><td width=146><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td width=100%><font size=1>Vencimento</font></td></tr><tr><td width=100%><p align=center><font size=2><b><#Vencimento></b></font></td></tr></table> '+ CHR(13) + CHR(10) +; '</td></tr><tr><td width=320 colspan=3><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td width=100%><font size=1>Sacado</font></td></tr><tr><td width=100%><font size=2><b><#NomeSacado></b></font></td></tr></table> '+ CHR(13) + CHR(10) +; '</td><td width=168><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td width=100%><font size=1>Número do Documento</font></td></tr><tr><td width=100%><p align=center><font size=2><b><#NumeroDocumento></b></font></td></tr></table> '+ CHR(13) + CHR(10) +; '</td><td width=146><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td width=100%><font size=1>Nosso Número</font></td></tr><tr><td width=100%><p align=center><font size=2><b><#NossoNumeroExibicao></b></font></td></tr></table> '+ CHR(13) + CHR(10) +; '</td></tr><tr><td width=66><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td width=100%><font size=1>Espécie</font></td></tr><tr><td width=100%><p align=center><font size=2><b%2 Quote Link to comment Share on other sites More sharing options...
fladimir Posted October 17, 2014 Report Share Posted October 17, 2014 Parte da Remessa: //------------------------------------------------------------------------------ Function MontaLoteRemessa() LOCAL cCodigoBanco PRIVATE oBlt := TBoletoCBx():New() //-> Carrega Classe Boleto p/CobreBem Boletos->(OrdSetFocus('boletos4')) cCodigoBanco := '' cID := '' WHILE !EOF() IF !EMPTY(BltRemessa->Marcado) //--> Faz os Marcados somente Boletos->( DbSeek(BltRemessa->NossoNr) ) Mensag("Aguarde, gerando remessa para o boleto n§ " + Boletos->NumDocto ) IF cCodigoBanco != Boletos->Codigo cCodigoBanco := Boletos->Codigo // Mudou IF !EMPTY(cID) // Grava Nr. Lote (ID) NOS BOLETOS ENDIF ConfDpl->( DBSEEK(Boletos->Codigo) ) *-- Configura‡äes Boleto oBlt:cArqLicenca := ALLTRIM(ConfDpl->ArqLic) oBlt:nMargemSup := ConfDpl->MargemSup oBlt:nTipoReciboBlt := ConfDpl->TpReciboBl *-- Dados da conta corrente oBlt:cCodigoAgencia := Alltrim(ConfDpl->Agencia) // '0000-5' oBlt:cNumeroContaCorrente := Alltrim(ConfDpl->Conta ) // '0000004-0' oBlt:cCodigoCedente := Alltrim(ConfDpl->CodCedente) // '0000007' oBlt:cLocalPagamento := Alltrim(ConfDpl->LocalPg) oBlt:cOutroDadoConfiguracao1 := Alltrim(ConfDpl->OutraCfg1) //'027' && Variacao da Carteira 027 oBlt:cOutroDadoConfiguracao2 := Alltrim(ConfDpl->OutraCfg2) //'AAAAAAAAAA' oBlt:cFimNossoNumero := PADC('', ConfDpl->TamNossoNr-1, '9') //'99999' sicredi ou '999999999' BB oBlt:cInicioNossoNumero := STRZERO(1, ConfDpl->TamNossoNr-1) *-- Monta dados referentes ao arquivo de remessa ConfDpl->(Bloqreg(0)) ConfDpl->IDRemessa := ConfDpl->IDRemessa + 1 ConfDpl->(DesbloqReg(0)) cID := STRZERO(ConfDpl->IDRemessa,6) oBlt:cRemessaNomeArquivo := cID + '_' + Dt2NmArq(Date()) +'.REM' oBlt:cRemessaPathDestino := ALLTRIM(ConfDpl->DestinoRem) oBlt:cRemessaLayout := ALLTRIM(ConfDpl->LayoutRem) // "FEBRABAN240" oBlt:CarregaLicenca() oBlt:OutrasConfiguracoes() oBlt:MontaDadosContaCorrente() oBlt:CarregaRecibo() oBlt:CarregaConfEmail() ENDIF oBlt:cProximoNossoNr := Boletos->NossoNr PreparaBoleto( , , Boletos->Instr1, ; Boletos->Instr2, ; Boletos->Instr3, ; Boletos->Instr4, ; Boletos->MsgDemons,; Boletos->Aceite, ; Boletos->NumDocto, ; Boletos->NossoNr, ; Boletos->Cliente, ; Boletos->DataDoc, ; Boletos->DataProc, ; Boletos->DataVenc, ; Boletos->Valor, ; Boletos->Descto, ; Boletos->JurosDia, ; Boletos->Especie ) Boletos->(BloqReg(0)) Boletos->DtRemessa := Date() Boletos->IDRemessa := cID Boletos->StatusRem := 'GR' // NG Nao Gerado, GR Gerado, RB Registrado Bco, NE Negado, LQ LiQuidado ENDIF BltRemessa->( DBSKIP() ) ENDDO IF !EMPTY(cID) oBlt:GeraArqRemessaBanco() //-- Aki daria pra fazer abrir a aplicação do Banco já pra gerar a Remessa Bancária. Alert('Arquivo de Remessa gerado com Sucesso!;Nao se esqueça de enviar ao Banco', aOk, 'W+/B') ENDIF oBlt:End() RETURN NIL Essa Classe é uma q eu montei com base em exemplos do CobreBem e de colegas, se vc não conseguir com os exemplos acima terei que dar uma filtrada no código da Classe pra poder postar, me avise se for o caso, mas em suma na parte que é chamado o método GerarArqRemessaBanco() o q é feito é o seguinte: //------------------------------------------------------------------------------ METHOD GeraArqRemessaBanco() CLASS TBoletoCBx ::oCBX:ArquivoRemessa:Arquivo := ::cRemessaNomeArquivo ::oCBX:ArquivoRemessa:Diretorio := ::cRemessaPathDestino ::oCBX:ArquivoRemessa:Layout := ::cRemessaLayout IF ! DirExist( ::cRemessaPathDestino ) DIRMAKE( ::cRemessaPathDestino ) ENDIF ::oCBX:GravaArquivoRemessa() RETURN NIL []´s Quote Link to comment Share on other sites More sharing options...
marcioe Posted October 23, 2014 Author Report Share Posted October 23, 2014 Amigo, obrigado por tentar me ajudar.Fiz assim, copiei literalmente o que Voce postou. e gerei o boleto e tentei pagar ele no meu internet bank, mas dá que o código de baras está invalido. http://postimg.org/image/5bdlg887h/full/ http://postimg.org/image/5bdlg887h/full/ imagem do boleto Código de barras 00190.00009 07000.090006 00000.004-10 1 63150000007100 que o Cobrebem Gerou Local para testar o código de barras caso nao tenha INTERNET BANK http://evandro.net/codigo_barras.html OU http://www.f2b.com.br/VerifyBoleto OU NO BANCO ONDE TENHA CONTA Se nao for pedir demais posta dados para contato... Quote Link to comment Share on other sites More sharing options...
fladimir Posted November 1, 2014 Report Share Posted November 1, 2014 Para ficar registrado entrei em contato com o colega Marcio e passei algumas configurações q defino aki no código postado e segundo ele gerou e parece q deu certo, mas qualquer coisa se não o mesmo pode retomar a discussão aki pra vermos se resolvemos. abaixo seguem as informações q passei ao Márcio via e-mail: Em resumo ... banco mandou um print dizendo q o convenio era 11-7, ai geramos novamente a licença para o convenio correto no caso deste cliente 11-7. Apos isto apenas configuramos no sistema as informações q o Cobrebem necessita para rotina q te mandei, abaixo segue tela q usamos. .... não consigo colocar a imagem então vou descrever o q tem na imagem.... QUAL IMP DE BOLETOS: <<NOME DA IMPRESSORA>> LOCAL DE PAGAMENTO: TESTE (VC DEFINE JUNTO AO USUARIO DO SISTEMA) NOME ARQ. LICENÇA COBREBEM: 01234567890123-001-11-7.CONF (FORNECIDO COBREBEM) NOSSO NUMERO ATUAL: 1 MARGEM SUP: 10 COD. CEDENTE: 2026507 (FORNECIDO BANCO) NUMERO DO BANCO: 001 (BB) NOME DO BANCO: BANCO DO BRASIL S/A NUMERO DA AGENCIA: 5001-2 NUMERO DA CONTA...: 00001020-7 TIPO DOC COBRANCA: DM TAMANHO NOSSO NR: 10 (POSICOES) OUTRA CONFIGURACAO 1 = 019 (É UMA PROPRIEDADE DO OBJETO DO COBREBEM) OUTRA CONFIGURACAO 2 = AAAAAAAAAA (OUTRA PROPRIEDADE DO OBJ DO COBREBEM Q VARIA DE ACORDO COM O BANCO) []´s Quote Link to comment Share on other sites More sharing options...
marcioe Posted November 6, 2014 Author Report Share Posted November 6, 2014 Amigos aparentemente deu certinho o cliente testou e pelo menos no banco passou o pagamento FIZ ASSIM NO MEU CÓDIGO *---Apenas banco do Brasil----------------------------------------------------------------------- IF VAL(T_NUME_BANCO) = 001 &&& Se for do Banco Bradesco, o Código da Agencia Tem que ir com o HIFEM, bem como o numero do cedente oCBX:OutroDadoConfiguracao1 := ALLTRIM(bancos->CONFIGURACAO_EXTRA_1) && Variacao da Carteira 027 oCBX:OutroDadoConfiguracao2 := ALLTRIM(bancos->CONFIGURACAO_EXTRA_2) oCBX:CodigoAgencia := ALLTRIM(bancos->AGENCIA)+'-'+ALLTRIM(bancos->DIGITO_AGENCIA) &&&&&'0000-3' oCBX:NumeroContaCorrente := ALLTRIM(bancos->CONTA) +'-'+ ALLTRIM(bancos->DIGITO_CONTA) &&&&'0000004-7' oCBX:CodigoCedente := ALLTRIM(bancos->CODIGO_CEDENTE) &&&'0000007' // Código do Convenio 7 posições BB oCBX:InicioNossoNumero := strzero(8,10) oCBX:FimNossoNumero := '9999999999' oCBX:ProximoNossoNumero := strzero(8,10) *------------------------------------------------------------------------------------ oCBX:PadroesBoleto:InstrucoesCaixa := "Conceder desconto de 5%" oCBX:PadroesBoleto:Demonstrativo := "Referentes a compras na Web" // Monta dados da conta corrente oCBX:LocalPagamento := "Pagável em qualquer banco até o vencimento" nSequenciaNossoNumero := 0 + 1 && n ‚ do FOR nSequenciaNossoNumero := STR( nSequenciaNossoNumero, 6 ) ENDIF Agradecimentos a todos os amigos Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.