From e3aebad5007578b23934d0a3a6f18226ae6fd759 Mon Sep 17 00:00:00 2001 From: Adenilton B Silva Date: Tue, 9 Aug 2016 11:02:50 -0300 Subject: [PATCH] =?UTF-8?q?*=20Implementado=20tratamento=20do=20par=C3=A2m?= =?UTF-8?q?etro=20(N=C3=BAmero=20do=20lote)=20do=20comando=20/enviar;=20+?= =?UTF-8?q?=20Adicionado=20par=C3=A2metro=20"tipo=5Fdocumento"=20no=20coma?= =?UTF-8?q?ndo=20/enviar,=20aceitando=20os=20seguintes=20valores:=20"D",?= =?UTF-8?q?=20"N"=20e=20"L",=20para=20indicar=20"Destinat=C3=A1rio=20(nfeP?= =?UTF-8?q?roc)",=20"Nfe"=20e=20"Lote=20(enviNFe3)";=20*=20Corre=C3=A7?= =?UTF-8?q?=C3=A3o=20no=20retorno=20do=20comando=20/recibo.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Integracao/Enums/Comando.cs | 2 +- NFe.Integracao/Enums/TipoXmlNFe.cs | 2 +- NFe.Integracao/NFeBuilder.cs | 2 +- NFe.Integracao/NFeFacade.cs | 2 +- NFe.Integracao/Program.cs | 33 ++++++++++++++++++++++++------ 5 files changed, 31 insertions(+), 10 deletions(-) diff --git a/NFe.Integracao/Enums/Comando.cs b/NFe.Integracao/Enums/Comando.cs index 3ebeffee5..d604e952b 100644 --- a/NFe.Integracao/Enums/Comando.cs +++ b/NFe.Integracao/Enums/Comando.cs @@ -44,4 +44,4 @@ public enum Comando Configurar, Help } -} +} \ No newline at end of file diff --git a/NFe.Integracao/Enums/TipoXmlNFe.cs b/NFe.Integracao/Enums/TipoXmlNFe.cs index 28aacd1db..1d920e663 100644 --- a/NFe.Integracao/Enums/TipoXmlNFe.cs +++ b/NFe.Integracao/Enums/TipoXmlNFe.cs @@ -39,4 +39,4 @@ public enum TipoXmlNFe Lote, Destinatario, } -} +} \ No newline at end of file diff --git a/NFe.Integracao/NFeBuilder.cs b/NFe.Integracao/NFeBuilder.cs index a92a020bc..4691a3b03 100644 --- a/NFe.Integracao/NFeBuilder.cs +++ b/NFe.Integracao/NFeBuilder.cs @@ -110,4 +110,4 @@ public Classes.NFe Build() return _nFe; } } -} +} \ No newline at end of file diff --git a/NFe.Integracao/NFeFacade.cs b/NFe.Integracao/NFeFacade.cs index 2e02e4e20..02c0fad8e 100644 --- a/NFe.Integracao/NFeFacade.cs +++ b/NFe.Integracao/NFeFacade.cs @@ -345,4 +345,4 @@ public List CapturarConteudoArquivoDeConfiguracoes() return new List(File.ReadAllLines(_pathArquivoConfiguracoes, Encoding.Unicode)); } } -} +} \ No newline at end of file diff --git a/NFe.Integracao/Program.cs b/NFe.Integracao/Program.cs index 7f0cdd14a..85582c3d1 100644 --- a/NFe.Integracao/Program.cs +++ b/NFe.Integracao/Program.cs @@ -62,7 +62,7 @@ public static void Main(string[] args) switch (args[i]) { case "/?": listComandos.Add(new KeyValuePair(Comando.Help,string.Empty)); break; - case "/enviar": listComandos.Add(new KeyValuePair(Comando.EnviarNFe, string.Format("{0}#{1}", args[i + 1], args[i+2]))); break; + case "/enviar": listComandos.Add(new KeyValuePair(Comando.EnviarNFe, string.Format("{0}#{1}#{2}", args[i + 1], args[i+2], args[i + 3]))); break; case "/recibo": listComandos.Add(new KeyValuePair(Comando.ConsultarReciboEnvio, args[i + 1])); break; case "/status": listComandos.Add(new KeyValuePair(Comando.StatusServico, string.Empty)); break; case "/inutilizar": listComandos.Add(new KeyValuePair(Comando.InutilizarNumeracao, string.Format("{0}#{1}#{2}#{3}#{4}#{5}", args[i + 1], args[i + 2], args[i + 3], args[i + 4], args[i + 5], args[i + 6]))); break; @@ -289,7 +289,7 @@ private static void ImprimirHelp() Console.WriteLine(""); Console.WriteLine("/config - zeus /config \"tipo_ambiente\" \"h\""); Console.WriteLine(""); - Console.WriteLine("/enviar - zeus /enviar \"C:\\meu_arquivo_xml.xml\""); + Console.WriteLine("/enviar - zeus /enviar \"C:\\meu_arquivo_xml.xml\" \"numero_do_lote\" \"tipo_documento(D=Destinatário - nfeProc; N=Nfe; L=Lote - enviNFe3\""); Console.WriteLine(""); Console.WriteLine("/recibo - zeus /recibo \"número_do_recibo\""); Console.WriteLine(""); @@ -420,10 +420,27 @@ private static bool ConsultarStatusServico(NFeFacade nfeFacade) private static void EnviarNFe(NFeFacade nfeFacade, string dadosDoEnvio) { string strPathArquivoXml; + int numeroLote; + TipoXmlNFe tipoXml; try { - strPathArquivoXml = dadosDoEnvio.Split('#')[0]; + var arrayStrDados = dadosDoEnvio.Split('#'); + strPathArquivoXml = arrayStrDados[0]; + numeroLote = int.Parse(arrayStrDados[1]); + switch (arrayStrDados[2]) + { + case "D": tipoXml = TipoXmlNFe.Destinatario; + break; + case "N": + tipoXml = TipoXmlNFe.NFe; + break; + case "L": + tipoXml = TipoXmlNFe.Lote; + break; + default: + throw new ArgumentException(); + } } catch { @@ -453,9 +470,9 @@ private static void EnviarNFe(NFeFacade nfeFacade, string dadosDoEnvio) return; } - var nfeBuilder = new NFeBuilder(strPathArquivoXml,TipoXmlNFe.NFe); + var nfeBuilder = new NFeBuilder(strPathArquivoXml, tipoXml); Console.WriteLine("Preparando a NFe..."); - var retorno = nfeFacade.EnviarNFe(1,nfeBuilder.Build()); + var retorno = nfeFacade.EnviarNFe(numeroLote, nfeBuilder.Build()); if (retorno.Retorno.cStat == 103) { Console.WriteLine("#NFe#"+retorno.Retorno.infRec.nRec); @@ -514,6 +531,10 @@ private static void ConsultarReciboDeEnvio(NFeFacade nfeFacade,string numeroReci { Console.WriteLine("#NFe#" + retornoConsultaProtocolo.Retorno.protNFe[0].infProt.nProt); } + if (retornoConsultaProtocolo.Retorno.protNFe[0].infProt != null) + { + Console.WriteLine("#Erro#" + retornoConsultaProtocolo.Retorno.protNFe[0].infProt.xMotivo); + } else { Console.WriteLine("#Erro#" + retornoConsultaProtocolo.Retorno.xMotivo); @@ -526,4 +547,4 @@ private static void ConsultarReciboDeEnvio(NFeFacade nfeFacade,string numeroReci } } } -} +} \ No newline at end of file