Jump to content
Fivewin Brasil

Emissão de Boletos com registro


alex2002

Recommended Posts

Pessoal,

Qual classe (free) vcs indicam para que eu possa gerar os boletos (preferencialmente em formato carnê)  e efetuar o registro dos mesmos? 

Caso não seja possível registrar, pelo menos emitir dos principais bancos. O registro eu dou um jeito.

Sinceramente não tenho mais paciência pra ficar desenhando isso não. Já fiz muito, acho que estou ficando velho rsrsrsrsrs

E mais a mais, como diz o mestre Evandro: "Pra quê ficar reinventando  a roda?"


Um abraço,

 

Alexandre Pereira

Link to comment
Share on other sites

Alex, o ideal e vc fazer um cadastro no Acbr, e free 30 Dias, opcional pagamento após. Você baixa a Dll e o fontes exemplos. Muito simples, em resumo a Dll faz leitura de arquivo ini, logo no seu sistema precisa gerar um arquivo ini com todos os dados, selecionar o boleto (é um method), após através method faz leitura do ini gera o boleto e o arquivo de remessa para banco. Na semana que vem vou fazer exemplos e te mando. 

Link to comment
Share on other sites

6 horas atrás, Jmsilva disse:

Alex, o ideal e vc fazer um cadastro no Acbr, e free 30 Dias, opcional pagamento após. Você baixa a Dll e o fontes exemplos. Muito simples, em resumo a Dll faz leitura de arquivo ini, logo no seu sistema precisa gerar um arquivo ini com todos os dados, selecionar o boleto (é um method), após através method faz leitura do ini gera o boleto e o arquivo de remessa para banco. Na semana que vem vou fazer exemplos e te mando. 

Blza, vou aguardar o seu exemplo.

Um abraço,

Alexandre Pereira

Link to comment
Share on other sites

  • 2 weeks later...

Conforme prometido segue o exemplo. 

Você poderá consultar documentação no link: https://acbr.sourceforge.io/ACBrLib/MetodosBoleto.html

#include "Struct.ch"
#include "Fivewin.ch"



Procedure Main()
   TACBrBol():New()

Return

/*
TipoResposta: Define qual será o formato da resposta.
0 = Formato INI (Padrão);
1 = Formato XML;
2 = Formato JSON.

CodificacaoResposta: Define qual será a codificação das respostas.
0 = UTF8 (Padrão);
1 = ANSI;

LogNivel: Define qual o nível do log da biblioteca.
0 = Nenhum;
1 = Simples;
2 = Normal;
3 = Completo;
4 = Paranoico;

LogPath: O Path onde será salvo o arquivo de log da biblioteca (Padrão Vazio)

[Principal]
TipoResposta=0
LogNivel=4
LogPath=c:\correio\
*/


CLASS TACBrBol
   DATA hBol INIT Hash()
   DATA oBol
   DATA cFileIni

   METHOD New()  CONSTRUCTOR
   METHOD Cedente()
   METHOD Banco()
   METHOD Conta()
   METHOD Config()
   METHOD Titulo(nI)
   METHOD Create_Ini()

ENDCLASS

**============================================================
METHOD New() CLASS TACBrBol
   Local nI

   ::cFileIni := "C:\Temp\Titulos.ini" //nome o onde quiser
   ::oBol := ACBrBoleto():New('','')

   ::Config()
   ::Cedente()
   ::Banco()
   ::Conta()

   For nI:=1 to 4 //quantidade de boleto
      ::Titulo(nI)
   Next
   ::Create_Ini()

   ::oBol:LimparLista()
   //::oBol:SetDiretorioArquivo("c:\temp\","Boletopdf")
   ::oBol:IncluirTitulos(::cFileIni)
   //::oBol:GeraPDF()
   ::oBol:Imprimir()

   //::oBol:GerrarRemessa("c:\temp\",::cFileIni,"C:\temp\File.rem")
   //::oBol:LerRetorno("C:\temp\","file.ret")
    ::oBol:LimparLista()
    ::oBol := nil

    MsgInfo("Boletos gerado com sucesso !")
Return Self

**============================================================
METHOD Config() CLASS TACBrBol
   ::oBol:ConfigGravarValor("Principal","LogNivel","4")
   ::oBol:ConfigGravarValor("Principal","LogPath","c:\temp\")

   ::oBol:ConfigGravarValor("Sistema","Nome","meu soft")
   ::oBol:ConfigGravarValor("Sistema","Versao","1.0")
   ::oBol:ConfigGravarValor("Sistema","Data","29/09/2020")
   ::oBol:ConfigGravarValor("Sistema","Descricao","Escreve aqui qq coisa")


   ::oBol:ConfigGravarValor("BoletoBancoFCFortesConfig","DirLogo","C:\Temp\")
   ::oBol:ConfigGravarValor("BoletoBancoFCFortesConfig","MostrarPreview","1")
   ::oBol:ConfigGravarValor("BoletoBancoFCFortesConfig","MostrarProgresso","1")
   ::oBol:ConfigGravarValor("BoletoBancoFCFortesConfig","NomeArquivo","c:\temp\BoletoPDF.pdf")  //pdf
   ::oBol:ConfigGravarValor("BoletoBancoFCFortesConfig","NumeroCopias","1")
   //::oBol:ConfigGravarValor("BoletoBancoFCFortesConfig","PrinterName","Sua_impressora")
   //::oBol:ConfigGravarValor("BoletoBancoFCFortesConfig","SoftwareHouse","Sua_Empresa")

   ::oBol:ConfigGravarValor("BoletoDiretorioConfig","DataArquivo","29/09/2020")
   ::oBol:ConfigGravarValor("BoletoDiretorioConfig","DirArqRemessa","C:\Temp\")
   ::oBol:ConfigGravarValor("BoletoDiretorioConfig","DirArqRetorno","C:\Temp\")
   ::oBol:ConfigGravarValor("BoletoDiretorioConfig","DirHomologacao","0")
   ::oBol:ConfigGravarValor("BoletoDiretorioConfig","ImprimirMensagemPadrao","1")
   ::oBol:ConfigGravarValor("BoletoDiretorioConfig","LayoutRemessa","1")
   ::oBol:ConfigGravarValor("BoletoDiretorioConfig","LeCedenteRetorno","0")
   ::oBol:ConfigGravarValor("BoletoDiretorioConfig","NomeArqRemessa","File_Remessa")
   ::oBol:ConfigGravarValor("BoletoDiretorioConfig","NomeArqRetorno","File_Retorno")
   //::oBol:ConfigGravarValor("BoletoDiretorioConfig","NomeroArquivo","0")

   ::oBol:ConfigGravar()
   ::oBol:ConfigLer()

Return Nil


**============================================================
METHOD Cedente() CLASS TACBrBol
   ::hBol["Cedente"] := Hash()

   ::hBol["Cedente","Nome"]           := "SAO JOAO LTDA."
   ::hBol["Cedente","CNPJCPF"]        := "35373107000160"
   ::hBol["Cedente","Logradouro"]     := "Rua Evaristo Mendes"
   ::hBol["Cedente","Numero"]         := "200"
   ::hBol["Cedente","Bairro"]         := "Centro"
   ::hBol["Cedente","Cidade"]         := "Tatui"
   ::hBol["Cedente","CEP"]            := "18.270-000"
   ::hBol["Cedente","Complemento"]    := "Sala 10"
   ::hBol["Cedente","UF"]             := "SP"
   ::hBol["Cedente","RespEmis"]       := "0"
   ::hBol["Cedente","TipoPessoa"]     := "1"
   ::hBol["Cedente","CodigoCedente"]  := "123456"
   ::hBol["Cedente","LayoutBol"]      := "1"
   ::hBol["Cedente","CaracTitulo"]    := "0"
   ::hBol["Cedente","TipoCarteira"]   := "0"
   ::hBol["Cedente","TipoDocumento"]  := "0"
   ::hBol["Cedente","Modalidade"]     := "17"
   ::hBol["Cedente","CodTransmissao"] := "10"
   ::hBol["Cedente","Convenio"]       := "123456"

Return nil
/*
 LayoutBol:= 0 - 6
 0=
 1=c/canhoto-bloco
 2=dois boletos s/recibo
 3=dois boletos c/recibo
 4=um boletos c/recibo
*/

**============================================================
METHOD Banco() CLASS TACBrBol
   ::hBol["Banco"] := Hash()

   ::hBol["Banco","Numero"]               := "001"
   ::hBol["Banco","CNAB"]                 := "1"
   ::hBol["Banco","IndiceACBr"]           := "1"
   ::hBol["Banco","NumeroCorrespondente"] := "200"
   ::hBol["Banco","VersaoArquivo"]        := "0"
   ::hBol["Banco","VersaoLote"]           := "0"

Return nil

**============================================================
METHOD Conta() CLASS TACBrBol
   ::hBol["Conta"] := Hash()

   ::hBol["Conta","Conta"]                         := "011234567"
   ::hBol["Conta","DigitoConta"]                   := "1"
   ::hBol["Conta","Agencia"]                       := "0734"
   ::hBol["Conta","DigitoAgencia"]                 := "2"
   ::hBol["Conta","DigitoVerificadorAgenciaConta"] := "0"

Return nil


METHOD Titulo(nCt) CLASS TACBrBol
   Local cTitulo := "Titulo"+AllTrim(Str(nCt,2))

   ::hBol[cTitulo] := Hash()
   ::hBol[cTitulo,"NumeroDocumento"]    := "000010"
   ::hBol[cTitulo,"NossoNumero"]        := "0000001"
   ::hBol[cTitulo,"Carteira"]           := "20"
   ::hBol[cTitulo,"ValorDocumento"]     := "100,50"
   ::hBol[cTitulo,"Vencimento"]         := "10/09/2010"
   ::hBol[cTitulo,"ValorMoraJuros"]     := "0,50"
   ::hBol[cTitulo,"DataDocumento"]      := "10/08/2010"
   ::hBol[cTitulo,"DataProcessamento"]  := "10/08/2010"
   ::hBol[cTitulo,"DataAbatimento"]     := "05/09/2010"
   ::hBol[cTitulo,"DataDesconto"]       := "07/09/2010"
   ::hBol[cTitulo,"DataMoraJuros"]      := "12/09/2010"
   ::hBol[cTitulo,"DiasDeProtesto"]     := "0"
   ::hBol[cTitulo,"DataProtesto"]       := "10/10/2010"
   ::hBol[cTitulo,"DataMulta"]          := "10/10/2010"
   ::hBol[cTitulo,"ValorAbatimento"]    := "5,00"
   ::hBol[cTitulo,"ValorDesconto"]      := "0,50"
   ::hBol[cTitulo,"ValorMoraJuros"]     := "0,55"
   ::hBol[cTitulo,"ValorIOF"]           := "3,50"
   ::hBol[cTitulo,"ValorOutrasDespesas"] := "2,50"
   ::hBol[cTitulo,"MultaValorFixo"]     := "0"
   ::hBol[cTitulo,"PercentualMulta"]    := "05,00"
   ::hBol[cTitulo,"LocalPagamento"]     := "Pagável em qualquer agência bancária mesmo após o vencimento"
   ::hBol[cTitulo,"Especie"]            := "DM"
   ::hBol[cTitulo,"EspecieMod"]         := "R$"
   ::hBol[cTitulo,"Sacado.NomeSacado"]  := "Sacado Teste"
   ::hBol[cTitulo,"Sacado.CNPJCPF"]     := "999.999.999.99"
   ::hBol[cTitulo,"Sacado.Pessoa"]      := "0"
   ::hBol[cTitulo,"Sacado.Logradouro"]  := "Rua Jose Rodrigues"
   ::hBol[cTitulo,"Sacado.Numero"]      := "100"
   ::hBol[cTitulo,"Sacado.Bairro"]      := "Jardim Moderno"
   ::hBol[cTitulo,"Sacado.Complemento"] := "Casa"
   ::hBol[cTitulo,"Sacado.Cidade"]      := "Tatui"
   ::hBol[cTitulo,"Sacado.UF"]          := "SP"
   ::hBol[cTitulo,"Sacado.CEP"]         := "18277.500"
   ::hBol[cTitulo,"Sacado.Email"]       := "teste@email.com"
   ::hBol[cTitulo,"Sacado.SacadoAvalista.NomeAvalista"] := "Nome do Avalista"
   ::hBol[cTitulo,"Sacado.SacadoAvalista.CNPJCPF"] := "9999999999"
   ::hBol[cTitulo,"Sacado.SacadoAvalista.Logradouro"] := "Rua das Flores"
   ::hBol[cTitulo,"Sacado.SacadoAvalista.Numero"] := "99"
   ::hBol[cTitulo,"Sacado.SacadoAvalista.Complemento"] := "Casa"
   ::hBol[cTitulo,"Sacado.SacadoAvalista.Bairro"] := "Centro"
   ::hBol[cTitulo,"Sacado.SacadoAvalista.Cidade"] := "Tatui"
   ::hBol[cTitulo,"Sacado.SacadoAvalista.UF"] := "SP"
   ::hBol[cTitulo,"Sacado.SacadoAvalista.CEP"] := "9999999"
   ::hBol[cTitulo,"Sacado.SacadoAvalista.Email"] := "teste@email.com"
   ::hBol[cTitulo,"Sacado.SacadoAvalista.Fone"] := "(99)999999999"
   ::hBol[cTitulo,"Sacado.SacadoAvalista.InscricaoNr"] := "9999999"
   ::hBol[cTitulo,"Mensagem"]   := "teste1|teste2"
   ::hBol[cTitulo,"Instrucao1"] := "10"
   ::hBol[cTitulo,"Instrucao2"] := "11"
   ::hBol[cTitulo,"Aceite"]     := "1"
   ::hBol[cTitulo,"OcorrenciaOriginal.TipoOcorrencia"] := "0"
   ::hBol[cTitulo,"Parcela"] := "1"
   ::hBol[cTitulo,"TotalParcelas"] := "1"
   ::hBol[cTitulo,"SeuNumero"] := "000020"
   ::hBol[cTitulo,"TipoDiasProtesto"] := "1"
   ::hBol[cTitulo,"TipoImpressao"] := "1"
   ::hBol[cTitulo,"CodigoMora"] := "1"
   ::hBol[cTitulo,"TipoDesconto"] := "0"
   ::hBol[cTitulo,"TipoDesconto2"] := "0"

Return nil


**============================================================
METHOD Create_Ini() CLASS TACBrBol
   Local oIni,oGrupo,oData

   If File(::cFileIni)
      FErase(::cFileIni)
   Endif

   //gera o arquivo ini para ler e gerar o boleto
   INI oIni FILE ::cFileIni
       For EAch oGrupo IN ::hBol
          For EAch oData IN oGrupo:Value
             SET SECTION oGrupo:Key ENTRY oData:Key TO Trim(oData:Value) OF oIni
          Next
       Next
   ENDINI
Return Nil

A classe ACBRBol e DLL vc poderá baixar fazendo o cadastro

Link to comment
Share on other sites

20 horas atrás, alex2002 disse:

Blza, vou olhar e qq coisa retorno.

Obrigado

Olá, correções!

O nome correto do método usado  para gerar PDF é  ::oBol:GerarPdf() -Faltou um "R"

e o 

Nome correto do Método ::oBol:GerarRemessa("c:\temp\",::cFileIni,"File.rem")

No exemplo tem um "R" a mais, e o 3º parâmetro é o nome do arquivo de remessa sem path. (Só Nome)

att

JMSilva

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...