JUDSON ROSA Posted June 1, 2017 Report Share Posted June 1, 2017 Galera a um tempo atras consegui aqui no forum ( nao lembro o autor ) esta rotina para gerar a partir da XML ASSINADA a XML PROTOCOLADA ou seja autorizada NFE, funciona perfeito. Agora quero fazer o mesmo para NFCe , mas acho q na hora de incluir as tags no final da algum problema na xml quando tendo edita-la nao vem no formato , segue rotina: cFileXmlAssinado := w_dbfPath + cSubPastaAssinadas_ + Alltrim(cChave)+".xml" cFileXmlProtocolo := w_dbfPath + cSubPastaProtocolos_ + Alltrim(cChave)+"-nfce.xml" //cFileXmlAssinado := w_dbfPath + "remessa\assinado\"+Alltrim(cChave)+".xml" // mudei aqui //cFileXmlProtocolo := w_dbfPath + "remessa\protocolos\"+Alltrim(cChave)+"-nfce.xml" // mudei aqui cArq_Assinado := memoread ( cFileXmlAssinado ) // ? "cFileXmlAssinado" , cArq wIni_Velho:= '<?xml version="1.0" encoding="UTF-8"?><NFe xmlns=' DO CASE CASE AT('versao="1.10"' , cArq_Assinado ) # 0 wIni_Novo := '<?xml version="1.0" encoding="UTF-8"?><nfeProc xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.10"><NFe xmlns=' CASE AT('versao="2.00"' , cArq_Assinado ) # 0 wIni_Novo := '<?xml version="1.0" encoding="UTF-8"?><nfeProc xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00"><NFe xmlns=' OTHE wIni_Novo := '<?xml version="1.0" encoding="UTF-8"?><nfeProc xmlns="http://www.portalfiscal.inf.br/nfe" versao="3.10"><NFe xmlns=' ENDCASE cArq_Assinado := StrTran( cArq_Assinado , wIni_Velho , wIni_Novo ) wPosTmpIni := AT("<nNF>",cArq_Assinado) wPosTmpFim := AT("</nNF>",cArq_Assinado) WNFECOD := VAL( SUBS( cArq_Assinado , wPosTmpIni+5 , ( wPosTmpFim - (wPosTmpIni+5) ) ) ) wPosTmpIni := AT("<DigestValue>",cArq_Assinado) wPosTmpFim := AT("</DigestValue>",cArq_Assinado) c_DIGVAL := SUBS( cArq_Assinado , wPosTmpIni+13 , ( wPosTmpFim - (wPosTmpIni+13) ) ) nRet:=oNfeUtil:ConsultaNf( alltrim(cChave) , cFileXmlAssinado , .F. ) // alterado em 12/03/2015 - Paulo If nRet // retorno nfce foi autorizada na sefaz // guarde estas informações em banco de dados c_protocolo :=oNFeUtil:Protocolo c_recibo :=oNFeUtil:Recebimento c_verAplic :=oNFeUtil:VerAplic ? c_protocolo c_STATUS="100" c_MOTIVO:="Autorizado o uso da NFCe" if empty(oNFeUtil:Recebimento) c_protocolo:=left(oNFeUtil:Protocolo,15) c_recibo :=right(alltrim(oNFeUtil:Protocolo),19) c_datanfe :=transform(dtos(ctod(left(c_recibo,10))),"@r 9999-99-99") c_recibo :=c_datanfe + "T" + right(c_recibo,8) endif wMsg_status := c_MOTIVO oSayMsg:SetColor(CLR_BLUE, RGB(255,255,200)) oSayMsg:refresh() DO CASE CASE AT('versao="1.10"' , cArq_Assinado ) # 0 cArq_Assinado= cArq_Assinado + '<protNFe versao="1.10" xmlns="http://www.portalfiscal.inf.br/nfe">' CASE AT('versao="2.00"' , cArq_Assinado ) # 0 cArq_Assinado= cArq_Assinado + '<protNFe versao="2.00" xmlns="http://www.portalfiscal.inf.br/nfe">' OTHE cArq_Assinado= cArq_Assinado + '<protNFe versao="3.10" xmlns="http://www.portalfiscal.inf.br/nfe">' ENDCASE cArq_Assinado := cArq_Assinado + '<infProt Id="ID' + c_protocolo + '">' cArq_Assinado := cArq_Assinado + '<infProt>' cArq_Assinado := cArq_Assinado + '<tpAmb>' + cTpAmb + '</tpAmb>' cArq_Assinado := cArq_Assinado + '<verAplic>' + c_verAplic + '</verAplic>' cArq_Assinado := cArq_Assinado + '<chNFe>' + alltrim(cChave) + '</chNFe>' cArq_Assinado := cArq_Assinado + '<dhRecbto>' + c_recibo + '</dhRecbto>' cArq_Assinado := cArq_Assinado + '<nProt>' + c_protocolo + '</nProt>' cArq_Assinado := cArq_Assinado + '<digVal>' + c_DIGVAL + '</digVal>' cArq_Assinado := cArq_Assinado + '<cStat>' + c_STATUS + '</cStat>' cArq_Assinado := cArq_Assinado + '<xMotivo>' + c_MOTIVO + '</xMotivo>' cArq_Assinado := cArq_Assinado + '</infProt>' cArq_Assinado := cArq_Assinado + '</protNFe>' cArq_Assinado := cArq_Assinado + '</nfeProc>' wArq_Protocolo := FCREATE(cFileXmlProtocolo,1) wtam:= len( cArq_Assinado ) FWRITE( wArq_Protocolo , alltrim(cArq_Assinado) ) // , wtam ) FCLOSE( wArq_Protocolo ) o que pode esta ocorrendo durante a inclusao das tags ?? 21170524572077000285650010000097159000097151-nfce.xml Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.