Classe com os dados do XML da consulta do status do serviço da NFe
Ejemplo n.º 1
0
        /// <summary>
        /// Le o retorno do LMC, e de acordo com o status guarda o XML enviado na pasta enviados
        /// </summary>
        private void LerRetornoLMC(DadosLMC dadosLMC)
        {
            int emp = Empresas.FindEmpresaByThread();
            var doc = new XmlDocument();

            doc.Load(Functions.StringXmlToStreamUTF8(vStrXmlRetorno));

            XmlElement protLivroCombustivel = (XmlElement)doc.GetElementsByTagName(TpcnResources.protLivroCombustivel.ToString())[0];
            string     cStat = protLivroCombustivel.GetElementsByTagName(TpcnResources.cStat.ToString())[0].InnerText;

            if (cStat == "1001" || cStat == "100" || cStat == "101")
            {
                var arquivoNFeProc = Empresas.Configuracoes[emp].PastaXmlEnviado + "\\" +
                                     PastaEnviados.EmProcessamento.ToString() + "\\" +
                                     Functions.ExtrairNomeArq(NomeArquivoXML, Propriedade.ExtEnvio.LMC) + Propriedade.ExtRetorno.ProcLMC;

                var protLMC = protLivroCombustivel.OuterXml;
                if (!File.Exists(arquivoNFeProc))
                {
                    oGerarXML.XmlDistLMC(NomeArquivoXML, protLMC, Propriedade.ExtRetorno.ProcLMC);
                }

                if (!oAux.EstaAutorizada(NomeArquivoXML, dadosLMC.dEmissao, Propriedade.ExtEnvio.LMC, Propriedade.ExtRetorno.ProcLMC))
                {
                    TFunctions.MoverArquivo(arquivoNFeProc, PastaEnviados.Autorizados, dadosLMC.dEmissao);
                }

                if (!oAux.EstaAutorizada(NomeArquivoXML, dadosLMC.dEmissao, Propriedade.ExtEnvio.LMC, Propriedade.ExtEnvio.LMC))
                {
                    TFunctions.MoverArquivo(NomeArquivoXML, PastaEnviados.Autorizados, dadosLMC.dEmissao);
                }
            }
        }
Ejemplo n.º 2
0
        public override void Execute()
        {
            int emp = Empresas.FindEmpresaByThread();

            try
            {
                //Leitura dos dados do XML
                dadosLMC = new DadosLMC();
                XmlLMC(emp, dadosLMC);

                //Criar objeto para envio do XML
                WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servico, emp, dadosLMC.cUF, Empresas.Configuracoes[emp].AmbienteCodigo);
                object oAutorizacao = wsProxy.CriarObjeto(wsProxy.NomeClasseWS);

                //Assinar o XML
                new AssinaturaDigital().Assinar(NomeArquivoXML, emp, Empresas.Configuracoes[emp].UnidadeFederativaCodigo);

                //Enviar o XML
                oInvocarObj.Invocar(wsProxy,
                                    oAutorizacao,
                                    wsProxy.NomeMetodoWS[0],
                                    null,
                                    this);

                LerRetornoLMC(dadosLMC);

                oGerarXML.XmlRetorno(Propriedade.ExtEnvio.LMC, Propriedade.ExtRetorno.LMCRet, vStrXmlRetorno);
            }
            catch (ExceptionEnvioXML ex)
            {
                try
                {
                    //Gravar o arquivo de erro de retorno para o ERP, caso ocorra
                    TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.ExtEnvio.LMC, Propriedade.ExtRetorno.LMCRet_ERR, ex, false);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                }
            }
            catch (ExceptionSemInternet ex)
            {
                try
                {
                    //Gravar o arquivo de erro de retorno para o ERP, caso ocorra
                    TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.ExtEnvio.LMC, Propriedade.ExtRetorno.LMCRet_ERR, ex, false);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                }
            }
            catch (Exception ex)
            {
                try
                {
                    //Gravar o arquivo de erro de retorno para o ERP, caso ocorra
                    TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.ExtEnvio.LMC, Propriedade.ExtRetorno.LMCRet_ERR, ex, false);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                }
            }
            finally
            {
                try
                {
                    //Deletar o arquivo de solicitação do serviço
                    Functions.DeletarArquivo(NomeArquivoXML);
                }
                catch
                {
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Le o retorno do LMC, e de acordo com o status guarda o XML enviado na pasta enviados
        /// </summary>
        private void LerRetornoLMC(DadosLMC dadosLMC)
        {
            int emp = Empresas.FindEmpresaByThread();
            var doc = new XmlDocument();
            doc.Load(Functions.StringXmlToStreamUTF8(vStrXmlRetorno));

            XmlElement protLivroCombustivel = (XmlElement)doc.GetElementsByTagName(TpcnResources.protLivroCombustivel.ToString())[0];
            string cStat = protLivroCombustivel.GetElementsByTagName(TpcnResources.cStat.ToString())[0].InnerText;

            if (cStat == "1001" || cStat == "100" || cStat == "101")
            {
                var arquivoNFeProc = Empresas.Configuracoes[emp].PastaXmlEnviado + "\\" +
                        PastaEnviados.EmProcessamento.ToString() + "\\" +
                        Functions.ExtrairNomeArq(NomeArquivoXML, Propriedade.ExtEnvio.LMC) + Propriedade.ExtRetorno.ProcLMC;

                var protLMC = protLivroCombustivel.OuterXml;
                if (!File.Exists(arquivoNFeProc))
                {
                    oGerarXML.XmlDistLMC(NomeArquivoXML, protLMC, Propriedade.ExtRetorno.ProcLMC);
                }

                if (!oAux.EstaAutorizada(NomeArquivoXML, dadosLMC.dEmissao, Propriedade.ExtEnvio.LMC, Propriedade.ExtRetorno.ProcLMC))
                {
                    TFunctions.MoverArquivo(arquivoNFeProc, PastaEnviados.Autorizados, dadosLMC.dEmissao);
                }

                if (!oAux.EstaAutorizada(NomeArquivoXML, dadosLMC.dEmissao, Propriedade.ExtEnvio.LMC, Propriedade.ExtEnvio.LMC))
                {
                    TFunctions.MoverArquivo(NomeArquivoXML, PastaEnviados.Autorizados, dadosLMC.dEmissao);
                }
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Efetua a leitura do XML de LMC e grava os dados no objeto "dadosLMC"
        /// </summary>
        /// <param name="emp">Empresa</param>
        /// <param name="dadosLMC">Objeto dados LMC para receber os valores</param>
        protected virtual void XmlLMC(int emp, DadosLMC dadosLMC)
        {
            dadosLMC.tpAmb = 0;
            dadosLMC.Id = string.Empty;
            dadosLMC.cUF = Empresas.Configuracoes[emp].UnidadeFederativaCodigo;
            dadosLMC.versao = string.Empty;

            XmlDocument doc = new XmlDocument();
            doc.Load(NomeArquivoXML);

            XmlElement infLivroCombustivel = (XmlElement)doc.GetElementsByTagName("infLivroCombustivel")[0];

            dadosLMC.tpAmb = Convert.ToInt32("0" + infLivroCombustivel.GetElementsByTagName(TpcnResources.tpAmb.ToString())[0].InnerText);
            dadosLMC.versao = infLivroCombustivel.Attributes[TpcnResources.versao.ToString()].InnerText;
            dadosLMC.Id = infLivroCombustivel.Attributes[TpcnResources.Id.ToString()].InnerText;

            XmlElement movimento = (XmlElement)infLivroCombustivel.GetElementsByTagName("movimento")[0];
            dadosLMC.dEmissao = Convert.ToDateTime(movimento.Attributes[TpcnResources.dEmissao.ToString()].InnerText);
        }
Ejemplo n.º 5
0
        public override void Execute()
        {
            int emp = Empresas.FindEmpresaByThread();

            try
            {
                //Leitura dos dados do XML
                dadosLMC = new DadosLMC();
                XmlLMC(emp, dadosLMC);

                //Criar objeto para envio do XML
                WebServiceProxy wsProxy      = ConfiguracaoApp.DefinirWS(Servico, emp, dadosLMC.cUF, Empresas.Configuracoes[emp].AmbienteCodigo);
                object          oAutorizacao = wsProxy.CriarObjeto(wsProxy.NomeClasseWS);

                //Assinar o XML
                new AssinaturaDigital().Assinar(NomeArquivoXML, emp, Empresas.Configuracoes[emp].UnidadeFederativaCodigo);

                //Enviar o XML
                oInvocarObj.Invocar(wsProxy,
                                    oAutorizacao,
                                    wsProxy.NomeMetodoWS[0],
                                    null,
                                    this);

                LerRetornoLMC(dadosLMC);

                oGerarXML.XmlRetorno(Propriedade.ExtEnvio.LMC, Propriedade.ExtRetorno.LMCRet, vStrXmlRetorno);
            }
            catch (ExceptionEnvioXML ex)
            {
                try
                {
                    //Gravar o arquivo de erro de retorno para o ERP, caso ocorra
                    TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.ExtEnvio.LMC, Propriedade.ExtRetorno.LMCRet_ERR, ex, false);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                }
            }
            catch (ExceptionSemInternet ex)
            {
                try
                {
                    //Gravar o arquivo de erro de retorno para o ERP, caso ocorra
                    TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.ExtEnvio.LMC, Propriedade.ExtRetorno.LMCRet_ERR, ex, false);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                }
            }
            catch (Exception ex)
            {
                try
                {
                    //Gravar o arquivo de erro de retorno para o ERP, caso ocorra
                    TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.ExtEnvio.LMC, Propriedade.ExtRetorno.LMCRet_ERR, ex, false);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                }
            }
            finally
            {
                try
                {
                    //Deletar o arquivo de solicitação do serviço
                    Functions.DeletarArquivo(NomeArquivoXML);
                }
                catch
                {
                }
            }
        }