/// <summary> /// Carregar as configurações de todas as empresas na coleção "Configuracoes" /// </summary> /// <remarks> /// Autor: Wandrey Mundin Ferreira /// Data: 29/07/2010 /// </remarks> public static void CarregaConfiguracao() { Empresas.Configuracoes.Clear(); Empresas.ExisteErroDiretorio = false; Empresas.CriarPasta(true); if (File.Exists(Propriedade.NomeArqEmpresas)) { try { XElement axml = XElement.Load(Propriedade.NomeArqEmpresas); var b1 = axml.Descendants(NFeStrConstants.Registro); foreach (var item in b1) { Empresa empresa = new Empresa(); empresa.CNPJ = item.Attribute(TpcnResources.CNPJ.ToString()).Value; empresa.Nome = item.Element(NFeStrConstants.Nome).Value.Trim(); empresa.Servico = Propriedade.TipoAplicativo; if (item.Attribute(NFeStrConstants.Servico) != null) { empresa.Servico = (TipoAplicativo)Convert.ToInt16(item.Attribute(NFeStrConstants.Servico).Value.Trim()); } string cArqErro = null; bool erro = false; try { int tipoerro = 0; string rc = empresa.BuscaConfiguracao(ref tipoerro); switch (tipoerro) { case 0: string uf = GetUF(empresa.UnidadeFederativaCodigo); if (uf != null) { empresa.URLConsultaDFe = ConfiguracaoApp.CarregarURLConsultaDFe(uf); } break; case 1: erro = true; throw new Exception(rc); case 2: throw new Exception(rc); } } catch (Exception ex) { try { /// /// nao acessar o metodo Auxiliar.GravarArqErroERP(string Arquivo, string Erro) já que nela tem a pesquisa da empresa /// com base em "int emp = Empresas.FindEmpresaByThread();" e neste ponto ainda não foi criada /// as thread's cArqErro = CriaArquivoDeErro(empresa, cArqErro); //Grava arquivo de ERRO para o ERP File.WriteAllText(cArqErro, ex.Message);//, Encoding.Default); } catch { } } if (!erro) { /// /// mesmo com erro, adicionar a lista para que o usuário possa altera-la empresa.ChecaCaminhoDiretorio(); if (!string.IsNullOrEmpty(Empresas.ErroCaminhoDiretorio) && Empresas.ExisteErroDiretorio) { try { if (cArqErro == null) { cArqErro = CriaArquivoDeErro(empresa, cArqErro); } //Grava arquivo de ERRO para o ERP File.AppendAllText(cArqErro, "Erros de diretorios:\r\n\r\n" + Empresas.ErroCaminhoDiretorio, Encoding.Default); } catch { } } Configuracoes.Add(empresa); } } } catch { throw; } } if (!Empresas.ExisteErroDiretorio) { Empresas.CriarPasta(false); } }
/// <summary> /// Carregar as configurações de todas as empresas na coleção "Configuracoes" /// </summary> /// <remarks> /// Autor: Wandrey Mundin Ferreira /// Data: 29/07/2010 /// </remarks> public static void CarregaConfiguracao() { Empresas.Configuracoes.Clear(); ExisteErroDiretorio = false; if (File.Exists(Propriedade.NomeArqEmpresas)) { //FileStream arqXml = null; try { XElement axml = XElement.Load(Propriedade.NomeArqEmpresas); var b1 = axml.Descendants(NFe.Components.NFeStrConstants.Registro); foreach (var item in b1) { Empresa empresa = new Empresa(); empresa.CNPJ = item.Attribute(NFe.Components.TpcnResources.CNPJ.ToString()).Value; empresa.Nome = item.Element(NFe.Components.NFeStrConstants.Nome).Value.Trim(); empresa.Servico = Propriedade.TipoAplicativo; if (item.Attribute(NFe.Components.NFeStrConstants.Servico) != null) { empresa.Servico = (TipoAplicativo)Convert.ToInt16(item.Attribute(NFe.Components.NFeStrConstants.Servico).Value.Trim()); } try { empresa.BuscaConfiguracao(); } catch (Exception ex) { try { /// /// nao acessar o metodo Auxiliar.GravarArqErroERP(string Arquivo, string Erro) já que nela tem a pesquisa da empresa /// com base em "int emp = Empresas.FindEmpresaByThread();" e neste ponto ainda não foi criada /// as thread's string cArqErro; if (string.IsNullOrEmpty(empresa.PastaXmlRetorno)) { cArqErro = Path.Combine(Propriedade.PastaExecutavel, string.Format(Propriedade.NomeArqERRUniNFe, DateTime.Now.ToString("yyyyMMddTHHmmss"))); } else { cArqErro = Path.Combine(empresa.PastaXmlRetorno, string.Format(Propriedade.NomeArqERRUniNFe, DateTime.Now.ToString("yyyyMMddTHHmmss"))); } //Grava arquivo de ERRO para o ERP File.WriteAllText(cArqErro, ex.Message, Encoding.Default); } catch { } } /// /// mesmo com erro, adicionar a lista para que o usuário possa altera-la empresa.ChecaCaminhoDiretorio(); Configuracoes.Add(empresa); } #if false arqXml = new FileStream(Propriedade.NomeArqEmpresas, FileMode.Open, FileAccess.Read, FileShare.Read); //Abrir um arquivo XML usando FileStream var xml = new XmlDocument(); xml.Load(arqXml); var empresaList = xml.GetElementsByTagName("Empresa"); foreach (XmlNode empresaNode in empresaList) { var empresaElemento = (XmlElement)empresaNode; var registroList = xml.GetElementsByTagName(NFe.Components.NFeStrConstants.Registro); for (int i = 0; i < registroList.Count; i++) { Empresa empresa = new Empresa(); var registroNode = registroList[i]; var registroElemento = (XmlElement)registroNode; empresa.CNPJ = registroElemento.GetAttribute(NFe.Components.NFeStrConstants.CNPJ).Trim(); empresa.Nome = registroElemento.GetElementsByTagName(NFe.Components.NFeStrConstants.Nome)[0].InnerText.Trim(); empresa.Servico = Propriedade.TipoAplicativo;// TipoAplicativo.Nfe; if (registroElemento.GetAttribute(NFe.Components.NFeStrConstants.Servico) != "") { empresa.Servico = (TipoAplicativo)Convert.ToInt16(registroElemento.GetAttribute(NFe.Components.NFeStrConstants.Servico).Trim()); } try { empresa.BuscaConfiguracao(); } catch (Exception ex) { /// /// nao acessar o metodo Auxiliar.GravarArqErroERP(string Arquivo, string Erro) já que nela tem a pesquisa da empresa /// com base em "int emp = Empresas.FindEmpresaByThread();" e neste ponto ainda não foi criada /// as thread's string cArqErro; if (string.IsNullOrEmpty(empresa.PastaXmlRetorno)) { cArqErro = Path.Combine(Propriedade.PastaExecutavel, string.Format(Propriedade.NomeArqERRUniNFe, DateTime.Now.ToString("yyyyMMddTHHmmss"))); } else { cArqErro = Path.Combine(empresa.PastaXmlRetorno, string.Format(Propriedade.NomeArqERRUniNFe, DateTime.Now.ToString("yyyyMMddTHHmmss"))); } try { //Grava arquivo de ERRO para o ERP File.WriteAllText(cArqErro, ex.Message, Encoding.Default); } catch { } } /// /// mesmo com erro, adicionar a lista para que o usuário possa altera-la empresa.ChecaCaminhoDiretorio(); Configuracoes.Add(empresa); } } arqXml.Close(); arqXml = null; #endif } catch { throw; } #if false finally { if (arqXml != null) { arqXml.Close(); } } #endif } if (!ExisteErroDiretorio) { Empresas.CriarPasta(); } }