Quintas (SefazClass)

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Quintas (SefazClass)

Mensagem por janio »

Quintas,

Preciso usar sua classe apenas para o evento de CANCELAMENTO da NFCe (METHOD NFeEventoCancela)

Eh possível? Quais as dependências? que prg's devo acrescentar ao meu projeto?
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Quintas (SefazClass)

Mensagem por JoséQuintas »

Precisa assinatura e comunicação.
Assinatura: CAPICOM.DLL e MSXML5.DLL

Se compilar a sefazclass como LIB, é só adicionar a LIB na compilação do aplicativo.
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
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Quintas (SefazClass)

Mensagem por janio »

dei aqui um hbmk2 sefaclass.hbp, nao deu erro nenhum mas tbm nao gerou a bli

algo a mais?

Código: Selecionar todos

C:\Users\Notebook\Downloads\sefazclass-master\sefazclass-master>hbmk2 sefazclass.hbp
Harbour 3.2.0dev (r1705200225)
Copyright (c) 1999-2016, http://harbour-project.org/
Compiling 'source\ze_sefazclass.prg'...
Lines 3066, Functions/Procedures 55
Generating C source output to 'C:\Users\Notebook\AppData\Local\Temp\hbmk_gentd3.dir\ze_sefazclass.c'... Done.
Compiling 'source\ze_sefazcapicom.prg'...
Lines 797, Functions/Procedures 3
Generating C source output to 'C:\Users\Notebook\AppData\Local\Temp\hbmk_gentd3.dir\ze_sefazcapicom.c'... Done.
Compiling 'source\ze_sefazAssina.prg'...
Lines 1275, Functions/Procedures 9
Generating C source output to 'C:\Users\Notebook\AppData\Local\Temp\hbmk_gentd3.dir\ze_sefazAssina.c'... Done.
Compiling 'source\ze_sefazAssinachk.prg'...
Lines 69, Functions/Procedures 1
Generating C source output to 'C:\Users\Notebook\AppData\Local\Temp\hbmk_gentd3.dir\ze_sefazAssinachk.c'... Done.
Compiling 'source\ze_sefazDaCte.prg'...
Lines 2845, Functions/Procedures 6
Generating C source output to 'C:\Users\Notebook\AppData\Local\Temp\hbmk_gentd3.dir\ze_sefazDaCte.c'... Done.
Compiling 'source\ze_sefazDaEvento.prg'...
Lines 2365, Functions/Procedures 8
Generating C source output to 'C:\Users\Notebook\AppData\Local\Temp\hbmk_gentd3.dir\ze_sefazDaEvento.c'... Done.
Compiling 'source\ze_sefazDaMdfe.prg'...
Lines 2191, Functions/Procedures 6
Generating C source output to 'C:\Users\Notebook\AppData\Local\Temp\hbmk_gentd3.dir\ze_sefazDaMdfe.c'... Done.
Compiling 'source\ze_sefazDaNfe.prg'...
Lines 2883, Functions/Procedures 24
Generating C source output to 'C:\Users\Notebook\AppData\Local\Temp\hbmk_gentd3.dir\ze_sefazDaNfe.c'... Done.
Compiling 'source\ze_sefazDaNFCe.prg'...
Lines 2820, Functions/Procedures 17
Generating C source output to 'C:\Users\Notebook\AppData\Local\Temp\hbmk_gentd3.dir\ze_sefazDaNFCe.c'... Done.
Compiling 'source\ze_sefazDadfe.prg'...
Lines 2112, Functions/Procedures 16
Generating C source output to 'C:\Users\Notebook\AppData\Local\Temp\hbmk_gentd3.dir\ze_sefazDadfe.c'... Done.
Compiling 'source\ze_sefazSoapList.prg'...
Lines 1270, Functions/Procedures 1
Generating C source output to 'C:\Users\Notebook\AppData\Local\Temp\hbmk_gentd3.dir\ze_sefazSoapList.c'... Done.
Compiling 'source\ze_sefazxmlclass.prg'...
Lines 2190, Functions/Procedures 33
Generating C source output to 'C:\Users\Notebook\AppData\Local\Temp\hbmk_gentd3.dir\ze_sefazxmlclass.c'... Done.
Compiling 'source\ze_xmlfunc.prg'...
Lines 343, Functions/Procedures 17
Generating C source output to 'C:\Users\Notebook\AppData\Local\Temp\hbmk_gentd3.dir\ze_xmlfunc.c'... Done.
Compiling 'source\ze_miscfunc.prg'...
Lines 34, Functions/Procedures 2
Generating C source output to 'C:\Users\Notebook\AppData\Local\Temp\hbmk_gentd3.dir\ze_miscfunc.c'... Done.
Compiling 'source\ze_xharbour.prg'...
Lines 40, Functions/Procedures 0
Generating C source output to 'C:\Users\Notebook\AppData\Local\Temp\hbmk_gentd3.dir\ze_xharbour.c'... Done.
Compiling 'source\ze_digitodoc.prg'...
Lines 271, Functions/Procedures 12
Generating C source output to 'C:\Users\Notebook\AppData\Local\Temp\hbmk_gentd3.dir\ze_digitodoc.c'... Done.
Compiling 'source\ze_extenso.prg'...
Lines 969, Functions/Procedures 11
Generating C source output to 'C:\Users\Notebook\AppData\Local\Temp\hbmk_gentd3.dir\ze_extenso.c'... Done.
Compiling 'source\ze_inscestadual.prg'...
Lines 879, Functions/Procedures 29
Generating C source output to 'C:\Users\Notebook\AppData\Local\Temp\hbmk_gentd3.dir\ze_inscestadual.c'... Done.
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Quintas (SefazClass)

Mensagem por JoséQuintas »

Como está a variável HB_INSTALL_PREFIX

Se estiver d:\harbour, vai gerar a lib em:

d:\Harbour\add-ons\sefazclass

Se não existir a variável, provavelmente criou em \addons
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

Quintas (SefazClass)

Mensagem por JoséQuintas »

Faltou dizer:
Depois de gerado em harbour\addons...
Quando quiser usar a LIB, será só adicionar sefazclass.hbc

Ou aparecerá nas dicas do HBMK2 pra adicionar, quando precisar... :)
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
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Quintas (SefazClass)

Mensagem por janio »

Ok. faltava defini a variavel HB_INSTALL_PREFIX. caminhando

No parametro certificado deve ser passado o "Numero de Serie do certificado", conforme imagem anexa?

Estou passando esse numero mas esta me retornando: "Erro assinatura: Certificado não encontrado ou vencido"

O certificado esta instalado na maquina e esta funcional
Anexos
CERTI.png
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Quintas (SefazClass)

Mensagem por JoséQuintas »

A Sefazclass trabalha com o nome do certificado, fica em CN=.
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
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Quintas (SefazClass)

Mensagem por janio »

Quintas,

Me tira so uma duvida, eh que sou meio brabo (burro) nessas coisas.

Quando um xml eh assinado, eh automaticamente acrescentado no seu final todos aqueles dados (caracteres) da assinatura? Ou isso eh opcional?

Estou olhando o seu codigo aqui e me parece que isso nao acontece.

Código: Selecionar todos

METHOD NFeEventoCancela( cChave, nSequencia, nProt, xJust, cCertificado, cAmbiente ) CLASS SefazClass

   hb_Default( @nSequencia, 1 )
   ::cNFCe := iif( DfeModFis( cChave ) == "65", "S", "N" )

   ::Setup( ::UFSigla( Substr( cChave, 1, 2 ) ), cCertificado, cAmbiente, WS_NFE_RECEPCAOEVENTO )

   ::cXmlDocumento := [<evento versao="] + WS_VERSAO_NFEEVENTO + [" ] + WS_XMLNS_NFE + [>]
   ::cXmlDocumento +=    [<infEvento Id="ID110111] + cChave + StrZero( nSequencia, 2 ) + [">]
   ::cXmlDocumento +=       XmlTag( "cOrgao", Substr( cChave, 1, 2 ) )
   ::cXmlDocumento +=       XmlTag( "tpAmb", ::cAmbiente )
   ::cXmlDocumento +=       XmlTag( "CNPJ", DfeEmitente( cChave ) )
   ::cXmlDocumento +=       XmlTag( "chNFe", cChave )
   ::cXmlDocumento +=       XmlTag( "dhEvento", ::DateTimeXml() )
   ::cXmlDocumento +=       XmlTag( "tpEvento", "110111" )
   ::cXmlDocumento +=       XmlTag( "nSeqEvento", Ltrim( Str( nSequencia, 4 ) ) )
   ::cXmlDocumento +=       XmlTag( "verEvento", WS_VERSAO_NFEEVENTO )
   ::cXmlDocumento +=       [<detEvento versao="] + WS_VERSAO_NFEEVENTO + [">]
   ::cXmlDocumento +=          XmlTag( "descEvento", "Cancelamento" )
   ::cXmlDocumento +=          XmlTag( "nProt", Ltrim( Str( nProt ) ) )
   ::cXmlDocumento +=          XmlTag( "xJust", xJust )
   ::cXmlDocumento +=       [</detEvento>]
   ::cXmlDocumento +=    [</infEvento>]
   ::cXmlDocumento += [</evento>]
   IF ::AssinaXml() == "OK"
      ::cXmlEnvio := [<envEvento versao="] + WS_VERSAO_NFEEVENTO + [" ] + WS_XMLNS_NFE + [>]
      ::cXmlEnvio +=    XmlTag( "idLote", DfeNumero( cChave ) ) // usado numero da nota
      ::cXmlEnvio +=    ::cXmlDocumento
      ::cXmlEnvio += [</envEvento>]
      ::XmlSoapPost()
      ::cXmlProtocolo := ::cXmlRetorno
      ::NFeGeraEventoAutorizado( ::cXmlDocumento, ::cXmlProtocolo )
   ENDIF

   RETURN ::cXmlRetorno
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Quintas (SefazClass)

Mensagem por JoséQuintas »

Não olhou direito o IF.

Código: Selecionar todos

IF ::AssinaXml() == "OK"
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

Quintas (SefazClass)

Mensagem por JoséQuintas »

E lembrando que como é classe, o ::XmlDocumento já vai estar disponível na rotina de assinatura, por isso não precisa passar em ::AssinaXml()
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

Quintas (SefazClass)

Mensagem por JoséQuintas »

No início da classe:

Código: Selecionar todos

   METHOD AssinaXml()  INLINE ::cXmlRetorno := CapicomAssinaXml( @::cXmlDocumento, ::cCertificado,,::cPassword )
Aquele ::AssinaXml() equivale a chamar a rotina de assinatura passando o documento por referência (pra ser alterado), e certificado (senha só se usar o PFX, mas não compensa)
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/
Responder