Clipper On Line • Ver Tópico - FUNÇÕES: Conversar com NFe a partir de XML.

FUNÇÕES: Conversar com NFe a partir de XML.

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

 

FUNÇÕES: Conversar com NFe a partir de XML.

Mensagempor rochinha » 25 Mar 2009 18:42

Amiguinhos,

Para aqueles que quizerem gerar em suas aplicações arquivos formattados em XML para conversar com aplicativos de integração NFeou enviar requisições diretamente para os servidores deste serviço, podem usar estas funções:

/*
* Verifica status
* <?xml version="1.0" encoding="UTF-8"?>
* <consStatServ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
*               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
*               xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.07">
*    <tpAmb>1</tpAmb>
*    <cUF>51</cUF>
*    <xServ>STATUS</xServ>
* </consStatServ>
*/
function NFEStatus( cNFe, cUF )
   LOCAL oEDX, cXMLFile
   cXMLFile := DtoS( date() )+"T"+StrTran( Time(), ":", "" )+"-ped-sta.XML"
   EDX oEDX FILE cXMLFile VERSION "1.0" ENCODING "UTF-8" FORMATED
      EDX OPEN MARK "consSitNFe" ;
               ATTRIB "xmlns:xsi" VALUE "http://www.w3.org/2001/XMLSchema-instance" ;
               ATTRIB "xmlns:xsd" VALUE "http://www.w3.org/2001/XMLSchema" ;
               ATTRIB "versao"    VALUE "1.07" ;
               ATTRIB "xmlns"     VALUE "http://www.portalfiscal.inf.br/nfe" OF oEDX
          EDX OPEN MARK "tpAmb"   TYPE "" TAG "2"           AUTOCLOSE OF oEDX
          EDX OPEN MARK "cUF"     TYPE "" TAG cUF           AUTOCLOSE OF oEDX
          EDX OPEN MARK "xServ"   TYPE "" TAG "STATUS"      AUTOCLOSE OF oEDX
      EDX CLOSE MARK OF oEDX
   EDX END oEDX
   return .t.

/*
* Cancelamento de NFe
* <?xml version="1.0" encoding="UTF-8"?>
* <cancNFe xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
*          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
*          versao="1.07"
*          xmlns="http://www.portalfiscal.inf.br/nfe">
*    <infCanc Id="NFe51080612345678901234550010000001041671821888">
*       <tpAmb>2</tpAmb>
*       <xServ>CANCELAR</xServ>
*       <chNFe>51080612345678901234550010000001041671821888</chNFe>
*       <nProt>151080000194296</nProt>
*       <xJust>Cliente cancelou a venda nao desejando mais levar o produto</xJust>
*   </infCanc>
* </cancNFe>
*/
function NFECancelamento( cNFe, nProt, xJust )
   LOCAL oEDX, cXMLFile
   cXMLFile := cNFe+".XML"
   EDX oEDX FILE cXMLFile VERSION "1.0" ENCODING "UTF-8" FORMATED
      EDX OPEN MARK "cancNFe" ;
               ATTRIB "xmlns:xsi" VALUE "http://www.w3.org/2001/XMLSchema-instance" ;
               ATTRIB "xmlns:xsd" VALUE "http://www.w3.org/2001/XMLSchema" ;
               ATTRIB "versao"    VALUE "1.07" ;
               ATTRIB "xmlns"     VALUE "http://www.portalfiscal.inf.br/nfe" OF oEDX
          EDX OPEN MARK "infCanc" ATTRIB "Id" VALUE "NFe"+cNFe OF oEDX
              EDX OPEN MARK "tpAmb"  TYPE "" TAG "2"          AUTOCLOSE OF oEDX
              EDX OPEN MARK "xServ"  TYPE "" TAG "CANCELAR"   AUTOCLOSE OF oEDX
              EDX OPEN MARK "chNFe"  TYPE "" TAG cNFe         AUTOCLOSE OF oEDX
              EDX OPEN MARK "nProt"  TYPE "" TAG str( nProt ) AUTOCLOSE OF oEDX
              EDX OPEN MARK "xJust"  TYPE "" TAG xJust        AUTOCLOSE OF oEDX
          EDX CLOSE MARK OF oEDX
      EDX CLOSE MARK OF oEDX
   EDX END oEDX
   return .t.

/*
* Inutiliza NFe
* <?xml version="1.0" encoding="UTF-8"?>
* <inutNFe xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
*          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
*          versao="1.07"
*          xmlns="http://www.portalfiscal.inf.br/nfe">
*    <infInut Id="NFe511234567890123455001000000101000000101">
*       <tpAmb>2</tpAmb>
*       <xServ>INUTILIZAR</xServ>
*       <cUF>51</cUF>
*       <ano>08</ano>
*       <CNPJ>12345678901234</CNPJ>
*       <mod>55</mod>
*       <serie>1</serie>
*       <nNFIni>101</nNFIni>
*       <nNFFin>101</nNFFin>
*       <xJust>Ocorreu uma falha no sistema que pulou a sequencia de numeracao</xJust>
*   </infInut>
* </inutNFe>
*/
function NFEInutilizada( cNFe, cUF, cAno, cCNPJ, cMod, cSerie, nNFIni, nNFFin, xJust )
   LOCAL oEDX, cXMLFile
   cXMLFile := cNFe+".XML"
   EDX oEDX FILE cXMLFile VERSION "1.0" ENCODING "UTF-8" FORMATED
      EDX OPEN MARK "inutNFe" ;
               ATTRIB "xmlns:xsi" VALUE "http://www.w3.org/2001/XMLSchema-instance" ;
               ATTRIB "xmlns:xsd" VALUE "http://www.w3.org/2001/XMLSchema" ;
               ATTRIB "versao"    VALUE "1.07" ;
               ATTRIB "xmlns"     VALUE "http://www.portalfiscal.inf.br/nfe" OF oEDX
          EDX OPEN MARK "infInut" ATTRIB "Id" VALUE cNFe OF oEDX
              EDX OPEN MARK "tpAmb"  TYPE "" TAG "2"           AUTOCLOSE OF oEDX
              EDX OPEN MARK "xServ"  TYPE "" TAG "INUTILIZAR"  AUTOCLOSE OF oEDX
              EDX OPEN MARK "cUF"    TYPE "" TAG cUF           AUTOCLOSE OF oEDX
              EDX OPEN MARK "ano"    TYPE "" TAG cAno          AUTOCLOSE OF oEDX
              EDX OPEN MARK "CNPJ"   TYPE "" TAG cCNPJ         AUTOCLOSE OF oEDX
              EDX OPEN MARK "mod"    TYPE "" TAG cMod          AUTOCLOSE OF oEDX
              EDX OPEN MARK "serie"  TYPE "" TAG cSerie        AUTOCLOSE OF oEDX
              EDX OPEN MARK "nNFIni" TYPE "" TAG str( nNFIni ) AUTOCLOSE OF oEDX
              EDX OPEN MARK "nNFFin" TYPE "" TAG str( nNFFin ) AUTOCLOSE OF oEDX
              EDX OPEN MARK "xJust"  TYPE "" TAG xJust         AUTOCLOSE OF oEDX
          EDX CLOSE MARK OF oEDX
      EDX CLOSE MARK OF oEDX
   EDX END oEDX
   return .t.

/*
* Recebimento de NFe
* <?xml version="1.0" encoding="UTF-8"?>
* <consReciNFe xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
*              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
*              versao="1.10"
*              xmlns="http://www.portalfiscal.inf.br/nfe">
*   <tpAmb>2</tpAmb>
*   <nRec>510000000106704</nRec>
* </consReciNFe>
*/
function NFERecebimento( cNFe )
   LOCAL oEDX, cXMLFile
   cXMLFile := cNFe+".XML"
   EDX oEDX FILE cXMLFile VERSION "1.0" ENCODING "UTF-8" FORMATED
      EDX OPEN MARK "consReciNFe" ;
               ATTRIB "xmlns:xsi" VALUE "http://www.w3.org/2001/XMLSchema-instance" ;
               ATTRIB "xmlns:xsd" VALUE "http://www.w3.org/2001/XMLSchema" ;
               ATTRIB "versao"    VALUE "1.10" ;
               ATTRIB "xmlns"     VALUE "http://www.portalfiscal.inf.br/nfe" OF oEDX
          EDX OPEN MARK "tpAmb"   TYPE "" TAG "2"           AUTOCLOSE OF oEDX
          EDX OPEN MARK "nRec"    TYPE "" TAG cNFe          AUTOCLOSE OF oEDX
      EDX CLOSE MARK OF oEDX
   EDX END oEDX
   return .t.

/*
* Situacao de NFe
* <?xml version="1.0" encoding="UTF-8"?>
* <consSitNFe xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
*             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
*             versao="1.07"
*             xmlns="http://www.portalfiscal.inf.br/nfe">
*   <tpAmb>2</tpAmb>
*   <xServ>CONSULTAR</xServ>
*   <chNFe>51080612345678901234550010000001041671821888</chNFe>
* </consSitNFe>
*/
function NFESituacao( cNFe )
   LOCAL oEDX, cXMLFile
   cXMLFile := cNFe+".XML"
   EDX oEDX FILE cXMLFile VERSION "1.0" ENCODING "UTF-8" FORMATED
      EDX OPEN MARK "consSitNFe" ;
               ATTRIB "xmlns:xsi" VALUE "http://www.w3.org/2001/XMLSchema-instance" ;
               ATTRIB "xmlns:xsd" VALUE "http://www.w3.org/2001/XMLSchema" ;
               ATTRIB "versao"    VALUE "1.07" ;
               ATTRIB "xmlns"     VALUE "http://www.portalfiscal.inf.br/nfe" OF oEDX
          EDX OPEN MARK "tpAmb"   TYPE "" TAG "2"           AUTOCLOSE OF oEDX
          EDX OPEN MARK "xServ"   TYPE "" TAG "CONSULTAR"   AUTOCLOSE OF oEDX
          EDX OPEN MARK "chNFe"   TYPE "" TAG cNFe          AUTOCLOSE OF oEDX
      EDX CLOSE MARK OF oEDX
   EDX END oEDX
   return .t.


O seu codigo ficará bem formatado e bastará então criar a rotina de envio para completar.

Para maiores informações consultem o topico aqui para obter os arquivos necessários.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4208
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 495 vezes
Mens.Curtidas: 182 vezes



Retornar para FiveWin

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


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
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro