Página 1 de 1
Migrar Boletos CobreBemx Para ACBr Boleto
Enviado: 07 Mar 2025 10:09
por cacg57
Senhores, estou com um problema sério na impressão de boletos, empresa sem poder emitir nenhum porque a linha digitavel sai errada.
Usava o Cobrebemx para impressão em xHarbour, funcionava perfeitamente até fevereiro.
Estou tentando imprimir em ACBr Boleto usando a DLL ACBrBoleto32.dll
Infelizmente não estou conseguindo gerar, e o pessoal da ACBr não conseguem me orientar em xHarbour.
Se alguem puder me orientar, agradeço muito
Migrar Boletos CobreBemx Para ACBr Boleto
Enviado: 07 Mar 2025 13:18
por developer
Você mencionou que parou de funcionar em fevereiro?
Será que não é somente questão de
fator de vencimento? Foi justamente neste período que mudou.
Migrar Boletos CobreBemx Para ACBr Boleto
Enviado: 07 Mar 2025 13:41
por cacg57
Sim, o problema é o fator de vencimento
Acontece que usamos o cobrebemx e o mesmo encerrou as atividades e não dá mais manutenção
Migrar Boletos CobreBemx Para ACBr Boleto
Enviado: 07 Mar 2025 13:43
por cacg57
Estou tentando usar a ACBr para imprimir boletos
Preciso de dicas para montar o TXT do Monitor
Migrar Boletos CobreBemx Para ACBr Boleto
Enviado: 07 Mar 2025 15:19
por JoséQuintas
Qual o banco mais urgente?
Tem alguns bancos no boletoclass ?
O cobrebem dá pra enganar, mas não muito.
Seria usar um vencimento fake, o que vai gerar visual errado, mas código de barras e digitável certo.
Usar vencimento - 9000
Migrar Boletos CobreBemx Para ACBr Boleto
Enviado: 07 Mar 2025 15:21
por JoséQuintas
Outra alternativa, se for mingw, é analisar a lib, e tentar trocar alguma função, no chute mesmo.
Talvez dê com bcc.
exportar a lista de funções pra ver se alguma poderia ser trocada.
Migrar Boletos CobreBemx Para ACBr Boleto
Enviado: 07 Mar 2025 15:23
por JoséQuintas
Faço isso com fivewin.
Mas no meu caso é pra excluir função mesmo.
Por exemplo, excluo toda parte de base de dados, trocando por função vazia.
Migrar Boletos CobreBemx Para ACBr Boleto
Enviado: 10 Mar 2025 08:31
por jelias
Olá amigos,
cacg57 eu tive o mesmo problema, fui usuário da CobreBemX por muitos anos e fui obrigado a migrar. Devido o curto tempo, ainda não consegui usar DLL ACBrBoleto32.dll. Caso tenha sucesso e puder compartilhar, lhe agradeço antecipadamente.
Consegui fazer tudo gerando o .INI para o AcbrMonitor e está funcionando sem nenhum problema.
Código: Selecionar todos
FUNCTION GERACEDENTE(cCodBanco)
LOCAL sFile:=aw_acbr+"SAINFE-C" // Arquivo de retornos do ACBR
LOCAL eFile:=aw_acbr+"ENTNFE-C" // Arquivo de envios do ACBR
LOCAL cCHR:=CHR(13)+CHR(10)
// Confirma os registros corretos no banco de dados a partir do contas a receber
sele AL_EMPRE
DBSETORDER(1)
DBSEEK(aw_emp)
sele AL_BANCO
DBSETORDER(1)
DBSEEK(cCodBanco)
if AT("-",numcom)=0
cConta=ALLTRIM(numcom)
cDigitoConta=""
else
cConta=LEFT(numcom,(AT("-",numcom)-1))
cDigitoConta=SUBS(numcom,(AT("-",numcom)+1) )
end
if AT("-",agenci)=0
cAgencia=ALLTRIM(agenci)
cDigitoAgencia=""
else
cAgencia=LEFT(agenci,(AT("-",agenci)-1))
cDigitoAgencia=SUBS(agenci,(AT("-",agenci)+1) )
end
cLine:= 'BOLETO.ConfigurarDados("'+cCHR
cLine+= "[Cedente]"+cCHR
cLine+= "Nome="+ALLTRIM(AL_EMPRE->nomeem)+cCHR
cLine+= "CNPJCPF="+ALLTRIM(AL_EMPRE->cgcemp)+cCHR
cLine+= "Logradouro="+ALLTRIM(AL_EMPRE->endere)+cCHR
cLine+= "Numero="+ALLTRIM(AL_EMPRE->numero)+cCHR
cLine+= "Bairro="+ALLTRIM(AL_EMPRE->bairro)+cCHR
cLine+= "Cidade="+ALLTRIM(AL_EMPRE->cidade)+cCHR
cLine+= "Cep="+ALLTRIM(AL_EMPRE->cepemp)+cCHR
cLine+= "Telefone=(35) 3831-6400"+cCHR
cLine+= "Complemento="+cCHR
cLine+= "UF=MG"+cCHR
cLine+= "RespEmis=0"+cCHR //[0] Cliente Emite [1] Banco Emite [2] Banco Reemite [3] Banco nÒo Reemite
cLine+= "TipoPessoa=1"+cCHR //[0] Pessoa Fisica [1] Pessoa Juridica [2] Outros
cLine+= "CodigoCedente="+ALLTRIM(AL_BANCO->codced)+cCHR
cLine+= "LayoutBol=5"+cCHR //[0] Padrao [1] Carne [2] - Fatura (Nao implementado = Padrao) [3] Padrao Entrega
cLine+= "Modalidade=019"+cCHR
cLine+= "CaracTitulo=5"+cCHR //[0] Cobranca Simples [1] Cobranca Vinculada [2] Cobranca Caucionada [3] Cobranca Descontada [4] Cobrnaca Vendor
cLine+= "TipoCarteira=1"+cCHR
cLine+= "TipoDocumento=0"+cCHR
cLine+= "Convenio="+ALLTRIM(AL_BANCO->codced)+cCHR
cLine+= cCHR
cLine+= "[Conta]"+cCHR
cLine+= "Conta="+cConta+cCHR
cLine+= "DigitoConta="+cDigitoConta+cCHR
cLine+= "Agencia="+cAgencia+cCHR
cLine+= "DigitoAgencia="+cDigitoAgencia+cCHR
cLine+= cCHR
cLine+= "[Banco]"+cCHr
cLine+= "Numero=1"+cCHR
cLine+= "CNAB=0"+'")'+cCHR
//cLine+= "IndiceACBr=" --> Este campo não é obrigatório, desde que o número do banco seja informado. Caso ambos sejam informados, o Número terá prioridade.
cRandom=TRANS(HB_RandomInt(9999999999),"9999999999")+".TXT" // Gerar codigo aleatorio
cFileEnvio=(eFile+cRandom)
cFileRetorno=(sFile+cRandom)
HB_MEMOWRIT( cFileEnvio, cLine )
nCont:=1
do whil !FILE(cFileRetorno) .and. nCont <= 40
inkey(0.5); nCont++
end
if !FILE(cFileRetorno)
MENSAGEM("Portal da NF-e nao retornou a solicitacao, tente novamente!",3)
FERASE( cFileRetorno )
retu
end
gTexto:=MEMOREAD(cFileRetorno)
if !AT("OK:",gTexto)>0
MENSAGEM("Erro ao configurar o cedente do BOLETO, verifique!",3)
EDITORACBR(gTexto,05,05,20,78,)
end
FERASE( cFileRetorno )
//--------------------------------------------------------------------------------------------------------------
// Função: Gera um arquivo txt dos boletos
FUNCTION GERABOLETOS(aBoletos,lImprime)
LOCAL aTEL:=SAVESCREEN(00,00,24,79)
LOCAL cCHR:=CHR(13)+CHR(10)
LOCAL sFile:=aw_acbr+"SAINFE-B" // Arquivo de retornos do ACBR
LOCAL eFile:=aw_acbr+"ENTNFE-B" // Arquivo de envios do ACBR
LOCAL cPathBoleto:="d:\temp\"
// Limpa a Lista de Títulos no ACBR
LIMPARLISTA()
// Configura o Cedente no ACBR
sele AL_RECEB
DBSETORDER(1)
DBSEEK(aBoletos[1])
cCodBanco = codban
GERACEDENTE(cCodBanco)
nCount=1
cLine:= ""
do whil LEN(aBoletos)>=nCount
sele AL_RECEB
DBSETORDER(1)
DBSEEK(aBoletos[nCount])
sele AL_CLIEN
DBSETORDER(1)
DBSEEK(AL_RECEB->codcli)
if nCount=1
cLine+="Boleto.IncluirTitulos("+["]+"[Titulo"+ALLTRIM(STR(nCount,2))+"]"+cCHR
else
cLine+= "[Titulo"+ALLTRIM(STR(nCount,2))+"]"+cCHR
end
cLine+= "NumeroDocumento="+ALLTRIM(AL_RECEB->codigo)+cCHR
cLine+= "NossoNumero="+ALLTRIM(AL_RECEB->codbol)+cCHR
cLine+= "Carteira=17"+cCHR
cLine+= "ValorDocumento="+STRTRAN(ALLTRIM(TRANS(AL_RECEB->valrec,"99999999.99")),".",",")+cCHR
cLine+= "Vencimento="+DTOC(AL_RECEB->datven)+cCHR
cLine+= "ValorMoraJuros="+STRTRAN(ALLTRIM(TRANS((((AL_RECEB->valrec*AL_BANCO->jurosa)/100)/30),"99999999.99")),".",",")+cCHR
cLine+= "DataDocumento="+DTOC(AL_RECEB->datlan)+cCHR
cLine+= "DataProcessamento="+DTOC(DATE())+cCHR
if (AL_RECEB->desfin>0)
cLine+= "DataDesconto="+DTOC(AL_RECEB->datven)+cCHR
end
cLine+= "DataMoraJuros="+DTOC( (AL_RECEB->datven+1) )+cCHR
cLine+= "DataMulta="+DTOC( (AL_RECEB->datven+1) )+cCHR
if (AL_RECEB->desfin>0)
cLine+= "ValorDesconto="+STRTRAN(ALLTRIM(TRANS(AL_RECEB->desfin,"99999999.99")),".",",")+cCHR
end
cLine+= "PercentualMulta=2"+cCHR
cLine+= "LocalPagamento=Ate o vencimento pagavel em qualquer banco do sistema de compensacao"+cCHR
cLine+= "Especie=DM"+cCHR
cLine+= "EspecieMod=R$"+cCHR
cLine+= "Sacado.NomeSacado="+ALLTRIM(RETIRARACENTOS(AL_CLIEN->nomecl))+cCHR
if AL_CLIEN->indent="01" .or. AL_CLIEN->indent="02"
cLine+= "Sacado.CNPJCPF="+ALLTRIM(AL_CLIEN->cpfcgc)+cCHR
else
cLine+= "Sacado.CNPJCPF="+ALLTRIM(AL_CLIEN->cpfcli)+cCHR
end
cLine+= "Sacado.Pessoa="+IIF(AL_CLIEN->indent="01" .or. AL_CLIEN->indent="02","1","0")+cCHR
cLine+= "Sacado.Logradouro="+ALLTRIM(RETIRARACENTOS(AL_CLIEN->endere))+cCHR
cLine+= "Sacado.Numero="+ALLTRIM(AL_CLIEN->numero)+cCHR
cLine+= "Sacado.Bairro="+ALLTRIM(RETIRARACENTOS(AL_CLIEN->bairro))+cCHR
cLine+= "Sacado.Cidade="+ALLTRIM(RETIRARACENTOS(AL_CLIEN->cidade))+cCHR
cLine+= "Sacado.UF="+ALLTRIM(AL_CLIEN->estado)+cCHR
cLine+= "Sacado.CEP="+ALLTRIM(AL_CLIEN->cepcli)+cCHR
cLine+= "Mensagem=NF-e "+ALLTRIM(AL_RECEB->notafi)+cCHR
//cLine+= "ArquivoLogoEmp=f:\cobrebem\kiflor.jpg"+cCHR
//cLine+= "Detalhamento=Dados Fatura 1|Dados Fatura 2|Dados Fatura 3"+cCHR
//cLine+= "Informativo=Informativo de Boleto1|Informativo de Boleto2|Informativo de Boleto3"+cCHR
//cLine+= "Instrucao1=
//cLine+= "Instrucao2="
cLine+= "Aceite=1"+cCHR
//cLine+= "OcorrenciaOriginal="
cLine+= "Parcela=1"+cCHR
cLine+= "TotalParcelas=1"+cCHR
cLine+= "CodigoMora=1"+cCHR
cLine+= "SeuNumero="+ALLTRIM(AL_RECEB->codigo)+cCHR
//cLine+= "TipoDiasProtesto="
cLine+= "TipoImpressao=1"+cCHR
nCount++
end
if lImprime
// Imprime os boletos da lista
cLine+=[","I")]+cCHR
else
cLine+=[")]+cCHR
end
cRandom=TRANS(HB_RandomInt(9999999999),"9999999999")+".TXT" // Gerar codigo aleatorio
cFileEnvio=(eFile+cRandom)
cFileRetorno=(sFile+cRandom)
HB_MEMOWRIT( cFileEnvio, cLine)
nCont:=1
do whil (!FILE(cFileRetorno) .and. nCont<=40)
inkey(0.5); nCont++
end
if !FILE(cFileRetorno)
MENSAGEM("Portal da NF-e nao retornou a solicitacao, tente novamente!",3)
FERASE( cFileRetorno )
retu
end
gTexto:=MEMOREAD(cFileRetorno)
if !AT("OK:",gTexto)>0
MENSAGEM("Erro ao configurar o cedente do BOLETO, verifique!",3)
EDITORACBR(gTexto,05,05,20,78,)
end
FERASE( cFileRetorno )
//--------------------------------------------------------------------------------------------------------------------------------
// Funcao: Gera um arquivo txt dos boletos
//
FUNCTION LIMPARLISTA()
LOCAL Atel:=SAVESCREEN(00,00,24,79)
LOCAL cCHR:=CHR(13)+CHR(10)
LOCAL sFile:=aw_acbr+"SAINFE-L" // Arquivo de retornos do ACBR
LOCAL eFile:=aw_acbr+"ENTNFE-L" // Arquivo de envios do ACBR
cRandom=TRANS(HB_RandomInt(9999999999),"9999999999")+".TXT" // Gerar codigo aleatorio
cFileEnvio=(eFile+cRandom)
cFileRetorno=(sFile+cRandom)
cLine:=""
cLine:="BOLETO.LimparLista"+cCHR
HB_MEMOWRIT( cFileEnvio, cLine)
nCont:=1
do whil (!FILE(cFileRetorno) .and. nCont<=40)
inkey(0.5); nCont++
end
FERASE( cFileRetorno )
RETU
Espero que possa lhe ser útil o código acima.
Saudações,
Júlio.
Migrar Boletos CobreBemx Para ACBr Boleto
Enviado: 10 Mar 2025 14:48
por developer
Uma pergunta, não é mais fácil, direto e seguro fazer os boletos diretamente no Harbour sem usar nenhuma DLL ou outra coisa do tipo?
Ou ninguém faz assim?
Até me deixou curioso, todo mundo usa alguma ferramenta ou DLL externo? Ou alguém faz como eu mencionei na primeira linha?
Migrar Boletos CobreBemx Para ACBr Boleto
Enviado: 11 Mar 2025 08:34
por jelias
developer, sem dúvidas é o ideal fazer direto no Harbour. Tive contato a tempos atrás com o HarbourBoleto e como uso xHarbour e precisava terminar o projeto mais rápido possível, optei por seguir outro caminho.
Não tenho conhecimento de ninguém que faça todo o processo de boletos, com vários bancos, tudo feito em Harbour ou xHarbour, todavia acredito que tenha vários amigos que já conseguiram chegar neste nível.
Pra mim que já faço uso do Acbr foi mais prático devido a falta de tempo, entendo que o ideal seria fazer tudo em Harbour, o que pretendo no futuro.
Saudações,
Júlio.
Migrar Boletos CobreBemx Para ACBr Boleto
Enviado: 11 Mar 2025 09:32
por malcarli
Caros colegas, uso emissão, remessa (alguns em cnab400 e outros em cnab240) e retorno feito em harbour com minigui, gerando em pdf os boletos com HMG_HPDF (bb, Santander, Cef, Bradesco, Itaú, hsbc, safra, sicredi, sicoob), inclusive híbrido. Adaptei do harbourboleto, pois o mesmo foi descontinuado. O Mestre Quintas também fez uma classe, com alguns bancos.
Att.
Marcelo A. L. Carli
Marília/SP
Capital Nacional do Alimento ®
https://malc-informatica.ueniweb.com
Insta: @malcarli25
Email / Skype:
marceloalcarli@gmail.com
Migrar Boletos CobreBemx Para ACBr Boleto
Enviado: 11 Mar 2025 17:06
por developer
Pois é, foi o que pensei.
E onde está esta classe do José Quintas? Não encontrei no GitHub.
Usar AcBr pode ser logicamente mais rápido de início mas com o passar do tempo poderá ficar na mão como aconteceu com o CobreBem, melhor ter algo garantido na mão, com código fonte 100% sob controle.
Eu sugiro usar o que o José Quintas já fez e se faltar algum banco, simplesmente ir adicionando, por meio de fork para contribuir com inclusões, alterações e correções.
Isso seria ótimo para ir fortalecendo o trabalho e esforço por tudo que já foi feito, todos sairão ganhando, pois todos interessados teriam acesso aos fontes.
O mesmo com a ótima Sefazclass, aproveitar o que já foi feito e até melhorar onde for o caso.
Migrar Boletos CobreBemx Para ACBr Boleto
Enviado: 12 Mar 2025 08:33
por malcarli
Migrar Boletos CobreBemx Para ACBr Boleto
Enviado: 13 Mar 2025 14:25
por Kapiaba