Tentando homologar SEFAZ/GO

Projeto hbNFe (Nota Fiscal Eletronica/Danfe) para [x]Harbour

Moderador: Moderadores

Avatar do usuário
depaula.jau
Usuário Nível 2
Usuário Nível 2
Mensagens: 98
Registrado em: 15 Mai 2007 17:07
Localização: JAU

Tentando homologar SEFAZ/GO

Mensagem por depaula.jau »

Deu certo Quintas
Anexos
12.png
Avatar do usuário
depaula.jau
Usuário Nível 2
Usuário Nível 2
Mensagens: 98
Registrado em: 15 Mai 2007 17:07
Localização: JAU

Tentando homologar SEFAZ/GO

Mensagem por depaula.jau »

Sabe Quintas. Trabalhando melhor no sistema descobri que o problema não estava na rotina desatualizada e sim no retorno correto das mensagem de erro.

Exemplo :

Antes:

Código: Selecionar todos


  cReciboAutorizado := "Status: " + XmlNode( cXmlProtocolo, "cStat" ) + HB_EOL()
  cReciboAutorizado += "Motivo: " + XmlNode( cXmlProtocolo, "xMotivo" ) + HB_EOL()

Correção:

Código: Selecionar todos

   cReciboAutorizado := "Ambiente: " +XmlNode( XmlNode( oSefaz:cXmlRetorno, "infProt" ), "tpAmb" ) + HB_EOL()
   cReciboAutorizado += "Aplicação: " + XmlNode( XmlNode( oSefaz:cXmlRetorno, "infProt" ), "verAplic" ) + HB_EOL()
   cReciboAutorizado += "Chave: " + XmlNode( XmlNode( oSefaz:cXmlRetorno, "infProt" ), "chNFe" ) + HB_EOL()
   cReciboAutorizado += "Status: " + XmlNode( XmlNode( oSefaz:cXmlRetorno, "infProt" ), "cStat" ) + HB_EOL()
   cReciboAutorizado += "Motivo: " + XmlNode( XmlNode( oSefaz:cXmlRetorno, "infProt" ), "xMotivo" ) + HB_EOL()
Então todo o problema estava na mensagem de retorno exibindo corretamente na tela.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Tentando homologar SEFAZ/GO

Mensagem por JoséQuintas »

Resta confirmar se todas as UFs estão seguindo o mesmo padrão.

Mas isso resolve um problemão que eu estava tentando resolver.

Usar isso pra corrigir estas variáveis:

oSefaz:cStatus
oSefaz:cMotivo
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

Tentando homologar SEFAZ/GO

Mensagem por JoséQuintas »

Alterado na sefazclass.

https://github.com/JoseQuintas/sefazcla ... 4d692b1e43

Acho que agora minha rotina de falha na sefaz vai funcionar.... rs

Código: Selecionar todos

   oSefaz := SefazClass():New()
   oSefaz:cVersao := MDFE_VERSAO
   oSefaz:MDFeLoteEnvia( cXml, "1", "SP", NomeCertificado( AppEmpresaApelido() ), "1" )
   DO WHILE .T.
      IF oSefaz:cStatus $ "100,101,202,302"
         hb_MemoWrit( hb_Cwd() + "IMPORTA\MDFE-" + jpmdfcab->mcNumLan + "-Autorizado.xml", oSefaz:cXmlAutorizado )
         oXmlPdf := XmlPdfClass():New()
         oXmlPdf:cChave := cChave
         oXmlPdf:cXmlEmissao := oSefaz:cXmlAutorizado
         oXmlPdf:GeraPdf()
         MsgExclamation( iif( oSefaz:cStatus == "100", "MDFE Autorizado", "MDFE Denegado" ) )
         EXIT
      ENDIF
      IF oSefaz:cStatus $ "104,105" // processado / em processamento
         Mensagem( "Problemas na SEFAZ. Nova tentativa de obter retorno em 3 minutos, ESC abandona" )
         IF Inkey(180) != K_ESC
            Mensagem( "Tentando novamente" )
            oSefaz:MDFeConsultaRecibo()
            LOOP
         ENDIF
      ENDIF

      hb_MemoWrit( "NFE\MDFE-" + jpmdfcab->mcNumLan + "-02-SemAssinatura.xml",  cXml )
      hb_MemoWrit( "NFE\MDFE-" + jpmdfcab->mcNumLan + "-03-Assinado.xml",  oSefaz:cXmlDocumento )
      hb_MemoWrit( "NFE\MDFE-" + jpmdfcab->mcNumLan + "-04-Recibo.xml",    oSefaz:cXmlRecibo )
      hb_MemoWrit( "NFE\MDFE-" + jpmdfcab->mcNumLan + "-05-Protocolo.xml", oSefaz:cXmlProtocolo )
      hb_MemoWrit( "NFE\MDFE-" + jpmdfcab->mcNumLan + "-06-Retorno.xml",   oSefaz:cXmlRetorno )
      Errorsys_WriteErrorLog( oSefaz:cXmlSoap, 3 )
      Errorsys_WriteErrorLog( oSefaz:cXmlRetorno )
      IF ! Empty( oSefaz:cMotivo )
         MsgExclamation( "Erro " + oSefaz:cStatus + " " + oSefaz:cMotivo )
      ELSE
         MsgExclamation( "Erro desconhecido " + Pad( oSefaz:cXmlProtocolo, 1000 ) )
      ENDIF
      EXIT
   ENDDO
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

Tentando homologar SEFAZ/GO

Mensagem por JoséQuintas »

Testei encima de protocolos pra garantir...

Código: Selecionar todos

#include "inkey.ch"

PROCEDURE PTESPROT

   LOCAL cnMySql := ADOClass():New( AppcnMySqlLocal() ), nKey := 0

   cnMySql:cSql := "SELECT * FROM JPXML2018 ORDER BY XXINFINC DESC"
   cnMySql:Execute()
   DO WHILE nKey != K_ESC .AND. ! cnMySql:Eof()
      SayScrollList( ;
         cnMySql:StringSql( "XXCHAVE" ), ;
         PegaXml( "cStat", cnMySql:StringSql( "XXXML" ) ), ;
         PegaXml( "xMotivo", cnMySql:StringSql( "XXXML" ) ) )
      nKey := Inkey(5)
      cnMySql:MoveNext()
   ENDDO
   cnMySql:CloseRecordset()

   MsgExclamation( "Fim" )

   RETURN

STATIC FUNCTION PegaXml( cNode, cXml )

   RETURN XmlNode( XmlNode( cXml, "infProt" ), cNode )
testeprot.png

Nota: não vale pra eventos, por isso alguns em branco., porque são eventos.
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