CODIGO FONTE NF ELETRONICA ATUALIZADA 22-02-10
tiA9o_Vital@hotmail.com
Citação:1º tem alguma maneira de gerar o xml na NFe automaticamente apartir do schemas???? sem ter a ficar desenhando o xml em codigo bloco por bloco
Bom otavio. jeito sempre tem.
Eu Uso a plataforma .Net para fazer isso.
o Jeito e bem simples. e Seria mais ou Menos Assim :
Citação:
Dim DsNFe as New Dataset()
DsNFe.ReadXmlSchema([Ô]C:\PL_006c
fe_v2.00.xsd[Ô])
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
E com relação ao Bloco Total
vc deve entender que os Sub-Blocos são diferenciado.
o Sub Bloco ICMSTot é referente a Totais de Produtos com ICMS
ISSQNtot é referente a volor total de serviços que envolve PIS COFINS ETC
RetTrib è referente ao Grupo de Retenções de Tributos da Previdência Social
Depende do tipo de nota que vc irá gerar.
Hoje tivemos a publicação da Nota Técnica 2009/006 que substitui a NT 2009/005 que divulgou a versão 4.01 do Manual de Integração do Contribuinte.
Trata-se de uma nova versão do Manual de Integração com diversos ajustes e aperfeiçoamentos que devem ter sido identificados na versão 4.01 do manual nestes últimos dias pela SEFAZ.
Documentos relacionados:
NT 2009/006 - substitui a NT 2009/005 - traz um resumo das principais alteraçãos e inovações da versão 2.0 do leiaute da NF-e e das novas versões do Web Services.
Manual de Integração do Contribuinte - versão 4.0.1 - NT2009.006 - Manual de integração do Contribuinte - versão 4.01 com as correções e alterações divulgadas na NT 2009/006
PL_006preC.zip - pacote de liberação PL_006preC, com os schemas XML da NF-e e dos WS compatÃveis com a versão 4.01NT2009.006 do Manual de Integração do Contribuinte
Ainda falta a divulgação das urls e WSDL da versão 2.0 dos Web Services necessários para que possamos atualizar as nossas aplicações e inÃcio de testes.
pq da [Ô]timeout[Ô]
vc sabe abç
Estive utilizando uma DLL paga, e estou muito interessado em auxiliar.
Por tanto, seria possivel disponibilizar a fonte da versao mais recente da DLL.
Estou com diponibilidde de 8 horas diárias de dedicação.
E em base desse conhecimento, tambem estarei aproveitando os codigos para a geracao
da NFS-e.
Grato, e aguardo retorno.
barbosamj@zipmail.com.br
[txt-color=#e80000] [ô]--------------------EMITENTE-----------------------
With drEmit
.Item([Ô]CNPJ[Ô]) = [Ô][Ô]
.Item([Ô]xNome[Ô]) = [Ô][Ô]
.Item([Ô]xFant[Ô]) = [Ô][Ô]
.Item([Ô]IE[Ô]) = [Ô][Ô]
End With
With drEndEmit
.Item([Ô]xLgr[Ô]) = [Ô][Ô]
.Item([Ô]nro[Ô]) = [Ô][Ô]
.Item([Ô]xBairro[Ô]) = [Ô][Ô]
.Item([Ô]cMun[Ô]) = [Ô][Ô]
.Item([Ô]xMun[Ô]) = [Ô][Ô]
.Item([Ô]UF[Ô]) = [Ô][Ô]
.Item([Ô]CEP[Ô]) = [Ô][Ô]
.Item([Ô]cPais[Ô]) = [Ô][Ô]
.Item([Ô]xPais[Ô]) = [Ô][Ô]
.Item([Ô]fone[Ô]) = [Ô][Ô]
End With[/txt-color]
como vc coloca o drEndEmit dentro do drEmit?? pq eu to apanhando nisso! vc pode ajudar??
[txt-color=#e80000]alguem pode ajudar????????????????????[/txt-color][txt-size=2] [/txt-size]
Vocês realmente são muito responsáveis... Nenhum forum em toda rede se ve um trabalho em equipe como vcs estão fazendo, realmente é de impressionar. Gostaria de participar e ajudar...
Se puderem me enviar o projeto ou a dll para analise, ficaria agradecido...
Meu email contato@datasistem.com.br
Abraços!!!
Citação::
ei TIGER boa tarde como vc move o bloco em seu codigo
[txt-color=#e80000] [ô]--------------------EMITENTE-----------------------
With drEmit
.Item([Ô]CNPJ[Ô]) = [Ô][Ô]
.Item([Ô]xNome[Ô]) = [Ô][Ô]
.Item([Ô]xFant[Ô]) = [Ô][Ô]
.Item([Ô]IE[Ô]) = [Ô][Ô]
End With
With drEndEmit
.Item([Ô]xLgr[Ô]) = [Ô][Ô]
.Item([Ô]nro[Ô]) = [Ô][Ô]
.Item([Ô]xBairro[Ô]) = [Ô][Ô]
.Item([Ô]cMun[Ô]) = [Ô][Ô]
.Item([Ô]xMun[Ô]) = [Ô][Ô]
.Item([Ô]UF[Ô]) = [Ô][Ô]
.Item([Ô]CEP[Ô]) = [Ô][Ô]
.Item([Ô]cPais[Ô]) = [Ô][Ô]
.Item([Ô]xPais[Ô]) = [Ô][Ô]
.Item([Ô]fone[Ô]) = [Ô][Ô]
End With[/txt-color]
como vc coloca o drEndEmit dentro do drEmit?? pq eu to apanhando nisso! vc pode ajudar??
[txt-color=#e80000]alguem pode ajudar????????????????????[/txt-color][txt-size=2] [/txt-size]
Olá Otavio desculpe a demora tava meio cheio de serviço...
então e o seguinte :
Como descrito no codigo acima eu trato como tabelas as TAG que iniciam o bloco.
e é exatamente como tabelas q insiro uma TAG dentro de Outra TAG
eu uso o ID da tabela q é gerado automaticamente para ligar uma a outra.
vou lhe dar um exemplo.
With dremit
.Item([Ô]CNPJ[Ô]) = CAMPO_CNPJ
.Item([Ô]CPF[Ô]) = CAMPO_CPF
.Item([Ô]xNome[Ô]) = CAMPO_xNome
.Item([Ô]xFant[Ô]) = CAMPO_xFant
.Item([Ô]IE[Ô]) = CAMPO_IE
.Item([Ô]IEST[Ô]) = CAMPO_IEST
.Item([Ô]IM[Ô]) = CAMPO_IM
.Item([Ô]CNAE[Ô]) = CAMPO_CNAE
.Item([Ô]CRT[Ô]) = CAMPO_CRT
.Item([Ô]infNFe_Id[Ô]) = drInfNfe.Item([Ô]infNFe_Id[Ô])
End With
With drenderEmit
.Item([Ô]xLgr[Ô]) = CAMPO_xLgr
.Item([Ô]nro[Ô]) = CAMPO_nro
.Item([Ô]xCpl[Ô]) = CAMPO_xCpl
.Item([Ô]xBairro[Ô]) = CAMPO_xBairro
[ô].Item([Ô]cMun[Ô]) = [ô]FuncaoMunicipios(CAMPO_xMun)
.Item([Ô]xMun[Ô]) = CAMPO_xMun
.Item([Ô]UF[Ô]) = CAMPO_UF
.Item([Ô]CEP[Ô]) = CAMPO_CEP
.Item([Ô]cPais[Ô]) = 1058 [ô]FuncaoPais(CAMPO_xPais)
.Item([Ô]xPais[Ô]) = CAMPO_xPais
.Item([Ô]fone[Ô]) = CAMPO_fone
[ô]AQUI ESTà O MACETE PEGO O ID DA TABELA EMIT E RELACIONO ELE COM O CAMPO QUE EXISTE NA TABELA ENDEMIT
[ô]ASSIM NA HORA Q EU FOR GERAR O XML ELE SABERà O RELACIONAMENTO QUE A TABELA ENDEMIT TEM COM A TABELA
[ô]EMIT TRATANDO COM TAG PAI E TAG FILHO
.Item([Ô]emit_Id[Ô]) = dremit.Item([Ô]emit_Id[Ô])
End With