ACBr LIB

Fórum sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (NFe, NFCe, NFSe, SPEED, Projeto ACBr, TEF, ECD, EFD, etc.)

Moderador: Moderadores

MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

ACBr LIB

Mensagem por MSDN »

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/
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

ACBr LIB

Mensagem por sygecom »

Parece bem promissor mesmo, no começo usei o AcbrMonitor, agora não mais.

Com tempo vou estudar se vale a pena integrar com a DLL.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

ACBr LIB

Mensagem por Nascimento »

MSDN escreveu : visto a qualidade e extensão do projeto, além do principal, ter um suporte técnico a atualizações
o bom que mais ainda tem vários exemplos de integração, um bom manual de uso explicando o uso das funções, changelog e
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
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

ACBr LIB

Mensagem por JoséQuintas »

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
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.
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 ) )
pronto, tá feito.

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
sefaz1.png
que mostra as alterações
sefaz2.png
e podemos ver até o detalhe de cada alteração
sefaz3.png
exemplos:
sefaz4.png
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 ]
e esta parte de envio, com um XML fake - apenas o XML menor possível que pode ser transmitido

Código: Selecionar todos

      CASE nOpc == OPC_ENVIO_TESTE
         oSefaz:NfeLoteEnvia( [<NFe><infNFe Id="Nfe0001"></infNFe></NFe>] )
         ? oSefaz:cXmlRetorno
         Inkey(0)
ou outra escolhendo do disco, pra transmitir NFE, CTE ou MDFE.

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)
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.
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/
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

ACBr LIB

Mensagem por MSDN »

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.
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.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

ACBr LIB

Mensagem por JoséQuintas »

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.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

ACBr LIB

Mensagem por JoséQuintas »

Detalhe importante:
acbrlib.png
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/
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

ACBr LIB

Mensagem por Jairo Maia »

JoséQuintas escreveu:Provavelmente depois só pagando.
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.

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)
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

ACBr LIB

Mensagem por MSDN »

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.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

ACBr LIB

Mensagem por fladimir »

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.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

ACBr LIB

Mensagem por JoséQuintas »

fladimir escreveu:No SVN já tem acesso as classes criadas pra Harbour pra Boleto, SAT e NFe/NFCe
Pois é... tá aí...
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

ACBr LIB

Mensagem por JoséQuintas »

Vixe... continua dependendo de disco.

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
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.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

ACBr LIB

Mensagem por JoséQuintas »

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.

Código: Selecionar todos

cXml := "<nota>xxxx</nota>"
oSefaz:NfeLoteEnvia( cXml )
do jeito que fizeram a DLL, vai ter que ser assim: (apenas exemplo)

Código: Selecionar todos

cXml := "<nota>xxxx</nota>"
hb_MemoWrit( "arquivo.xml", cXml )
ACBR.SendArquivo( "arquivo.xml" )
Se for só mudança pra DLL, sem modificar o comportamento interno... não vai estar no potencial máximo que poderia ser.
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/
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

ACBr LIB

Mensagem por Fernando queiroz »

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.

:)) :)) :))
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

ACBr LIB

Mensagem por sygecom »

Nesse projeto da ACBR LIB, me interessou foi a parte de boleto de cobrança, acredito que já tem bastante banco e carteiras.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder