Clipper On Line • Ver Tópico - Quintas (SefazClass)

Quintas (SefazClass)

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

Moderador: Moderadores

 

Quintas (SefazClass)

Mensagempor janio » 14 Mar 2018 16:44

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 de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Quintas (SefazClass)

Mensagempor JoséQuintas » 14 Mar 2018 18:13

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Quintas (SefazClass)

Mensagempor janio » 14 Mar 2018 18:48

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

algo a mais?

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 de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Quintas (SefazClass)

Mensagempor JoséQuintas » 14 Mar 2018 18:55

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Quintas (SefazClass)

Mensagempor JoséQuintas » 14 Mar 2018 18:59

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Quintas (SefazClass)

Mensagempor janio » 14 Mar 2018 19:26

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 de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Quintas (SefazClass)

Mensagempor JoséQuintas » 14 Mar 2018 21:06

A Sefazclass trabalha com o nome do certificado, fica em CN=.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Quintas (SefazClass)

Mensagempor janio » 14 Mar 2018 21:44

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.

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 de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Quintas (SefazClass)

Mensagempor JoséQuintas » 14 Mar 2018 21:49

Não olhou direito o IF.

IF ::AssinaXml() == "OK"
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Quintas (SefazClass)

Mensagempor JoséQuintas » 14 Mar 2018 21:50

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Quintas (SefazClass)

Mensagempor JoséQuintas » 14 Mar 2018 21:56

No início da classe:

   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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 16 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro