// Use this for initialization void Start () { Propriedade<float> propriedade1 = new Propriedade<float>("propriedade1", 9); sistema.AdicionarPropriedade(propriedade1); Estado estado1 = new Estado("estado1",sistema); sistema.AdicionarEstado(estado1); Estado estado2 = new Estado("estado2", sistema); sistema.AdicionarEstado(estado2); Transicao transicao = new Transicao("valor maior que dez",estado1,estado2,sistema); sistema.AdicionarTransicao(transicao); Func<float, bool> comparacao = x => { return x > 10; }; Condicao<float> condicao = new Condicao<float>("maior", comparacao, transicao); transicao.AdicionarCondicao(condicao); Transicao transicao2 = new Transicao("valor menor que dez", estado2, estado1, sistema); sistema.AdicionarTransicao(transicao2); Func<float, bool> comparacao2 = x => { return x < 10; }; Condicao<float> condicao2 = new Condicao<float>("menor", comparacao2, transicao2); transicao2.AdicionarCondicao(condicao2); propriedade1.RegistrarObservador(condicao); propriedade1.RegistrarObservador(condicao2); sistema.SetarEstadoInicial(estado1.nome); }
public List<Propriedade> Selecionar(Regiao r, Cooperativa c) { SqlConnection cn = new SqlConnection(Conexao.SQL); SqlCommand cmd = new SqlCommand(); cmd.Connection = cn; cmd.CommandText = "SELECT * FROM TBMPPROPRIED WHERE ID_REGIAO =" + r.Id_regiao + "AND ID_COOPERAT =" + c.Id_cooperativa + ""; List<Propriedade> lista = new List<Propriedade>(); try { cn.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { Propriedade lst = new Propriedade(); lst.Codigo = Convert.ToString(dr["ID_PROPRIED"]); lst.Nome = Convert.ToString(dr["DS_PROPRIED"]); lista.Add(lst); } } catch (SqlException ex) { throw new Exception("Erro no servidor nro." + ex.Number); } finally { cn.Close(); } return lista; }
public List<Produtor> SelecionarProdutoresComColeta(Regiao regiao, Cooperativa cooperativa, Propriedade propriedade) { SqlConnection cn = new SqlConnection(Conexao.SQL); SqlCommand cmd = new SqlCommand("PR_PESQUISAR_PRODUTORES_COM_COLETA", cn); cmd.CommandType = CommandType.StoredProcedure; String data_inicial = cooperativa.Dt_inicio.ToString("dd/MM/yyyy"); String data_final = cooperativa.Dt_fim.ToString("dd/MM/yyyy"); cmd.Parameters.AddWithValue("@ID_REGIAO", regiao.Id_regiao); cmd.Parameters.AddWithValue("@ID_COOPERATIVA", cooperativa.Id_cooperativa); cmd.Parameters.AddWithValue("@ID_PROPRIEDADE", propriedade.Codigo); cmd.Parameters.AddWithValue("@DT_INICIO", data_inicial); cmd.Parameters.AddWithValue("@DT_FIM", data_final); List<Produtor> lista = new List<Produtor>(); try { cn.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { Produtor item = new Produtor(); item.Id_produtor_coop = Convert.ToString(dr["ID_PRODUTOR_COOP"]); item.Cod_produtor = Convert.ToString(dr["ID_PRODUTOR"]); item.Ds_produtor = Convert.ToString(dr["DS_PRODUTOR"]); item.Id_tipo_leite = Convert.ToString(dr["ID_TIPO_LEITE"]); lista.Add(item); } } catch (SqlException ex) { throw new Exception("Erro no servidor nro." + ex.Number); } finally { cn.Close(); } return lista; }
public override void ConsultarNfse(string file) { #region Definições de proxy if (!String.IsNullOrEmpty(ProxyUser)) { ServiceConsultarSituacaoLoteRps.Proxy = WebRequest.DefaultWebProxy; ServiceConsultarSituacaoLoteRps.Proxy.Credentials = new NetworkCredential(ProxyUser, ProxyPass); ServiceConsultarSituacaoLoteRps.Credentials = new NetworkCredential(ProxyUser, ProxyPass); } #endregion ConsultarNfseEnvio oTcDadosConsultaNfse = ReadXML <ConsultarNfseEnvio>(file); NFe.Components.br.com.fisslex.sinop.aws_consultanfse.p.tcMensagemRetorno[] result = null; string strResult = ""; strResult = ServiceConsultaNfse.Execute(oTcDadosConsultaNfse, out result); strResult = base.CreateXML(result); GerarRetorno(file, strResult, Propriedade.Extensao(Propriedade.TipoEnvio.PedSitNFSe).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedSitNFSe).RetornoXML); }
public override void EmiteNF(string file) { XmlDocument doc = new XmlDocument(); doc.Load(file); string strResult = string.Empty; switch (doc.DocumentElement.Name) { case "GerarNfseEnvio": strResult = EnvioSincrono(file); break; case "EnviarLoteRpsSincronoEnvio": strResult = EnvioSincronoEmLote(file); break; } GerarRetorno(file, strResult, Propriedade.Extensao(Propriedade.TipoEnvio.EnvLoteRps).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.EnvLoteRps).RetornoXML); }
public override void Execute() { Servico = Servicos.DANFERelatorio; int emp = Empresas.FindEmpresaByThread(); DateTime datai = DateTime.MinValue, dataf = DateTime.MaxValue; bool imprimir = false; string exportarPasta = "Enviados"; string fm = ""; try { if (this.vXmlNfeDadosMsgEhXML) { #if modelo_xml <?xml version = "1.0" encoding = "utf-8"?> < dados > < DataInicial > 2014 - 1 - 1 < / DataInicial > < DataFinal > 2014 - 12 - 1 < / DataFinal > < Imprimir > true </ Imprimir> < ExportarPasta > Enviar | Enviados | Erros </ ExportarPasta> < / dados > #endif Functions.DeletarArquivo(Path.Combine(Empresas.Configuracoes[emp].PastaXmlRetorno, Path.GetFileName(NomeArquivoXML.Replace(Propriedade.Extensao(Propriedade.TipoEnvio.EnvDanfeReport).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.EnvDanfeReport).RetornoXML).Replace(".xml", ".err")))); XmlDocument doc = new XmlDocument(); doc.Load(NomeArquivoXML); foreach (XmlNode node in doc.GetElementsByTagName("dados")) { XmlElement elementConfig = (XmlElement)node; exportarPasta = Functions.LerTag(elementConfig, "ExportarPasta", "Enviados"); datai = Convert.ToDateTime(Functions.LerTag(elementConfig, "DataInicial", "2001-1-1")); dataf = Convert.ToDateTime(Functions.LerTag(elementConfig, "DataFinal", "2999-1-1")); imprimir = Convert.ToBoolean(Functions.LerTag(elementConfig, "Imprimir", "true")); } fm = Functions.ExtrairNomeArq(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.EnvDanfeReport).EnvioXML) + Propriedade.Extensao(Propriedade.TipoEnvio.EnvDanfeReport).RetornoXML; }
public override void ConsultarLoteRps(string file) { #region Definições de proxy if (!String.IsNullOrEmpty(ProxyUser)) { ServiceConsultaLoteRps.Proxy = WebRequest.DefaultWebProxy; ServiceConsultaLoteRps.Proxy.Credentials = new NetworkCredential(ProxyUser, ProxyPass); ServiceConsultaLoteRps.Credentials = new NetworkCredential(ProxyUser, ProxyPass); } #endregion Definições de proxy ConsultarLoteRpsEnvio oTcDadosConsultaLote = ReadXML <ConsultarLoteRpsEnvio>(file); PLucasDoRioVerdeMTConsultaLoteRps.tcMensagemRetorno[] result = null; ServiceConsultaLoteRps.Execute(oTcDadosConsultaLote, out result); string strResult = base.CreateXML(result); GerarRetorno(file, strResult, Propriedade.Extensao(Propriedade.TipoEnvio.PedLoteRps).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedLoteRps).RetornoXML); }
private string RetornarNomePropriedadeValidacao(Propriedade propriedade) { string nomePropriedadeValidacao = string.Empty; if (propriedade.Tipo == eTipoPropriedade.Reference) { if (propriedade.IsCollection) { nomePropriedadeValidacao = "Ids" + propriedade.Nome; } else { nomePropriedadeValidacao = "Id" + propriedade.Nome; } } else { nomePropriedadeValidacao = propriedade.Nome; } return(nomePropriedadeValidacao); }
public IHttpActionResult Post([FromBody] Propriedade propriedade) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } List <PropriedadeValor> valores = propriedade.Valores.ToList(); propriedade.Valores = null; _repository.Insert(propriedade); foreach (var valor in valores) { valor.PropriedadeID = propriedade.ID; _valoresRepository.Insert(valor); } if (propriedade.VincularEspecies) { foreach (var esp in _especieRepository.GetByEmpresaID(propriedade.EmpresaID)) { _especiePropriedadeRepository.Insert(new EspeciePropriedade { EspecieID = esp.ID, PropriedadeID = propriedade.ID }); } } return(Ok(propriedade)); } catch (System.Exception ex) { return(BadRequest(ex.Message)); } }
public override void EmiteNF(string file) { XmlDocument xml = new XmlDocument(); xml.Load(file); string result = string.Empty; switch (xml.DocumentElement.Name) { case "EnviarLoteRpsEnvio": result = Service.RecepcionarLoteRps(CabecMsg, xml.InnerXml); break; case "GerarNfseEnvio": result = Service.GerarNfse(CabecMsg, xml.InnerXml); break; } GerarRetorno(file, result, Propriedade.Extensao(Propriedade.TipoEnvio.EnvLoteRps).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.EnvLoteRps).RetornoXML); }
public List<Produtor> CarregarProdutores(Regiao regiao, Cooperativa cooperativa, Propriedade propriedade) { SqlConnection cn = new SqlConnection(Conexao.SQL); SqlCommand cmd = new SqlCommand("PR_LISTAR_PRODUTORES", cn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@ID_REGIAO", regiao.Id_regiao); cmd.Parameters.AddWithValue("@ID_COOPERATIVA", cooperativa.Id_cooperativa); cmd.Parameters.AddWithValue("@ID_PROPRIEDADE", propriedade.Codigo); List<Produtor> lista = new List<Produtor>(); try { cn.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { Produtor lst = new Produtor(); lst.Id_produtor_coop = Convert.ToString(dr["ID_PRODUTOR_COOP"]); lst.Cod_produtor = Convert.ToString(dr["ID_PRODUTOR"]); lst.Ds_produtor = Convert.ToString(dr["DS_PRODUTOR"]); lista.Add(lst); } } catch (SqlException ex) { throw new Exception("Erro no servidor nro." + ex.Number); } finally { cn.Close(); } return lista; }
/// <summary> /// VerConsultaCadastroClass /// </summary> /// <param name="XmlNfeDadosMsg"></param> /// <returns></returns> public object VerConsultaCadastro(string XmlNfeDadosMsg) { string ArqXMLRetorno = Empresas.Configuracoes[Emp].PastaXmlRetorno + "\\" + Functions.ExtrairNomeArq(XmlNfeDadosMsg, Propriedade.Extensao(Propriedade.TipoEnvio.ConsCad).EnvioXML) + Propriedade.Extensao(Propriedade.TipoEnvio.ConsCad).RetornoXML; string ArqERRRetorno = Empresas.Configuracoes[Emp].PastaXmlRetorno + "\\" + Functions.ExtrairNomeArq(XmlNfeDadosMsg, Propriedade.Extensao(Propriedade.TipoEnvio.ConsCad).EnvioXML) + Propriedade.ExtRetorno.ConsCad_ERR; object vRetorno = null; try { vRetorno = EnviaArquivoERecebeResposta(ArqXMLRetorno, ArqERRRetorno); } finally { Functions.DeletarArquivo(ArqERRRetorno); Functions.DeletarArquivo(ArqXMLRetorno); } return(vRetorno); }
public override void EmiteNF(string file) { XmlDocument doc = new XmlDocument(); doc.Load(file); string strResult = string.Empty; switch (doc.DocumentElement.Name) { case "GerarNovaNfseEnvio": GerarNovaNfseEnvio envio = DeserializarObjeto <GerarNovaNfseEnvio>(file); strResult = SerializarObjeto(Service.GerarNfse(envio, DadosConexao)); break; case "EnviarLoteRpsEnvio": EnviarLoteRpsEnvio envioLote = DeserializarObjeto <EnviarLoteRpsEnvio>(file); strResult = SerializarObjeto(Service.RecepcionarLoteRps(envioLote, DadosConexao)); break; } GerarRetorno(file, strResult, Propriedade.Extensao(Propriedade.TipoEnvio.EnvLoteRps).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.EnvLoteRps).RetornoXML); }
public override void ConsultarNfse(string file) { XmlTextReader reader = new XmlTextReader(file); reader.WhitespaceHandling = WhitespaceHandling.None; reader.MoveToContent(); XmlDocument oXml = new XmlDocument(); oXml.Load(reader); Array result = serviceConsulta.ConsultaNfe(Login, Senha, XmlDocumentUtilities.GetValue <string>(oXml, "prf"), XmlDocumentUtilities.GetValue <string>(oXml, "usr"), XmlDocumentUtilities.GetValue <string>(oXml, "ctr"), XmlDocumentUtilities.GetValue <string>(oXml, "tipo")); string strResult = base.CreateXML(result); GerarRetorno(file, strResult, Propriedade.Extensao(Propriedade.TipoEnvio.PedSitNFSe).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedSitNFSe).RetornoXML); }
public void CarregarPIN(int emp, string arqXML, Servicos servico) { X509Certificate2 x509Cert = new X509Certificate2(Empresas.Configuracoes[emp].X509Certificado); if (Empresas.Configuracoes[emp].UsaCertificado && clsX509Certificate2Extension.IsA3(x509Cert)) { string tempFile = ""; switch (servico) { case Servicos.ConsultaCadastroContribuinte: tempFile = Functions.ExtraiPastaNomeArq(arqXML, Propriedade.Extensao(Propriedade.TipoEnvio.ConsCad).EnvioXML) + "__" + Propriedade.Extensao(Propriedade.TipoEnvio.ConsCad).EnvioXML; File.Copy(arqXML, tempFile, true); Assinar(tempFile, "ConsCad", "infCons", x509Cert, emp); break; case Servicos.NFeConsultaStatusServico: tempFile = Functions.ExtraiPastaNomeArq(arqXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedSta).EnvioXML) + "__" + Propriedade.Extensao(Propriedade.TipoEnvio.PedSta).EnvioXML; File.Copy(arqXML, tempFile, true); Assinar(tempFile, "consStatServ", "xServ", x509Cert, emp); break; case Servicos.NFePedidoConsultaSituacao: tempFile = Functions.ExtraiPastaNomeArq(arqXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedSta).EnvioXML) + "__" + Propriedade.Extensao(Propriedade.TipoEnvio.PedSta).EnvioXML; File.Copy(arqXML, tempFile, true); Assinar(tempFile, "consSitNFe", "xServ", x509Cert, emp); break; default: break; } if (tempFile != "" && File.Exists(tempFile)) { File.Delete(tempFile); } } }
private string RetornarComandoExcluirColuna(string nomeEntidade, Propriedade propriedade) { return($"Delete.Column(\"{RetornarNome(propriedade)}\").FromTable(\"{nomeEntidade}\")"); }
public override void Execute() { int emp = Empresas.FindEmpresaByThread(); //Definir o serviço que será executado para a classe Servico = Servicos.NFSeCancelar; try { Functions.DeletarArquivo(Empresas.Configuracoes[emp].PastaXmlRetorno + "\\" + Functions.ExtrairNomeArq(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedCanNFSe).EnvioXML) + Propriedade.ExtRetorno.CanNfse_ERR); Functions.DeletarArquivo(Empresas.Configuracoes[emp].PastaXmlErro + "\\" + NomeArquivoXML); oDadosPedCanNfse = new DadosPedCanNfse(emp); //Ler o XML para pegar parâmetros de envio PedCanNfse(emp, NomeArquivoXML); PadroesNFSe padraoNFSe = Functions.PadraoNFSe(oDadosPedCanNfse.cMunicipio); WebServiceProxy wsProxy = null; object pedCanNfse = null; //Criar objetos das classes dos serviços dos webservices do SEFAZ if (IsUtilizaCompilacaoWs(padraoNFSe)) { wsProxy = ConfiguracaoApp.DefinirWS(Servico, emp, oDadosPedCanNfse.cMunicipio, oDadosPedCanNfse.tpAmb, oDadosPedCanNfse.tpEmis, padraoNFSe, oDadosPedCanNfse.cMunicipio); if (wsProxy != null) { pedCanNfse = wsProxy.CriarObjeto(wsProxy.NomeClasseWS); } } System.Net.SecurityProtocolType securityProtocolType = WebServiceProxy.DefinirProtocoloSeguranca(oDadosPedCanNfse.cMunicipio, oDadosPedCanNfse.tpAmb, oDadosPedCanNfse.tpEmis, padraoNFSe, Servico); string cabecMsg = ""; switch (padraoNFSe) { case PadroesNFSe.IPM: //código da cidade da receita federal, este arquivo pode ser encontrado em ~\uninfe\doc\Codigos_Cidades_Receita_Federal.xls</para> //O código da cidade está hardcoded pois ainda está sendo usado apenas para campo mourão IPM ipm = new IPM((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, oDadosPedCanNfse.cMunicipio); if (ConfiguracaoApp.Proxy) { ipm.Proxy = Proxy.DefinirProxy(ConfiguracaoApp.ProxyServidor, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyPorta); } ipm.EmiteNF(NomeArquivoXML, true); break; case PadroesNFSe.ABASE: cabecMsg = "<cabecalho xmlns=\"http://nfse.abase.com.br/nfse.xsd\" versao =\"1.00\"><versaoDados>1.00</versaoDados></cabecalho>"; break; case PadroesNFSe.GINFES: cabecMsg = ""; //Cancelamento ainda tá na versão 2.0 então não tem o cabecMsg break; case PadroesNFSe.BETHA: #region Betha ConteudoXML.PreserveWhitespace = false; ConteudoXML.Load(NomeArquivoXML); if (!ConteudoXML.DocumentElement.Name.Contains("e:")) { padraoNFSe = PadroesNFSe.BETHA202; Components.Betha.NewVersion.Betha betha = new Components.Betha.NewVersion.Betha((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedCanNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor); AssinaturaDigital signbetha = new AssinaturaDigital(); signbetha.Assinar(NomeArquivoXML, emp, 202); betha.CancelarNfse(NomeArquivoXML); } else { wsProxy = new WebServiceProxy(Empresas.Configuracoes[emp].X509Certificado); wsProxy.Betha = new Betha(); } break; #endregion Betha case PadroesNFSe.ABACO: case PadroesNFSe.CANOAS_RS: cabecMsg = "<cabecalho versao=\"201001\"><versaoDados>V2010</versaoDados></cabecalho>"; break; case PadroesNFSe.BLUMENAU_SC: EncryptAssinatura(); break; case PadroesNFSe.BHISS: cabecMsg = "<cabecalho xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"1.00\"><versaoDados >1.00</versaoDados ></cabecalho>"; break; case PadroesNFSe.WEBISS: cabecMsg = "<cabecalho xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"1.00\"><versaoDados >1.00</versaoDados ></cabecalho>"; break; case PadroesNFSe.WEBISS_202: cabecMsg = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><cabecalho xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"2.02\"><versaoDados>2.02</versaoDados></cabecalho>"; break; case PadroesNFSe.PAULISTANA: wsProxy = new WebServiceProxy(Empresas.Configuracoes[emp].X509Certificado); if (oDadosPedCanNfse.tpAmb == 1) { pedCanNfse = new NFe.Components.PSaoPauloSP.LoteNFe(); } else { throw new Exception("Município de São Paulo-SP não dispõe de ambiente de homologação para envio de NFS-e em teste."); } EncryptAssinatura(); break; case PadroesNFSe.DSF: EncryptAssinatura(); break; case PadroesNFSe.TECNOSISTEMAS: cabecMsg = "<?xml version=\"1.0\" encoding=\"utf-8\"?><cabecalho xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" versao=\"20.01\" xmlns=\"http://www.nfse-tecnos.com.br/nfse.xsd\"><versaoDados>20.01</versaoDados></cabecalho>"; break; case PadroesNFSe.FINTEL: cabecMsg = "<cabecalho versao=\"2.02\" xmlns=\"http://iss.irati.pr.gov.br/Arquivos/nfseV202.xsd\"><versaoDados>2.02</versaoDados></cabecalho>"; break; case PadroesNFSe.SYSTEMPRO: SystemPro syspro = new SystemPro((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, Empresas.Configuracoes[emp].X509Certificado); AssinaturaDigital ad = new AssinaturaDigital(); ad.Assinar(NomeArquivoXML, emp, oDadosPedCanNfse.cMunicipio); syspro.CancelarNfse(NomeArquivoXML); break; case PadroesNFSe.SIGCORP_SIGISS: SigCorp sigcorp = new SigCorp((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedCanNfse.cMunicipio); sigcorp.CancelarNfse(NomeArquivoXML); break; case PadroesNFSe.METROPOLIS: #region METROPOLIS Metropolis metropolis = new Metropolis((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedCanNfse.cMunicipio, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor, Empresas.Configuracoes[emp].X509Certificado); AssinaturaDigital metropolisdig = new AssinaturaDigital(); metropolisdig.Assinar(NomeArquivoXML, emp, oDadosPedCanNfse.cMunicipio); metropolis.CancelarNfse(NomeArquivoXML); break; #endregion METROPOLIS case PadroesNFSe.FIORILLI: Fiorilli fiorilli = new Fiorilli((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedCanNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor, Empresas.Configuracoes[emp].X509Certificado); AssinaturaDigital ass = new AssinaturaDigital(); ass.Assinar(NomeArquivoXML, emp, oDadosPedCanNfse.cMunicipio); fiorilli.CancelarNfse(NomeArquivoXML); break; case PadroesNFSe.SIMPLISS: SimplISS simpliss = new SimplISS((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedCanNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor); AssinaturaDigital sing = new AssinaturaDigital(); sing.Assinar(NomeArquivoXML, emp, oDadosPedCanNfse.cMunicipio); simpliss.CancelarNfse(NomeArquivoXML); break; case PadroesNFSe.CONAM: Conam conam = new Conam((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedCanNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS); conam.CancelarNfse(NomeArquivoXML); break; case PadroesNFSe.EGOVERNE: #region E-Governe EGoverne egoverne = new EGoverne((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedCanNfse.cMunicipio, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor, Empresas.Configuracoes[emp].X509Certificado); AssinaturaDigital assegov = new AssinaturaDigital(); assegov.Assinar(NomeArquivoXML, emp, oDadosPedCanNfse.cMunicipio); egoverne.CancelarNfse(NomeArquivoXML); #endregion E-Governe break; case PadroesNFSe.COPLAN: #region Coplan Coplan coplan = new Coplan((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedCanNfse.cMunicipio, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor, Empresas.Configuracoes[emp].X509Certificado); AssinaturaDigital assCoplan = new AssinaturaDigital(); assCoplan.Assinar(NomeArquivoXML, emp, oDadosPedCanNfse.cMunicipio); coplan.CancelarNfse(NomeArquivoXML); break; #endregion Coplan case PadroesNFSe.EL: #region E&L EL el = new EL((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedCanNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, (ConfiguracaoApp.Proxy ? ConfiguracaoApp.ProxyUsuario : ""), (ConfiguracaoApp.Proxy ? ConfiguracaoApp.ProxySenha : ""), (ConfiguracaoApp.Proxy ? ConfiguracaoApp.ProxyServidor : "")); el.CancelarNfse(NomeArquivoXML); #endregion E&L break; case PadroesNFSe.GOVDIGITAL: GovDigital govdig = new GovDigital((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, Empresas.Configuracoes[emp].X509Certificado, oDadosPedCanNfse.cMunicipio, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor); AssinaturaDigital adgovdig = new AssinaturaDigital(); adgovdig.Assinar(NomeArquivoXML, emp, oDadosPedCanNfse.cMunicipio); govdig.CancelarNfse(NomeArquivoXML); break; case PadroesNFSe.BSITBR: wsProxy = new WebServiceProxy(Empresas.Configuracoes[emp].X509Certificado); if (oDadosPedCanNfse.tpAmb == 1) { pedCanNfse = new Components.PJaraguaGO.nfseWS(); } else { throw new Exception("Município de Jaraguá-GO não dispõe de ambiente de homologação para envio de NFS-e em teste."); } break; case PadroesNFSe.EQUIPLANO: cabecMsg = "1"; break; case PadroesNFSe.PORTALFACIL_ACTCON_202: cabecMsg = "<cabecalho><versaoDados>2.02</versaoDados></cabecalho>"; break; case PadroesNFSe.PORTALFACIL_ACTCON: case PadroesNFSe.PRODATA: cabecMsg = "<cabecalho><versaoDados>2.01</versaoDados></cabecalho>"; break; case PadroesNFSe.ELOTECH: #region EloTech EloTech elotech = new EloTech((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedCanNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor, Empresas.Configuracoes[emp].X509Certificado); elotech.CancelarNfse(NomeArquivoXML); break; #endregion EloTech case PadroesNFSe.MGM: #region MGM MGM mgm = new MGM((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedCanNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS); mgm.CancelarNfse(NomeArquivoXML); break; #endregion MGM case PadroesNFSe.NATALENSE: cabecMsg = @" <![CDATA[<?xml version=""1.0""?> <cabecalho xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" versao =""1"" xmlns =""http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd"" > <versaoDados>1</versaoDados></cabecalho> "; break; case PadroesNFSe.CONSIST: #region Consist Consist consist = new Consist((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedCanNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor); consist.CancelarNfse(NomeArquivoXML); break; #endregion Consist case PadroesNFSe.FREIRE_INFORMATICA: cabecMsg = "<cabecalho xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"2.02\"><versaoDados>2.02</versaoDados></cabecalho>"; break; case PadroesNFSe.MEMORY: #region Memory Memory memory = new Memory((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedCanNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor); memory.CancelarNfse(NomeArquivoXML); break; #endregion Memory case PadroesNFSe.CAMACARI_BA: cabecMsg = "<cabecalho><versaoDados>2.01</versaoDados><versao>2.01</versao></cabecalho>"; break; case PadroesNFSe.NA_INFORMATICA: wsProxy = new WebServiceProxy(Empresas.Configuracoes[emp].X509Certificado); //if (oDadosPedCanNfse.tpAmb == 1) // pedCanNfse = new Components.PCorumbaMS.NfseWSService(); //else // pedCanNfse = new Components.HCorumbaMS.NfseWSService(); break; case PadroesNFSe.PRONIN: if (oDadosPedCanNfse.cMunicipio == 4109401 || oDadosPedCanNfse.cMunicipio == 3131703 || oDadosPedCanNfse.cMunicipio == 4303004) { Pronin pronin = new Pronin((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedCanNfse.cMunicipio, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor, Empresas.Configuracoes[emp].X509Certificado); AssinaturaDigital assPronin = new AssinaturaDigital(); assPronin.Assinar(NomeArquivoXML, emp, oDadosPedCanNfse.cMunicipio); pronin.CancelarNfse(NomeArquivoXML); } break; case PadroesNFSe.EGOVERNEISS: #region EGoverne ISS EGoverneISS egoverneiss = new EGoverneISS((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedCanNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor); egoverneiss.CancelarNfse(NomeArquivoXML); break; #endregion EGoverne ISS case PadroesNFSe.BAURU_SP: Bauru_SP bauru_SP = new Bauru_SP((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedCanNfse.cMunicipio); bauru_SP.CancelarNfse(NomeArquivoXML); break; case PadroesNFSe.SMARAPD: if (Empresas.Configuracoes[emp].UnidadeFederativaCodigo == 3201308) //Município de Cariacica-ES { throw new Exception("Município de Cariacica-ES não permite cancelamento de NFS-e via webservice."); } break; #region Tinus case PadroesNFSe.TINUS: Tinus tinus = new Tinus((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedCanNfse.cMunicipio, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor, Empresas.Configuracoes[emp].X509Certificado); AssinaturaDigital tinusAss = new AssinaturaDigital(); tinusAss.Assinar(NomeArquivoXML, emp, oDadosPedCanNfse.cMunicipio); tinus.CancelarNfse(NomeArquivoXML); break; #endregion Tinus #region SH3 case PadroesNFSe.SH3: cabecMsg = "<cabecalho xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"1.00\"><versaoDados >1.00</versaoDados ></cabecalho>"; break; #endregion SH3 #region SOFTPLAN case PadroesNFSe.SOFTPLAN: SOFTPLAN softplan = new SOFTPLAN((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, Empresas.Configuracoes[emp].ClientID, Empresas.Configuracoes[emp].ClientSecret); if (ConfiguracaoApp.Proxy) { softplan.Proxy = Proxy.DefinirProxy(ConfiguracaoApp.ProxyServidor, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyPorta); } softplan.CancelarNfse(NomeArquivoXML); break; #endregion SOFTPLAN case PadroesNFSe.INTERSOL: cabecMsg = "<?xml version=\"1.0\" encoding=\"utf-8\"?><p:cabecalho versao=\"1\" xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" xmlns:p=\"http://ws.speedgov.com.br/cabecalho_v1.xsd\" xmlns:p1=\"http://ws.speedgov.com.br/tipos_v1.xsd\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://ws.speedgov.com.br/cabecalho_v1.xsd cabecalho_v1.xsd \"><versaoDados>1</versaoDados></p:cabecalho>"; break; } if (IsInvocar(padraoNFSe, Servico, Empresas.Configuracoes[emp].UnidadeFederativaCodigo)) { //Assinar o XML AssinaturaDigital ad = new AssinaturaDigital(); ad.Assinar(NomeArquivoXML, emp, oDadosPedCanNfse.cMunicipio); //Invocar o método que envia o XML para o SEFAZ oInvocarObj.InvocarNFSe(wsProxy, pedCanNfse, NomeMetodoWS(Servico, oDadosPedCanNfse.cMunicipio), cabecMsg, this, Propriedade.Extensao(Propriedade.TipoEnvio.PedCanNFSe).EnvioXML, //"-ped-cannfse", Propriedade.Extensao(Propriedade.TipoEnvio.PedCanNFSe).RetornoXML, //"-cannfse", padraoNFSe, Servico, securityProtocolType); /// /// grava o arquivo no FTP string filenameFTP = Path.Combine(Empresas.Configuracoes[emp].PastaXmlRetorno, Functions.ExtrairNomeArq(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedCanNFSe).EnvioXML) + Propriedade.Extensao(Propriedade.TipoEnvio.PedCanNFSe).RetornoXML); if (File.Exists(filenameFTP)) { new GerarXML(emp).XmlParaFTP(emp, filenameFTP); } } } catch (Exception ex) { try { //Gravar o arquivo de erro de retorno para o ERP, caso ocorra TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedCanNFSe).EnvioXML, Propriedade.ExtRetorno.CanNfse_ERR, ex); } catch { //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada. //Wandrey 31/08/2011 } } finally { try { Functions.DeletarArquivo(NomeArquivoXML); } catch { //Se falhou algo na hora de deletar o XML de cancelamento de NFe, infelizmente //não posso fazer mais nada, o UniNFe vai tentar mandar o arquivo novamente para o webservice, pois ainda não foi excluido. //Wandrey 31/08/2011 } } }
private string RetornarComandoAlterarColuna(string nomeEntidade, Propriedade propriedade) { return($"Alter.Column(\"{RetornarNome(propriedade)}\").OnTable(\"{nomeEntidade}\")." + RetornarTipo(propriedade) + RetornarNullable(propriedade)); }
public override void Execute() { switch (Servico) { case Servicos.DFeEnviar: ExtEnvioDFe = Propriedade.Extensao(Propriedade.TipoEnvio.EnvDFe).EnvioXML; ExtEnvioDFeTXT = Propriedade.Extensao(Propriedade.TipoEnvio.EnvDFe).EnvioTXT; ExtRetornoDFe = Propriedade.Extensao(Propriedade.TipoEnvio.EnvDFe).RetornoXML; ExtRetEnvDFe_ERR = Propriedade.ExtRetorno.retEnvDFe_ERR; break; case Servicos.CTeDistribuicaoDFe: ExtEnvioDFe = Propriedade.Extensao(Propriedade.TipoEnvio.EnvDFeCTe).EnvioXML; ExtEnvioDFeTXT = Propriedade.Extensao(Propriedade.TipoEnvio.EnvDFeCTe).EnvioTXT; ExtRetornoDFe = Propriedade.Extensao(Propriedade.TipoEnvio.EnvDFeCTe).RetornoXML; ExtRetEnvDFe_ERR = Propriedade.ExtRetorno.retEnvDFeCTe_ERR; break; } int emp = Empresas.FindEmpresaByThread(); distDFeInt _distDFeInt = new distDFeInt(); try { if (!this.vXmlNfeDadosMsgEhXML) { ///versao|1.00 ///tpAmb|1 ///cUFAutor|35 ///CNPJ| /// ou ///CPF| ///ultNSU|123456789012345 /// ou ///NSU|123456789012345 List <string> cLinhas = Functions.LerArquivo(NomeArquivoXML); Functions.PopulateClasse(_distDFeInt, cLinhas); string f = Path.GetFileNameWithoutExtension(NomeArquivoXML) + ".xml"; if (NomeArquivoXML.IndexOf(Empresas.Configuracoes[emp].PastaValidar, StringComparison.InvariantCultureIgnoreCase) >= 0) { f = Path.Combine(Empresas.Configuracoes[emp].PastaValidar, f); } // Gerar o XML de envio de DFe a partir do TXT gerado pelo ERP oGerarXML.RecepcaoDFe(f, _distDFeInt); } else { XmlNodeList consdistDFeIntList = ConteudoXML.GetElementsByTagName("distDFeInt"); foreach (XmlNode consdistDFeIntNode in consdistDFeIntList) { XmlElement consdistDFeIntElemento = (XmlElement)consdistDFeIntNode; Functions.PopulateClasse(_distDFeInt, consdistDFeIntElemento); } //Definir o objeto do WebService WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servico, emp, 991, _distDFeInt.tpAmb, 0); System.Net.SecurityProtocolType securityProtocolType = WebServiceProxy.DefinirProtocoloSeguranca(991, _distDFeInt.tpAmb, 1, Servico); object oConsNFDestEvento = wsProxy.CriarObjeto(wsProxy.NomeClasseWS); //Invocar o método que envia o XML para o SEFAZ oInvocarObj.Invocar(wsProxy, oConsNFDestEvento, wsProxy.NomeMetodoWS[0], null, this, ExtEnvioDFe, ExtRetornoDFe, true, securityProtocolType); LeRetornoDFe(emp, ConteudoXML); } } catch (Exception ex) { WriteLogError(ex); } finally { try { //Deletar o arquivo de solicitação do serviço Functions.DeletarArquivo(NomeArquivoXML); } catch { } } }
Path.GetFileName(NomeArquivoXML.Replace(Propriedade.ExtEnvio.EnvDanfeReport_TXT, Propriedade.ExtRetorno.RetDanfeReport_TXT).Replace(".txt", ".err"))));
public override void Execute() { int emp = Empresas.FindEmpresaByThread(); try { dadosPedSta = new DadosPedSta(); //Ler o XML para pegar parâmetros de envio PedSta(emp, dadosPedSta); if (vXmlNfeDadosMsgEhXML) //danasa 12-9-2009 { //Definir o objeto do WebService WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servico, emp, dadosPedSta.cUF, dadosPedSta.tpAmb, dadosPedSta.tpEmis, dadosPedSta.versao, dadosPedSta.mod, 0); System.Net.SecurityProtocolType securityProtocolType = WebServiceProxy.DefinirProtocoloSeguranca(dadosPedSta.cUF, dadosPedSta.tpAmb, dadosPedSta.tpEmis, Servico); //Criar objetos das classes dos serviços dos webservices do SEFAZ var oStatusServico = wsProxy.CriarObjeto(wsProxy.NomeClasseWS); object oCabecMsg = null; if (dadosPedSta.versao != "4.00") { oCabecMsg = wsProxy.CriarObjeto(NomeClasseCabecWS(dadosPedSta.cUF, Servico)); wsProxy.SetProp(oCabecMsg, TpcnResources.cUF.ToString(), dadosPedSta.cUF.ToString()); wsProxy.SetProp(oCabecMsg, TpcnResources.versaoDados.ToString(), dadosPedSta.versao); } new AssinaturaDigital().CarregarPIN(emp, NomeArquivoXML, Servico); //Invocar o método que envia o XML para o SEFAZ oInvocarObj.Invocar(wsProxy, oStatusServico, wsProxy.NomeMetodoWS[0], oCabecMsg, this, Propriedade.Extensao(Propriedade.TipoEnvio.PedSta).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedSta).RetornoXML, true, securityProtocolType); } else { string f = Path.GetFileNameWithoutExtension(NomeArquivoXML) + ".xml"; if (NomeArquivoXML.IndexOf(Empresas.Configuracoes[emp].PastaValidar, StringComparison.InvariantCultureIgnoreCase) >= 0) { f = Path.Combine(Empresas.Configuracoes[emp].PastaValidar, f); } // Gerar o XML de solicitacao de situacao do servico a partir do TXT gerado pelo ERP oGerarXML.StatusServicoNFe(f, dadosPedSta.tpAmb, dadosPedSta.tpEmis, dadosPedSta.cUF, dadosPedSta.versao); } } catch (Exception ex) { var extRet = vXmlNfeDadosMsgEhXML ? Propriedade.Extensao(Propriedade.TipoEnvio.PedSta).EnvioXML : Propriedade.Extensao(Propriedade.TipoEnvio.PedSta).EnvioTXT; try { //Gravar o arquivo de erro de retorno para o ERP, caso ocorra TFunctions.GravarArqErroServico(NomeArquivoXML, extRet, Propriedade.ExtRetorno.Sta_ERR, ex); } catch { //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada. //Wandrey 09/03/2010 } } finally { try { //Deletar o arquivo de solicitação do serviço Functions.DeletarArquivo(NomeArquivoXML); } catch { //Se falhou algo na hora de deletar o XML de solicitação do serviço, //infelizmente não posso fazer mais nada, o UniNFe vai tentar mandar //o arquivo novamente para o webservice //Wandrey 09/03/2010 } } }
protected void ddlProdutor_SelectedIndexChanged(object sender, EventArgs e) { ProdutorBLL obj = new ProdutorBLL(); List<Produtor> lista = new List<Produtor>(); Regiao regiao = new Regiao(); Cooperativa cooperativa = new Cooperativa(); Propriedade propriedade = new Propriedade(); Produtor produtor = new Produtor(); ddlTipoLeite.Items.Clear(); int mes = Convert.ToUInt16(ddlPeriodo.SelectedValue.ToString()); DateTime dataInicialSelecionada = DateTime.Parse("01/" + mes.ToString() + "/" + DateTime.Now.Year); DateTime dataFinalSelecionada = dataInicialSelecionada.AddMonths(1).AddDays(-1); regiao.Id_regiao = Convert.ToInt32(ddlRegiao.SelectedValue); cooperativa.Id_cooperativa = Convert.ToString(ddlCooperativa.SelectedValue); propriedade.Codigo = Convert.ToString(ddlPropriedade.SelectedValue); produtor.Cod_produtor = Convert.ToString(ddlProdutor.SelectedValue); cooperativa.Dt_inicio = dataInicialSelecionada; cooperativa.Dt_fim = dataFinalSelecionada; lista = obj.SelecionarTipoLeiteColetado(regiao, cooperativa, propriedade, produtor); foreach (Produtor prd in lista) { ListItem liLeite = new ListItem(prd.Id_tipo_leite, prd.Id_tipo_leite); ddlTipoLeite.Items.Add(liLeite); } // Verifica se o produtor tem leite B e C cadastrado. Se tiver, carrega opção de 'TODOS' if (lista.Count > 1) { ListItem liLeite = new ListItem("TODOS", "T"); ddlTipoLeite.Items.Add(liLeite); ddlTipoLeite.SelectedIndex = lista.Count; } else { ddlTipoLeite.SelectedIndex = 0; } String dtInicial = dataInicialSelecionada.ToString("dd/MM/yyyy"); String dtFinal = dataInicialSelecionada.AddDays(14).ToString("dd/MM/yyyy"); txtDataInicial.Text = dtInicial; txtDataFinal.Text = dtFinal; }
public string TratarParametroConstrutor(Propriedade propriedade, bool primeiroItem, eTratarConteudo tratarConteudo) { var separador = primeiroItem ? "" : ", "; return($"{separador}{RetornarTipoPropriedade(propriedade, tratarConteudo)} {RetornarNomePropriedadeCamelCase(propriedade, tratarConteudo)}"); }
public override void EmiteNF(string file) { XmlTextReader reader = new XmlTextReader(file); reader.WhitespaceHandling = WhitespaceHandling.None; reader.MoveToContent(); XmlDocument oXml = new XmlDocument(); oXml.Load(reader); reader.Close(); Array result = serviceEnvio.EnvNfe(Login, Senha, XmlDocumentUtilities.GetValue <string>(oXml, "prf"), XmlDocumentUtilities.GetValue <string>(oXml, "usr"), XmlDocumentUtilities.GetValue <string>(oXml, "ctr"), XmlDocumentUtilities.GetValue <string>(oXml, "cnpj"), XmlDocumentUtilities.GetValue <string>(oXml, "cnpjn"), XmlDocumentUtilities.GetValue <string>(oXml, "ie"), XmlDocumentUtilities.GetValue <string>(oXml, "im"), XmlDocumentUtilities.GetValue <string>(oXml, "lgr"), XmlDocumentUtilities.GetValue <string>(oXml, "num"), XmlDocumentUtilities.GetValue <string>(oXml, "cpl"), XmlDocumentUtilities.GetValue <string>(oXml, "bai"), XmlDocumentUtilities.GetValue <string>(oXml, "cid"), XmlDocumentUtilities.GetValue <string>(oXml, "est"), XmlDocumentUtilities.GetValue <string>(oXml, "cep"), XmlDocumentUtilities.GetValue <string>(oXml, "fon"), XmlDocumentUtilities.GetValue <string>(oXml, "mail"), XmlDocumentUtilities.GetValue <string>(oXml, "dat"), XmlDocumentUtilities.GetValue <string>(oXml, "f1n"), XmlDocumentUtilities.GetValue <string>(oXml, "f1d"), XmlDocumentUtilities.GetValue <string>(oXml, "f1v"), XmlDocumentUtilities.GetValue <string>(oXml, "f2n"), XmlDocumentUtilities.GetValue <string>(oXml, "f2d"), XmlDocumentUtilities.GetValue <string>(oXml, "f2v"), XmlDocumentUtilities.GetValue <string>(oXml, "f3n"), XmlDocumentUtilities.GetValue <string>(oXml, "f3d"), XmlDocumentUtilities.GetValue <string>(oXml, "f3v"), XmlDocumentUtilities.GetValue <string>(oXml, "f4n"), XmlDocumentUtilities.GetValue <string>(oXml, "f4d"), XmlDocumentUtilities.GetValue <string>(oXml, "f4v"), XmlDocumentUtilities.GetValue <string>(oXml, "f5n"), XmlDocumentUtilities.GetValue <string>(oXml, "f5d"), XmlDocumentUtilities.GetValue <string>(oXml, "f5v"), XmlDocumentUtilities.GetValue <string>(oXml, "f6n"), XmlDocumentUtilities.GetValue <string>(oXml, "f6d"), XmlDocumentUtilities.GetValue <string>(oXml, "f6v"), XmlDocumentUtilities.GetValue <string>(oXml, "item1"), XmlDocumentUtilities.GetValue <string>(oXml, "item2"), XmlDocumentUtilities.GetValue <string>(oXml, "item3"), XmlDocumentUtilities.GetValue <string>(oXml, "aliq1"), XmlDocumentUtilities.GetValue <string>(oXml, "aliq2"), XmlDocumentUtilities.GetValue <string>(oXml, "aliq3"), XmlDocumentUtilities.GetValue <string>(oXml, "val1"), XmlDocumentUtilities.GetValue <string>(oXml, "val2"), XmlDocumentUtilities.GetValue <string>(oXml, "val3"), XmlDocumentUtilities.GetValue <string>(oXml, "loc"), XmlDocumentUtilities.GetValue <string>(oXml, "ret"), XmlDocumentUtilities.GetValue <string>(oXml, "txt"), XmlDocumentUtilities.GetValue <string>(oXml, "val"), XmlDocumentUtilities.GetValue <string>(oXml, "valtrib"), XmlDocumentUtilities.GetValue <string>(oXml, "iss"), XmlDocumentUtilities.GetValue <string>(oXml, "issret"), XmlDocumentUtilities.GetValue <string>(oXml, "desci"), XmlDocumentUtilities.GetValue <string>(oXml, "desco"), XmlDocumentUtilities.GetValue <string>(oXml, "binss"), XmlDocumentUtilities.GetValue <string>(oXml, "birrf"), XmlDocumentUtilities.GetValue <string>(oXml, "bcsll"), XmlDocumentUtilities.GetValue <string>(oXml, "bpis"), XmlDocumentUtilities.GetValue <string>(oXml, "bcofins"), XmlDocumentUtilities.GetValue <string>(oXml, "ainss"), XmlDocumentUtilities.GetValue <string>(oXml, "airrf"), XmlDocumentUtilities.GetValue <string>(oXml, "acsll"), XmlDocumentUtilities.GetValue <string>(oXml, "apis"), XmlDocumentUtilities.GetValue <string>(oXml, "acofins"), XmlDocumentUtilities.GetValue <string>(oXml, "inss"), XmlDocumentUtilities.GetValue <string>(oXml, "irrf"), XmlDocumentUtilities.GetValue <string>(oXml, "csll"), XmlDocumentUtilities.GetValue <string>(oXml, "pis"), XmlDocumentUtilities.GetValue <string>(oXml, "cofins"), XmlDocumentUtilities.GetValue <string>(oXml, "item4"), XmlDocumentUtilities.GetValue <string>(oXml, "item5"), XmlDocumentUtilities.GetValue <string>(oXml, "item6"), XmlDocumentUtilities.GetValue <string>(oXml, "item7"), XmlDocumentUtilities.GetValue <string>(oXml, "item8"), XmlDocumentUtilities.GetValue <string>(oXml, "aliq4"), XmlDocumentUtilities.GetValue <string>(oXml, "aliq5"), XmlDocumentUtilities.GetValue <string>(oXml, "aliq6"), XmlDocumentUtilities.GetValue <string>(oXml, "aliq7"), XmlDocumentUtilities.GetValue <string>(oXml, "aliq8"), XmlDocumentUtilities.GetValue <string>(oXml, "val4"), XmlDocumentUtilities.GetValue <string>(oXml, "val5"), XmlDocumentUtilities.GetValue <string>(oXml, "val6"), XmlDocumentUtilities.GetValue <string>(oXml, "val7"), XmlDocumentUtilities.GetValue <string>(oXml, "val8"), XmlDocumentUtilities.GetValue <string>(oXml, "iteser1"), XmlDocumentUtilities.GetValue <string>(oXml, "iteser2"), XmlDocumentUtilities.GetValue <string>(oXml, "iteser3"), XmlDocumentUtilities.GetValue <string>(oXml, "iteser4"), XmlDocumentUtilities.GetValue <string>(oXml, "iteser5"), XmlDocumentUtilities.GetValue <string>(oXml, "iteser6"), XmlDocumentUtilities.GetValue <string>(oXml, "iteser7"), XmlDocumentUtilities.GetValue <string>(oXml, "iteser8"), XmlDocumentUtilities.GetValue <string>(oXml, "alqser1"), XmlDocumentUtilities.GetValue <string>(oXml, "alqser2"), XmlDocumentUtilities.GetValue <string>(oXml, "alqser3"), XmlDocumentUtilities.GetValue <string>(oXml, "alqser4"), XmlDocumentUtilities.GetValue <string>(oXml, "alqser5"), XmlDocumentUtilities.GetValue <string>(oXml, "alqser6"), XmlDocumentUtilities.GetValue <string>(oXml, "alqser7"), XmlDocumentUtilities.GetValue <string>(oXml, "alqser8"), XmlDocumentUtilities.GetValue <string>(oXml, "valser1"), XmlDocumentUtilities.GetValue <string>(oXml, "valser2"), XmlDocumentUtilities.GetValue <string>(oXml, "valser3"), XmlDocumentUtilities.GetValue <string>(oXml, "valser4"), XmlDocumentUtilities.GetValue <string>(oXml, "valser5"), XmlDocumentUtilities.GetValue <string>(oXml, "valser6"), XmlDocumentUtilities.GetValue <string>(oXml, "valser7"), XmlDocumentUtilities.GetValue <string>(oXml, "valser8"), XmlDocumentUtilities.GetValue <string>(oXml, "paisest"), XmlDocumentUtilities.GetValue <string>(oXml, "ssrecbr"), XmlDocumentUtilities.GetValue <string>(oXml, "ssanexo"), XmlDocumentUtilities.GetValue <string>(oXml, "ssdtini")); string strResult = base.CreateXML(result); GerarRetorno(file, strResult, Propriedade.Extensao(Propriedade.TipoEnvio.EnvLoteRps).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.EnvLoteRps).RetornoXML); //.LoteRps); }
public List<Produtor> SelecionarTipoLeiteColetado(Regiao regiao, Cooperativa cooperativa, Propriedade propriedade, Produtor produtor) { ProdutorDAO obj = new ProdutorDAO(); return obj.SelecionarTipoLeiteColetado(regiao, cooperativa, propriedade, produtor); }
protected void gvListaPreco_RowCommand(object sender, GridViewCommandEventArgs e) { ListaPrecosBLL obj = new ListaPrecosBLL(); int index; if (e.CommandName == "Delete") { index = Convert.ToInt32(e.CommandArgument); // recupera a linha selecionada para excluir GridViewRow row = gvListaPreco.Rows[index]; DataKey keys = this.gvListaPreco.DataKeys[Convert.ToInt32(index)]; foreach (DictionaryEntry d in keys.Values) { if (d.Key.ToString() == "ID_REGIAO") lstExcluir.Id_regiao = Convert.ToInt32(d.Value.ToString()); else if (d.Key.ToString() == "ID_COOPERAT") lstExcluir.Id_cooperat = Convert.ToInt32(d.Value.ToString()); else if (d.Key.ToString() == "DS_COOPERAT") lstExcluir.Ds_cooperat = d.Value.ToString(); else if (d.Key.ToString() == "ID_PROPRIED") lstExcluir.Id_propried = Convert.ToInt32(d.Value.ToString()); else if (d.Key.ToString() == "DS_PROPRIED") lstExcluir.Ds_propried = d.Value.ToString(); else if (d.Key.ToString() == "ID_PRODUTOR") lstExcluir.Id_produtor = Convert.ToInt32(d.Value.ToString()); else if (d.Key.ToString() == "DS_PRODUTOR") lstExcluir.Ds_produtor = Convert.ToString(d.Value); else if (d.Key.ToString() == "DS_PROPRIED") lstExcluir.Ds_produtor = d.Value.ToString(); else if (d.Key.ToString() == "DT_INICIO") lstExcluir.Dt_inicio = Convert.ToDateTime(d.Value.ToString()); else if (d.Key.ToString() == "DT_FIM") lstExcluir.Dt_fim = Convert.ToDateTime(d.Value.ToString()); else if (d.Key.ToString() == "ID_TIPO_LEITE") lstExcluir.Id_tipo_leite = Convert.ToChar(d.Value.ToString()); else if (d.Key.ToString() == "ID_VOL_INI") lstExcluir.Id_vol_ini = Convert.ToDecimal(d.Value.ToString()); else if (d.Key.ToString() == "ID_VOL_FIM") lstExcluir.Id_vol_fim = Convert.ToDecimal(d.Value.ToString()); else if (d.Key.ToString() == "ID_VALOR_UNIT") lstExcluir.Id_valor_unit = Convert.ToDecimal(d.Value.ToString()); } } // Recupera o valor da linha selecionada e preenche os TextBoxes if (e.CommandName == "Select") { index = Convert.ToInt32(e.CommandArgument); // recupera a linha selecionada para excluir GridViewRow row = gvListaPreco.Rows[index]; DataKey keys = this.gvListaPreco.DataKeys[Convert.ToInt32(index)]; ddlRegiao.Enabled = false; btnInserir.Enabled = false; foreach (DictionaryEntry d in keys.Values) { if (d.Key.ToString() == "ID_REGIAO") { List<Regiao> lista = new List<Regiao>(); RegiaoBLL objRegiao = new RegiaoBLL(); lista = objRegiao.Selecionar(); foreach (Regiao r in lista) { String regiao = r.Id_regiao.ToString() + " | " + r.Ds_regiao.ToString(); ListItem li = new ListItem(regiao, r.Id_regiao.ToString()); ddlRegiao.Items.Add(li); } ddlRegiao.SelectedValue = d.Value.ToString(); Session["ID_REGIAO"] = d.Value.ToString(); } else if (d.Key.ToString() == "DT_INICIO") { txtDataInicial.Text = d.Value.ToString(); Session["DT_INICIO"] = d.Value.ToString(); DateTime data = Convert.ToDateTime(d.Value.ToString()); ddlPeriodo.SelectedIndex = Convert.ToInt16(data.Month - 1); } else if (d.Key.ToString() == "DT_FIM") { txtDataFinal.Text = d.Value.ToString(); Session["DT_FIM"] = d.Value.ToString(); } else if (d.Key.ToString() == "ID_COOPERAT") { //Cooperativa será carregada no dropdownlist da tela inicial CooperativaBLL objCoop = new CooperativaBLL(); List<Cooperativa> lista = new List<Cooperativa>(); Cooperativa cooperativa = new Cooperativa(); ddlCooperativa.Items.Clear(); ddlCooperativa.Items.Add("(SELECIONE)"); ddlCooperativa.Items[0].Value = "0"; ddlPropriedade.Items.Clear(); ddlPropriedade.Items.Add("(SELECIONE)"); ddlPropriedade.Items[0].Value = "0"; ddlProdutor.Items.Clear(); ddlProdutor.Items.Add("(SELECIONE)"); ddlProdutor.Items[0].Value = "0"; cooperativa.Regiao = Convert.ToString(Session["ID_REGIAO"]); lista = objCoop.CarregarCooperativas(cooperativa); foreach (Cooperativa c in lista) { String cooperativa_concatenada = c.Id_cooperativa.ToString() + " | " + c.Ds_cooperat.ToString(); ListItem li = new ListItem(cooperativa_concatenada, c.Id_cooperativa.ToString()); ddlCooperativa.Items.Add(li); } ddlCooperativa.DataBind(); ddlCooperativa.SelectedValue = d.Value.ToString(); Session["ID_COOPERAT"] = d.Value.ToString(); } else if (d.Key.ToString() == "DS_COOPERAT") { Session["DS_COOPERAT"] = d.Value.ToString(); } else if (d.Key.ToString() == "ID_PROPRIED") { // Propriedade será carregado no dropdownlist da tela inicial PropriedadeBLL objProp = new PropriedadeBLL(); List<Propriedade> lista = new List<Propriedade>(); Regiao regiao = new Regiao(); Cooperativa cooperativa = new Cooperativa(); ddlPropriedade.Items.Clear(); ddlPropriedade.Items.Add("(SELECIONE)"); ddlPropriedade.Items[0].Value = "0"; ddlProdutor.Items.Clear(); ddlProdutor.Items.Add("(SELECIONE)"); ddlProdutor.Items[0].Value = "0"; regiao.Id_regiao = Convert.ToInt32(Session["ID_REGIAO"]); cooperativa.Id_cooperativa = Convert.ToString(Session["ID_COOPERAT"]); regiao.Dt_inicio = Convert.ToDateTime(Session["DT_INICIO"]); regiao.Dt_fim = Convert.ToDateTime(Session["DT_FIM"]); lista = objProp.SelecionarPropriedadesComColeta(regiao, cooperativa); foreach (Propriedade p in lista) { String prop = p.Codigo.ToString() + " | " + p.Nome.ToString(); ListItem li = new ListItem(prop, p.Codigo.ToString()); ddlPropriedade.Items.Add(li); } ddlPropriedade.DataBind(); ddlPropriedade.SelectedValue = d.Value.ToString(); Session["ID_PROPRIED"] = d.Value.ToString(); } else if (d.Key.ToString() == "DS_PROPRIED") { Session["DS_PROPRIED"] = d.Value.ToString(); } else if (d.Key.ToString() == "ID_PRODUTOR") { // Produtor será carregado no dropdownlist da tela inicial ProdutorBLL objProdutor = new ProdutorBLL(); List<Produtor> lista = new List<Produtor>(); Regiao regiao = new Regiao(); Cooperativa cooperativa = new Cooperativa(); Propriedade propriedade = new Propriedade(); ddlProdutor.Items.Clear(); ddlProdutor.Items.Add("(SELECIONE)"); ddlProdutor.Items[0].Value = "0"; ddlTipoLeite.Items.Clear(); regiao.Id_regiao = Convert.ToInt32(Session["ID_REGIAO"]); cooperativa.Id_cooperativa = Convert.ToString(Session["ID_COOPERAT"]); propriedade.Codigo = Convert.ToString(Session["ID_PROPRIED"]); cooperativa.Dt_inicio = Convert.ToDateTime(Session["DT_INICIO"]); cooperativa.Dt_fim = Convert.ToDateTime(Session["DT_FIM"]); lista = objProdutor.SelecionarProdutoresComColeta(regiao, cooperativa, propriedade); foreach (Produtor prd in lista) { String produtor_concatenado = prd.Cod_produtor + " | " + prd.Id_produtor_coop + " | " + prd.Ds_produtor; ListItem li = new ListItem(produtor_concatenado, prd.Cod_produtor); ddlProdutor.Items.Add(li); } ddlProdutor.DataBind(); ddlProdutor.SelectedValue = d.Value.ToString(); Session["ID_PRODUTOR"] = d.Value.ToString(); } else if (d.Key.ToString() == "DS_PRODUTOR") { Session["DS_PRODUTOR"] = d.Value.ToString(); } else if (d.Key.ToString() == "ID_TIPO_LEITE") { ddlTipoLeite.Items.Clear(); ListItem liLeite = new ListItem(d.Value.ToString(), d.Value.ToString()); ddlTipoLeite.Items.Add(liLeite); ddlTipoLeite.SelectedValue = d.Value.ToString(); Session["ID_TIPO_LEITE"] = d.Value.ToString(); } else if (d.Key.ToString() == "ID_VOL_INI") { Decimal valor = Convert.ToDecimal(d.Value.ToString()); txtVolInicial.Text = string.Format("{0:f}", valor); Session["ID_VOL_INI"] = d.Value.ToString(); } else if (d.Key.ToString() == "ID_VOL_FIM") { Decimal valor = Convert.ToDecimal(d.Value.ToString()); txtVolFinal.Text = string.Format("{0:f}", valor); Session["ID_VOL_FIM"] = d.Value.ToString(); } else if (d.Key.ToString() == "ID_VALOR_UNIT") { Decimal valor = Convert.ToDecimal(d.Value.ToString()); txtValUnitario.Text = string.Format("{0:f}", valor); Session["ID_VALOR_UNIT"] = d.Value.ToString(); } } } }
public List<Produtor> SelecionarProdutoresComColeta(Regiao regiao, Cooperativa cooperativa, Propriedade propriedade) { ProdutorDAO obj = new ProdutorDAO(); return obj.SelecionarProdutoresComColeta(regiao, cooperativa, propriedade); }
protected void ddlPropriedade_SelectedIndexChanged(object sender, EventArgs e) { ProdutorBLL obj = new ProdutorBLL(); List<Produtor> lista = new List<Produtor>(); Regiao regiao = new Regiao(); Cooperativa cooperativa = new Cooperativa(); Propriedade propriedade = new Propriedade(); ddlProdutor.Items.Clear(); ddlProdutor.Items.Add("(SELECIONE)"); ddlProdutor.Items[0].Value = "0"; ddlTipoLeite.Items.Clear(); int mes = Convert.ToUInt16(ddlPeriodo.SelectedValue.ToString()); DateTime dataInicialSelecionada = DateTime.Parse("01/" + mes.ToString() + "/" + DateTime.Now.Year); DateTime dataFinalSelecionada = dataInicialSelecionada.AddMonths(1).AddDays(-1); regiao.Id_regiao = Convert.ToInt32(ddlRegiao.SelectedValue); cooperativa.Id_cooperativa = Convert.ToString(ddlCooperativa.SelectedValue); propriedade.Codigo = Convert.ToString(ddlPropriedade.SelectedValue); cooperativa.Dt_inicio = dataInicialSelecionada; cooperativa.Dt_fim = dataFinalSelecionada; lista = obj.SelecionarProdutoresComColeta(regiao, cooperativa, propriedade); foreach (Produtor prd in lista) { String produtor_concatenado = prd.Cod_produtor + " | " + prd.Id_produtor_coop + " | " + prd.Ds_produtor; ListItem li = new ListItem(produtor_concatenado, prd.Cod_produtor); ddlProdutor.Items.Add(li); } ddlProdutor.DataBind(); }
protected void ddlPropriedPesq_SelectedIndexChanged(object sender, EventArgs e) { ProdutorBLL obj = new ProdutorBLL(); List<Produtor> lista = new List<Produtor>(); Regiao regiao = new Regiao(); Cooperativa cooperativa = new Cooperativa(); Propriedade propriedade = new Propriedade(); ddlProdutorPesq.Items.Clear(); ddlProdutorPesq.Items.Add("TODOS"); ddlProdutorPesq.Items[0].Value = "0"; regiao.Id_regiao = Convert.ToInt32(ddlRegiaoPesq.SelectedValue); cooperativa.Id_cooperativa = Convert.ToString(ddlCooperativaPesq.SelectedValue); propriedade.Codigo = Convert.ToString(ddlPropriedPesq.SelectedValue); lista = obj.CarregarProdutores(regiao, cooperativa, propriedade); foreach (Produtor prd in lista) { String produtor_concatenado = prd.Cod_produtor + " | " + prd.Id_produtor_coop + " | " + prd.Ds_produtor; ListItem li = new ListItem(produtor_concatenado, prd.Cod_produtor); ddlProdutorPesq.Items.Add(li); } ddlProdutorPesq.DataBind(); ModalPopupExtenderPesquisar.Show(); }
private string RetornarTipo(Propriedade propriedade) { return(propriedade.Tipo.GetEnumMigrationColumn().Replace("{{max-length}}", propriedade.Max.ToString())); }
/// <summary> /// Efetua a leitura do XML de retorno do processamento do lote de notas fiscais e /// atualiza o arquivo de fluxo e envio de notas /// </summary> /// <by>Wandrey Mundin Ferreira</by> /// <date>20/04/2009</date> private void LerRetornoLoteCTe(int emp) { var oLerXml = new LerXML(); var fluxoNFe = new FluxoNfe(); var doc = new XmlDocument(); doc.Load(Functions.StringXmlToStreamUTF8(vStrXmlRetorno)); var retConsReciNFeList = doc.GetElementsByTagName("retConsReciCTe"); foreach (XmlNode retConsReciNFeNode in retConsReciNFeList) { var retConsReciNFeElemento = (XmlElement)retConsReciNFeNode; //Pegar o número do recibo do lote enviado var nRec = string.Empty; if (retConsReciNFeElemento.GetElementsByTagName(TpcnResources.nRec.ToString())[0] != null) { nRec = retConsReciNFeElemento.GetElementsByTagName(TpcnResources.nRec.ToString())[0].InnerText; } //Pegar o status de retorno do lote enviado var cStatLote = string.Empty; if (retConsReciNFeElemento.GetElementsByTagName(TpcnResources.cStat.ToString())[0] != null) { cStatLote = retConsReciNFeElemento.GetElementsByTagName(TpcnResources.cStat.ToString())[0].InnerText; } switch (cStatLote) { #region Rejeições do XML de consulta do recibo (Não é o lote que foi rejeitado e sim o XML de consulta do recibo) case "280": //A-Certificado transmissor inválido case "281": //A-Validade do certificado case "283": //A-Verifica a cadeia de Certificação case "286": //A-LCR do certificado de Transmissor case "284": //A-Certificado do Transmissor revogado case "285": //A-Certificado Raiz difere da "IPC-Brasil" case "282": //A-Falta a extensão de CNPJ no Certificado case "214": //B-Tamanho do XML de dados superior a 500 Kbytes case "243": //B-XML de dados mal formatado case "242": //C-Elemento nfeCabecMsg inexistente no SOAP Header case "409": //C-Campo cUF inexistente no elemento nfeCabecMsg do SOAP Header case "410": //C-Campo versaoDados inexistente no elemento nfeCabecMsg do SOAP case "411": //C-Campo versaoDados inexistente no elemento nfeCabecMsg do SOAP case "238": //C-Versão dos Dados informada é superior à versão vigente case "239": //C-Versão dos Dados não suportada case "215": //D-Verifica schema XML da área de dados case "404": //D-Verifica o uso de prefixo no namespace case "402": //D-XML utiliza codificação diferente de UTF-8 case "252": //E-Tipo do ambiente da NF-e difere do ambiente do web service case "226": //E-UF da Chave de Acesso difere da UF do Web Service case "236": //E-Valida DV da Chave de Acesso case "217": //E-Acesso BD CTE case "216": //E-Verificar se campo "Codigo Numerico" break; #region Serviço paralisado case "108": case "109": //Se o serviço estiver paralisado momentaneamente ou sem previsão de retorno, vamos tentar consultar somente a cada 3 minutos pra evitar consumo indevido. if (nRec != string.Empty) { fluxoNFe.AtualizarDPedRec(nRec, DateTime.Now.AddSeconds(180)); } break; #endregion Serviço paralisado #endregion Rejeições do XML de consulta do recibo (Não é o lote que foi rejeitado e sim o XML de consulta do recibo) #region Lote ainda está sendo processado case "105": //E-Verifica se o lote não está na fila de resposta, mas está na fila de entrada (Lote em processamento) //Ok vou aguardar o ERP gerar uma nova consulta para encerrar o fluxo da nota break; #endregion Lote ainda está sendo processado #region Lote não foi localizado pelo recibo que está sendo consultado case "106": //E-Verifica se o lote não está na fila de saída, nem na fila de entrada (Lote não encontrado) //No caso do lote não encontrado através do recibo, o ERP vai ter que consultar a situação da NFe para encerrar ela //Vou somente excluir ela do fluxo para não ficar consultando o recibo que não existe if (nRec != string.Empty) { fluxoNFe.ExcluirNfeFluxoRec(nRec.Trim()); } break; #endregion Lote não foi localizado pelo recibo que está sendo consultado #region Lote foi processado, agora tenho que tratar as notas fiscais dele case "104": //Lote processado var protNFeList = retConsReciNFeElemento.GetElementsByTagName("protCTe"); foreach (XmlNode protNFeNode in protNFeList) { var protNFeElemento = (XmlElement)protNFeNode; var strProtNfe = protNFeElemento.OuterXml; var infProtList = protNFeElemento.GetElementsByTagName("infProt"); foreach (XmlNode infProtNode in infProtList) { var infProtElemento = (XmlElement)infProtNode; var strChaveNFe = string.Empty; var strStat = string.Empty; if (infProtElemento.GetElementsByTagName(TpcnResources.chCTe.ToString())[0] != null) { strChaveNFe = "CTe" + infProtElemento.GetElementsByTagName(TpcnResources.chCTe.ToString())[0].InnerText; } if (infProtElemento.GetElementsByTagName(TpcnResources.cStat.ToString())[0] != null) { strStat = infProtElemento.GetElementsByTagName(TpcnResources.cStat.ToString())[0].InnerText; } //Definir o nome do arquivo da NFe e seu caminho var strNomeArqNfe = fluxoNFe.LerTag(strChaveNFe, FluxoNfe.ElementoFixo.ArqNFe); // se por algum motivo o XML não existir no "Fluxo", então o arquivo tem que existir // na pasta "EmProcessamento" assinada. if (string.IsNullOrEmpty(strNomeArqNfe)) { if (string.IsNullOrEmpty(strChaveNFe)) { oGerarXML.XmlRetorno(Propriedade.Extensao(Propriedade.TipoEnvio.PedRec).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedRec).RetornoXML, vStrXmlRetorno); throw new Exception("LerRetornoLoteCTe(): Não pode obter o nome do arquivo"); } strNomeArqNfe = strChaveNFe.Substring(3) + Propriedade.Extensao(Propriedade.TipoEnvio.CTe).EnvioXML; } var strArquivoNFe = Empresas.Configuracoes[emp].PastaXmlEnviado + "\\" + PastaEnviados.EmProcessamento.ToString() + "\\" + strNomeArqNfe; //Atualizar a Tag de status da NFe no fluxo para que se ocorrer alguma falha na exclusão eu tenha esta campo para ter uma referencia em futuras consultas fluxoNFe.AtualizarTag(strChaveNFe, FluxoNfe.ElementoEditavel.cStat, strStat); //Atualizar a tag da data e hora da ultima consulta do recibo fluxoNFe.AtualizarDPedRec(nRec, DateTime.Now); switch (strStat) { case "100": //NFe Autorizada if (File.Exists(strArquivoNFe)) { //Ler o XML para pegar a data de emissão para criar a pasta dos XML´s autorizados XmlDocument conteudoXMLCTe = new XmlDocument(); conteudoXMLCTe.Load(strArquivoNFe); oLerXml.Cte(conteudoXMLCTe); //Juntar o protocolo com a NFE já copiando para a pasta em processamento var strArquivoNFeProc = oGerarXML.XmlDistCTe(strArquivoNFe, strProtNfe, oLerXml.oDadosNfe.versao); //Mover a cteProc da pasta de CTe em processamento para a NFe Autorizada //Para envitar falhar, tenho que mover primeiro o XML de distribuição (-procCTe.xml) para //depois mover o da nfe (-cte.xml), pois se ocorrer algum erro, tenho como reconstruir o senário, //assim sendo não inverta as posições. Wandrey 08/10/2009 TFunctions.MoverArquivo(strArquivoNFeProc, PastaEnviados.Autorizados, oLerXml.oDadosNfe.dEmi); //Mover a CTe da pasta de CTe em processamento para CTe Autorizada //Para envitar falhar, tenho que mover primeiro o XML de distribuição (-procCTe.xml) para //depois mover o da nfe (-cte.xml), pois se ocorrer algum erro, tenho como reconstruir o cenário. //assim sendo não inverta as posições. Wandrey 08/10/2009 if (!Empresas.Configuracoes[emp].SalvarSomenteXMLDistribuicao) { TFunctions.MoverArquivo(strArquivoNFe, PastaEnviados.Autorizados, oLerXml.oDadosNfe.dEmi); } else { TFunctions.MoverArquivo(strArquivoNFe, PastaEnviados.Originais, oLerXml.oDadosNfe.dEmi); } //Disparar a geração/impressao do UniDanfe. 03/02/2010 - Wandrey try { var strArquivoDist = Empresas.Configuracoes[emp].PastaXmlEnviado + "\\" + PastaEnviados.Autorizados.ToString() + "\\" + Empresas.Configuracoes[emp].DiretorioSalvarComo.ToString(oLerXml.oDadosNfe.dEmi) + Path.GetFileName(strArquivoNFeProc); TFunctions.ExecutaUniDanfe(strArquivoDist, oLerXml.oDadosNfe.dEmi, Empresas.Configuracoes[emp]); } catch (Exception ex) { Auxiliar.WriteLog("TaskCTeRetRecepcao: " + ex.Message, false); } } break; case "301": //NFe Denegada - Irregularidade fiscal do emitente if (File.Exists(strArquivoNFe)) { //Ler o XML para pegar a data de emissão para criar a pasta dos XML´s Denegados XmlDocument conteudoXMLCTe = new XmlDocument(); conteudoXMLCTe.Load(strArquivoNFe); oLerXml.Cte(conteudoXMLCTe); //Mover a NFE da pasta de NFE em processamento para NFe Denegadas TFunctions.MoverArquivo(strArquivoNFe, PastaEnviados.Denegados, oLerXml.oDadosNfe.dEmi); /// /// existe DACTE de CTe denegado??? /// try { var strArquivoDist = Empresas.Configuracoes[emp].PastaXmlEnviado + "\\" + PastaEnviados.Denegados.ToString() + "\\" + Empresas.Configuracoes[emp].DiretorioSalvarComo.ToString(oLerXml.oDadosNfe.dEmi) + Functions.ExtrairNomeArq(strArquivoNFe, Propriedade.Extensao(Propriedade.TipoEnvio.CTe).EnvioXML) + Propriedade.ExtRetorno.Den; TFunctions.ExecutaUniDanfe(strArquivoDist, oLerXml.oDadosNfe.dEmi, Empresas.Configuracoes[emp]); } catch (Exception ex) { Auxiliar.WriteLog("TaskCTeRetRecepcao: " + ex.Message, false); } } break; case "302": //NFe Denegada - Irregularidade fiscal do remetente goto case "301"; case "303": //NFe Denegada - Irregularidade fiscal do destinatário goto case "301"; case "304": //NFe Denegada - Irregularidade fiscal do expedidor goto case "301"; case "305": //NFe Denegada - Irregularidade fiscal do recebedor goto case "301"; case "306": //NFe Denegada - Irregularidade fiscal do tomador goto case "301"; case "110": //NFe Denegada - Não sei quando ocorre este, mas descobrir ele no manual então estou incluindo. Wandrey 20/10/2009 goto case "301"; default: //NFe foi rejeitada //Mover o XML da NFE a pasta de XML´s com erro oAux.MoveArqErro(strArquivoNFe); break; } //Deletar a NFE do arquivo de controle de fluxo fluxoNFe.ExcluirNfeFluxo(strChaveNFe); break; } } break; #endregion Lote foi processado, agora tenho que tratar as notas fiscais dele #region Qualquer outro tipo de status que não for os acima relacionados, vai tirar a nota fiscal do fluxo. default: //Qualquer outro tipo de rejeião vou tirar todas as notas do lote do fluxo, pois se o lote foi rejeitado, todas as notas fiscais também foram //De acordo com o manual de integração se o status do lote não for 104, tudo foi rejeitado. Wandrey 20/07/2010 //Vou retirar as notas do fluxo pelo recibo if (nRec != string.Empty) { fluxoNFe.ExcluirNfeFluxoRec(nRec.Trim()); } break; #endregion Qualquer outro tipo de status que não for os acima relacionados, vai tirar a nota fiscal do fluxo. } } }
private string RetornarNullable(Propriedade propriedade) { return(propriedade.Nullable ? ".Nullable()" : ".NotNullable()"); }
public void Execute(int emp) { try { #region Parte do código que envia o XML de pedido de consulta do recibo dadosPedRec = new DadosPedRecClass(); PedRec(emp); //Definir o objeto do WebService WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servico, emp, dadosPedRec.cUF, dadosPedRec.tpAmb, dadosPedRec.tpEmis, 0); System.Net.SecurityProtocolType securityProtocolType = WebServiceProxy.DefinirProtocoloSeguranca(dadosPedRec.cUF, dadosPedRec.tpAmb, dadosPedRec.tpEmis, Servico); //Criar objetos das classes dos serviços dos webservices do SEFAZ var oRepRecepcao = wsProxy.CriarObjeto(wsProxy.NomeClasseWS); var oCabecMsg = wsProxy.CriarObjeto(NomeClasseCabecWS(dadosPedRec.cUF, Servico, dadosPedRec.tpEmis)); //Atribuir conteúdo para duas propriedades da classe nfeCabecMsg wsProxy.SetProp(oCabecMsg, TpcnResources.cUF.ToString(), dadosPedRec.cUF.ToString()); wsProxy.SetProp(oCabecMsg, TpcnResources.versaoDados.ToString(), dadosPedRec.versao); //Invocar o método que envia o XML para o SEFAZ oInvocarObj.Invocar(wsProxy, oRepRecepcao, wsProxy.NomeMetodoWS[0], oCabecMsg, this, Propriedade.Extensao(Propriedade.TipoEnvio.PedRec).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedRec).RetornoXML, false, securityProtocolType); #endregion Parte do código que envia o XML de pedido de consulta do recibo #region Parte do código que trata o XML de retorno da consulta do recibo //Efetuar a leituras das notas do lote para ver se foi autorizada ou não LerRetornoLoteCTe(emp); //Gravar o XML retornado pelo WebService do SEFAZ na pasta de retorno para o ERP //Tem que ser feito neste ponto, pois somente aqui terminamos todo o processo //Wandrey 18/06/2009 oGerarXML.XmlRetorno(Propriedade.Extensao(Propriedade.TipoEnvio.PedRec).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedRec).RetornoXML, vStrXmlRetorno); #endregion Parte do código que trata o XML de retorno da consulta do recibo } catch (Exception ex) { try { TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedRec).EnvioXML, Propriedade.ExtRetorno.ProRec_ERR, ex); } catch { //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada. //Pois ocorreu algum erro de rede, hd, permissão das pastas, etc. Wandrey 22/03/2010 } } finally { //Deletar o arquivo de solicitação do serviço Functions.DeletarArquivo(NomeArquivoXML); } }
public override void Execute() { int emp = Empresas.FindEmpresaByThread(); try { Functions.DeletarArquivo(Empresas.Configuracoes[emp].PastaXmlRetorno + "\\" + Functions.ExtrairNomeArq(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedSubstNfse).EnvioXML) + Propriedade.Extensao(Propriedade.TipoEnvio.PedSubstNfse).RetornoERR); Functions.DeletarArquivo(Empresas.Configuracoes[emp].PastaXmlErro + "\\" + NomeArquivoXML); dadosXML = new DadosPedSitNfse(emp); //Criar objetos das classes dos serviços dos webservices do SEFAZ PadroesNFSe padraoNFSe = Functions.PadraoNFSe(dadosXML.cMunicipio); WebServiceProxy wsProxy = null; object pedSubstNfse = null; if (IsUtilizaCompilacaoWs(padraoNFSe)) { wsProxy = ConfiguracaoApp.DefinirWS(Servico, emp, dadosXML.cMunicipio, dadosXML.tpAmb, dadosXML.tpEmis, padraoNFSe, dadosXML.cMunicipio); pedSubstNfse = wsProxy.CriarObjeto(wsProxy.NomeClasseWS); } string cabecMsg = ""; switch (padraoNFSe) { case PadroesNFSe.AVMB_ASTEN: Servico = GetTipoServicoSincrono(Servico, NomeArquivoXML, PadroesNFSe.AVMB_ASTEN); cabecMsg = "<cabecalho versao=\"2.02\" xmlns=\"http://www.abrasf.org.br/nfse.xsd\"><versaoDados>2.02</versaoDados></cabecalho>"; wsProxy = new WebServiceProxy(Empresas.Configuracoes[emp].X509Certificado); if (dadosXML.tpAmb == 2) { pedSubstNfse = new Components.HPelotasRS.INfseservice(); } else { pedSubstNfse = new Components.PPelotasRS.INfseservice(); } break; case PadroesNFSe.EMBRAS: cabecMsg = "<cabecalho versao=\"2.02\" xmlns=\"http://www.abrasf.org.br/nfse.xsd\"><versaoDados>2.02</versaoDados></cabecalho>"; break; case PadroesNFSe.E_RECEITA: cabecMsg = "<cabecalho xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"2.02\"><versaoDados>2.02</versaoDados></cabecalho>"; break; #if _fw46 case PadroesNFSe.ADM_SISTEMAS: cabecMsg = "<cabecalho versao=\"2.01\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"http://www.abrasf.org.br/nfse.xsd\"><versaoDados>2.01</versaoDados></cabecalho>"; wsProxy = new WebServiceProxy(Empresas.Configuracoes[emp].X509Certificado); pedSubstNfse = dadosXML.tpAmb == 1 ? new Components.PAmargosaBA.InfseClient(GetBinding(), new EndpointAddress("https://demo.saatri.com.br/servicos/nfse.svc")) : new Components.HAmargosaBA.InfseClient(GetBinding(), new EndpointAddress("https://homologa-demo.saatri.com.br/servicos/nfse.svc")) as object; SignUsingCredentials(emp, pedSubstNfse); break; #endif case PadroesNFSe.INDAIATUBA_SP: cabecMsg = "<cabecalho versao=\"2.03\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"http://www.abrasf.org.br/nfse.xsd\"><versaoDados>2.03</versaoDados></cabecalho>"; break; case PadroesNFSe.SIGCORP_SIGISS_203: cabecMsg = "<cabecalho versao=\"2.03\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"http://www.abrasf.org.br/nfse.xsd\"><versaoDados>2.03</versaoDados></cabecalho>"; break; case PadroesNFSe.SMARAPD_204: cabecMsg = "<cabecalho versao=\"2.04\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"http://www.abrasf.org.br/nfse.xsd\"><versaoDados>2.04</versaoDados></cabecalho>"; break; case PadroesNFSe.IIBRASIL: cabecMsg = "<cabecalho xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"2.04\"><versaoDados>2.04</versaoDados></cabecalho>"; break; } System.Net.SecurityProtocolType securityProtocolType = WebServiceProxy.DefinirProtocoloSeguranca(dadosXML.cMunicipio, dadosXML.tpAmb, dadosXML.tpEmis, padraoNFSe, Servico); //Assinar o XML AssinaturaDigital ad = new AssinaturaDigital(); ad.Assinar(NomeArquivoXML, emp, dadosXML.cMunicipio); //Invocar o método que envia o XML para o SEFAZ oInvocarObj.InvocarNFSe(wsProxy, pedSubstNfse, NomeMetodoWS(Servico, dadosXML.cMunicipio), cabecMsg, this, Propriedade.Extensao(Propriedade.TipoEnvio.PedSubstNfse).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedSubstNfse).RetornoXML, padraoNFSe, Servico, securityProtocolType); /// /// grava o arquivo no FTP string filenameFTP = Path.Combine(Empresas.Configuracoes[emp].PastaXmlRetorno, Functions.ExtrairNomeArq(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedSubstNfse).EnvioXML) + Propriedade.Extensao(Propriedade.TipoEnvio.PedSubstNfse).RetornoXML); if (File.Exists(filenameFTP)) { new GerarXML(emp).XmlParaFTP(emp, filenameFTP); } } catch (Exception ex) { var strErro = ex.HResult.ToString(); var strMesagemErro = ex.Message; try { //Gravar o arquivo de erro de retorno para o ERP, caso ocorra TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedSubstNfse).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedSubstNfse).RetornoERR, ex); } catch { //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada. //Wandrey 31/08/2011 RetornoErroERP.GeraArquivoErroERP(NomeArquivoXML, strErro, strMesagemErro, Propriedade.Extensao(Propriedade.TipoEnvio.PedSubstNfse).RetornoERR); } } finally { try { Functions.DeletarArquivo(NomeArquivoXML); } catch { //Se falhou algo na hora de deletar o XML de cancelamento de NFe, infelizmente //não posso fazer mais nada, o UniNFe vai tentar mandar o arquivo novamente para o webservice, pois ainda não foi excluido. //Wandrey 31/08/2011 } } }
public List<Produtor> CarregarProdutores(Regiao regiao, Cooperativa cooperativa, Propriedade propriedade) { ProdutorDAO obj = new ProdutorDAO(); return obj.CarregarProdutores(regiao, cooperativa, propriedade); }
private void Form1_Load(object sender, EventArgs e) { bool error = false; try { // //SERVICO: danasa 7/2011 //servico está instalado e rodando? this.servicoInstaladoErodando = Propriedade.ServicoRodando; this.tbSeparator1.Visible = this.tbRestartServico.Visible = this.tbPararServico.Visible = this.servicoInstaladoErodando; /// /// danasa 9-2009 /// this.MinimumSize = new Size(800, 630); this.MaximumSize = new Size(800, 630); //Trazer minimizado e no systray this.notifyIcon1.Text = NFe.Components.Propriedade.NomeAplicacao + " - " + NFe.Components.Propriedade.DescricaoAplicacao; this.notifyIcon1.Visible = true; this.WindowState = FormWindowState.Minimized; this.Visible = false; this.ShowInTaskbar = false; ConfiguracaoApp.StartVersoes(); _menu = new menu(); Controls.Add(_menu); _menu.Dock = DockStyle.Fill; notifyIcon1.Icon = Icon = Properties.Resources.uninfe_icon; cmAbrir.Text = "Abrir " + Propriedade.NomeAplicacao; cmFechar.Text = "Fechar " + Propriedade.NomeAplicacao; cmSobre.Text = "Sobre o " + Propriedade.NomeAplicacao; cmManual.Text = "Manual do " + Propriedade.NomeAplicacao; cmManual.Enabled = File.Exists(Path.Combine(Propriedade.PastaExecutavel, Propriedade.NomeAplicacao + ".pdf")); string msg = ""; Propriedade.VerificaArquivos(out error, out msg); if (error) { MetroFramework.MetroMessageBox.Show(this, msg, "", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); return; } if (!this.servicoInstaladoErodando) //danasa 12/8/2011 //Definir eventos de controles de execução das thread´s de serviços do UniNFe. Wandrey 26/07/2011 { new ThreadControlEvents(); //danasa 12/8/2011 } //Executar os serviços do UniNFe em novas threads //Tem que ser carregado depois que o formulário da MainForm estiver totalmente carregado para evitar Erros. Wandrey 19/10/2010 this.ExecutaServicos(); } finally { if (!error) { this.updateControleDoServico(); } } }
public override void Execute() { int emp = Empresas.FindEmpresaByThread(); /// /// extensao permitida: PedSitNfse = "-ped-sitnfse.xml" /// /// Definir o serviço que será executado para a classe Servico = Servicos.NFSeConsultar; try { Functions.DeletarArquivo(Empresas.Configuracoes[emp].PastaXmlRetorno + "\\" + Functions.ExtrairNomeArq(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedSitNFSe).EnvioXML) + Propriedade.ExtRetorno.SitNfse_ERR); Functions.DeletarArquivo(Empresas.Configuracoes[emp].PastaXmlErro + "\\" + NomeArquivoXML); oDadosPedSitNfse = new DadosPedSitNfse(emp); //Ler o XML para pegar parâmetros de envio PedSitNfse(NomeArquivoXML); //Criar objetos das classes dos serviços dos webservices do SEFAZ PadroesNFSe padraoNFSe = Functions.PadraoNFSe(oDadosPedSitNfse.cMunicipio); WebServiceProxy wsProxy = null; object pedLoteRps = null; if (IsUtilizaCompilacaoWs(padraoNFSe, Servico, oDadosPedSitNfse.cMunicipio)) { wsProxy = ConfiguracaoApp.DefinirWS(Servico, emp, oDadosPedSitNfse.cMunicipio, oDadosPedSitNfse.tpAmb, oDadosPedSitNfse.tpEmis, padraoNFSe, oDadosPedSitNfse.cMunicipio); if (wsProxy != null) { pedLoteRps = wsProxy.CriarObjeto(wsProxy.NomeClasseWS); } } System.Net.SecurityProtocolType securityProtocolType = WebServiceProxy.DefinirProtocoloSeguranca(oDadosPedSitNfse.cMunicipio, oDadosPedSitNfse.tpAmb, oDadosPedSitNfse.tpEmis, padraoNFSe, Servico); string cabecMsg = ""; switch (padraoNFSe) { case PadroesNFSe.GINFES: switch (oDadosPedSitNfse.cMunicipio) { case 2304400: //Fortaleza - CE cabecMsg = "<ns2:cabecalho versao=\"3\" xmlns:ns2=\"http://www.ginfes.com.br/cabecalho_v03.xsd\"><versaoDados>3</versaoDados></ns2:cabecalho>"; break; case 4125506: //São José dos Pinhais - PR cabecMsg = "<ns2:cabecalho versao=\"3\" xmlns:ns2=\"http://nfe.sjp.pr.gov.br/cabecalho_v03.xsd\"><versaoDados>3</versaoDados></ns2:cabecalho>"; break; default: cabecMsg = "<ns2:cabecalho versao=\"3\" xmlns:ns2=\"http://www.ginfes.com.br/cabecalho_v03.xsd\"><versaoDados>3</versaoDados></ns2:cabecalho>"; break; } break; case PadroesNFSe.BETHA: #region Betha ConteudoXML.PreserveWhitespace = false; ConteudoXML.Load(NomeArquivoXML); if (!ConteudoXML.DocumentElement.Name.Contains("e:")) { padraoNFSe = PadroesNFSe.BETHA202; Components.Betha.NewVersion.Betha betha = new Components.Betha.NewVersion.Betha((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedSitNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor); betha.ConsultarNfse(NomeArquivoXML); } else { wsProxy = new WebServiceProxy(Empresas.Configuracoes[emp].X509Certificado); wsProxy.Betha = new Betha(); } break; #endregion Betha case PadroesNFSe.ABACO: case PadroesNFSe.CANOAS_RS: cabecMsg = "<cabecalho versao=\"201001\"><versaoDados>V2010</versaoDados></cabecalho>"; break; case PadroesNFSe.BHISS: cabecMsg = "<cabecalho xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"1.00\"><versaoDados >1.00</versaoDados ></cabecalho>"; break; case PadroesNFSe.WEBISS: cabecMsg = "<cabecalho xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"1.00\"><versaoDados >1.00</versaoDados ></cabecalho>"; break; case PadroesNFSe.WEBISS_202: cabecMsg = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><cabecalho xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"2.02\"><versaoDados>2.02</versaoDados></cabecalho>"; break; case PadroesNFSe.PORTOVELHENSE: cabecMsg = "<cabecalho versao=\"2.00\" xmlns:ns2=\"http://www.w3.org/2000/09/xmldsig#\" xmlns=\"http://www.abrasf.org.br/nfse.xsd\"><versaoDados>2.00</versaoDados></cabecalho>"; break; case PadroesNFSe.TECNOSISTEMAS: cabecMsg = "<?xml version=\"1.0\" encoding=\"utf-8\"?><cabecalho xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" versao=\"20.01\" xmlns=\"http://www.nfse-tecnos.com.br/nfse.xsd\"><versaoDados>20.01</versaoDados></cabecalho>"; break; case PadroesNFSe.FINTEL: cabecMsg = "<cabecalho versao=\"2.02\" xmlns=\"http://iss.irati.pr.gov.br/Arquivos/nfseV202.xsd\"><versaoDados>2.02</versaoDados></cabecalho>"; break; case PadroesNFSe.SYSTEMPRO: SystemPro syspro = new SystemPro((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, Empresas.Configuracoes[emp].X509Certificado); AssinaturaDigital ad = new AssinaturaDigital(); ad.Assinar(NomeArquivoXML, emp, oDadosPedSitNfse.cMunicipio); syspro.ConsultarNfse(NomeArquivoXML); break; case PadroesNFSe.SIGCORP_SIGISS: SigCorp sigCorp = new SigCorp((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedSitNfse.cMunicipio); sigCorp.ConsultarNfse(NomeArquivoXML); break; case PadroesNFSe.SIMPLISS: SimplISS simpliss = new SimplISS((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedSitNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor); simpliss.ConsultarNfse(NomeArquivoXML); break; case PadroesNFSe.CONAM: Conam conam = new Conam((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedSitNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS); conam.ConsultarNfse(NomeArquivoXML); break; case PadroesNFSe.RLZ_INFORMATICA: Rlz_Informatica rlz = new Rlz_Informatica((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedSitNfse.cMunicipio); rlz.ConsultarNfse(NomeArquivoXML); break; case PadroesNFSe.EGOVERNE: #region E-Governe EGoverne egoverne = new EGoverne((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedSitNfse.cMunicipio, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor, Empresas.Configuracoes[emp].X509Certificado); AssinaturaDigital assegov = new AssinaturaDigital(); assegov.Assinar(NomeArquivoXML, emp, oDadosPedSitNfse.cMunicipio); egoverne.ConsultarNfse(NomeArquivoXML); #endregion E-Governe break; case PadroesNFSe.EL: #region E&L EL el = new EL((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedSitNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, (ConfiguracaoApp.Proxy ? ConfiguracaoApp.ProxyUsuario : ""), (ConfiguracaoApp.Proxy ? ConfiguracaoApp.ProxySenha : ""), (ConfiguracaoApp.Proxy ? ConfiguracaoApp.ProxyServidor : "")); el.ConsultarNfse(NomeArquivoXML); break; #endregion E&L case PadroesNFSe.GOVDIGITAL: GovDigital govdig = new GovDigital((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, Empresas.Configuracoes[emp].X509Certificado, oDadosPedSitNfse.cMunicipio, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor); AssinaturaDigital adgovdig = new AssinaturaDigital(); adgovdig.Assinar(NomeArquivoXML, emp, oDadosPedSitNfse.cMunicipio); govdig.ConsultarNfse(NomeArquivoXML); break; case PadroesNFSe.EQUIPLANO: cabecMsg = "1"; break; case PadroesNFSe.PORTALFACIL_ACTCON_202: cabecMsg = "<cabecalho><versaoDados>2.02</versaoDados></cabecalho>"; break; case PadroesNFSe.PORTALFACIL_ACTCON: case PadroesNFSe.PRODATA: cabecMsg = "<cabecalho><versaoDados>2.01</versaoDados></cabecalho>"; break; case PadroesNFSe.FISSLEX: FISSLEX fisslex = new FISSLEX((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedSitNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor); fisslex.ConsultarNfse(NomeArquivoXML); break; case PadroesNFSe.MGM: #region MGM MGM mgm = new MGM((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedSitNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS); mgm.ConsultarNfse(NomeArquivoXML); break; #endregion MGM case PadroesNFSe.NATALENSE: cabecMsg = "<cabecalho xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" versao=\"1\" xmlns=\"http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd\"><versaoDados>1</versaoDados></cabecalho>"; break; case PadroesNFSe.CONSIST: #region Consist Consist consist = new Consist((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedSitNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor); consist.ConsultarNfse(NomeArquivoXML); break; #endregion Consist case PadroesNFSe.METROPOLIS: #region METROPOLIS Metropolis metropolis = new Metropolis((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedSitNfse.cMunicipio, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor, Empresas.Configuracoes[emp].X509Certificado); AssinaturaDigital metropolisdig = new AssinaturaDigital(); metropolisdig.Assinar(NomeArquivoXML, emp, oDadosPedSitNfse.cMunicipio); metropolis.ConsultarNfse(NomeArquivoXML); break; #endregion METROPOLIS case PadroesNFSe.PAULISTANA: wsProxy = new WebServiceProxy(Empresas.Configuracoes[emp].X509Certificado); if (oDadosPedSitNfse.tpAmb == 1) { pedLoteRps = new NFe.Components.PSaoPauloSP.LoteNFe(); } else { throw new Exception("Município de São Paulo-SP não dispõe de ambiente de homologação para envio de NFS-e em teste."); } break; case PadroesNFSe.FREIRE_INFORMATICA: cabecMsg = "<cabecalho xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"2.02\"><versaoDados>2.02</versaoDados></cabecalho>"; break; case PadroesNFSe.MEMORY: #region Memory Memory memory = new Memory((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedSitNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor); memory.ConsultarNfse(NomeArquivoXML); break; #endregion Memory case PadroesNFSe.CAMACARI_BA: cabecMsg = "<cabecalho><versaoDados>2.01</versaoDados><versao>2.01</versao></cabecalho>"; break; case PadroesNFSe.NA_INFORMATICA: wsProxy = new WebServiceProxy(Empresas.Configuracoes[emp].X509Certificado); //if (oDadosPedSitNfse.tpAmb == 1) // pedLoteRps = new Components.PCorumbaMS.NfseWSService(); //else // pedLoteRps = new Components.HCorumbaMS.NfseWSService(); break; case PadroesNFSe.FIORILLI: Fiorilli fiorilli = new Fiorilli((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedSitNfse.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor, Empresas.Configuracoes[emp].X509Certificado); fiorilli.ConsultarNfse(NomeArquivoXML); break; case PadroesNFSe.PRONIN: if (oDadosPedSitNfse.cMunicipio == 4109401 || oDadosPedSitNfse.cMunicipio == 3131703 || oDadosPedSitNfse.cMunicipio == 4303004 || oDadosPedSitNfse.cMunicipio == 4322509) { Pronin pronin = new Pronin((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedSitNfse.cMunicipio, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor, Empresas.Configuracoes[emp].X509Certificado); AssinaturaDigital assPronin = new AssinaturaDigital(); assPronin.Assinar(NomeArquivoXML, emp, oDadosPedSitNfse.cMunicipio); pronin.ConsultarNfse(NomeArquivoXML); } break; case PadroesNFSe.BAURU_SP: Bauru_SP bauru_SP = new Bauru_SP((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedSitNfse.cMunicipio); bauru_SP.ConsultarNfse(NomeArquivoXML); break; case PadroesNFSe.COPLAN: Coplan coplan = new Coplan((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedSitNfse.cMunicipio, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor, Empresas.Configuracoes[emp].X509Certificado); AssinaturaDigital assCoplan = new AssinaturaDigital(); assCoplan.Assinar(NomeArquivoXML, emp, oDadosPedSitNfse.cMunicipio); coplan.ConsultarNfse(NomeArquivoXML); break; case PadroesNFSe.TINUS: Tinus tinus = new Tinus((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosPedSitNfse.cMunicipio, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor, Empresas.Configuracoes[emp].X509Certificado); tinus.ConsultarNfse(NomeArquivoXML); break; case PadroesNFSe.SH3: cabecMsg = "<cabecalho xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"1.00\"><versaoDados >1.00</versaoDados ></cabecalho>"; break; case PadroesNFSe.INTERSOL: cabecMsg = "<?xml version=\"1.0\" encoding=\"utf-8\"?><p:cabecalho versao=\"1\" xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" xmlns:p=\"http://ws.speedgov.com.br/cabecalho_v1.xsd\" xmlns:p1=\"http://ws.speedgov.com.br/tipos_v1.xsd\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://ws.speedgov.com.br/cabecalho_v1.xsd cabecalho_v1.xsd \"><versaoDados>1</versaoDados></p:cabecalho>"; break; case PadroesNFSe.SOFTPLAN: SOFTPLAN softplan = new SOFTPLAN((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, Empresas.Configuracoes[emp].ClientID, Empresas.Configuracoes[emp].ClientSecret); if (ConfiguracaoApp.Proxy) { softplan.Proxy = Proxy.DefinirProxy(ConfiguracaoApp.ProxyServidor, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyPorta); } softplan.ConsultarNfse(NomeArquivoXML); break; } if (IsInvocar(padraoNFSe, Servico, oDadosPedSitNfse.cMunicipio)) { //Assinar o XML AssinaturaDigital ad = new AssinaturaDigital(); ad.Assinar(NomeArquivoXML, emp, oDadosPedSitNfse.cMunicipio); //Invocar o método que envia o XML para o SEFAZ oInvocarObj.InvocarNFSe(wsProxy, pedLoteRps, NomeMetodoWS(Servico, oDadosPedSitNfse.cMunicipio), cabecMsg, this, Propriedade.Extensao(Propriedade.TipoEnvio.PedSitNFSe).EnvioXML, //"-ped-sitnfse", Propriedade.Extensao(Propriedade.TipoEnvio.PedSitNFSe).RetornoXML, //"-sitnfse", padraoNFSe, Servico, securityProtocolType); /// /// grava o arquivo no FTP string filenameFTP = Path.Combine(Empresas.Configuracoes[emp].PastaXmlRetorno, Functions.ExtrairNomeArq(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedSitNFSe).EnvioXML) + Propriedade.Extensao(Propriedade.TipoEnvio.PedSitNFSe).RetornoXML); if (File.Exists(filenameFTP)) { new GerarXML(emp).XmlParaFTP(emp, filenameFTP); } } } catch (Exception ex) { try { //Gravar o arquivo de erro de retorno para o ERP, caso ocorra TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedSitNFSe).EnvioXML, Propriedade.ExtRetorno.SitNfse_ERR, ex); } catch { //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada. //Wandrey 31/08/2011 } } finally { try { Functions.DeletarArquivo(NomeArquivoXML); } catch { //Se falhou algo na hora de deletar o XML de cancelamento de NFe, infelizmente //não posso fazer mais nada, o UniNFe vai tentar mandar o arquivo novamente para o webservice, pois ainda não foi excluido. //Wandrey 31/08/2011 } } }
public TaskCTeRetRecepcao(XmlDocument conteudoXML, int emp) { Servico = Servicos.CTePedidoSituacaoLote; ConteudoXML = conteudoXML; ConteudoXML.PreserveWhitespace = false; NomeArquivoXML = Empresas.Configuracoes[emp].PastaXmlEnvio + "\\temp\\" + conteudoXML.GetElementsByTagName(TpcnResources.nRec.ToString())[0].InnerText + Propriedade.Extensao(Propriedade.TipoEnvio.PedRec).EnvioXML; }
/// <summary> /// Efetua a leitura do XML de retorno do processamento do lote de notas fiscais e /// atualiza o arquivo de fluxo e envio de notas /// </summary> /// <by>Wandrey Mundin Ferreira</by> /// <date>20/04/2009</date> private void LerRetornoLoteMDFe(int emp) { var oLerXml = new LerXML(); var fluxoNFe = new FluxoNfe(); var doc = new XmlDocument(); doc.Load(Functions.StringXmlToStreamUTF8(vStrXmlRetorno)); var retConsReciNFeList = doc.GetElementsByTagName("retConsReciMDFe"); foreach (XmlNode retConsReciNFeNode in retConsReciNFeList) { var retConsReciNFeElemento = (XmlElement)retConsReciNFeNode; //Pegar o número do recibo do lote enviado var nRec = string.Empty; if (retConsReciNFeElemento.GetElementsByTagName(TpcnResources.nRec.ToString())[0] != null) { nRec = retConsReciNFeElemento.GetElementsByTagName(TpcnResources.nRec.ToString())[0].InnerText; } //Pegar o status de retorno do lote enviado var cStatLote = string.Empty; if (retConsReciNFeElemento.GetElementsByTagName(TpcnResources.cStat.ToString())[0] != null) { cStatLote = retConsReciNFeElemento.GetElementsByTagName(TpcnResources.cStat.ToString())[0].InnerText; } switch (cStatLote) { #region Rejeições do XML de consulta do recibo (Não é o lote que foi rejeitado e sim o XML de consulta do recibo) #region Validação do certificado de transmissão case "280": case "281": case "282": case "283": case "284": case "285": case "286": #endregion Validação do certificado de transmissão #region Validação inicial da mensagem no webservice case "214": case "243": case "108": case "109": #endregion Validação inicial da mensagem no webservice #region Validação das informações de controle da chamada ao webservice case "242": case "409": case "410": case "411": case "238": case "239": #endregion Validação das informações de controle da chamada ao webservice #region Validação da forma da área de dados case "215": case "598": case "599": case "404": case "402": #endregion Validação da forma da área de dados #region Validação das regras de negócio da consulta recibo case "252": case "226": case "247": case "494": case "227": case "253": #endregion Validação das regras de negócio da consulta recibo break; #region Lote não foi localizado pelo recibo que está sendo consultado case "106": //E-Verifica se o lote não está na fila de saída, nem na fila de entrada (Lote não encontrado) //No caso do lote não encontrado através do recibo, o ERP vai ter que consultar a situação da NFe para encerrar ela //Vou somente excluir ela do fluxo para não ficar consultando o recibo que não existe if (nRec != string.Empty) { fluxoNFe.ExcluirNfeFluxoRec(nRec.Trim()); } break; #endregion Lote não foi localizado pelo recibo que está sendo consultado #endregion Rejeições do XML de consulta do recibo (Não é o lote que foi rejeitado e sim o XML de consulta do recibo) #region Lote foi processado, agora tenho que tratar as notas fiscais dele case "104": //Lote processado var protNFeList = retConsReciNFeElemento.GetElementsByTagName("protMDFe"); foreach (XmlNode protNFeNode in protNFeList) { var protNFeElemento = (XmlElement)protNFeNode; var strProtNfe = protNFeElemento.OuterXml; var infProtList = protNFeElemento.GetElementsByTagName("infProt"); foreach (XmlNode infProtNode in infProtList) { bool tirarFluxo = true; var infProtElemento = (XmlElement)infProtNode; var strChaveNFe = string.Empty; var strStat = string.Empty; if (infProtElemento.GetElementsByTagName(TpcnResources.chMDFe.ToString())[0] != null) { strChaveNFe = "MDFe" + infProtElemento.GetElementsByTagName(TpcnResources.chMDFe.ToString())[0].InnerText; } if (infProtElemento.GetElementsByTagName(TpcnResources.cStat.ToString())[0] != null) { strStat = infProtElemento.GetElementsByTagName(TpcnResources.cStat.ToString())[0].InnerText; } //Definir o nome do arquivo da NFe e seu caminho var strNomeArqNfe = fluxoNFe.LerTag(strChaveNFe, FluxoNfe.ElementoFixo.ArqNFe); // se por algum motivo o XML não existir no "Fluxo", então o arquivo tem que existir // na pasta "EmProcessamento" assinada. if (string.IsNullOrEmpty(strNomeArqNfe)) { if (string.IsNullOrEmpty(strChaveNFe)) { throw new Exception("LerRetornoLoteMDFe(): Não pode obter o nome do arquivo"); } strNomeArqNfe = strChaveNFe.Substring(4) + Propriedade.Extensao(Propriedade.TipoEnvio.MDFe).EnvioXML; } var strArquivoNFe = Empresas.Configuracoes[emp].PastaXmlEnviado + "\\" + PastaEnviados.EmProcessamento.ToString() + "\\" + strNomeArqNfe; //Atualizar a Tag de status da NFe no fluxo para que se ocorrer alguma falha na exclusão eu tenha esta campo para ter uma referencia em futuras consultas fluxoNFe.AtualizarTag(strChaveNFe, FluxoNfe.ElementoEditavel.cStat, strStat); //Atualizar a tag da data e hora da ultima consulta do recibo fluxoNFe.AtualizarDPedRec(nRec, DateTime.Now); switch (strStat) { case "100": //MDFe Autorizado if (File.Exists(strArquivoNFe)) { //Juntar o protocolo com a NFE já copiando para a pasta de autorizadas var strArquivoNFeProc = Empresas.Configuracoes[emp].PastaXmlEnviado + "\\" + PastaEnviados.EmProcessamento.ToString() + "\\" + Functions.ExtrairNomeArq(strNomeArqNfe, Propriedade.Extensao(Propriedade.TipoEnvio.MDFe).EnvioXML) + Propriedade.ExtRetorno.ProcMDFe; //Ler o XML para pegar a data de emissão para criar a pasta dos XML´s autorizados XmlDocument conteudoXMLMDFe = new XmlDocument(); conteudoXMLMDFe.Load(strArquivoNFe); oLerXml.Mdfe(conteudoXMLMDFe); //Verificar se a -nfe.xml existe na pasta de autorizados bool NFeJaNaAutorizada = oAux.EstaAutorizada(strArquivoNFe, oLerXml.oDadosNfe.dEmi, Propriedade.Extensao(Propriedade.TipoEnvio.MDFe).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.MDFe).EnvioXML); //Verificar se o -procNfe.xml existe na past de autorizados bool procNFeJaNaAutorizada = oAux.EstaAutorizada(strArquivoNFe, oLerXml.oDadosNfe.dEmi, Propriedade.Extensao(Propriedade.TipoEnvio.MDFe).EnvioXML, Propriedade.ExtRetorno.ProcMDFe); //Se o XML de distribuição não estiver na pasta de autorizados if (!procNFeJaNaAutorizada) { if (!File.Exists(strArquivoNFeProc)) { oGerarXML.XmlDistMDFe(strArquivoNFe, strProtNfe, Propriedade.ExtRetorno.ProcMDFe, oLerXml.oDadosNfe.versao); } } if (!(procNFeJaNaAutorizada = oAux.EstaAutorizada(strArquivoNFe, oLerXml.oDadosNfe.dEmi, Propriedade.Extensao(Propriedade.TipoEnvio.MDFe).EnvioXML, Propriedade.ExtRetorno.ProcMDFe))) { //Mover a nfePRoc da pasta de NFE em processamento para a NFe Autorizada //Para envitar falhar, tenho que mover primeiro o XML de distribuição (-procnfe.xml) para //depois mover o da nfe (-nfe.xml), pois se ocorrer algum erro, tenho como reconstruir o senário, //assim sendo não inverta as posições. Wandrey 08/10/2009 TFunctions.MoverArquivo(strArquivoNFeProc, PastaEnviados.Autorizados, oLerXml.oDadosNfe.dEmi); //Atualizar a situação para que eu só mova o arquivo com final -NFe.xml para a pasta autorizado se //a procnfe já estiver lá, ou vai ficar na pasta emProcessamento para tentar gerar novamente. //Isso vai dar uma maior segurança para não deixar sem gerar o -procnfe.xml. Wandrey 13/12/2012 procNFeJaNaAutorizada = oAux.EstaAutorizada(strArquivoNFe, oLerXml.oDadosNfe.dEmi, Propriedade.Extensao(Propriedade.TipoEnvio.MDFe).EnvioXML, Propriedade.ExtRetorno.ProcMDFe); } if (!NFeJaNaAutorizada && procNFeJaNaAutorizada) { //Mover a NFE da pasta de NFE em processamento para NFe Autorizada //Para envitar falhar, tenho que mover primeiro o XML de distribuição (-procnfe.xml) para //depois mover o da nfe (-nfe.xml), pois se ocorrer algum erro, tenho como reconstruir o senário. //assim sendo não inverta as posições. Wandrey 08/10/2009 TFunctions.MoverArquivo(strArquivoNFe, PastaEnviados.Autorizados, oLerXml.oDadosNfe.dEmi); } //Disparar a geração/impressao do UniDanfe. 03/02/2010 - Wandrey if (procNFeJaNaAutorizada) { try { var strArquivoDist = Empresas.Configuracoes[emp].PastaXmlEnviado + "\\" + PastaEnviados.Autorizados.ToString() + "\\" + Empresas.Configuracoes[emp].DiretorioSalvarComo.ToString(oLerXml.oDadosNfe.dEmi) + Path.GetFileName(strArquivoNFeProc); TFunctions.ExecutaUniDanfe(strArquivoDist, oLerXml.oDadosNfe.dEmi, Empresas.Configuracoes[emp]); } catch (Exception ex) { Auxiliar.WriteLog("TaskMDFeRetRecepcao: " + ex.Message, false); } } //Vou verificar se estão os dois arquivos na pasta Autorizados, se tiver eu tiro do fluxo caso contrário não. Wandrey 13/02/2012 NFeJaNaAutorizada = oAux.EstaAutorizada(strArquivoNFe, oLerXml.oDadosNfe.dEmi, Propriedade.Extensao(Propriedade.TipoEnvio.MDFe).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.MDFe).EnvioXML); procNFeJaNaAutorizada = oAux.EstaAutorizada(strArquivoNFe, oLerXml.oDadosNfe.dEmi, Propriedade.Extensao(Propriedade.TipoEnvio.MDFe).EnvioXML, Propriedade.ExtRetorno.ProcMDFe); if (!procNFeJaNaAutorizada || !NFeJaNaAutorizada) { tirarFluxo = false; } } break; default: //NFe foi rejeitada //O Status da NFe tem que ser maior que 1 ou deu algum erro na hora de ler o XML de retorno da consulta do recibo, sendo assim, vou mantar a nota no fluxo para consultar novamente. if (Convert.ToInt32(strStat) >= 1) { //Mover o XML da NFE a pasta de XML´s com erro oAux.MoveArqErro(strArquivoNFe); } else { tirarFluxo = false; } break; } //Deletar a NFE do arquivo de controle de fluxo if (tirarFluxo) { fluxoNFe.ExcluirNfeFluxo(strChaveNFe); } break; } } break; #endregion Lote foi processado, agora tenho que tratar as notas fiscais dele #region Qualquer outro tipo de status que não for os acima relacionados, vai tirar a nota fiscal do fluxo. default: //Qualquer outro tipo de rejeião vou tirar todas as notas do lote do fluxo, pois se o lote foi rejeitado, todas as notas fiscais também foram //De acordo com o manual de integração se o status do lote não for 104, tudo foi rejeitado. Wandrey 20/07/2010 if (Convert.ToInt32(cStatLote) >= 1) { //Vou retirar as notas do fluxo pelo recibo if (nRec != string.Empty) { fluxoNFe.ExcluirNfeFluxoRec(nRec.Trim()); } } break; #endregion Qualquer outro tipo de status que não for os acima relacionados, vai tirar a nota fiscal do fluxo. } } }
private void ExtraiDFe(XmlNode ret, string tagNameDoc, string folderTerceiros, string fileRetorno2, int emp, string fileRetorno) { for (int n = 0; n < ret.ChildNodes.Count; ++n) { if (ret.ChildNodes[n].Name.Equals(tagNameDoc)) { string FileToFtp = ""; string NSU = ret.ChildNodes[n].Attributes[TpcnResources.NSU.ToString()].Value; /// /// descompacta o conteudo /// string xmlRes = TFunctions.Decompress(ret.ChildNodes[n].InnerText); XmlDocument docXML = new XmlDocument(); docXML.Load(Functions.StringXmlToStreamUTF8(xmlRes)); if (string.IsNullOrEmpty(xmlRes)) { Auxiliar.WriteLog("LeRetornoNFe: Não foi possivel descompactar o conteudo da NSU: " + NSU, false); } else { #region NFe if (ret.ChildNodes[n].Attributes["schema"].InnerText.StartsWith("resEvento")) { FileToFtp = Path.Combine(folderTerceiros, fileRetorno2 + "-" + NSU + Propriedade.Extensao(Propriedade.TipoEnvio.PedEve).RetornoXML); } else if (ret.ChildNodes[n].Attributes["schema"].InnerText.StartsWith("procEventoNFe")) { string chNFe = Functions.LerTag(((XmlElement)((XmlElement)docXML.GetElementsByTagName("evento")[0]).GetElementsByTagName("infEvento")[0]), "chNFe", false); string tpEvento = Functions.LerTag(((XmlElement)((XmlElement)docXML.GetElementsByTagName("evento")[0]).GetElementsByTagName("infEvento")[0]), "tpEvento", false); string nSeqEvento = Functions.LerTag(((XmlElement)((XmlElement)docXML.GetElementsByTagName("evento")[0]).GetElementsByTagName("infEvento")[0]), "nSeqEvento", false); if (Empresas.Configuracoes[emp].ArqNSU) { FileToFtp = Path.Combine(folderTerceiros, fileRetorno2 + "-" + NSU + Propriedade.ExtRetorno.ProcEventoNFe); } else { FileToFtp = Path.Combine(folderTerceiros, chNFe + "_" + tpEvento + "_" + nSeqEvento.PadLeft(2, '0') + Propriedade.ExtRetorno.ProcEventoNFe); } } else if (ret.ChildNodes[n].Attributes["schema"].InnerText.StartsWith("procNFe")) { string chave = ((XmlElement)docXML.GetElementsByTagName("infNFe")[0]).GetAttribute("Id").Substring(3, 44); if (Empresas.Configuracoes[emp].ArqNSU) { FileToFtp = Path.Combine(folderTerceiros, fileRetorno2 + "-" + NSU + Propriedade.ExtRetorno.ProcNFe); } else { FileToFtp = Path.Combine(folderTerceiros, chave + Propriedade.ExtRetorno.ProcNFe); } } else if (ret.ChildNodes[n].Attributes["schema"].InnerText.StartsWith("resNFe")) { FileToFtp = Path.Combine(folderTerceiros, fileRetorno2 + "-" + NSU + Propriedade.Extensao(Propriedade.TipoEnvio.NFe).EnvioXML); } #endregion NFe #region CTe else if (ret.ChildNodes[n].Attributes["schema"].InnerText.StartsWith("procEventoCTe")) { string chCTe = Functions.LerTag(((XmlElement)((XmlElement)docXML.GetElementsByTagName("eventoCTe")[0]).GetElementsByTagName("infEvento")[0]), "chCTe", false); string tpEvento = Functions.LerTag(((XmlElement)((XmlElement)docXML.GetElementsByTagName("eventoCTe")[0]).GetElementsByTagName("infEvento")[0]), "tpEvento", false); string nSeqEvento = Functions.LerTag(((XmlElement)((XmlElement)docXML.GetElementsByTagName("eventoCTe")[0]).GetElementsByTagName("infEvento")[0]), "nSeqEvento", false); if (Empresas.Configuracoes[emp].ArqNSU) { FileToFtp = Path.Combine(folderTerceiros, fileRetorno2 + "-" + NSU + Propriedade.ExtRetorno.ProcEventoCTe); } else { FileToFtp = Path.Combine(folderTerceiros, chCTe + "_" + tpEvento + "_" + nSeqEvento.PadLeft(2, '0') + Propriedade.ExtRetorno.ProcEventoCTe); } } else if (ret.ChildNodes[n].Attributes["schema"].InnerText.StartsWith("procCTe")) { string chave = ((XmlElement)docXML.GetElementsByTagName("infCte")[0]).GetAttribute("Id").Substring(3, 44); if (Empresas.Configuracoes[emp].ArqNSU) { FileToFtp = Path.Combine(folderTerceiros, fileRetorno2 + "-" + NSU + Propriedade.ExtRetorno.ProcCTe); } else { FileToFtp = Path.Combine(folderTerceiros, chave + Propriedade.ExtRetorno.ProcCTe); } } #endregion CTe else { Auxiliar.WriteLog("LerRetornoDFe: Nao foi possivel ler o schema", false); } if (FileToFtp != "") { if (!File.Exists(FileToFtp)) { File.WriteAllText(FileToFtp, xmlRes); } string vFolder = Empresas.Configuracoes[emp].FTPPastaRetornos; if (!string.IsNullOrEmpty(vFolder)) { try { Empresas.Configuracoes[emp].SendFileToFTP(FileToFtp, vFolder); } catch (Exception ex) { /// /// grava um arquivo de erro com extensao "FTP" para diferenciar dos arquivos de erro oAux.GravarArqErroERP(Path.ChangeExtension(fileRetorno, ".ftp"), ex.Message); } } } } } } }
public override void Execute() { int emp = Empresas.FindEmpresaByThread(); try { Functions.DeletarArquivo(Empresas.Configuracoes[emp].PastaXmlRetorno + "\\" + Functions.ExtrairNomeArq(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.ConsDadosCadCFSe).EnvioXML) + Propriedade.Extensao(Propriedade.TipoEnvio.ConsDadosCadCFSe).RetornoERR); Functions.DeletarArquivo(Empresas.Configuracoes[emp].PastaXmlErro + "\\" + NomeArquivoXML); int tpEmis = Empresas.Configuracoes[emp].tpEmis; int tpAmb = Empresas.Configuracoes[emp].AmbienteCodigo; int municipio = Empresas.Configuracoes[emp].UnidadeFederativaCodigo; PadroesNFSe padraoNFSe = Functions.PadraoNFSe(municipio); WebServiceProxy wsProxy = null; object consDadosCadastroCfse = null; //Criar objetos das classes dos serviços dos webservices do SEFAZ if (IsUtilizaCompilacaoWs(padraoNFSe)) { wsProxy = ConfiguracaoApp.DefinirWS(Servico, emp, municipio, tpAmb, tpEmis, padraoNFSe, municipio); if (wsProxy != null) { consDadosCadastroCfse = wsProxy.CriarObjeto(wsProxy.NomeClasseWS); } } System.Net.SecurityProtocolType securityProtocolType = WebServiceProxy.DefinirProtocoloSeguranca(municipio, tpAmb, tpEmis, padraoNFSe, Servico); string cabecMsg = ""; switch (padraoNFSe) { case PadroesNFSe.FINTEL: cabecMsg = "<cabecalho versao=\"2.02\" xmlns=\"http://iss.irati.pr.gov.br/Arquivos/nfseV202.xsd\"><versaoDados>2.02</versaoDados></cabecalho>"; break; } if (IsInvocar(padraoNFSe)) { //Assinar o XML AssinaturaDigital ad = new AssinaturaDigital(); ad.Assinar(NomeArquivoXML, emp, municipio); //Invocar o método que envia o XML para o SEFAZ oInvocarObj.InvocarNFSe(wsProxy, consDadosCadastroCfse, NomeMetodoWS(Servico, municipio), cabecMsg, this, Propriedade.Extensao(Propriedade.TipoEnvio.ConsDadosCadCFSe).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.ConsDadosCadCFSe).RetornoXML, padraoNFSe, Servico, securityProtocolType); /// /// grava o arquivo no FTP string filenameFTP = Path.Combine(Empresas.Configuracoes[emp].PastaXmlRetorno, Functions.ExtrairNomeArq(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.ConsDadosCadCFSe).EnvioXML) + Propriedade.Extensao(Propriedade.TipoEnvio.ConsDadosCadCFSe).RetornoXML); if (File.Exists(filenameFTP)) { new GerarXML(emp).XmlParaFTP(emp, filenameFTP); } } } catch (Exception ex) { try { //Gravar o arquivo de erro de retorno para o ERP, caso ocorra TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.ConsDadosCadCFSe).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.ConsDadosCadCFSe).RetornoERR, ex); } catch { //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada. //Wandrey 31/08/2011 } } finally { try { Functions.DeletarArquivo(NomeArquivoXML); } catch { //Se falhou algo na hora de deletar o XML de cancelamento de NFe, infelizmente //não posso fazer mais nada, o UniNFe vai tentar mandar o arquivo novamente para o webservice, pois ainda não foi excluido. //Wandrey 31/08/2011 } } }
public override void Execute() { int emp = Empresas.FindEmpresaByThread(); //Definir o serviço que será executado para a classe Servico = Servicos.NFSeRecepcionarLoteRps; try { Functions.DeletarArquivo(Empresas.Configuracoes[emp].PastaXmlRetorno + "\\" + Functions.ExtrairNomeArq(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.EnvLoteRps).EnvioXML) + Propriedade.ExtRetorno.RetEnvLoteRps_ERR); Functions.DeletarArquivo(Empresas.Configuracoes[emp].PastaXmlErro + "\\" + NomeArquivoXML); oDadosEnvLoteRps = new DadosEnvLoteRps(emp); EnvLoteRps(emp, NomeArquivoXML); //Criar objetos das classes dos serviços dos webservices do SEFAZ PadroesNFSe padraoNFSe = Functions.PadraoNFSe(oDadosEnvLoteRps.cMunicipio); WebServiceProxy wsProxy = null; object envLoteRps = null; if (IsUtilizaCompilacaoWs(padraoNFSe)) { wsProxy = ConfiguracaoApp.DefinirWS(Servico, emp, oDadosEnvLoteRps.cMunicipio, oDadosEnvLoteRps.tpAmb, oDadosEnvLoteRps.tpEmis, padraoNFSe); if (wsProxy != null) { envLoteRps = wsProxy.CriarObjeto(wsProxy.NomeClasseWS); } } System.Net.SecurityProtocolType securityProtocolType = WebServiceProxy.DefinirProtocoloSeguranca(oDadosEnvLoteRps.cMunicipio, oDadosEnvLoteRps.tpAmb, oDadosEnvLoteRps.tpEmis, padraoNFSe, Servico); string cabecMsg = ""; switch (padraoNFSe) { case PadroesNFSe.IPM: //código da cidade da receita federal, este arquivo pode ser encontrado em ~\uninfe\doc\Codigos_Cidades_Receita_Federal.xls</para> //O código da cidade está hardcoded pois ainda está sendo usado apenas para campo mourão IPM ipm = new IPM(Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, oDadosEnvLoteRps.cMunicipio, Empresas.Configuracoes[emp].PastaXmlRetorno); if (ConfiguracaoApp.Proxy) { ipm.Proxy = Proxy.DefinirProxy(ConfiguracaoApp.ProxyServidor, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyPorta); } ipm.EmitirNF(NomeArquivoXML, (TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo); break; case PadroesNFSe.GINFES: if (oDadosEnvLoteRps.cMunicipio == 4125506) //São José dos Pinhais - PR { cabecMsg = "<ns2:cabecalho versao=\"3\" xmlns:ns2=\"http://nfe.sjp.pr.gov.br/cabecalho_v03.xsd\"><versaoDados>3</versaoDados></ns2:cabecalho>"; } else { cabecMsg = "<ns2:cabecalho versao=\"3\" xmlns:ns2=\"http://www.ginfes.com.br/cabecalho_v03.xsd\"><versaoDados>3</versaoDados></ns2:cabecalho>"; } break; case PadroesNFSe.BETHA: wsProxy = new WebServiceProxy(Empresas.Configuracoes[emp].X509Certificado); wsProxy.Betha = new Betha(); break; case PadroesNFSe.ABACO: case PadroesNFSe.CANOAS_RS: cabecMsg = "<cabecalho versao=\"201001\"><versaoDados>V2010</versaoDados></cabecalho>"; break; case PadroesNFSe.BLUMENAU_SC: EncryptAssinatura(); break; case PadroesNFSe.BHISS: cabecMsg = "<cabecalho xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"1.00\"><versaoDados >1.00</versaoDados ></cabecalho>"; Servico = GetTipoServicoSincrono(Servico, NomeArquivoXML, PadroesNFSe.BHISS); break; case PadroesNFSe.WEBISS: cabecMsg = "<cabecalho xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"1.00\"><versaoDados >1.00</versaoDados ></cabecalho>"; break; case PadroesNFSe.PAULISTANA: wsProxy = new WebServiceProxy(Empresas.Configuracoes[emp].X509Certificado); if (oDadosEnvLoteRps.tpAmb == 1) { envLoteRps = new Components.PSaoPauloSP.LoteNFe(); } else { throw new Exception("Município de São Paulo-SP não dispõe de ambiente de homologação para envio de NFS-e em teste."); } EncryptAssinatura(); break; case PadroesNFSe.NA_INFORMATICA: Servico = GetTipoServicoSincrono(Servico, NomeArquivoXML, PadroesNFSe.VVISS); wsProxy = new WebServiceProxy(Empresas.Configuracoes[emp].X509Certificado); if (oDadosEnvLoteRps.tpAmb == 1) { envLoteRps = new Components.PCorumbaMS.NfseWSService(); } else { envLoteRps = new Components.HCorumbaMS.NfseWSService(); } break; case PadroesNFSe.PORTOVELHENSE: cabecMsg = "<cabecalho versao=\"2.00\" xmlns:ns2=\"http://www.w3.org/2000/09/xmldsig#\" xmlns=\"http://www.abrasf.org.br/nfse.xsd\"><versaoDados>2.00</versaoDados></cabecalho>"; break; case PadroesNFSe.DSF: EncryptAssinatura(); break; case PadroesNFSe.TECNOSISTEMAS: cabecMsg = "<?xml version=\"1.0\" encoding=\"utf-8\"?><cabecalho xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" versao=\"20.01\" xmlns=\"http://www.nfse-tecnos.com.br/nfse.xsd\"><versaoDados>20.01</versaoDados></cabecalho>"; break; case PadroesNFSe.FINTEL: cabecMsg = "<cabecalho xmlns=\"http://iss.pontagrossa.pr.gov.br/Arquivos/nfse.xsd\" versao=\"1.00\"><versaoDados >1.00</versaoDados ></cabecalho>"; Servico = GetTipoServicoSincrono(Servico, NomeArquivoXML, PadroesNFSe.FINTEL); break; case PadroesNFSe.ACTCON: cabecMsg = "<cabecalho><versaoDados>2.01</versaoDados></cabecalho>"; Servico = GetTipoServicoSincrono(Servico, NomeArquivoXML, PadroesNFSe.ACTCON); break; case PadroesNFSe.SYSTEMPRO: #region SystemPro SystemPro syspro = new SystemPro((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, Empresas.Configuracoes[emp].X509Certificado); AssinaturaDigital ad = new AssinaturaDigital(); ad.Assinar(NomeArquivoXML, emp, oDadosEnvLoteRps.cMunicipio); syspro.EmiteNF(NomeArquivoXML); break; #endregion case PadroesNFSe.SIGCORP_SIGISS: #region SigCorp SigCorp sigcorp = new SigCorp((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosEnvLoteRps.cMunicipio); sigcorp.EmiteNF(NomeArquivoXML); break; #endregion case PadroesNFSe.FIORILLI: #region Fiorilli Fiorilli fiorilli = new Fiorilli((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosEnvLoteRps.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor); AssinaturaDigital ass = new AssinaturaDigital(); ass.Assinar(NomeArquivoXML, emp, oDadosEnvLoteRps.cMunicipio); fiorilli.EmiteNF(NomeArquivoXML); break; #endregion case PadroesNFSe.SIMPLISS: #region Simpliss SimplISS simpliss = new SimplISS((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosEnvLoteRps.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor); AssinaturaDigital sign = new AssinaturaDigital(); sign.Assinar(NomeArquivoXML, emp, oDadosEnvLoteRps.cMunicipio); simpliss.EmiteNF(NomeArquivoXML); break; #endregion case PadroesNFSe.CONAM: #region Conam Conam conam = new Conam((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosEnvLoteRps.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS); conam.EmiteNF(NomeArquivoXML); break; #endregion case PadroesNFSe.RLZ_INFORMATICA: #region RLZ Rlz_Informatica rlz = new Rlz_Informatica((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosEnvLoteRps.cMunicipio); rlz.EmiteNF(NomeArquivoXML); break; #endregion case PadroesNFSe.EGOVERNE: #region E-Governe EGoverne egoverne = new EGoverne((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosEnvLoteRps.cMunicipio, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor, Empresas.Configuracoes[emp].X509Certificado); AssinaturaDigital assEGovoverne = new AssinaturaDigital(); assEGovoverne.Assinar(NomeArquivoXML, emp, oDadosEnvLoteRps.cMunicipio); egoverne.EmiteNF(NomeArquivoXML); break; #endregion case PadroesNFSe.EL: #region E&L EL el = new EL((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosEnvLoteRps.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, (ConfiguracaoApp.Proxy ? ConfiguracaoApp.ProxyUsuario : ""), (ConfiguracaoApp.Proxy ? ConfiguracaoApp.ProxySenha : ""), (ConfiguracaoApp.Proxy ? ConfiguracaoApp.ProxyServidor : "")); el.EmiteNF(NomeArquivoXML); break; #endregion case PadroesNFSe.GOVDIGITAL: #region GOV-Digital GovDigital govdig = new GovDigital((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, Empresas.Configuracoes[emp].X509Certificado, oDadosEnvLoteRps.cMunicipio, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor); AssinaturaDigital adgovdig = new AssinaturaDigital(); adgovdig.Assinar(NomeArquivoXML, emp, oDadosEnvLoteRps.cMunicipio); govdig.EmiteNF(NomeArquivoXML); break; #endregion case PadroesNFSe.EQUIPLANO: cabecMsg = "1"; break; case PadroesNFSe.NATALENSE: cabecMsg = "<cabecalho xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" versao=\"1\" xmlns=\"http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd\"><versaoDados>1</versaoDados></cabecalho>"; break; case PadroesNFSe.PRODATA: cabecMsg = "<cabecalho><versaoDados>2.01</versaoDados></cabecalho>"; break; case PadroesNFSe.VVISS: Servico = GetTipoServicoSincrono(Servico, NomeArquivoXML, PadroesNFSe.VVISS); break; case PadroesNFSe.ELOTECH: #region EloTech EloTech elotech = new EloTech((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosEnvLoteRps.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor, Empresas.Configuracoes[emp].X509Certificado); elotech.EmiteNF(NomeArquivoXML); break; #endregion case PadroesNFSe.METROPOLIS: #region METROPOLIS Metropolis metropolis = new Metropolis((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosEnvLoteRps.cMunicipio, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor, Empresas.Configuracoes[emp].X509Certificado); AssinaturaDigital metropolisdig = new AssinaturaDigital(); metropolisdig.Assinar(NomeArquivoXML, emp, oDadosEnvLoteRps.cMunicipio); metropolis.EmiteNF(NomeArquivoXML); break; #endregion case PadroesNFSe.MGM: #region MGM MGM mgm = new MGM((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosEnvLoteRps.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS); mgm.EmiteNF(NomeArquivoXML); break; #endregion case PadroesNFSe.CONSIST: #region Consist Consist consist = new Consist((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosEnvLoteRps.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor); consist.EmiteNF(NomeArquivoXML); break; #endregion case PadroesNFSe.NOTAINTELIGENTE: #region Nota Inteligente wsProxy = new WebServiceProxy(Empresas.Configuracoes[emp].X509Certificado); if (oDadosEnvLoteRps.tpAmb == 1) { //envLoteRps = new NFe.Components.PClaudioMG.api_portClient(); } else { throw new Exception("Município de São Paulo-SP não dispõe de ambiente de homologação para envio de NFS-e em teste."); } #endregion break; case PadroesNFSe.FREIRE_INFORMATICA: cabecMsg = "<cabecalho xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"2.02\"><versaoDados>2.02</versaoDados></cabecalho>"; break; case PadroesNFSe.MEMORY: #region Memory Memory memory = new Memory((TipoAmbiente)Empresas.Configuracoes[emp].AmbienteCodigo, Empresas.Configuracoes[emp].PastaXmlRetorno, oDadosEnvLoteRps.cMunicipio, Empresas.Configuracoes[emp].UsuarioWS, Empresas.Configuracoes[emp].SenhaWS, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyServidor); AssinaturaDigital sigMem = new AssinaturaDigital(); sigMem.Assinar(NomeArquivoXML, emp, oDadosEnvLoteRps.cMunicipio); memory.EmiteNF(NomeArquivoXML); break; #endregion case PadroesNFSe.CAMACARI_BA: cabecMsg = "<cabecalho><versaoDados>2.01</versaoDados><versao>2.01</versao></cabecalho>"; break; } if (IsInvocar(padraoNFSe)) { //Assinar o XML AssinaturaDigital ad = new AssinaturaDigital(); ad.Assinar(NomeArquivoXML, emp, oDadosEnvLoteRps.cMunicipio); //Invocar o método que envia o XML para o SEFAZ oInvocarObj.InvocarNFSe(wsProxy, envLoteRps, NomeMetodoWS(Servico, oDadosEnvLoteRps.cMunicipio), cabecMsg, this, Propriedade.Extensao(Propriedade.TipoEnvio.EnvLoteRps).EnvioXML, //"-env-loterps", Propriedade.Extensao(Propriedade.TipoEnvio.EnvLoteRps).RetornoXML, //"-ret-loterps", padraoNFSe, Servico, securityProtocolType); /// /// grava o arquivo no FTP string filenameFTP = Path.Combine(Empresas.Configuracoes[emp].PastaXmlRetorno, Functions.ExtrairNomeArq(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.EnvLoteRps).EnvioXML) + "\\" + Propriedade.Extensao(Propriedade.TipoEnvio.EnvLoteRps).RetornoXML); if (File.Exists(filenameFTP)) { new GerarXML(emp).XmlParaFTP(emp, filenameFTP); } } } catch (Exception ex) { try { //Gravar o arquivo de erro de retorno para o ERP, caso ocorra TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.EnvLoteRps).EnvioXML, Propriedade.ExtRetorno.RetEnvLoteRps_ERR, ex); } catch { //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada. //Wandrey 31/08/2011 } } finally { try { Functions.DeletarArquivo(NomeArquivoXML); } catch { //Se falhou algo na hora de deletar o XML de cancelamento de NFe, infelizmente //não posso fazer mais nada, o UniNFe vai tentar mandar o arquivo novamente para o webservice, pois ainda não foi excluido. //Wandrey 31/08/2011 } } }
Functions.DeletarArquivo(Path.Combine(Empresas.Configuracoes[emp].PastaXmlRetorno, Path.GetFileName(NomeArquivoXML.Replace(Propriedade.ExtEnvio.EnvImpressaoDanfe_TXT, Propriedade.ExtRetorno.RetImpressaoDanfe_TXT).Replace(".txt", ".err"))));