Clipper On Line • Ver Tópico - Tentando homologar SEFAZ/GO

Tentando homologar SEFAZ/GO

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

Moderador: Moderadores

 

Tentando homologar SEFAZ/GO

Mensagempor depaula.jau » 11 Out 2018 16:35

Deu certo Quintas
Anexos
12.png
Avatar de usuário

depaula.jau
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 98
Data de registro: 15 Mai 2007 17:07
Cidade/Estado: JAU
Curtiu: 9 vezes
Mens.Curtidas: 14 vezes

Tentando homologar SEFAZ/GO

Mensagempor depaula.jau » 11 Out 2018 19:12

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:

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



Correção:

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

depaula.jau
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 98
Data de registro: 15 Mai 2007 17:07
Cidade/Estado: JAU
Curtiu: 9 vezes
Mens.Curtidas: 14 vezes

Tentando homologar SEFAZ/GO

Mensagempor JoséQuintas » 11 Out 2018 19:21

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, 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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tentando homologar SEFAZ/GO

Mensagempor JoséQuintas » 11 Out 2018 20:15

Alterado na sefazclass.

https://github.com/JoseQuintas/sefazclass/commit/e4aeac453bdf793e7d72985b4798064d692b1e43

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

   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, 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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tentando homologar SEFAZ/GO

Mensagempor JoséQuintas » 11 Out 2018 20:29

Testei encima de protocolos pra garantir...

#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, 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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Anterior



Retornar para Projeto hbNFe

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 3 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