Ejemplo n.º 1
0
	// 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);
	}
Ejemplo n.º 2
0
    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;
    }
Ejemplo n.º 3
0
    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;
    }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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;
                }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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));
            }
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
    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;
    }
Ejemplo n.º 12
0
        /// <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);
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        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);
        }
Ejemplo n.º 15
0
        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}\")");
 }
Ejemplo n.º 17
0
        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));
 }
Ejemplo n.º 19
0
        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
                {
                }
            }
        }
Ejemplo n.º 20
0
 Path.GetFileName(NomeArquivoXML.Replace(Propriedade.ExtEnvio.EnvDanfeReport_TXT, Propriedade.ExtRetorno.RetDanfeReport_TXT).Replace(".txt", ".err"))));
Ejemplo n.º 21
0
        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
                }
            }
        }
Ejemplo n.º 22
0
    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;
    }
Ejemplo n.º 23
0
        public string TratarParametroConstrutor(Propriedade propriedade, bool primeiroItem, eTratarConteudo tratarConteudo)
        {
            var separador = primeiroItem ? "" : ", ";

            return($"{separador}{RetornarTipoPropriedade(propriedade, tratarConteudo)} {RetornarNomePropriedadeCamelCase(propriedade, tratarConteudo)}");
        }
Ejemplo n.º 24
0
        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);
        }
Ejemplo n.º 25
0
 public List<Produtor> SelecionarTipoLeiteColetado(Regiao regiao, Cooperativa cooperativa, Propriedade propriedade, Produtor produtor)
 {
     ProdutorDAO obj = new ProdutorDAO();
     return obj.SelecionarTipoLeiteColetado(regiao, cooperativa, propriedade, produtor);
 }
Ejemplo n.º 26
0
    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();
                }
            }
        }
    }
Ejemplo n.º 27
0
 public List<Produtor> SelecionarProdutoresComColeta(Regiao regiao, Cooperativa cooperativa, Propriedade propriedade)
 {
     ProdutorDAO obj = new ProdutorDAO();
     return obj.SelecionarProdutoresComColeta(regiao, cooperativa, propriedade);
 }
Ejemplo n.º 28
0
    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();
    }
Ejemplo n.º 29
0
    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()));
 }
Ejemplo n.º 31
0
        /// <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()");
 }
Ejemplo n.º 33
0
        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);
            }
        }
Ejemplo n.º 34
0
        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
                }
            }
        }
Ejemplo n.º 35
0
 public List<Produtor> CarregarProdutores(Regiao regiao, Cooperativa cooperativa, Propriedade propriedade)
 {
     ProdutorDAO obj = new ProdutorDAO();
     return obj.CarregarProdutores(regiao, cooperativa, propriedade);
 }
Ejemplo n.º 36
0
        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();
                }
            }
        }
Ejemplo n.º 37
0
        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
                }
            }
        }
Ejemplo n.º 38
0
 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;
 }
Ejemplo n.º 39
0
        /// <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.
                }
            }
        }
Ejemplo n.º 40
0
        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);
                                }
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 41
0
        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
                }
            }
        }
Ejemplo n.º 42
0
        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
                }
            }
        }
Ejemplo n.º 43
0
 Functions.DeletarArquivo(Path.Combine(Empresas.Configuracoes[emp].PastaXmlRetorno, Path.GetFileName(NomeArquivoXML.Replace(Propriedade.ExtEnvio.EnvImpressaoDanfe_TXT, Propriedade.ExtRetorno.RetImpressaoDanfe_TXT).Replace(".txt", ".err"))));