FONTE NFE C#
Citação::
Olá FOXMAN
Eu tó baixando somente pelo número da NSU.
Agora quando vou consulta o ultimo NSU os xmls já estão disponÃveis, antes só ficava disponÃvel depois da manifestação.
Vc está utilizando o mesmo processo de consulta ???, pois quando consulto vem somente o resumo da NFe.
O outro metodo(DownloadNFe) foi descontinuado.
Vi em outro forum que estão conseguindo fazer download com a CHAVE da NFe utilizando o NFeDistribuicaoDFe
Estou meio sem tempo de mexer no projeto e fazer essa alteração e mais algumas.
Vou postar aqui a mudança para fazer o download pela chave NFe:
retDistDFeInt retNFeDist = null;
distDFeInt consDest = new distDFeInt()
{
versao = [Ô]1.01[Ô],
tpAmb = [Ô]1,
cUFAutor =52[Ô],
CNPJ = [Ô]cnpj empresa[Ô],
consChNFe = new consChNFe
{
chNFe = [Ô]suaChaveNFe[Ô]
}
};
XmlDocument xmlNodeConsNFeDest = FuncoesNFe.Serializar(consDest);
XmlNamespaceManager xmanager = new XmlNamespaceManager(xmlNodeConsNFeDest.NameTable);
xmanager.AddNamespace([Ô]n[Ô], [Ô]http://www.portalfiscal.inf.br/nfe[Ô]);
retNFeDist = webService.NFeDistribuicaoDFe(xmlNodeConsNFeDest);
public class consChNFe
{
public string chNFe { get; set; }
}
Se você for em NFeLib.Processos.NFeDistribuicaoDFe.ProcEnvioSefaz.
Vai ver que a NFe esta completa.
Eu consulto e já baixo os xmls.
Essa parte de consultar e importar eu não entendi ainda.
Antes vc consultava e manifestava para depois importa o xml.
Na primeira consulta o xml já esta sendo liberado.
Citação::
FOXMAN
Se você for em NFeLib.Processos.NFeDistribuicaoDFe.ProcEnvioSefaz.
Vai ver que a NFe esta completa.
Eu consulto e já baixo os xmls.
Essa parte de consultar e importar eu não entendi ainda.
Antes vc consultava e manifestava para depois importa o xml.
Na primeira consulta o xml já esta sendo liberado.
Aqui nos meus testes apenas NFe manifestadas estão sendo retornadas....
Fiz algumas alterações no código e estou retornando os xmls de NFes manifestadas.
Elucimar, criei um campo na classe resNFe(public XmlDocument procNFe = new XmlDocument();) e na função ProcEnvioSefaz(), no bloco(dentro do WHILE) IF...ELSE IF (zipText.schema.Contains([Ô]procNFe[Ô])) estou setando a variável que criei com o conteúdo de xmlText(procNFe = xmlText) até aqui estou conseguindo obter as nfes manifestadas em um unico processo.
Nem cheguei fazer a alteração que você postou, pois todas as nfes que forem manifestadas já serão retornadas .....
Como eu já tinha um processo de download, que armazenava em um xml com os resumos da nfe, estou agora ajustando o codigo para não fazer grandes mudanças no que já existia.
Citação::
:
FOXMAN
Se você for em NFeLib.Processos.NFeDistribuicaoDFe.ProcEnvioSefaz.
Vai ver que a NFe esta completa.
Eu consulto e já baixo os xmls.
Essa parte de consultar e importar eu não entendi ainda.
Antes vc consultava e manifestava para depois importa o xml.
Na primeira consulta o xml já esta sendo liberado.
Aqui nos meus testes apenas NFe manifestadas estão sendo retornadas....
Fiz algumas alterações no código e estou retornando os xmls de NFes manifestadas.
Elucimar, criei um campo na classe resNFe(public XmlDocument procNFe = new XmlDocument();) e na função ProcEnvioSefaz(), no bloco(dentro do WHILE) IF...ELSE IF (zipText.schema.Contains([Ô]procNFe[Ô])) estou setando a variável que criei com o conteúdo de xmlText(procNFe = xmlText) até aqui estou conseguindo obter as nfes manifestadas em um unico processo.
Nem cheguei fazer a alteração que você postou, pois todas as nfes que forem manifestadas já serão retornadas .....
Como eu já tinha um processo de download, que armazenava em um xml com os resumos da nfe, estou agora ajustando o codigo para não fazer grandes mudanças no que já existia.
Bom dia FOXMAN
Então pra importa o xml não precisa mas enviar Ciência da Operação?
Citação::
:
:
FOXMAN
Se você for em NFeLib.Processos.NFeDistribuicaoDFe.ProcEnvioSefaz.
Vai ver que a NFe esta completa.
Eu consulto e já baixo os xmls.
Essa parte de consultar e importar eu não entendi ainda.
Antes vc consultava e manifestava para depois importa o xml.
Na primeira consulta o xml já esta sendo liberado.
Aqui nos meus testes apenas NFe manifestadas estão sendo retornadas....
Fiz algumas alterações no código e estou retornando os xmls de NFes manifestadas.
Elucimar, criei um campo na classe resNFe(public XmlDocument procNFe = new XmlDocument();) e na função ProcEnvioSefaz(), no bloco(dentro do WHILE) IF...ELSE IF (zipText.schema.Contains([Ô]procNFe[Ô])) estou setando a variável que criei com o conteúdo de xmlText(procNFe = xmlText) até aqui estou conseguindo obter as nfes manifestadas em um unico processo.
Nem cheguei fazer a alteração que você postou, pois todas as nfes que forem manifestadas já serão retornadas .....
Como eu já tinha um processo de download, que armazenava em um xml com os resumos da nfe, estou agora ajustando o codigo para não fazer grandes mudanças no que já existia.
Bom dia FOXMAN
Então pra importa o xml não precisa mas enviar Ciência da Operação?
Sim, precisa.
Como eu disse, as nfes manifestadas, vem normal
Parabéns pelo projeto e pela iniciativa de compartilhar seus conhecimentos,
é o seguinte estou implantando seus códigos em uma aplicação que tenho aqui e estou com problemas nesta parte do código:
public class ConfigServWeb : SefazWSUrls
{
public string CodUF { get; set; }
public string UF { get; set; }
public string IWebService { get; set; }
public int TimeoutWS { get; set; }
//__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
public static ConfigServWeb ConfigServico(string UF,string modNF, TipoServico servico)
{
StringBuilder sbSql = new StringBuilder();
sbSql.Append([Ô]Select [Ô]);
sbSql.Append([Ô]W.Id,W.Servico,W.Versao,[Ô]);
sbSql.Append([Ô]W.Url,W.SefazAut,W.TpAmb,[Ô]);
sbSql.Append([Ô]W.ModNF,U.CodUF,[Ô]);
sbSql.Append([Ô]U.UF,W.TagResultSoap, [Ô]);
sbSql.Append([Ô]W.NomeClasse,W.NomeMetodo,W.SoapAction, [Ô]);
sbSql.Append([Ô]C.IWebService,C.TimeoutWS [Ô]);
sbSql.Append([Ô]From SefazWSUrls W [Ô]);
sbSql.Append([Ô]Inner Join ConfigGeral C [Ô]);
sbSql.Append([Ô]On W.TpAmb = C.TPAmb [Ô]);
sbSql.Append([Ô]Inner Join SefazUFs U [Ô]);
sbSql.Append([Ô]On W.SefazAut = [Ô]);
sbSql.Append([Ô]case [Ô]);
sbSql.Append([Ô] when C.TipoEmissao = [ô]1[ô] Then U.SefazAut [Ô]);
sbSql.Append([Ô] else U.SefazCont [Ô]);
sbSql.Append([Ô]End [Ô]);
sbSql.Append([Ô]where U.UF = @UF [Ô]);
sbSql.Append([Ô]And W.ModNF = @modNF [Ô]);
sbSql.Append([Ô]And W.Servico = @servico [Ô]);
IDbCommand cmd = DAL.ObjectCommand(sbSql.ToString());
cmd.Parameters.Add(DAL.ObjectParameter([Ô]@UF[Ô], UF));
cmd.Parameters.Add(DAL.ObjectParameter([Ô]@modNF[Ô], modNF));
cmd.Parameters.Add(DAL.ObjectParameter([Ô]@servico[Ô], servico.ToString()));
return DataCommand.Find<ConfigServWeb>(cmd);
}
é gerada a seguinte exceção:
Ocorreu uma exceção sem tratamento do tipo [Ô]System.TypeInitializationException[Ô] em OrdemFacil.exe
Informações adicionais: O inicializador de tipo de [ô]OrdemFacil.AcessoDados.DAL[ô] acionou uma exceção.
Teria como informar estes dados da consulta manualmente?
Sem necessidade de buscar no banco SQL?
Caso afirmativo, teria aà um exemplo de como seria feito isto?
Mais uma vez parabéns pelo conteudo postado.
Só dá esse erro!!!!!
Esse link do começo do tópico ta quebrado. Não abre o download.