Página 1 de 4

hbNFe commits

Enviado: 31 Ago 2011 16:03
por athayde
Acabei de commitar
- Opção para envio de email usando CDOSYS

[]s
Fernando

hbNFe commits

Enviado: 31 Ago 2011 21:26
por athayde
Commit 31/08 21:23
- Help novo
- Correção cabeçalho dos produtos NFe
- Mapeado WS de SP,PR,RS

[]s
Fernando

hbNFe commits

Enviado: 01 Set 2011 00:12
por athayde
Commit 01/09 00:10
- Atualizado Ini acbr para XML
Testado com 25 modelos de entnfe.txt

[]s
Fernando

hbNFe commits

Enviado: 01 Set 2011 08:42
por athayde
Commit 01/09 08:43
- Mudança no teste.ini // para ajudar o pessoal nos testes
[Principais]
cPastaSchemas=Schemas // pasta dos schemas
cSerialCert=41CCD63AFA9EE2C13052D0CAC539965D // numero de serie certificado
cUFWS=35 // uf do web service
tpAmb=2 // tipo de ambiente 1 producao 2 homologação
versaoDados=2.00 // versao dos dados da nfe somente suportada 2.00 (atual)
cUF=35 // uf da empresa 35= sp 41=pr 43=rs,...
cMun=3537305 // codigo do municipio da empresa (ibge)
tpImp=1 // tipo de impressao 1 retrato 2 paisagem
versaoSistema=2.00 // versao do sistema

[Envio]
cXMLFileAssinado=35110852009693000187550010000068570000068573-nfe.xml
idLote=2
tpEmis=1 // tipo de emissao 1 normal 2 scan 3 fs 4 depec 5 fs-da

[Retorno]
nRecibo=351000053128137 // numero do recido do envio

[Consulta]
cChaveNFe=35110713514106000155550010000000341000000344

[Cadastro]
xUF=SP
CNPJ=11072432000124 // cnpj da empresa que quer consultar o cadastro

[Assinatura]
cXMLFileSemAssinatura=35110304806552000142550010000000011000000014-NFe_s_ass.xml //xml para ser assinado

[Cancelamento]
cChaveNfeCanc=35110110418360000161550010000000040000000042
nProtCanc=135110000218884
xJustificativa=teste 123456 bla bla

[Danfe]
cXMLFileDanfe=35110852009693000187550010000068570000068573-nfe.xml

[IniToXML]
cIniAcbr=nfe43.nft //arquivo texto com os dados do criarnfe do acbr

[Email]
email_assunto=teste
email_txt=teste
email_html=
email_smtp=smtp.gmail.com
email_from=Nome <email@gmail.com>
email_usuario=usuario
email_senha=senha
email_porta=465
email_confirmacao=.F.
email_SSL=.T.
email_aut=.T.
ArquivoEmail=teste.xml // arquivo para anexar

[]s
Fernando

hbNFe commits

Enviado: 01 Set 2011 13:24
por athayde
Commit 01/09 13:15
- mapeado das tags de icms cst e csosn para gerar o xml

[]s
Fernando

hbNFe commits

Enviado: 01 Set 2011 16:28
por sygecom
Parabéns Fernando, estou baixando todos os commits aqui.... sábado em diante vou meter isso em testes...

hbNFe commits

Enviado: 01 Set 2011 17:22
por rossine
Boa tarde Fernando,

Primeiramente, parabéns pelo projeto :D

Eu atualizei o svn aqui e compilei com o harbour 3.0 sem problemas. Precisando, estamos aí ok ?

Sobre isto :
> Commit 31/08 21:23
> - Help novo
> - Correção cabeçalho dos produtos NFe
> - Mapeado WS de SP,PR,RS

Muda algo para MG ?

Obrigado mais uma vez,

Rossine.

hbNFe commits

Enviado: 01 Set 2011 20:44
por athayde
é só mapear os webservices de mg na funcao getURLWS e me passar que commito aqui

[]s
Fernando

hbNFe commits

Enviado: 01 Set 2011 22:13
por athayde
Commit 01/09 22:10
- colocado protNFe no retorno do envio e consulta, verifiquem se da erro

hbNFe commits

Enviado: 02 Set 2011 09:52
por rossine
Bom dia Fernando,

Segue abaixo as mudanças para Minas Gerais. Por favor confira se está tudo ok.

Código: Selecionar todos


  ELSEIF cUF == "31" // MG
     IF tpAmb == '1' // Produção
        IF cServico == 'status'           ; cUrlWS = "https://nfe.fazenda.mg.gov.br/nfe2/services/NfeStatus2"
        ELSEIF cServico == 'consulta'     ; cUrlWS = "https://nfe.fazenda.mg.gov.br/nfe2/services/NfeConsulta2"
        ELSEIF cServico == 'envio'
           IF tpEmis $ '123' // Normal / Contingencia FS / Contingencia SCAN
              cUrlWS = "https://nfe.fazenda.mg.gov.br/nfe2/services/NfeRecepcao2"
           ELSEIF tpEmis = '4' // Contingencia DPEC
           ELSEIF tpEmis = '5' // Contingencia FS-DA
           ENDIF
        ELSEIF cServico == 'recepcao'     ; cUrlWS = "https://nfe.fazenda.mg.gov.br/nfe2/services/NfeRetRecepcao2"
        ELSEIF cServico == 'cancelamento' ; cUrlWS = "https://nfe.fazenda.mg.gov.br/nfe2/services/NfeCancelamento2"
        ELSEIF cServico == 'inutilizacao' ; cUrlWS = "https://nfe.fazenda.mg.gov.br/nfe2/services/NfeInutilizacao2"
        ELSEIF cServico == 'cadastro'     ; cUrlWS = "https://nfe.fazenda.mg.gov.br/nfe2/services/cadconsultacadastro2"
        ENDIF
     ELSEIF tpAmb == '2' // Homologação
        IF cServico == 'status'           ; cUrlWS = "https://hnfe.fazenda.mg.gov.br/nfe2/services/NfeStatus2"
        ELSEIF cServico == 'consulta'     ; cUrlWS = "https://hnfe.fazenda.mg.gov.br/nfe2/services/NfeConsulta2"
        ELSEIF cServico == 'envio'
           IF tpEmis $ '123' // Normal / Contingencia FS / Contingencia SCAN
              cUrlWS = "https://hnfe.fazenda.mg.gov.br/nfe2/services/NfeRecepcao2"
           ELSEIF tpEmis = '4' // Contingencia DPEC
           ELSEIF tpEmis = '5' // Contingencia FS-DA
           ENDIF
        ELSEIF cServico == 'recepcao'     ; cUrlWS = "https://hnfe.fazenda.mg.gov.br/nfe2/services/NfeRetRecepcao2"
        ELSEIF cServico == 'cancelamento' ; cUrlWS = "https://hnfe.fazenda.mg.gov.br/nfe2/services/NfeCancelamento2"
        ELSEIF cServico == 'inutilizacao' ; cUrlWS = "https://hnfe.fazenda.mg.gov.br/nfe2/services/NfeInutilizacao2"
        ELSEIF cServico == 'cadastro'     ; cUrlWS = "https://hnfe.fazenda.mg.gov.br/nfe2/services/cadconsultacadastro2"
        ENDIF
     ENDIF
  ENDIF

/*
Web Services da NF-e - Ambiente de Homologação:

Versão 2.0
* NfeRecepcao2 - https://hnfe.fazenda.mg.gov.br/nfe2/services/NfeRecepcao2
* NfeRetRecepcao2 - https://hnfe.fazenda.mg.gov.br/nfe2/services/NfeRetRecepcao2
* NfeCancelamento2 - https://hnfe.fazenda.mg.gov.br/nfe2/services/NfeCancelamento2
* NfeInutilizacao2 - https://hnfe.fazenda.mg.gov.br/nfe2/services/NfeInutilizacao2
* NfeConsulta2 - https://hnfe.fazenda.mg.gov.br/nfe2/services/NfeConsulta2
* NfeStatusServico2 - https://hnfe.fazenda.mg.gov.br/nfe2/services/NfeStatus2
* NfeConsultaCadastro2 - https://hnfe.fazenda.mg.gov.br/nfe2/services/cadconsultacadastro2
* NfeRecepcaoEvento - https://hnfe.fazenda.mg.gov.br/nfe2/services/NfeRecepcaoEvento


Web Services da NF-e - Ambiente de Produção:

Versão 2.00
* NfeRecepcao: https://nfe.fazenda.mg.gov.br/nfe2/services/NfeRecepcao2
* NfeRetRecepcao: https://nfe.fazenda.mg.gov.br/nfe2/services/NfeRetRecepcao2
* NfeCancelamento: https://nfe.fazenda.mg.gov.br/nfe2/services/NfeCancelamento2
* NfeInutilizacao: https://nfe.fazenda.mg.gov.br/nfe2/services/NfeInutilizacao2
* NfeConsultaProtocolo: https://nfe.fazenda.mg.gov.br/nfe2/services/NfeConsulta2
* NfeStatusServico: https://nfe.fazenda.mg.gov.br/nfe2/services/NfeStatus2
* NfeConsultaCadastro: https://nfe.fazenda.mg.gov.br/nfe2/services/cadconsultacadastro2
* NfeRecepcaoEvento: https://nfe.fazenda.mg.gov.br/nfe2/services/NfeRecepcaoEvento
*/
Informações extraidas destes sites:

http://portalnfe.fazenda.mg.gov.br/web_services.html
http://hom.nfe.fazenda.gov.br/portal/We ... es.aspx#MG

Obrigado,

Rossine.

hbNFe commits

Enviado: 02 Set 2011 11:40
por andersoncamilo
Bom dia Fernando

Segue abaixo as mudanças para os estados que utilizam a SVRS - Sefaz Virtual do RS: AC, AL, AM, AP, DF, MS, PB, RJ, RO, RR, SC, SE, TO
Não encontrei o endereço do webservice para consulta de cadastro, o mesmo ficou em branco.

Código: Selecionar todos

  ELSEIF cUF == "12" .OR. ; // AC
         cUF == "27" .OR. ; // AL
         cUF == "13" .OR. ; // AM		 
         cUF == "16" .OR. ; // AP
         cUF == "53" .OR. ; // DF
         cUF == "50" .OR. ; // MS
         cUF == "25" .OR. ; // PB
         cUF == "33" .OR. ; // RJ
         cUF == "11" .OR. ; // RO
         cUF == "14" .OR. ; // RR
         cUF == "42" .OR. ; // SC
         cUF == "28" .OR. ; // SE
         cUF == "17"           // TO
		 
     IF tpAmb == '1' // Produção
        IF cServico == 'status'           ; cUrlWS = "https://nfe.sefazvirtual.rs.gov.br/ws/NfeStatusServico/NfeStatusServico2.asmx"
        ELSEIF cServico == 'consulta'     ; cUrlWS = "https://nfe.sefazvirtual.rs.gov.br/ws/NfeConsulta/NfeConsulta2.asmx"
        ELSEIF cServico == 'envio'
           IF tpEmis $ '123' // Normal / Contingencia FS / Contingencia SCAN
              cUrlWS = "https://nfe.sefazvirtual.rs.gov.br/ws/Nferecepcao/NFeRecepcao2.asmx"
           ELSEIF tpEmis = '4' // Contingencia DPEC
           ELSEIF tpEmis = '5' // Contingencia FS-DA
           ENDIF
        ELSEIF cServico == 'recepcao'     ; cUrlWS = "https://nfe.sefazvirtual.rs.gov.br/ws/NfeRetRecepcao/NfeRetRecepcao2.asmx"
        ELSEIF cServico == 'cancelamento' ; cUrlWS = "https://nfe.sefazvirtual.rs.gov.br/ws/NfeCancelamento/NfeCancelamento2.asmx"
        ELSEIF cServico == 'inutilizacao' ; cUrlWS = "https://nfe.sefazvirtual.rs.gov.br/ws/nfeinutilizacao/nfeinutilizacao2.asmx"
        ELSEIF cServico == 'cadastro'     ; cUrlWS = ""
        ENDIF
     ELSEIF tpAmb == '2' // Homologação
        IF cServico == 'status'           ; cUrlWS = "https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/NfeStatusServico/NfeStatusServico2.asmx"
        ELSEIF cServico == 'consulta'     ; cUrlWS = "https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/NfeConsulta/NfeConsulta2.asmx"
        ELSEIF cServico == 'envio'
           IF tpEmis $ '123' // Normal / Contingencia FS / Contingencia SCAN
              cUrlWS = "https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/Nferecepcao/NFeRecepcao2.asmx"
           ELSEIF tpEmis = '4' // Contingencia DPEC
           ELSEIF tpEmis = '5' // Contingencia FS-DA
           ENDIF
        ELSEIF cServico == 'recepcao'     ; cUrlWS = "https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/NfeRetRecepcao/NfeRetRecepcao2.asmx"
        ELSEIF cServico == 'cancelamento' ; cUrlWS = "https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/NfeCancelamento/NfeCancelamento2.asmx"
        ELSEIF cServico == 'inutilizacao' ; cUrlWS = "https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/nfeinutilizacao/nfeinutilizacao2.asmx"
        ELSEIF cServico == 'cadastro'     ; cUrlWS = ""
        ENDIF
     ENDIF
  ENDIF
 
/*
* Sefaz Virtual Rio Grande do Sul - (SVRS) 
*Estados que utilizam a SVRS - Sefaz Virtual do RS: AC, AL, AM, AP, DF, MS, PB, RJ, RO, RR, SC, SE, TO

*Versão 2.0

*Web Services da NF-e - Ambiente de Produção:

*NfeRecepcao	      https://nfe.sefazvirtual.rs.gov.br/ws/Nferecepcao/NFeRecepcao2.asmx
*NfeRetRecepcao	      https://nfe.sefazvirtual.rs.gov.br/ws/NfeRetRecepcao/NfeRetRecepcao2.asmx
*NfeCancelamento	  https://nfe.sefazvirtual.rs.gov.br/ws/NfeCancelamento/NfeCancelamento2.asmx
*NfeInutilizacao	  https://nfe.sefazvirtual.rs.gov.br/ws/nfeinutilizacao/nfeinutilizacao2.asmx
*NfeConsultaProtocolo https://nfe.sefazvirtual.rs.gov.br/ws/NfeConsulta/NfeConsulta2.asmx
*NfeStatusServico     https://nfe.sefazvirtual.rs.gov.br/ws/NfeStatusServico/NfeStatusServico2.asmx
*RecepcaoEvento       https://nfe.sefazvirtual.rs.gov.br/ws/recepcaoevento/recepcaoevento.asmx

*Web Services da NF-e - Ambiente de Homologação  
 
*NfeRecepcao	      https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/Nferecepcao/NFeRecepcao2.asmx
*NfeRetRecepcao	      https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/NfeRetRecepcao/NfeRetRecepcao2.asmx
*NfeCancelamento	  https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/NfeCancelamento/NfeCancelamento2.asmx
*NfeInutilizacao	  https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/nfeinutilizacao/nfeinutilizacao2.asmx
*NfeConsultaProtocolo https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/NfeConsulta/NfeConsulta2.asmx
*NfeStatusServico     https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/NfeStatusServico/NfeStatusServico2.asmx
*RecepcaoEvento       https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/recepcaoevento/recepcaoevento.asmx
 

* Informações extraidas destes sites:
* http://hom.nfe.fazenda.gov.br/portal/WebServices.aspx
* http://www.nfe.fazenda.gov.br/PORTAL/WebServices.aspx
*/

Parabéns pela iniciativa.

Anderson Camilo

hbNFe commits

Enviado: 02 Set 2011 14:53
por athayde
Commit 02/09 14:50
- Mapeado WS de MG e os que usam do RS
- alteração do codigo getURLWS mais limpo
- definição de diversas variaveis

[]s
Fernando

hbNFe commits

Enviado: 02 Set 2011 15:42
por andersoncamilo
Fernando

Boa tarde

Seguem os endereços para o estado do Mato Grosso.

Código: Selecionar todos

  ELSEIF cUF == "51"  // MT
		 
     IF tpAmb == '1' // Produção
        IF cServico == 'status'           ; cUrlWS = "https://nfe.sefaz.mt.gov.br/nfews/v2/services/NfeStatusServico2?wsdl"
        ELSEIF cServico == 'consulta'     ; cUrlWS = "https://nfe.sefaz.mt.gov.br/nfews/v2/services/NfeConsulta2?wsdl"
        ELSEIF cServico == 'envio'
           IF tpEmis $ '123' // Normal / Contingencia FS / Contingencia SCAN
              cUrlWS = "https://nfe.sefaz.mt.gov.br/nfews/v2/services/NfeRetRecepcao2?wsdl"
           ELSEIF tpEmis = '4' // Contingencia DPEC
           ELSEIF tpEmis = '5' // Contingencia FS-DA
           ENDIF
        ELSEIF cServico == 'recepcao'     ; cUrlWS = "https://nfe.sefaz.mt.gov.br/nfews/v2/services/NfeRetRecepcao2?wsdl"
        ELSEIF cServico == 'cancelamento' ; cUrlWS = "https://nfe.sefaz.mt.gov.br/nfews/v2/services/NfeCancelamento2?wsdl"
        ELSEIF cServico == 'inutilizacao' ; cUrlWS = "https://nfe.sefaz.mt.gov.br/nfews/v2/services/NfeInutilizacao2?wsdl"
        ELSEIF cServico == 'cadastro'     ; cUrlWS = "https://nfe.sefaz.mt.gov.br/nfews/CadConsultaCadastro"
        ENDIF
     ELSEIF tpAmb == '2' // Homologação
        IF cServico == 'status'           ; cUrlWS = "https://homologacao.sefaz.mt.gov.br/nfews/v2/services/NfeStatusServico2?wsdl"
        ELSEIF cServico == 'consulta'     ; cUrlWS = "https://homologacao.sefaz.mt.gov.br/nfews/v2/services/NfeConsulta2?wsdl"
        ELSEIF cServico == 'envio'
           IF tpEmis $ '123' // Normal / Contingencia FS / Contingencia SCAN
              cUrlWS = "https://homologacao.sefaz.mt.gov.br/nfews/v2/services/NfeRecepcao2?wsdl"
           ELSEIF tpEmis = '4' // Contingencia DPEC
           ELSEIF tpEmis = '5' // Contingencia FS-DA
           ENDIF
        ELSEIF cServico == 'recepcao'     ; cUrlWS = "https://homologacao.sefaz.mt.gov.br/nfews/v2/services/NfeRetRecepcao2?wsdl"
        ELSEIF cServico == 'cancelamento' ; cUrlWS = "https://homologacao.sefaz.mt.gov.br/nfews/v2/services/NfeCancelamento2?wsdl"
        ELSEIF cServico == 'inutilizacao' ; cUrlWS = "https://homologacao.sefaz.mt.gov.br/nfews/v2/services/NfeInutilizacao2?wsdl"
        ELSEIF cServico == 'cadastro'     ; cUrlWS = ""
        ENDIF
     ENDIF
  ENDIF
 
/*

* Sefaz Mato Grosso - (MT) Serviço	Versão	URL
* Versão 2.0

* Web Services da NF-e - Ambiente de Produção:

* NfeRecepcao           https://nfe.sefaz.mt.gov.br/nfews/v2/services/NfeRecepcao2?wsdl
* NfeRetRecepcao        https://nfe.sefaz.mt.gov.br/nfews/v2/services/NfeRetRecepcao2?wsdl
* NfeCancelamento       https://nfe.sefaz.mt.gov.br/nfews/v2/services/NfeCancelamento2?wsdl
* NfeInutilizacao       https://nfe.sefaz.mt.gov.br/nfews/v2/services/NfeInutilizacao2?wsdl
* NfeConsultaProtocolo  https://nfe.sefaz.mt.gov.br/nfews/v2/services/NfeConsulta2?wsdl
* NfeStatusServico      https://nfe.sefaz.mt.gov.br/nfews/v2/services/NfeStatusServico2?wsdl
* NfeConsultaCadastro   https://nfe.sefaz.mt.gov.br/nfews/CadConsultaCadastro
* RecepcaoEvento        https://nfe.sefaz.mt.gov.br/nfews/v2/services/RecepcaoEvento?wsdl

* Web Services da NF-e - Ambiente de Homologação  
 
* NfeRecepcao           https://homologacao.sefaz.mt.gov.br/nfews/v2/services/NfeRecepcao2?wsdl
* NfeRetRecepcao        https://homologacao.sefaz.mt.gov.br/nfews/v2/services/NfeRetRecepcao2?wsdl
* NfeCancelamento       https://homologacao.sefaz.mt.gov.br/nfews/v2/services/NfeCancelamento2?wsdl
* NfeInutilizacao       https://homologacao.sefaz.mt.gov.br/nfews/v2/services/NfeInutilizacao2?wsdl
* NfeConsultaProtocolo  https://homologacao.sefaz.mt.gov.br/nfews/v2/services/NfeConsulta2?wsdl
* NfeStatusServico      https://homologacao.sefaz.mt.gov.br/nfews/v2/services/NfeStatusServico2?wsdl
* RecepcaoEvento        https://homologacao.sefaz.mt.gov.br/nfews/v2/services/RecepcaoEvento?wsdl

* Informações extraidas destes sites:
* http://hom.nfe.fazenda.gov.br/portal/WebServices.aspx
* http://www.nfe.fazenda.gov.br/PORTAL/WebServices.aspx
*/

Ps: Se tiver mais algum estado que precise ser feito é so avisar.


Anderson Camilo

hbNFe commits

Enviado: 03 Set 2011 10:42
por rossine
Bom dia,

Baseado no exemplo feito para hwgui montei um exemplo "Inicial" em minigui.

Código: Selecionar todos


#include "common.ch"
#include "hbclass.ch"
#include "hbwin.ch"
#include "harupdf.ch"
#include "hbzebra.ch"
#include "hbcompat.ch"
#Include "minigui.ch"

declare window Thisform

FUNCTION testenfe_minigui( ... )
 RETURN _testenfe_minigui( HB_AParams() )

FUNCTION _testenfe_minigui(  )

LOCAL aRetorno, cRetorno, nI, cCaminho
LOCAL  oFuncoes := hbNFeFuncoes(),;
      nOption
LOCAL      hIniData, cPastaSchemas, cSerialCert, cUFWS, tpAmb, versaoDados, cUF, cMun,;
      tpImp, versaoSistema, cXMLFileAssinado, idLote, tpEmis, nRecibo, cChaveNFe,;
      xUF, CNPJ, cXMLFileSemAssinatura, cChaveNfeCanc, nProtCanc, xJustificativa,;
      cXMLFileDanfe, cIniAcbr, ArquivoEmail
PRIVATE vRichedit1
PUBLIC oNfe

   SET DATE TO BRIT
   SET CENTURY ON
   REQUEST HB_CODEPAGE_PT850 &&& PARA INDEXAR CAMPOS ACENTUADOS
   HB_SETCODEPAGE("PT850")   &&& PARA INDEXAR CAMPOS ACENTUADOS

   hIniData := HB_ReadIni( "teste.ini" )
   cPastaSchemas=hIniData['Principais']['cPastaSchemas']
   cSerialCert=hIniData['Principais']['cSerialCert']
   cUFWS=hIniData['Principais']['cUFWS']
   tpAmb=hIniData['Principais']['tpAmb']
   versaoDados=hIniData['Principais']['versaoDados']
   cUF=hIniData['Principais']['cUF']
   cMun=hIniData['Principais']['cMun']
   tpImp=hIniData['Principais']['tpImp']
   versaoSistema=hIniData['Principais']['versaoSistema']

   cXMLFileAssinado=hIniData['Envio']['cXMLFileAssinado']
   idLote=hIniData['Envio']['idLote']
   tpEmis=hIniData['Envio']['tpEmis']

   nRecibo=hIniData['Retorno']['nRecibo']

   cChaveNFe=hIniData['Consulta']['cChaveNFe']

   xUF=hIniData['Cadastro']['xUF']
   CNPJ=hIniData['Cadastro']['CNPJ']

   cXMLFileSemAssinatura=hIniData['Assinatura']['cXMLFileSemAssinatura']

   cChaveNfeCanc=hIniData['Cancelamento']['cChaveNfeCanc']
   nProtCanc=hIniData['Cancelamento']['nProtCanc']
   xJustificativa=hIniData['Cancelamento']['xJustificativa']

   cXMLFileDanfe=hIniData['Danfe']['cXMLFileDanfe']

   cIniAcbr=hIniData['IniToXML']['cIniAcbr']

   ArquivoEmail=hIniData['Email']['ArquivoEmail']


   oNfe := hbNfe()
   oNfe:cPastaSchemas := cPastaSchemas
   oNFe:cSerialCert := cSerialCert
   oNFe:cUFWS := cUFWS // UF WebService
   oNFe:tpAmb := tpAmb // Tipo de Ambiente
   oNFe:versaoDados := versaoDados // Versao
   oNFe:tpEmis := tpEmis //normal/scan/dpec/fs/fsda
   oNFe:empresa_UF := cUF
   oNFe:empresa_cMun := cMun
   oNFe:empresa_tpImp := tpImp
   oNFe:versaoSistema := versaoSistema
   oNFe:pastaNFe := "nfe"
   oNFe:pastaCancelamento := "canc"
   oNFe:pastaPDF := "pdf"
   oNFe:pastaInutilizacao := "inut"
   oNFe:pastaDPEC := "dpec"
   oNFe:pastaEnvRes := "envresp"

   oNFe:cEmail_Subject  := hIniData['Email']['email_assunto']
   oNFe:cEmail_MsgTexto := hIniData['Email']['email_txt']
   oNFe:cEmail_MsgHTML  := hIniData['Email']['email_html']
   oNFe:cEmail_ServerIP := hIniData['Email']['email_smtp']
   oNFe:cEmail_From     := hIniData['Email']['email_from']
   oNFe:cEmail_User     := hIniData['Email']['email_usuario']
   oNFe:cEmail_Pass     := hIniData['Email']['email_senha']
   oNFe:nEmail_PortSMTP := VAL( hIniData['Email']['email_porta'] )
   oNFe:lEmail_Conf     := IF( hIniData['Email']['email_confirmacao'] == '.T.',.T.,.F.)
   oNFe:lEmail_SSL      := IF( hIniData['Email']['email_SSL'] == '.T.',.T.,.F.)
   oNFe:lEmail_Aut      := IF( hIniData['Email']['email_aut'] == '.T.',.T.,.F.)


DEFINE WINDOW Thisform ;
      AT 0,0 WIDTH 800 HEIGHT 600 ;
      TITLE "Teste HBNfe com minigui" ;
      FONT "Ms Sans Serif" SIZE 9 ;
      NOSIZE ;
      ON INIT oninit() WINDOWTYPE MAIN

   ON KEY ESCAPE ACTION ThisForm.release

   @  10, 10 BUTTONEX oButtonex1  CAPTION "escolheCertificado"   WIDTH 150 HEIGHT 25 ACTION oButtonex1_onClick()
   @  40, 10 BUTTONEX oButtonex2  CAPTION "CN certificado"   WIDTH 150 HEIGHT 25 
   @  70, 10 BUTTONEX oButtonex3  CAPTION "Propriedades Certificado"  WIDTH 150 HEIGHT 25 ACTION oButtonex3_onClick( oNfe )
   @ 100, 10 BUTTONEX oButtonex4  CAPTION "Status Serviço" WIDTH 150 HEIGHT 25 
   @ 130, 10 BUTTONEX oButtonex5  CAPTION "Valida XML"   WIDTH 150 HEIGHT 25 
   @ 160, 10 BUTTONEX oButtonex6  CAPTION "Consulta NFe" WIDTH 150 HEIGHT 25 
   @ 190, 10 BUTTONEX oButtonex7  CAPTION "Consulta Cadastro" WIDTH 150 HEIGHT 25 
   @ 220, 10 BUTTONEX oButtonex8  CAPTION "AssinaXML" WIDTH 150 HEIGHT 25 
   @ 250, 10 BUTTONEX oButtonex9  CAPTION "Cancela NFe" WIDTH 150 HEIGHT 25 
   @ 280, 10 BUTTONEX oButtonex10 CAPTION "Inutiliza" WIDTH 150 HEIGHT 25 
   @ 310, 10 BUTTONEX oButtonex11 CAPTION "Envia (Recepção)" WIDTH 150 HEIGHT 25 
   @ 340, 10 BUTTONEX oButtonex12 CAPTION "Retorno (RetRecepção)" WIDTH 150 HEIGHT 25 
   @ 370, 10 BUTTONEX oButtonex13 CAPTION "DANFE" WIDTH 150 HEIGHT 25 
   @ 400, 10 BUTTONEX oButtonex14 CAPTION "IniToXML (AcBr)" WIDTH 150 HEIGHT 25 
   @ 430, 10 BUTTONEX oButtonex15 CAPTION "Email" WIDTH 150 HEIGHT 25 
   @ 460, 10 BUTTONEX oButtonex16 CAPTION "Sair" WIDTH 150 HEIGHT 25 ACTION Thisform.release

   DEFINE RICHEDITBOX oRichedit1
          ROW    10
          COL    180
          WIDTH  600
          HEIGHT 250
          VALUE  vRichedit1
   END RICHEDITBOX

   @ 273,180 LABEL oLabel1 VALUE "Serial Cert" WIDTH 100 HEIGHT 20 RIGHT
   @ 270,290 TEXTBOX oSerCert VALUE cSerialCert WIDTH 250 HEIGHT 24

   @ 303,180 LABEL oLabel2 VALUE "UFWS"  WIDTH 100 HEIGHT 20 RIGHT
   @ 300,290 TEXTBOX oUFWS VALUE cUFWS WIDTH 80 HEIGHT 24

   @ 333,180 LABEL oLabel3 VALUE "tpAmb" WIDTH 100 HEIGHT 20 RIGHT
   @ 330,290 TEXTBOX otpAmb VALUE tpAmb WIDTH 80 HEIGHT 24

   @ 363,180 LABEL oLabel4 VALUE "UF Emp" WIDTH 100 HEIGHT 20 RIGHT
   @ 360,290 TEXTBOX oUF VALUE cUF WIDTH 80 HEIGHT 24

   @ 393,180 LABEL oLabel5 VALUE "XMLAssinado" WIDTH 100 HEIGHT 20 RIGHT
   @ 390,290 TEXTBOX oXMLAssinado VALUE cXMLFileAssinado WIDTH 402 HEIGHT 24

   @ 423,180 LABEL oLabel6 VALUE "Chave Consulta" WIDTH 100 HEIGHT 20 RIGHT
   @ 420,290 TEXTBOX oChaveConsulta VALUE cChaveNFe WIDTH 389 HEIGHT 24

END WINDOW

CENTER WINDOW Thisform

ACTIVATE WINDOW Thisform

RETURN NIL

STATIC FUNCTION oninit

Thisform.oButtonex2.enabled := .F.
Thisform.oButtonex4.enabled := .F.
Thisform.oButtonex5.enabled := .F.
Thisform.oButtonex6.enabled := .F.
Thisform.oButtonex7.enabled := .F.
Thisform.oButtonex8.enabled := .F.
Thisform.oButtonex9.enabled := .F.
Thisform.oButtonex10.enabled := .F.
Thisform.oButtonex11.enabled := .F.
Thisform.oButtonex12.enabled := .F.
Thisform.oButtonex13.enabled := .F.
Thisform.oButtonex14.enabled := .F.
Thisform.oButtonex15.enabled := .F.

RETURN(.T.)

STATIC FUNCTION oButtonex1_onClick

aRetorno := oNfe:escolheCertificado(.F.)

IF aRetorno['OK'] == .F.
   vRichedit1 := ALLTRIM(Thisform.oRichEdit1.value)+CHR(13)+aRetorno['MsgErro']
ELSE
   vRichedit1 := ALLTRIM(Thisform.oRichEdit1.value)+CHR(13)+aRetorno['Serial']
ENDIF

Thisform.oRichEdit1.value := vRichedit1

RETURN .T.

FUNCTION oButtonex3_onClick( oNfe )

LOCAL lResult, aRetorno

   lResult := .F.
   nThreadHandle := hb_threadStart ( {|| aRetorno := pegaCert( oNfe, @lResult  ) })
   DO WHILE !lResult
	   do events
   ENDDO
   hb_THREADWAITFORALL()

  IF aRetorno['OK'] == .T.
     vRichedit1 := ALLTRIM(Thisform.oRichEdit1.value)+CHR(13)+;
                   aRetorno['SerialNumber']+CHR(13)+;
                   DTOC(aRetorno['ValidToDate'])+CHR(13)+;
                   IF(aRetorno['HasPrivateKey']=.T.,'.T.','.F.')+CHR(13)+;
                   aRetorno['SubjectName']+CHR(13)+;
                   aRetorno['IssuerName']+CHR(13)+;
                   aRetorno['Thumbprint']+CHR(13)+;
                   aRetorno['getInfo']
  ELSE
     vRichedit1 := ALLTRIM(Thisform.oRichEdit1.value)+CHR(13)+'erro'
  ENDIF
  Thisform.oRichEdit1.value := vRichedit1
RETURN .T.

FUNC pegaCert(oxNfe, lResult)
LOCAL aRetorno
   aRetorno := oxNfe:pegaPropriedadesCertificado()
   lResult := .T.
RETURN(aRetorno)

Fernando seria possível incluir este exemplo na hbnfe ?

Obrigado,

Rossine.

hbNFe commits

Enviado: 03 Set 2011 16:26
por athayde
sem problemas
é bom ter alguns exemplos para galera entender o funcionamento
precisava que alguem desse uma olhada no projeto phpnfe la eles comunicao por curl e temos isso no harbour assim contempla os usuarios que nao funcionam com capicom

[]s
Fernando