alex2002 Posted September 16, 2020 Report Share Posted September 16, 2020 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 Quote Link to comment Share on other sites More sharing options...
HERGON Posted September 16, 2020 Report Share Posted September 16, 2020 Bom dia amigo Tudo bem? Eu uso o ACBr para emissão e registro dos boletos. Ainda utilizando o monitor, mas já tem a dll que já tem posts aqui no fórum, talvez seja a melhor opção. Abraços Herberson Gontijo Quote Link to comment Share on other sites More sharing options...
alex2002 Posted September 16, 2020 Author Report Share Posted September 16, 2020 Obrigado Herberson. Será que alguém aqui no fórum usa com a DLL? Pq daí me enviava um exemplo. Um abraço, Alexandre Pereira Quote Link to comment Share on other sites More sharing options...
Jmsilva Posted September 18, 2020 Report Share Posted September 18, 2020 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. Quote Link to comment Share on other sites More sharing options...
alex2002 Posted September 19, 2020 Author Report Share Posted September 19, 2020 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 Quote Link to comment Share on other sites More sharing options...
Jmsilva Posted September 30, 2020 Report Share Posted September 30, 2020 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 Quote Link to comment Share on other sites More sharing options...
alex2002 Posted September 30, 2020 Author Report Share Posted September 30, 2020 Blza, vou olhar e qq coisa retorno. Obrigado Quote Link to comment Share on other sites More sharing options...
Jmsilva Posted October 1, 2020 Report Share Posted October 1, 2020 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 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.