Página 1 de 2
Boletos bancários para montagem de carnês
Enviado: 30 Ago 2013 16:03
por Duda 'Sgluber'
Amigos,
até uns dias atrás eu jamais tinha precisado estudar/programar sobre geração/emissão de boletos bancários. Até que um cliente me pediu!
Pesquisando por aqui encontrei, em princípio, 3 caminhos:
1 -
Harbour Boleto
2 -
MR-Boleto
3 -
Cobre Bem
Pretendo dar uma fuçada nesse material pelos próximos dias, mas devido a outros compromissos já assumidos e à necessidade de solução em curto espaço de tempo, já sei que não poderei me dedicar por muito tempo ao assunto. Preciso ser rápido e objetivo, não posso e não quero "reinventar a roda".
O que eu preciso: emitir 3 boletos por folha, com canhoto à esquerda, para posterior corte nas linhas pontilhadas que separam cada boleto e montagem de carnês.
Talvez alguns de vocês já tenham lidado com essa necessidade e possam me ajudar... agradeço antecipadamente a todas as opiniões, sugestões e dicas que venham em meu favor!

Boletos bancários para montagem de carnês
Enviado: 02 Set 2013 23:38
por lucimauro
Estou tambem com esse mesmo dilema de qual desses vou usar.
Ainda acressento o acbrmonitor e boleto-pro nesta relação.
Boletos bancários para montagem de carnês
Enviado: 03 Set 2013 09:51
por Duda 'Sgluber'
lucimauro escreveu:Estou tambem com esse mesmo dilema de qual desses vou usar.
Ainda acressento o acbrmonitor e boleto-pro nesta relação.
Legal vc ter postado,
lucimauro: acabei de dar uma olhada no
Boleto Pro e parece que ele oferece o que eu preciso. Só não gostei muito da licença anual, talvez eu mande um email pra eles perguntando a respeito.
De qualquer forma, como eu disse na mensagem que abriu este tópico, na medida do possível estou testando o que pode ser feito em curto espaço de tempo com aquelas ferramentas que citei e vou incluir o Boleto Pro na lista. Em breve, pretendo postar novamente deixando as minhas conclusões. Até lá, quem sabe não aparecem outras mensagens por aqui?
Quanto ao
ACBrMonitor, não parece ser um projeto voltado para a geração/emissão de boletos bancários em diferentes leiautes... estou enganado?
Boletos bancários para montagem de carnês
Enviado: 12 Set 2013 17:42
por jelias
Amigos,
Eu também estou neste processo de implantação de boletos bancários em meu sistema. Após várias horas pesquisando optei por usar o CobreBemX.
Gostei muito da proposta do HarbourBoleto, mais devido algumas limitações "pessoais" percebi que iria demandar mais tempo investindo neste processo. No meu caso é muito importante o correto envio dos arquivos para os respecivos bancos, bem como o tratamento dos retornos.
Em um futuro próximo penso em abraçar o projeto HarbourBoleto.
- O que posso lhe dizer é que estou em fase de testes e gostando muito do CobreBemX.
Irei compartilhar minhas rotinas para que possam ser aprimoradas. Por gentileza, estas rotinas são somente exemplos! Este projeto que está sendo desenvolvido quando me sobra tempo, kkkkkkkkk, devido a outras prioridades, pode-se conter erros.
Sds,
Júlio.
Código: Selecionar todos
//-----------------------------------------------------------------------------
// Rotina para impressao de boletos bancarios
// Arquivo : Boleto.prg
// Detalhes: Integracao com o CobrebemX via DLL
//
//
FUNCTION IMPBOLETO(vPreview)
LOCAL vMenDemonstrativo,vMenInstrucao
vMenDemonstrativo := "Nota fiscal "+AL_RECEB->notafi + " Emitida em "+DTOC(AL_SAIDA->datemi)+" Duplicata Mercantil "+AL_RECEB->codigo+"<br>"+;
"Apos o vencimento cobrar juros de "+TRANS(AL_BANCO->jurosa,"999.99")+"% ao mes - R$ "+TRANS( (((AL_RECEB->valrec*AL_BANCO->jurosa)/100)/30),"@E 999,999.99")+" ao dia."+"<br>"+;
"Multa por atraso de pagamento "+TRANS(AL_BANCO->multas,"999.99")+"%"+"<br>"+;
IIF(AL_RECEB->valdes>0,"Desconto de R$"+TRANS(AL_RECEB->valdes,"@E 999,999.99")+" para pagamento ate o vencimento"," ")
vMenInstrucao := "Apos o vencimento cobrar juros de "+TRANS(AL_BANCO->jurosa,"999.99")+"% ao mes - R$ "+TRANS( (((AL_RECEB->valrec*AL_BANCO->jurosa)/100)/30),"@E 999,999.99")+" ao dia."+"<br>"+;
"Multa por atraso de pagamento "+TRANS(AL_BANCO->multas,"999.99")+"%"+"<br>"+;
IIF(AL_RECEB->valdes>0,"Desconto de R$"+TRANS(AL_RECEB->valdes,"@E 999,999.99")+" para pagamento ate o vencimento"," ")
// Confirma os registros corretos no banco de dados a partir do contas a receber
sele AL_BANCO
DBSETORDER(1)
DBSEEK(AL_RECEB->codban)
sele AL_CLIEN
DBSETORDER(1)
DBSEEK(AL_RECEB->codcli)
sele AL_SAIDA
DBSETORDER(1)
DBSEEK(AL_RECEB->notafi+"1 ")
// Registrar a DLL do cobrebemx
RegisterServer("e:\estoq\cobrebem\cobrebemx.dll")
// Criar objeto para trabalho com cobrebemx
oCBX := CreateObject("CobrebemX.ContaCorrente")
// Abrir a licenca de carteira para cada banco
if AL_BANCO->codban="001"
// Banco do Brasil
oCBX:ArquivoLicenca:="e:\estoq\cobrebem\001-17Simples.conf"
elseif AL_BANCO->codban="237"
// Bradesco
oCBX:ArquivoLicenca:="e:\estoq\cobrebem\.conf"
elseif AL_BANCO->codban="104"
// Caixa Economica Federal
oCBX:ArquivoLicenca:="e:\estoq\cobrebem\.conf"
elseif AL_BANCO->codban="353"
// Santander
oCBX:ArquivoLicenca:="e:\estoq\cobrebem\.conf"
elseif AL_BANCO->codban="356"
// Banco Real
oCBX:ArquivoLicenca:="e:\estoq\cobrebem\.conf"
elseif AL_BANCO->codban="341"
// Itau
oCBX:ArquivoLicenca:="e:\estoq\cobrebem\.conf"
else
MENSAGEM("Erro no sistema, banco nao identificado no boleto "+AL_RECEB->codbol,5)
retu
end
// Dados do Cedente
oCBX:CodigoAgencia:=AL_BANCO->agenci
oCBX:NumeroContaCorrente:=AL_BANCO->numcom
oCBX:CodigoCedente:=AL_BANCO->codced
oCBX:PadroesBoleto:PadroesBoletoImpresso:ArquivoLogoTipo:="e:\estoq\cobrebem\kiflor.png"
oCBX:PadroesBoleto:PadroesBoletoImpresso:CaminhoImagensCodigoBarras:="e:\estoq\cobrebem\"
*oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto:="Padrao"
oCBX:PadroesBoleto:PadroesBoletoImpresso:HTMLReciboPersonalizado := RetHTML()
// Monta dados do sacado
oBoleto:=oCBX:DocumentosCobranca:Add()
oBoleto:TipodocumentoCobranca := "DM"
oBoleto:NumeroDocumento := AL_RECEB->codigo
oBoleto:NomeSacado := AL_CLIEN->nomecl
if AL_CLIEN->indent="01" .or. AL_CLIEN->indent="02"
oBoleto:CnpjSacado := ALLTRIM(AL_CLIEN->CPFCGC)
else
oBoleto:CpfSacado := ALLTRIM(AL_CLIEN->CPFCLI)
end
oBoleto:EnderecoSacado := AL_CLIEN->endere
oBoleto:BairroSacado := AL_CLIEN->bairro
oBoleto:CidadeSacado := AL_CLIEN->cidade
oBoleto:EstadoSacado := AL_CLIEN->estado
oBoleto:CepSacado := AL_CLIEN->cepcli
oBoleto:DataDocumento := AL_RECEB->datemi
oBoleto:DataVencimento := AL_RECEB->datven
oBoleto:ValorDocumento := AL_RECEB->valrec
oBoleto:ValorDesconto := AL_RECEB->valdes
oBoleto:NossoNumero := AL_RECEB->codbol
oBoleto:PercentualJurosdiaAtraso := AL_BANCO->jurosa
oBoleto:PercentualMultaAtraso := AL_BANCO->multas
oBoleto:PadroesBoleto:Demostrativo := vMenDemostrativo
oBoleto:PadroesBoleto:Instrucoes := vMenInstrucao
// Abaixo o Cobrebemx ira gravar os dados e calcular algumas informacoes
// tais como numero do codigo de barras
oCBX:CalcularDadosBoleto()
sele AL_RECEB
RECLOCK()
repl codbar with oBoleto:CodigoBarras
DBUNLOCK()
DBCOMMIT()
if nPreview
oCBX:ImprimeBoletos()
else
oCBX:ImprimeBoletosSemPreview()
end
//-----------------------------------------------------------------------------
// Rotina para impressão de Recibo de Entrega
STATIC FUNCTION RETHTML()
LOCAL nCHR:=CHR(13)+CHR(10)
LOCAL nHTML:=""
nHTML +='<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>'+nCHR
nHTML +='<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>'+nCHR
nHTML +='</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>'+nCHR
nHTML +='</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>'+nCHR
nHTML +='</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>'+nCHR
nHTML +='</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>'+nCHR
nHTML +='</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>'+nCHR
nHTML +='</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><#Moeda></b></font></td></tr></table>'+nCHR
nHTML +='</td><td width=100><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td width=100%><font size=1>Quantidade</font></td></tr><tr><td width=100%><p align=center><font size=2><b><#Quantidade></b></font></td></tr></table>'+nCHR
nHTML +='</td><td width=150><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td width=100%><font size=1>(x) Valor</font></td></tr><tr><td width=100%><p align=center><font size=2><b> </b></font></td></tr></table>'+nCHR
nHTML +='</td><td width=168><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td width=100%><font size=1>(=) Valor do Documento</font></td></tr><tr><td width=100%><p align=center><font size=2><b><#ValorDocumentoExibicao></b></font></td></tr></table>'+nCHR
nHTML +='</td><td width=168><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td width=100%><font size=1>(-) Desconto</font></td></tr><tr><td width=100%><p align=center><font size=2><b><#ValorDescontoExibicao></b></font></td></tr></table>'+nCHR
nHTML +='</td></tr><tr><td width=320 colspan=3 valign=bottom><p align=left><font size=2><b>Demonstrativo:</b></font></td><td width=168><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td width=100%><font size=1>(+) Outros Acréscimos</font></td></tr><tr><td width=100%><p align=center><font size=2><b><#ValorOutrosAcrescimosExibicao></b></font></td></tr></table>'+nCHR
nHTML +='</td><td width=146><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td width=100%><font size=1>(=) Valor Cobrado</font></td></tr><tr><td width=100%><p align=center><font size=2><b> </b></font></td></tr></table>'+nCHR
nHTML +='</td></tr><tr><td width=100% height=120 colspan=5 valign=top><font size=2><#Demonstrativo></font></td></tr></table>'+nCHR
nHTML +='<table border=0 cellpadding=0 cellspacing=0 border=0 width=730><tr><td nowrap height=25 valign=bottom><font size=1>---------------------------------------------------------------------------------------------------------------------------------------------------------------- Corte Aqui ------------------------------</font></td></tr></table>'+nCHR
nHTML +='<table border=0 cellpadding=0 cellspacing=0 height=38 width=730><tr>'+nCHR
nHTML +='<td valign=bottom width=149><p align=center><#LogotipoBanco></p></td>'+nCHR
nHTML +='<td valign=bottom width=70><p align=center><font face="Times New Roman" size=5>|</font><font face="Times New Roman" size=4><b><#NumeroBanco></b></font><font face="Times New Roman" size=5>|</font></p></td>'+nCHR
nHTML +='<td valign=bottom width=511><p align=right><font face="Times New Roman" size=3><#LinhaDigitavel> <#DvCodigoBarras> <#FatorVencimento><#ValorLinhaDigitavel></font></td>'+nCHR
nHTML +='</tr></table>'+nCHR
nHTML +='<table border=1 cellspacing=0 height=244 width=730 bordercolor=black><tr>'+nCHR
nHTML +='<td colspan=6 valign=top width=562><font face="Times New Roman" size=1>Local de Pagamento <b><#LocalPagamento></b></font></td>'+nCHR
nHTML +='<td valign=top width=168><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td align=left valign=top width=100%><font face="Times New Roman" size=1>Vencimento</font></td></tr><tr><td align=center valign=middle width=100%><font face="Times New Roman" size=1><b><#Vencimento></b></font></td></tr></table></td>'+nCHR
nHTML +='</tr>'+nCHR
nHTML +='<tr>'+nCHR
nHTML +='<td colspan=6 valign=top width=562><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td align=left valign=top width=100%><font face="Times New Roman" size=1>Cedente</font></td></tr><tr><td align=left valign=middle width=100%><font face="Times New Roman" size=1><b><#NomeCedente></b></font></td></tr></table></td>'+nCHR
nHTML +='<td valign=top width=168><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td align=left valign=top width=100%><font face="Times New Roman" size=1>Agência/Código Cedente</font></td></tr><tr><td align=center valign=middle width=100%><font face="Times New Roman" size=1><b><#AgenciaCodigoCedente></b></font></td></tr></table></td>'+nCHR
nHTML +='</tr>'+nCHR
nHTML +='<tr>'+nCHR
nHTML +='<td valign=top width=95><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td align=left valign=top width=100%><font face="Times New Roman" size=1>Data Documento</font></td></tr><tr><td align=center valign=middle width=100%><font face="Times New Roman" size=1><b><#DataDocumento></b></font></td></tr></table></td>'+nCHR
nHTML +='<td valign=top width=134 colspan=2><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td align=left valign=top width=100%><font face="Times New Roman" size=1>Número do Documento</font></td></tr><tr><td align=center valign=middle width=100%><font face="Times New Roman" size=1><b><#NumeroDocumento></b></font></td></tr></table></td>'+nCHR
nHTML +='<td valign=top width=80><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td align=left valign=top width=100%><font face="Times New Roman" size=1>Espécie Doc.</font></td></tr><tr><td align=center valign=middle width=100%><font face="Times New Roman" size=1><b><#EspecieDocumento></b></font></td></tr></table></td>'+nCHR
nHTML +='<td valign=top width=38><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td align=left valign=top width=100%><font face="Times New Roman" size=1>Aceite</font></td></tr><tr><td align=center valign=middle width=100%><font face="Times New Roman" size=1><b><#Aceite></b></font></td></tr></table></td>'+nCHR
nHTML +='<td valign=top width=109><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td align=left valign=top width=100%><font face="Times New Roman" size=1>Data Processamento</font></td></tr><tr><td align=center valign=middle width=100%><font face="Times New Roman" size=1><b><#DataProcessamento></b></font></td></tr></table></td>'+nCHR
nHTML +='<td valign=top width=168><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td align=left valign=top width=100%><font face="Times New Roman" size=1>Nosso Número</font></td></tr><tr><td align=center valign=middle width=100%><font face="Times New Roman" size=1><b><#NossoNumeroExibicao></b></font></td></tr></table></td>'+nCHR
nHTML +='</tr>'+nCHR
nHTML +='<tr>'+nCHR
nHTML +='<td valign=top width=95><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td align=left valign=top width=100%><font face="Times New Roman" size=1>Uso do Banco</font></td></tr><tr><td align=center valign=middle width=100%><font face="Times New Roman" size=1><b><#UsoBanco></b></font></td></tr></table></td>'+nCHR
nHTML +='<td valign=top width=85><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td align=left valign=top width=100%><font face="Times New Roman" size=1>Carteira</font></td></tr><tr><td align=center valign=middle width=100%><font face="Times New Roman" size=1><b><#CarteiraExibicao></b></font></td></tr></table></td>'+nCHR
nHTML +='<td valign=top width=29><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td align=left valign=top width=100%><font face="Times New Roman" size=1>Espécie</font></td></tr><tr><td align=center valign=middle width=100%><font face="Times New Roman" size=1><b><#Moeda></b></font></td></tr></table></td>'+nCHR
nHTML +='<td valign=top width=90 colspan=2><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td align=left valign=top width=100%><font face="Times New Roman" size=1>Quantidade</font></td></tr><tr><td align=center valign=middle width=100%><font face="Times New Roman" size=1><b><#Quantidade></b></font></td></tr></table></td>'+nCHR
nHTML +='<td valign=top width=115><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td align=left valign=top width=100%><font face="Times New Roman" size=1>(x) Valor</font></td></tr><tr><td align=center valign=middle width=100%><font face="Times New Roman" size=1><b> </b></font></td></tr></table></td>'+nCHR
nHTML +='<td valign=top width=168><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td align=left valign=top width=100%><font face="Times New Roman" size=1>(=) Valor do Documento</font></td></tr><tr><td align=center valign=middle width=100%><font face="Times New Roman" size=1><b><#ValorDocumentoExibicao></b></font></td></tr></table></td>'+nCHR
nHTML +='</tr>'+nCHR
nHTML +='<tr>'+nCHR
nHTML +='<td valign=top width=562 colspan=6 rowspan=4><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td align=left valign=top width=100%><font face="Times New Roman" size=1><b>Instruções (texto de responsabilidade do cedente)</b></font></td></tr><tr><td align=left valign=top width=100%><font face="Times New Roman" size=1><#InstrucoesCaixa></font></td></tr></table></td>'+nCHR
nHTML +='<td valign=top width=168><font face="Times New Roman" size=1>(-) Desconto <b><#ValorDescontoExibicao></b></font></td></tr>'+nCHR
nHTML +='<tr><td valign=top width=168><font face="Times New Roman" size=1>(+) Mora/Multa</font></td></tr>'+nCHR
nHTML +='<tr><td valign=top width=168><font face="Times New Roman" size=1>(+) Outros Acréscimos <b><#ValorOutrosAcrescimosExibicao></b></font></td></tr>'+nCHR
nHTML +='<tr><td valign=top width=168><font face="Times New Roman" size=1>(=) Valor Cobrado</font></td></tr>'+nCHR
nHTML +='<tr><td width=730 colspan=7 valign=bottom><table border=0 cellpadding=0 cellspacing=0 width=100%>'+nCHR
nHTML +='<tr><td width=562><font face="Times New Roman" size=1>Sacado <b><#NomeSacado></b></td>'+nCHR
nHTML +='<td width=168><font face="Times New Roman" size=1><center><b><#CNPFCPFSacadoExibicao></b></center></font></td></tr>'+nCHR
nHTML +='<tr><td width=562><font face="Times New Roman" size=1><b><#EnderecoSacado></b> <b><#BairroSacado></b> '+nCHR
nHTML +='<b><#CidadeSacado></b> <b><#EstadoSacado></b> <b><#CepSacadoExibicao></b></td>'+nCHR
nHTML +='<td width=168><font face="Times New Roman" size=1> </font></td></tr>'+nCHR
nHTML +='<tr><td width=562><font face="Times New Roman" size=1>Sacador/Avalista <b><#SacadorAvalista></b></font></td>'+nCHR
nHTML +='<td width=168><font face="Times New Roman" size=1><center><b>Recibo do Sacado</b></center></font></td></tr></table>'+nCHR
nHTML +='</td></tr></table>'+nCHR
RETU nHTML
#pragma BEGINDUMP
#include <hbapi.h>
#include <windows.h>
typedef LONG ( * PDLLREGISTERSERVER ) ( void );
HB_FUNC( REGISTERSERVER )
{
HMODULE hDll = LoadLibrary( hb_parc( 1 ) );
LONG lReturn = 0;
if( hDll )
{
FARPROC pRegisterServer = GetProcAddress( hDll, "DllRegisterServer" );
if( pRegisterServer )
lReturn = ( ( PDLLREGISTERSERVER ) pRegisterServer )();
FreeLibrary( hDll );
}
hb_retnl( lReturn );
}
#pragma ENDDUMP
// ----------------------------------------------------------------------------
// Rotina para remessa de boletos ao banco.
// Arquivo : Remessa.prg
// Detalhes: Integracao com o CobrebemX via DLL
//
// --------------------------------------------
// Banco do Brasil
// ---------------
// Layout : FEBRABAN240
// : CBR454 - Remessa para impressao e postagem pelo BB
// : CBR641 - (CNAB400) Arquivo Remessa de 400char
// : CNAB240 - Vendor
// : CNAB240 - Remessa e Retorno 240char/linha
//
FUNCTION REMESSA()
LOCAL vMenDemonstrativo,vMenInstrucao
LOCAL iNegrito:="<b>" // Personalizar texto em Negrito
LOCAL fNegrito:="</b>" // Terminar texto em Negrito
LOCAL nLayout:={"FEBRABAN240","CBR454","CBR641","CNAB240","CNAB400"}
IF PERG("Deseja gerar arquivo de REMESSAS dos BOLETOS Pendentes ?")="N"
retu
end
ABREARQ(,{"AL_RECEB","AL_BANCO","AL_CLIEN","AL_SAIDA"})
// Optei por varrer todo o arquivo por ter poucos registros
sele AL_BANCO
DBSETORDER(1)
DBGOTOP()
do whil !EOF()
// Faco um teste para saber se existe convenio e gera boleto para este banco
// Se houver um convenio cadastrado tento encontrar boletos para envio na
// remessa que estou prestes a gerar.
if LEN(ALLTRIM(codced))=0
skip
loop
end
// Conferencia do layout do arquivo a ser gerado
if ASCAN(nLayout,ALLTRIM(layout))=0
MENSAGEM("Layout nao configurado Banco "+codigo+"-"+LEFT(nomeba,10),5)
skip
loop
end
sele AL_RECEB
DBSETORDER(12)
ORDSCOPE(0,AL_BANCO->codigo+"*")
ORDSCOPE(1,AL_BANCO->codigo+"*")
DBGOTOP()
if !EOF() // Havendo Bloquetos
// Registrar a DLL do cobrebemx
RegisterServer("e:\estoq\cobrebem\cobrebemx.dll")
// Criar objeto para trabalho com cobrebemx
oCBX := CreateObject("CobrebemX.ContaCorrente")
// Abrir a licenca de carteira para cada banco
// Vale ressaltar que cada carteira possui um arquivo. conf para o mesmo banco
// o prudente seria criar um cadastro de carteira por banco
// devido a urgencia, nao tive como fazer. So tenho como configurar uma carteira
// por vez no sistema atraves do campo: arqlic
if LEN(ALLTRIM(AL_BANCO->arqlic))>0
oCBX:ArquivoLicenca:=ALLTRIM(AL_BANCO->arqlic)
else
MENSAGEM("Erro no sistema, banco nao identificado no boleto "+AL_RECEB->codbol,5)
sele AL_BANCO
skip
loop
end
// Nome do arquivo de remessa sera gerado seguindo o padrao do bradesco
// pelo que pude colher nos manuais e o unico que exige um padrao
// CBddmm??.REM
// CB - Cobranca Bradesco
// DD - O dia geracao do Arquivo
// MM - O mes da geracao do arquivo
// ?? - Variaveis alfanumericas/numericas
_nCounter:=1 // Objetivo poder criar varias remessas.
vNomeArquivo:="CB"+LEFT(DTOC(DATE()),2)+SUBS(DTOC(DATE()),4,2)+STRZERO(_nCounter,2)+".REM"
do whil FILE(ALLTRIM(AL_BANCO->dirrem)+vNomeArquivo)
_nCounter++
vNomeArquivo:="CB"+LEFT(DTOC(DATE()),2)+SUBS(DTOC(DATE()),4,2)+STRZERO(_nCounter,2)+".REM"
end
// Dados do Cedente
oCBX:CodigoAgencia:=ALLTRIM(AL_BANCO->agenci)
oCBX:NumeroContaCorrente:=ALLTRIM(AL_BANCO->numcom)
oCBX:CodigoCedente:=ALLTRIM(AL_BANCO->codced)
// Padroes definidos para todos os boletos
oCBX:ArquivoRemessa:Diretorio:=ALLTRIM(AL_BANCO->dirrem)
oCBX:ArquivoRemessa:Arquivo:=vNomeArquivo
oCBX:ArquivoRemessa:Layout:=ALLTRIM(AL_BANCO->layout)
nRecno:={}
do whil !EOF()
sele AL_CLIEN
DBSETORDER(1)
DBSEEK(AL_RECEB->codcli)
sele AL_SAIDA
DBSETORDER(1)
DBSEEK(AL_RECEB->notafi+"1 ")
// Monta dados do sacado
oBoleto:=oCBX:DocumentosCobranca:Add()
oBoleto:TipodocumentoCobranca := "DM"
oBoleto:NumeroDocumento := AL_RECEB->codigo
oBoleto:NomeSacado := AL_CLIEN->nomecl
if AL_CLIEN->indent="01" .or. AL_CLIEN->indent="02"
oBoleto:CnpjSacado := ALLTRIM(AL_CLIEN->CPFCGC)
else
oBoleto:CpfSacado := ALLTRIM(AL_CLIEN->CPFCLI)
end
oBoleto:EnderecoSacado := AL_CLIEN->endere
oBoleto:BairroSacado := AL_CLIEN->bairro
oBoleto:CidadeSacado := AL_CLIEN->cidade
oBoleto:EstadoSacado := AL_CLIEN->estado
oBoleto:CepSacado := AL_CLIEN->cepcli
oBoleto:DataDocumento := AL_RECEB->datemi
oBoleto:DataVencimento := AL_RECEB->datven
oBoleto:ValorDocumento := AL_RECEB->valrec
oBoleto:ValorDesconto := AL_RECEB->desfin
oBoleto:NossoNumero := AL_RECEB->codbol
oBoleto:PercentualJurosdiaAtraso := (AL_BANCO->jurosa/30)
oBoleto:PercentualMultaAtraso := AL_BANCO->multas
oBoleto:NaoGerarMensagemJuros := .T.
oBoleto:NaoGerarMensagemMulta := .T.
sele AL_RECEB
AADD(nRecno, RECNO() )
skip
end
// Termina o arquivo e grava o mesmo
oCBX:GravaArquivoRemessa()
// Registra no arquivo de contas a receber que o boleto ja foi gerado
// na remessa
ORDSCOPE(0,nil) // Limpar
ORDSCOPE(1,nil)
vCont:=1
do whil LEN(nRecno)>=vCont
sele AL_RECEB
DBGOTO(nRecno[vCont])
RECLOCK()
repl gerare with " "
repl arqrem with vNomeArquivo
repl datrem with DATE()
repl horasr with TIME()
DBUNLOCK()
DBCOMMIT()
vCont++
end
MENSAGEM("Remessa gerada com Sucesso, banco: "+AL_BANCO->codigo,5)
end
sele AL_BANCO
skip
end
ABREARQ(.F.)
retu
Boletos bancários para montagem de carnês
Enviado: 12 Set 2013 20:25
por lucimauro
Essa dll tambem é paga, quanto custa a licença por CNPJ?
voce sabe informar.
Desde ja agradeço.
Boletos bancários para montagem de carnês
Enviado: 12 Set 2013 20:31
por jelias
Amigo,
Você pode encontrar o preço e mais informações aqui
http://www.cobrebem.com.br/precoscbx.html
Sds,
Júlio.
Boletos bancários para montagem de carnês
Enviado: 01 Out 2013 21:53
por rochinha
Amiguinho
Na ua lista voce pode incluir
BoletoPRO
1 - BoletoPRO
2 - Cobre Bem
3 - MR-Boleto
4 - Harbour Boleto
Onde a sequencia acima define o grau de facilidade de integração no MEU entendimento.
1 - BoletoPRO - aplicativo(pago) executado por linha de comando e possui configurador.
2 - Cobre Bem - OCX(pago) que deve ser automatizada pelo seu sistema.
3 - Harbour Boleto - Código Fonte(livre) que pode ser integrado ou gerado um stand-alone de linha de comando.
4 - MR-Boleto - Código fonte(livre) que pode ser integrado, não lembro se gera um stand-alone de linha de comando.
Obs: No caso do MrBoleto cheguei a apresentar uma alteração que nã época permitia colocar mais linhas de demonstrativo. Tópico
MRBoleto pronto para o uso
Com BoletoPRO voce gera um arquivo .CSV que nada mais é do que um arquivo com delimitador " ; ", sendo que a aprimeira linha deverá ser os nomes dos campos para a ferramenta e as linhas seguintes os dados de cada boleto.
Chame a ferramenta via RUN e pronto.
Layout Exemplo de arquivo .CSV( com 1 boleto ).
Código: Selecionar todos
Data Processamento;Vencimento;Valor Documento;Nosso Número;Data Documento;Espécie Documento;Número Documento;Aceite;Instruções;Sacado;CNPJ;Rua;Número;Complemento;Bairro;Cidade;Estado;CEP;Parcela;NParcelas;E-Mail
31/01/2007;02/03/2007; 49,25;;31/01/2007;RC;DOC_A_123;;NAO RECEBER APOS O VENCIMENTO;JOSE CARLO DA ROCHA;118.988.538-78;R DR MARIO MAURO RAMOS MATOSO; 50;CASA 2;PIRITUBA;SAO PAULO;SP;05171-340;000;000;irochinha@itelefonica.com.br
Veja um exemplo de comando no prompt do DOS:
Para que o mesmo funcione via RUN ou SwpRunCMD é necessário que existam as aspas no momento que o boletroPRO receber os parametros.
Para tanto use [ e ] ao passar o comando para SwpRunCmd() exemplo:
Código: Selecionar todos
...
SwpRunCMD( [boletopro.exe -M /P /QE "/F:C:\sistema\Boletos.csv"] )
...
Não uso mais o comando acima, portanto não lembro qual sua sintaxe.
Exemplo de execução do BoletoPRO passando o arquivo .CSV como parametro(usando funções do Fivewin).
Código: Selecionar todos
Function IntegraBoletoPro
BolCMD := [ -M /P /QE "/F:Boletos.csv" ]
cMacro := [BoletoPRO\boletoPRO.exe ] + BolCMD
MsgRun( "Gerando Impressao.." )
//memowrit( "boletos.bat", cMacro )
WinExec( cMacro, 7 )
if file( "boletos.log" )
iLOG := memoread( "boletos.log" )
if "ERROR" $ Upper( iLOG )
MsgStop( iLOG )
endif
fErase( "boletos.log" )
endif
return .t.
Boletos bancários para montagem de carnês
Enviado: 01 Out 2013 23:06
por lucimauro
Rochinha voce usa entao o Boleto-pro?
Boletos bancários para montagem de carnês
Enviado: 02 Out 2013 02:34
por rochinha
Amiguinho,
Tenho integrado ao meu sistema, se o cliente precisar, já tá lá.
Boletos bancários para montagem de carnês
Enviado: 02 Out 2013 09:19
por lucimauro
Rochinha obrigado pelo atenção.
Voce pode me dizer tambem sobre a linçeça deles é anual ou paga so uma vez e pronto.?
Desde ja agradeço.
Boletos bancários para montagem de carnês
Enviado: 02 Out 2013 12:57
por Duda 'Sgluber'
lucimauro escreveu:Rochinha obrigado pelo atenção.
Voce pode me dizer tambem sobre a linçeça deles é anual ou paga so uma vez e pronto.?
Desde ja agradeço.
lucimauro,
eu posso responder: infelizmente a licença é anual. Cheguei a mandar email pra eles, perguntando sobre uma versão "light" do programa, apenas para gerar/emitir os boletos, mas a resposta foi negativa. Eles só vendem a versão completa, paga anualmente, com um monte de possibilidades/recursos que eu e o meu cliente não precisaríamos...
É uma pena, pois o
rochinha tem razão: é a opção mais fácil/rápida para implementação. Vou postar depois escrevendo sobre as minhas opiniões sobre as 4 ferramentas citadas, após os testes que eu pude fazer com o (pouco) tempo que tive nas últimas semanas.
Antecipo que pretendo optar pelo Cobre Bem.
Boletos bancários para montagem de carnês
Enviado: 02 Out 2013 22:34
por lucimauro
Espero suas consideracoes finais, e o porque de voce ter escolhido a cobre bem!
Boletos bancários para montagem de carnês
Enviado: 23 Out 2013 01:10
por Duda 'Sgluber'
lucimauro escreveu:Espero suas consideracoes finais, e o porque de voce ter escolhido a cobre bem!
Logo, logo,
lucimauro... e será um prazer!
Boletos bancários para montagem de carnês
Enviado: 23 Out 2013 09:26
por lucimauro
Fico no aguardo.
Obrigado por sua atenção.
Boletos bancários para montagem de carnês
Enviado: 23 Out 2013 15:09
por fladimir
A pergunta não foi pra mim mas vou postar minhas considerações...
Escolhi o Cobrebem pelo seguinte:
Por ser de fácil implementação, carrego a dll e depois defino as propriedades e chamo os métodos,
Suporte dos caras muito bom, vc manda 1 e-mail e eles retornam no mesmo dia no máximo no outro dia pela manhã
Meu sistema fica MultiBoletos, ou seja, o cliente com 1 Dll pode gerar boletos pra cerca de 48 bancos (os mais conhecidos todos e os outros q nem sem direito quais são) praticamente sem mudar quase nada a não ser 2 campos chamados OutraConfiguração01 (que seria uma particularidade de 1 banco), OutraConfiguração02 (seria a outra particularidade do banco), mas da forma que eu fiz o próprio cliente define isso na tela de parâmetros de boleto.
Não preciso esquentar cabeça com um cliente querer 1 banco X e não ter e eu ter que desenvolver o cálculo do código de barras, validação nosso número, etc etc, a Dll faz tudo isto.
Envia e-mail
Gera Preview antes da impressão
Gera HTML do boleto
Mais de 15 tipos de modelos de layout de impressão de boletos e ainda mais a tua imaginação porque tem alguns modelos que permitem vc entrar com código HTML, exemplo um cliente meu comprou a Dll e na hora de mostrar os tipos de Boletos que poderiam ser gerados (Layout) o cliente NÃO GOSTOU DE NENHUM, ele queria que fosse um determinado tipo mais que tivesse em cima outras informações etc... entrei em contato com o suporte e os caras passaram o caminho das pedras usando HTML em uma determinada propriedade e pronto do Jeitinho que o cliente queria.
Bom é isto que me recordo de vantagens...
[]´s