ACBr LIB
Moderador: Moderadores
ACBr LIB
O ACBr foi o pioneiro na questão de entregar a possibilidade de lidar com documentos fiscais eletrônicos em qualquer linguagem, mas se vc não usava Delphi ou Lazarus, tinha que usar o Monitor, que eu nunca simpatizei muito, porém, agora eles evoluíram, e vamos poder utilizar todo o potencial do ACBr através de DLL, dessa forma não vejo solução melhor que essa, visto a qualidade e extensão do projeto, além do principal, ter um suporte técnico a atualizações.
Segue link : https://www.projetoacbr.com.br/forum/to ... a-acbrlib/
Segue link : https://www.projetoacbr.com.br/forum/to ... a-acbrlib/
Marcelo Neves
https://produto.mercadolivre.com.br/MLB ... 0067609615
whatsapp (41) 99786-3995
http://harbourdeveloper.blogspot.com
marcelo.souza.das.neves@gmail.com
https://produto.mercadolivre.com.br/MLB ... 0067609615
whatsapp (41) 99786-3995
http://harbourdeveloper.blogspot.com
marcelo.souza.das.neves@gmail.com
- Nascimento
- Usuário Nível 4

- Mensagens: 763
- Registrado em: 19 Jul 2008 12:11
- Localização: OLINDA-PE
ACBr LIB
o bom que mais ainda tem vários exemplos de integração, um bom manual de uso explicando o uso das funções, changelog eMSDN escreveu : visto a qualidade e extensão do projeto, além do principal, ter um suporte técnico a atualizações
com muitas parcerias para atualizações, em fim
*
temos a classe do nosso amigo Quintas muito boa por sinal
mais no meu ponto de vista uma critica construtiva
*
não tem um changelog para verificar-nos as atualizações/alterações quando há alguma alteração temos que ler quase a classe inteira para entender-mos
há funções que podem até existir mais não sabemos
sei que sozinho é enorme o trabalho que ele faz
mais se ele "no meu ponto de vista" buscasse parcerias
para documentar as funções, pequenos exemplos de integração, envio por lote en fins
o quintas é o pai da criança e conhece sua classe muito bem "óbvio", mais nós meros mortais
ou lê a classe quase inteira ou uma boa parte, ou ir de post a post lendo , o que não é muito facil pois tem vários post
Ao meu ver a classe do nosso amigo quintas tem tudo para ser o Padrão harbour, mais ele sozinho torna-se o trabalho muito árduo , no que ele esta de Parabéns pela iniciativa
mais como diz o velho deitado "uma andorinha só não faz verão" até ja comentei isso aqui no forum, um passo bom seria democratizar, ver parceiros para documentar, criar exemplos
em fim
*
converso com alguns amigos aqui , que até tentaram usar a classe do amigo quintas, até chegaram a usar, mais devido a algumas coisas que ou faltavam , ou não achavam voltaram pra o acbr monitor , que tem horas que da uma dor de cabeça , mais como se diz, "quando não tem tu, vai tu mesmo" , en fim , tudo que citei é meu ponto de vista
abraços a todos..
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina
clipper 5.3 /harbour/minigui
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
ACBr LIB
Com certeza, o ACBR tem usuários do Brasil inteiro, que pegam todo tipo de variação que pode existir, principalmente com fiscalização entre UFs.Nascimento escreveu:converso com alguns amigos aqui , que até tentaram usar a classe do amigo quintas, até chegaram a usar, mais devido a algumas coisas que ou faltavam , ou não achavam voltaram pra o acbr monitor , que tem horas que da uma dor de cabeça , mais como se diz, "quando não tem tu, vai tu mesmo" , en fim , tudo que citei é meu ponto de vista
E também deve ter nota de serviço, que muitos devem precisar.
Na sefazclass:
O problema maior é quando usa XHarbour, para usar o CreateObject().
Eu não uso XHarbour, não tenho que aprender a fazer isso no XHarbour.
O usuário é que precisa saber qual o equivalente pra isso.
Mas de um modo geral, tá simples.
Considerei auto-explicativo, e sem necessidade de manual.
E o teste.prg tem tudo.
Quem tá acostumado com ACBR acha complicado... porque tá simples demais.
autorizar uma nota, considerando que não há problema nenhum:
Código: Selecionar todos
oSefaz := SefazClass():New()
hb_MemoWrit( "autorizado.xml", oSefaz:NfeLoteEnvia( cXml, cLote, cUF, cCertificado, cAmbiente ) )
Manual: enviar lote é no método NfeLoteEnvia(), enviar carta é no NfeEventoCarta(), etc. etc.
É só associar o nome do que se quer, ao nome que já existe.
Os parâmetros... estão lá junto ao nome.
Sobre o log de alterações: Estamos falando de GITHUB
Tem lá o link commits
que mostra as alterações
e podemos ver até o detalhe de cada alteração
exemplos:
No exemplo, procurei simplificar pra não ficar fonte extenso, tem esta parte padrão pra tudo, definindo o "ambiente" ao invés de passar por parâmetro:
Código: Selecionar todos
oSefaz := SefazClass():New()
oSefaz:cUF := aVarList[ VAR_UF ]
oSefaz:cVersao := aVarList[ VAR_VERSAO ]
oSefaz:cCertificado := aVarList[ VAR_CERTIFICADO ]
oSefaz:cAmbiente := aVarList[ VAR_AMBIENTE ]
oSefaz:cNFCE := aVarList[ VAR_NFCE ]
Código: Selecionar todos
CASE nOpc == OPC_ENVIO_TESTE
oSefaz:NfeLoteEnvia( [<NFe><infNFe Id="Nfe0001"></infNFe></NFe>] )
? oSefaz:cXmlRetorno
Inkey(0)
Código: Selecionar todos
CASE nOpc == OPC_ENVIO_USUARIO
cXml := MemoRead( win_GetOpenFileName(, "Arquivo a transmitir", ".\", "XML", "*.XML", 1 ) )
DO CASE
CASE "<infMDFe" $ cXml ; ? "autorizando CTE"; oSefaz:cVersao := "3.00"; oSefaz:CteLoteEnvia( cXml )
CASE "<infCTe" $ cXml ; ? "autorizando MDFE"; oSefaz:cVersao := "3.00"; oSefaz:MDFeLoteEnvia( cXml )
CASE "<infNFe" $ cXml ; ? "autorizando NFE"; oSefaz:NfeLoteEnvia( cXml )
OTHERWISE ; ? "Documento não reconhecido"
ENDCASE
? oSefaz:cXmlRetorno
hb_MemoWrit( "testeassinado.xml", oSefaz:cXmlDocumento )
hb_MemoWrit( "testeautorizado.xml", oSefaz:cXmlAutorizado )
Inkey(0)
Pra isso, é o manual da Fazenda, ou até mesmo uma nota já autorizada como modelo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
ACBr LIB
Concordo plenamente, quando eu não tinha conhecimento nenhum em NFC-e e NF-e, a coisa mais fácil de acontecer é misturar uma com a outra ( modelo 55 ) com ( modelo 65 ), ou achar que o mais dificil é a parte de enviar e receber para a SEFAZ, por isso que tem tanta empresa ganhando toneladas de dinheiro por ai, claro que existem algumas poucas que realmente criam o XML, mas são a minoria, no mais, seria aquela velha máxima, de a pessoa não conhecer algo que precisa usar e não se interessar em procurar saber como funciona, para ver que é simples.Como já repeti várias vezes, o problema maior não é a parte da Fazenda, é criar o XML com todos os detalhes.
Pra isso, é o manual da Fazenda, ou até mesmo uma nota já autorizada como modelo.
Marcelo Neves
https://produto.mercadolivre.com.br/MLB ... 0067609615
whatsapp (41) 99786-3995
http://harbourdeveloper.blogspot.com
marcelo.souza.das.neves@gmail.com
https://produto.mercadolivre.com.br/MLB ... 0067609615
whatsapp (41) 99786-3995
http://harbourdeveloper.blogspot.com
marcelo.souza.das.neves@gmail.com
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
ACBr LIB
Apenas como exemplo...
no xml é
<empresa>nome da empresa</empresa>
no ini é:
empresa=nome da empresa
no txt é:
02|nome da empresa|
Não é essa parte que é complicada, isso qualquer um faz fácil.
O complicado é... se a nota usa CST 60, ou CST 00, ou CST 10.... etc.
Ou quando é CST 60 manda poucas informações, mas CST 00 manda com base de cálculo, percentual, imposto, etc.
Às vezes o componente ajusta automático os erros nesse sentido, mas automático não significa certo, significa apenas que a nota vai estar preenchida pra ser autorizada, que pode ou não estar de acordo com a lei.
Exemplo: era pra colocar base de cálculo 100.00, imposto 5%, e valor 5.00...
Se o componente colocar zero em tudo, pode até ser autorizado porque os campos estão preenchidos, mas vai estar errado.
Também pode ser um erro simples: era pra colocar com 2 decimais, e mandando por INI ou TXT o componente faz o ajuste, mas por XML não faz.
Às vezes o usuário está com problemas nessa parte, e acha que o componente vai resolver tudo sozinho.
Ou acaba nem sabendo o que tava fazendo errado.
Mas voltando ao ACBR....
Por DLL vai ser muito mais fácil, porque deve acabar com a necessidade de arquivo em disco, igual a sefaz.
E se eles colocaram a parte de comunicação e assinatura junto, usando libcurl e openssl, pode dispensar o uso "pirata" de MSXML5.
Não vai aceitar certificado A3, mas acho que isso não chega a ser problema.
no xml é
<empresa>nome da empresa</empresa>
no ini é:
empresa=nome da empresa
no txt é:
02|nome da empresa|
Não é essa parte que é complicada, isso qualquer um faz fácil.
O complicado é... se a nota usa CST 60, ou CST 00, ou CST 10.... etc.
Ou quando é CST 60 manda poucas informações, mas CST 00 manda com base de cálculo, percentual, imposto, etc.
Às vezes o componente ajusta automático os erros nesse sentido, mas automático não significa certo, significa apenas que a nota vai estar preenchida pra ser autorizada, que pode ou não estar de acordo com a lei.
Exemplo: era pra colocar base de cálculo 100.00, imposto 5%, e valor 5.00...
Se o componente colocar zero em tudo, pode até ser autorizado porque os campos estão preenchidos, mas vai estar errado.
Também pode ser um erro simples: era pra colocar com 2 decimais, e mandando por INI ou TXT o componente faz o ajuste, mas por XML não faz.
Às vezes o usuário está com problemas nessa parte, e acha que o componente vai resolver tudo sozinho.
Ou acaba nem sabendo o que tava fazendo errado.
Mas voltando ao ACBR....
Por DLL vai ser muito mais fácil, porque deve acabar com a necessidade de arquivo em disco, igual a sefaz.
E se eles colocaram a parte de comunicação e assinatura junto, usando libcurl e openssl, pode dispensar o uso "pirata" de MSXML5.
Não vai aceitar certificado A3, mas acho que isso não chega a ser problema.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
ACBr LIB
Detalhe importante:
Provavelmente depois só pagando.
Provavelmente depois só pagando.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
ACBr LIB
A versão compilada sim. É como o executável, que é atualizado a cada 3 meses, ou quando tem alteração muito importante. O código será aberto também, pode baixar os fontes e compilar.JoséQuintas escreveu:Provavelmente depois só pagando.
Para os assinantes do SAC, o executável é compilado a cada semana (ou antes) se houver atualização.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
ACBr LIB
https://www.projetoacbr.com.br/
Vale muito a pena, e lembrando que o programador que iniciou o ACBr, o Daniel Simões, era Clippeiro que depois foi para o xHarbour e em seguida iniciou o projeto em Pascal.
Vale muito a pena, e lembrando que o programador que iniciou o ACBr, o Daniel Simões, era Clippeiro que depois foi para o xHarbour e em seguida iniciou o projeto em Pascal.
Marcelo Neves
https://produto.mercadolivre.com.br/MLB ... 0067609615
whatsapp (41) 99786-3995
http://harbourdeveloper.blogspot.com
marcelo.souza.das.neves@gmail.com
https://produto.mercadolivre.com.br/MLB ... 0067609615
whatsapp (41) 99786-3995
http://harbourdeveloper.blogspot.com
marcelo.souza.das.neves@gmail.com
ACBr LIB
No SVN já tem acesso as classes criadas pra Harbour pra Boleto, SAT e NFe/NFCe
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
ACBr LIB
Pois é... tá aí...fladimir escreveu:No SVN já tem acesso as classes criadas pra Harbour pra Boleto, SAT e NFe/NFCe
Se tem até boleto, vão acabar usando o ACBR pra isso.
E se usar o ACBR pra uma coisa, nada impede de usar pra tudo.
Tomara que não fique dependendo de arquivo em disco, senão perde a vantagem de ser DLL.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
ACBr LIB
Vixe... continua dependendo de disco.
Um dos parâmetros é nome de arquivo.
E pelo jeito, no VB6, fica integrado com "manual" na IDE.
Não achei a DLL pra download.
No VB6 ela deve ficar instantânea pra entender como usar.
Código: Selecionar todos
Attribute VB_Name = "ACBrNFeUtils"
Option Explicit
Public Function CreateNFe(Optional ByVal eArqConfig As String = "", _
Optional ByVal eChaveCrypt As String = "") As ACBrNFe
Dim nfe As ACBrNFe
Set nfe = New ACBrNFe
nfe.InicializarLib eArqConfig, eChaveCrypt
Set CreateNFe = nfe
End Function
E pelo jeito, no VB6, fica integrado com "manual" na IDE.
Não achei a DLL pra download.
No VB6 ela deve ficar instantânea pra entender como usar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
ACBr LIB
Detalhe sobre isso:
Quando se fala de arquivo XML pra mandar pra Fazenda... não significa que é enviado o arquivo, que precisa existir no disco.
do jeito que fizeram a DLL, vai ter que ser assim: (apenas exemplo)
Se for só mudança pra DLL, sem modificar o comportamento interno... não vai estar no potencial máximo que poderia ser.
Quando se fala de arquivo XML pra mandar pra Fazenda... não significa que é enviado o arquivo, que precisa existir no disco.
Código: Selecionar todos
cXml := "<nota>xxxx</nota>"
oSefaz:NfeLoteEnvia( cXml )
Código: Selecionar todos
cXml := "<nota>xxxx</nota>"
hb_MemoWrit( "arquivo.xml", cXml )
ACBR.SendArquivo( "arquivo.xml" )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
Fernando queiroz
- Usuário Nível 4

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
ACBr LIB
Uso a SEFAZCLASS , inclusive já fiz alterações nela para ajustes junto com o Quintas, hoje acho super simples usar,
o lance é saber criar os XML na unha, de resto fica super simples, não usa arquivo em disco , gero diretamente na memoria, se estiver tudo ok
ai sim gravo o retorno com a autorização em disco, gero o PDF diretamente do XML em memoria.
)
)
)
o lance é saber criar os XML na unha, de resto fica super simples, não usa arquivo em disco , gero diretamente na memoria, se estiver tudo ok
ai sim gravo o retorno com a autorização em disco, gero o PDF diretamente do XML em memoria.
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
