CODIGO FONTE NF ELETRONICA ATUALIZADA 22-02-10
Me afastei do projeto de NFe bastante.
mais aogra to voltando.
Como no inÃcio de setembro, começou a valer o calendário definido pelo governo para a implementação do Sistema Público de Escrituração Fiscal (SPED). Até 2012, todas as empresas, independentemente de seu porte ou do segmento, precisão prestar contas à Receita Federal de forma digital. Ou seja, todos os procedimentos hoje realizados em papel, das notas fiscais ao livro caixa, serão realizados de forma eletrônica.
E fora isso já vem uma nova versão da NFe por ai.
Então o melhor que todos poderiamos fazer seria um codigo que se adaptasse facilmente a essas imprevissiveis mudanças do governo.
A minha ideia a principio é ler o Schema.xsd da NFe em um DataTable e depois começar a NFe dentro desse DataTable com o esquema da NFe.
Assim a cada mudança no Schema.xsd afetaria diretamente a NFe
Cara rodei que nem um loko atraz disso que vc ta fazendo, pra gerar o XML. mas não encontrei muita coisa pra mexer.. agora vi que é facil demas... vamos reformular essa parte do XML, vc ainda tem aquilo que eu havia passado aqui.?
segunte looze o que tenho aqui e a dll em vb6 para gerar a NFe
e tbem tive essa ideia a pouco tempo... vou adiantar isso e coloco no forum
Citação:
Dim drEmit = DsNFe.Tables([Ô]emit[Ô]).NewRow()
Dim drDest = DsNFe.Tables([Ô]dest[Ô]).NewRow()
Dim drIde = DsNFe.Tables([Ô]ide[Ô]).NewRow()
Dim drEndEmit = DsNFe.Tables([Ô]enderEmit[Ô]).NewRow()
Dim drEndDest = DsNFe.Tables([Ô]enderDest[Ô]).NewRow()
[ô]--------------------IDE-----------------------
With drIde
.Item([Ô]cUF[Ô]) = [Ô][Ô]
.Item([Ô]cNF[Ô]) = [Ô][Ô]
.Item([Ô]natOp[Ô]) = [Ô][Ô]
.Item([Ô]indPag[Ô]) = [Ô][Ô]
.Item([Ô]mod[Ô]) = [Ô][Ô]
.Item([Ô]serie[Ô]) = [Ô][Ô]
.Item([Ô]nNF[Ô]) = [Ô][Ô]
.Item([Ô]dEmi[Ô]) = [Ô][Ô]
.Item([Ô]dSaiEnt[Ô])= [Ô][Ô]
.Item([Ô]tpNF[Ô]) = [Ô][Ô]
.Item([Ô]cMunFG[Ô]) = [Ô][Ô]
.Item([Ô]tpImp[Ô]) = [Ô][Ô]
.Item([Ô]tpEmis[Ô]) = [Ô][Ô]
.Item([Ô]cDV[Ô]) = [Ô][Ô]
.Item([Ô]tpAmb[Ô]) = [Ô][Ô]
.Item([Ô]finNFe[Ô]) = [Ô][Ô]
.Item([Ô]procEmi[Ô]) = [Ô][Ô]
.Item([Ô]verProc[Ô]) = [Ô][Ô]
End With
[ô]--------------------EMITENTE-----------------------
With drEmit
.Item([Ô]CNPJ[Ô]) = [Ô][Ô]
.Item([Ô]xNome[Ô]) = [Ô][Ô]
.Item([Ô]xFant[Ô]) = [Ô][Ô]
.Item([Ô]IE[Ô]) = [Ô][Ô]
End With
[ô]--------------------ENDEREÇO EMITENTE----------------------
With drEndEmit
.Item([Ô]xLgr[Ô]) = [Ô][Ô]
.Item([Ô]nro[Ô]) = [Ô][Ô]
.Item([Ô]xBairro[Ô]) = [Ô][Ô]
.Item([Ô]cMun[Ô]) = [Ô][Ô]
.Item([Ô]xMun[Ô]) = [Ô][Ô]
.Item([Ô]UF[Ô]) = [Ô][Ô]
.Item([Ô]CEP[Ô]) = [Ô][Ô]
.Item([Ô]cPais[Ô]) = [Ô][Ô]
.Item([Ô]xPais[Ô]) = [Ô][Ô]
.Item([Ô]fone[Ô]) = [Ô][Ô]
End With
[ô]--------------------DESTINATARIO-----------------------
With drDest
.Item([Ô]CNPJ[Ô]) = [Ô][Ô]
.Item([Ô]xNome[Ô]) = [Ô][Ô]
.Item([Ô]xFant[Ô]) = [Ô][Ô]
.Item([Ô]IE[Ô]) = [Ô][Ô]
End With
[ô]--------------------ENDEREÇO DESTINATARIO----------------------
With drEndDest
.Item([Ô]xLgr[Ô]) = [Ô][Ô]
.Item([Ô]nro[Ô]) = [Ô][Ô]
.Item([Ô]xBairro[Ô]) = [Ô][Ô]
.Item([Ô]cMun[Ô]) = [Ô][Ô]
.Item([Ô]xMun[Ô]) = [Ô][Ô]
.Item([Ô]UF[Ô]) = [Ô][Ô]
.Item([Ô]CEP[Ô]) = [Ô][Ô]
.Item([Ô]cPais[Ô]) = [Ô][Ô]
.Item([Ô]xPais[Ô]) = [Ô][Ô]
.Item([Ô]fone[Ô]) = [Ô][Ô]
End With
para que as TAG's Fiquem alinhadas corretamente ao layout do xml devemos colocar um indice nelas...
assim q conseguir montar certinho as TAG's em perfeita Ordem posto aqui no forum.
Obs:
Renomear o arquivo para XML
pois consegui a identação das TAG's do XML sem muito trabalho.
agora gostaria de saber quais são as principais TAG's que não podem faltar no Layout do XML
Quem quiser ver se está tudo OK no XML q estou gerando e só baixar e modificar a extensão do arquivo para XML
e dar uma conferida
Bom pessoal, depois de muito tempo posto aqui a DLL para uso da NFe no Estado de São Paulo,
Funcao:
Envia NFe
Cancela NFe
Busca Retorno
Consulta Chave
Verifica Status
Assina e Valida a NFe.
[/txt-size]
Tem como postar o código da geração do xml de cancelamento? Tenho o código abaixo:
Dll_NFe_Looze.Looze_Funcao.RefURI = [Ô]infCanc[Ô]
Dll_NFe_Looze.Looze_Funcao.OutRefURI = [Ô]infNFe[Ô]
Dll_NFe_Looze.Looze_Funcao.vCabecalho = [Ô]<?xml version=[Ô][Ô]1.0[Ô][Ô] encoding=[Ô][Ô]UTF-8[Ô][Ô]?><cabecMsg xmlns=[Ô][Ô]http://www.portalfiscal.inf.br/nfe[Ô][Ô] versao=[Ô][Ô]1.02[Ô][Ô]><versaoDados>1.07</versaoDados></cabecMsg>[Ô]
Dll_NFe_Looze.Looze_Funcao.TextoXML = [Ô]<?xml version=[Ô][Ô]1.0[Ô][Ô]?><cancNFe xmlns=[Ô][Ô]http://www.portalfiscal.inf.br/nfe[Ô][Ô] versao=[Ô][Ô]1.05[Ô][Ô]><infCanc Id=NFe[Ô] & Dll_NFe_Looze.Looze_Funcao.ChaveNFe & [Ô]><xServ>CANCELAR</xServ><chNFe>[Ô] & Dll_NFe_Looze.Looze_Funcao.ChaveNFe & [Ô]</chNFe><nProt>[Ô] & Dll_NFe_Looze.Looze_Funcao.NumProtocolo & [Ô]</nProt></infCanc></cancNFe>[Ô]
Dll_NFe_Looze.Looze_Funcao.NomeArquivo = Dll_NFe_Looze.Looze_Funcao.NomeArquivo & Dll_NFe_Looze.Looze_Funcao.ChaveNFe & [Ô]-ped-can.xml[Ô]
Estou precisando fazer uns testes com cancelamento e este dá vários erros.
Desde já agradeço.
TextoCabecalho = [Ô]<?xml version=[Ô][Ô]1.0[Ô][Ô] encoding=[Ô][Ô]UTF-8[Ô][Ô]?><cabecMsg xmlns=[Ô][Ô]http://www.portalfiscal.inf.br/nfe[Ô][Ô] versao=[Ô][Ô]1.02[Ô][Ô]><versaoDados>1.07</versaoDados></cabecMsg>[Ô]
TextoEnviado = [Ô]<?xml version=[Ô][Ô]1.0[Ô][Ô] encoding=[Ô][Ô]UTF-8[Ô][Ô]?><cancNFe xmlns=[Ô][Ô]http://www.portalfiscal.inf.br/nfe[Ô][Ô] versao=[Ô][Ô]1.07[Ô][Ô]><infCanc Id=[Ô][Ô]ID[Ô] & ChaveNFe & [Ô][Ô][Ô]><tpAmb>[Ô] & Ambiente & [Ô]</tpAmb><xServ>CANCELAR</xServ><chNFe>[Ô] & ChaveNFe & [Ô]</chNFe><nProt>[Ô] & NumeroProtocolo & [Ô]</nProt><xJust>[Ô] & Justificativa & [Ô]</xJust></infCanc></cancNFe>[Ô]
NomeArquivo = LocalEnviado & Format(DateTime.Now, [Ô]yyyyMMddTHHmmss[Ô]) & [Ô]-[Ô] & ChaveNFe & [Ô]-ped-can.xml[Ô]
Realmente, o antigo estava desatualizado, agora ja tudo em ordem.. é só montar com os dados que vc precisa.