From eba1ece30bb42385e5d863e152555ac2dd290e56 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 23 May 2017 15:46:27 -0300 Subject: [PATCH] =?UTF-8?q?Ajuste=20pra=20melhorar=20retorno=20quando=20d?= =?UTF-8?q?=C3=A1=20erro=20no=20envio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ze_SpedDaNfe.prg | 2 ++ ze_spedsefazclass.prg | 13 +++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ze_SpedDaNfe.prg b/ze_SpedDaNfe.prg index b6c034cf..c3ffa0c8 100644 --- a/ze_SpedDaNfe.prg +++ b/ze_SpedDaNfe.prg @@ -1037,6 +1037,8 @@ METHOD DefineColunasProdutos() CLASS hbNFeDaNFe IF Val( ::aItemIPI[ "pIPI" ] ) > 0 .OR. Val( ::aItemIPI[ "vIPI" ] ) > 0 // Se houver IPI no XML, habilita coluna IF ::aLayout[ LAYOUT_IPIVAL, LAYOUT_IMPRIME ] == LAYOUT_IMPRIMEXMLTEM ::aLayout[ LAYOUT_IPIVAL, LAYOUT_IMPRIME ] := LAYOUT_IMPRIMENORMAL + ENDIF + IF ::aLayout[ LAYOUT_IPIALI, LAYOUT_IMPRIME ] == LAYOUT_IMPRIMEXMLTEM ::aLayout[ LAYOUT_IPIALI, LAYOUT_IMPRIME ] := LAYOUT_IMPRIMENORMAL ENDIF ENDIF diff --git a/ze_spedsefazclass.prg b/ze_spedsefazclass.prg index 6c665ee7..1460a349 100644 --- a/ze_spedsefazclass.prg +++ b/ze_spedsefazclass.prg @@ -6,6 +6,7 @@ ZE_SPEDSEFAZCLASS - Rotinas pra comunica 2016.11.25.2300 - ::ValidaXml() e DomDocValidaXml() pra evitar confusão no uso 2016.12.01.0230 - NFE 4.00 início 2017.01.13.1120 - Endereços RS CTE homologação +2017.05.05.1930 - Grava status e motivo, ref. recibo, pra erros de envio de lote Nota: CTE 2.00 vale até 06/2017 e CTE 3.00 começa em 12/2016 */ @@ -374,6 +375,8 @@ METHOD CTeLoteEnvia( cXml, cLote, cUF, cCertificado, cAmbiente ) CLASS SefazClas ::XmlSoapPost() ::cXmlRecibo := ::cXmlRetorno ::cRecibo := XmlNode( ::cXmlRecibo, "nRec" ) + ::cStatus := Pad( XmlNode( ::cXmlRecibo, "cStatus" ), 3 ) + ::cMotivo := XmlNode( ::cXmlRecibo, "xMotivo" ) IF ! Empty( ::cRecibo ) Inkey( ::nTempoEspera ) ::CteConsultaRecibo() @@ -602,6 +605,8 @@ METHOD MDFeLoteEnvia( cXml, cLote, cUF, cCertificado, cAmbiente ) CLASS SefazCla ::XmlSoapPost() ::cXmlRecibo := ::cXmlRetorno ::cRecibo := XmlNode( ::cXmlRecibo, "nRec" ) + ::cStatus := Pad( XmlNode( ::cXmlRecibo, "cStatus" ), 3 ) + ::cMotivo := XmlNode( ::cXmlRecibo, "xMotivo" ) IF ! Empty( ::cRecibo ) Inkey( ::nTempoEspera ) ::MDFeConsultaRecibo() @@ -894,8 +899,10 @@ METHOD NFeLoteEnvia( cXml, cLote, cUF, cCertificado, cAmbiente, cIndSinc ) CLASS ::cXmlEnvio += [] ::XmlSoapPost() IF cIndSinc == INDSINC_RETORNA_RECIBO - ::cXmlRecibo := ::cXmlRetorno - ::cRecibo := XmlNode( ::cXmlRecibo, "nRec" ) + ::cXmlRecibo := ::cXmlRetorno + ::cRecibo := XmlNode( ::cXmlRecibo, "nRec" ) + ::cStatus := Pad( XmlNode( ::cXmlRecibo, "cStat" ), 3 ) + ::cMotivo := XmlNode( ::cXmlRecibo, "xMotivo" ) IF ! Empty( ::cRecibo ) Inkey( ::nTempoEspera ) ::NfeConsultaRecibo() @@ -904,6 +911,8 @@ METHOD NFeLoteEnvia( cXml, cLote, cUF, cCertificado, cAmbiente, cIndSinc ) CLASS ELSE ::cXmlRecibo := ::cXmlRetorno ::cRecibo := XmlNode( ::cXmlRecibo, "nRec" ) + ::cStatus := Pad( XmlNode( ::cXmlRecibo, "cStat" ), 3 ) + ::cMotivo := XmlNode( ::cXmlRecibo, "xMotivo" ) IF ! Empty( ::cRecibo ) ::cXmlProtocolo := ::cXmlRetorno ::cXmlRetorno := ::NfeGeraAutorizado( ::cXmlDocumento, ::cXmlProtocolo )