예제 #1
0
        public static void SalvarNovaEmpresa(Core.Empresa empresa, string cnpj, string nome)
        {
            string caminhoConfiguracaoEmpresa = System.IO.Path.Combine(Propriedade.PastaExecutavel, cnpj, "nfse", Propriedade.NomeArqConfig);
            if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(caminhoConfiguracaoEmpresa)))
                System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(caminhoConfiguracaoEmpresa));

            if (System.IO.File.Exists(Propriedade.NomeArqEmpresa))
            {
                var serializar = new Layouts.Serializador();
                bool erro;
                var empresas = serializar.TryLerXml<Empresas>(Propriedade.NomeArqEmpresa, out erro);
                if (erro)
                    empresas = new Empresas();
                if (!empresas.ListaEmpresas.Exists(x => x.Cnpj == cnpj))
                    empresas.ListaEmpresas.Add(new InfoEmpresa() { Cnpj = cnpj, Nome = nome });

                serializar.SalvarXml<Empresas>(empresas, Propriedade.NomeArqEmpresa);
                serializar.SalvarXml<Core.Empresa>(empresa, caminhoConfiguracaoEmpresa);
            }
            else
            {
                var serializar = new Layouts.Serializador();
                var dicionarioEmpresas = new List<InfoEmpresa>();
                dicionarioEmpresas.Add(new InfoEmpresa() { Cnpj = cnpj, Nome = nome });
                serializar.SalvarXml<Empresas>(new Empresas() { ListaEmpresas = dicionarioEmpresas }, Propriedade.NomeArqEmpresa);
                serializar.SalvarXml<Core.Empresa>(empresa, caminhoConfiguracaoEmpresa);
            }
        }
예제 #2
0
        private void button2_Click(object sender, EventArgs e)
        {
            string caminhoXml = @"C:\t2ti\nfse\1-consulta-situacao-lote.xml";

            var consultaSituacaoLote = new Layouts.Betha.ConsultarSituacaoLoteRpsEnvio();

            consultaSituacaoLote.Prestador      = new Layouts.Betha.tcIdentificacaoPrestador();
            consultaSituacaoLote.Prestador.Cnpj = "10793118000178";
            consultaSituacaoLote.Prestador.InscricaoMunicipal = "10127260010"; // Inscrição Municipal da T2Ti criada em Belo Horizonte apenas para testes
            consultaSituacaoLote.Protocolo = "855426049227311";

            if (System.IO.File.Exists(caminhoXml))
            {
                System.IO.File.Delete(caminhoXml);
            }

            var serializar = new Layouts.Serializador();

            serializar.SalvarXml <Layouts.Betha.ConsultarSituacaoLoteRpsEnvio>(consultaSituacaoLote, caminhoXml);

            caminhoXml = @"C:\t2ti\nfse\1-env.xml-ret-loterps.xml";
            System.Net.ServicePointManager.Expect100Continue = false;

            var empresa = RetornaEmpresa(false);
            var envio   = new NFSE.Net.Envio.Processar();

            envio.ProcessaArquivo(empresa, caminhoXml, "", Servicos.ConsultarSituacaoLoteRps);
        }
예제 #3
0
        private void button7_Click(object sender, EventArgs e)
        {
            try
            {
                string caminhoXml = @"C:\Users\danimaribeiro\Documents\Visual Studio 2012\Projects\NFSE.Net\NFSE.Net.Tests\bin\Debug\PastaEnvio\rps-11AA-ret-loterps.xml";
                var    empresa    = RetornaEmpresa(false);
                var    envio      = new NFSE.Net.Envio.Processar();

                var consulta = new NFSE.Net.Layouts.Betha.ConsultarNfsePorRpsEnvio();
                consulta.IdentificacaoRps        = new Layouts.Betha.tcIdentificacaoRps();
                consulta.IdentificacaoRps.Numero = "11";
                consulta.IdentificacaoRps.Serie  = "AA";
                consulta.IdentificacaoRps.Tipo   = 1;

                consulta.Prestador      = new Layouts.Betha.tcIdentificacaoPrestador();
                consulta.Prestador.Cnpj = "03657739000169";
                consulta.Prestador.InscricaoMunicipal = "24082-6";

                var serializar = new Layouts.Serializador();
                serializar.SalvarXml <Layouts.Betha.ConsultarNfsePorRpsEnvio>(consulta, caminhoXml);
                envio.ProcessaArquivo(empresa, caminhoXml, "", Servicos.ConsultarNfsePorRps);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
예제 #4
0
        /// <summary>
        /// Busca as configurações da empresa dentro de sua pasta gravadas em um XML chamado UniNfeConfig.Xml
        /// </summary>
        public static void CarregarEmpresasConfiguradas()
        {
            Empresa.Configuracoes.Clear();
            var empresas = Empresas.CarregarEmpresasCadastradas();

            foreach (var item in empresas.ListaEmpresas)
            {
                string caminhoConfiguracaoEmpresa = System.IO.Path.Combine(Propriedade.PastaExecutavel, item.Cnpj, "nfse", Propriedade.NomeArqConfig);
                if (System.IO.File.Exists(caminhoConfiguracaoEmpresa))
                {
                    var serializador = new Layouts.Serializador();
                    var empresa      = serializador.LerXml <Empresa>(caminhoConfiguracaoEmpresa);
                    if (!string.IsNullOrWhiteSpace(empresa.CertificadoSenha))
                    {
                        empresa.CertificadoSenha = Criptografia.descriptografaSenha(empresa.CertificadoSenha);
                    }
                    else
                    {
                        empresa.ErrosValidacao.Add("A senha do certificado é inválida.");
                    }
                    empresa.X509Certificado = BuscaConfiguracaoCertificado(empresa);

                    Empresa.Configuracoes.Add(empresa);
                }
                else
                {
                    throw new Exception(string.Format("O arquivo de configuração da empresa: {0} - {1} não existe ", item.Nome, item.Cnpj));
                }
            }
        }
예제 #5
0
        private void button2_Click(object sender, EventArgs e)
        {
            string caminhoXml = @"C:\Users\danimaribeiro\Documents\Nota_Servico\NOVOS_RPS\1-consulta-situacao-lote.xml";

            var consultaSituacaoLote = new Layouts.Betha.ConsultarSituacaoLoteRpsEnvio();

            consultaSituacaoLote.Prestador      = new Layouts.Betha.tcIdentificacaoPrestador();
            consultaSituacaoLote.Prestador.Cnpj = "03657739000169";
            consultaSituacaoLote.Prestador.InscricaoMunicipal = "24082-6";
            consultaSituacaoLote.Protocolo = "855426049227311";

            if (System.IO.File.Exists(caminhoXml))
            {
                System.IO.File.Delete(caminhoXml);
            }

            var serializar = new Layouts.Serializador();

            serializar.SalvarXml <Layouts.Betha.ConsultarSituacaoLoteRpsEnvio>(consultaSituacaoLote, caminhoXml);

            caminhoXml = @"C:\Users\danimaribeiro\Documents\Visual Studio 2012\Projects\NFSE.Net\NFSE.Net.Tests\bin\Debug\PastaRetorno\1-env.xml-ret-loterps.xml";
            System.Net.ServicePointManager.Expect100Continue = false;

            var empresa = RetornaEmpresa(false);
            var envio   = new NFSE.Net.Envio.Processar();

            envio.ProcessaArquivo(empresa, caminhoXml, "", Servicos.ConsultarSituacaoLoteRps);
        }
예제 #6
0
        public void SalvarLoteRps(Layouts.Betha.EnviarLoteRpsEnvio lote, Core.ArquivosEnvio localArquivos)
        {
            if (string.IsNullOrWhiteSpace(localArquivos.SalvarEnvioLoteEm))
                throw new ArgumentNullException("localArquivos.SalvarEnvioLoteEm");
            if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(localArquivos.SalvarEnvioLoteEm)))
                System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(localArquivos.SalvarEnvioLoteEm));

            var serializar = new Layouts.Serializador();
            serializar.SalvarXml<Layouts.Betha.EnviarLoteRpsEnvio>(lote, localArquivos.SalvarEnvioLoteEm);
        }
예제 #7
0
        public Core.RespostaCancelamentoNfse CancelarNfse(Layouts.Betha.CancelarNfseEnvio envioCancelamento, Core.Empresa empresa, Core.ArquivosEnvio localArquivos)
        {
            try
            {
                ValidarCaminhos(localArquivos);
                var serializar = new Layouts.Serializador();
                serializar.SalvarXml <Layouts.Betha.CancelarNfseEnvio>(envioCancelamento, localArquivos.SalvarCancelarNfseEnvioEm);

                var envio = new NFSE.Net.Envio.Processar();
                ExecutarConsultas(() =>
                {
                    envio.ProcessaArquivo(empresa, localArquivos.SalvarCancelarNfseEnvioEm, localArquivos.SalvarCancelarNfseRespostaEm, Servicos.CancelarNfse);
                });

                bool erro = false;
                var  respostaEnvioLote = serializar.TryLerXml <Layouts.Betha.CancelarNfseReposta>(localArquivos.SalvarCancelarNfseRespostaEm, out erro);
                if (respostaEnvioLote != null)
                {
                    if (respostaEnvioLote.Item is ListaMensagemRetorno)
                    {
                        var retorno = new Core.RespostaCancelamentoNfse();
                        ListaMensagemRetorno mensagensErro = (ListaMensagemRetorno)respostaEnvioLote.Item;
                        retorno.Sucesso      = false;
                        retorno.CodigoErro   = mensagensErro.MensagemRetorno[0].Codigo;
                        retorno.Correcao     = mensagensErro.MensagemRetorno[0].Correcao;
                        retorno.MensagemErro = mensagensErro.MensagemRetorno[0].Mensagem;
                        return(retorno);
                    }
                    else
                    {
                        var retorno = new Core.RespostaCancelamentoNfse();
                        tcCancelamentoNfse cancelamento = (tcCancelamentoNfse)respostaEnvioLote.Item;
                        retorno.Sucesso = cancelamento.Confirmacao.InfConfirmacaoCancelamento.Sucesso;
                        retorno.DataHoraCancelamento = cancelamento.Confirmacao.InfConfirmacaoCancelamento.DataHora;
                        retorno.NumeroNfse           = cancelamento.Confirmacao.Pedido.InfPedidoCancelamento.IdentificacaoNfse.Numero;
                        return(retorno);
                    }
                }
                else
                {
                    return new Core.RespostaCancelamentoNfse()
                           {
                               Sucesso = false, CodigoErro = "00", MensagemErro = "Erro desconhecido"
                           }
                };
            }
            catch (System.Reflection.TargetInvocationException e)
            {
                throw e.InnerException;
            }
        }
예제 #8
0
        public void SalvarLoteRps(Layouts.Betha.EnviarLoteRpsEnvio lote, Core.ArquivosEnvio localArquivos)
        {
            if (string.IsNullOrWhiteSpace(localArquivos.SalvarEnvioLoteEm))
            {
                throw new ArgumentNullException("localArquivos.SalvarEnvioLoteEm");
            }
            if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(localArquivos.SalvarEnvioLoteEm)))
            {
                System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(localArquivos.SalvarEnvioLoteEm));
            }

            var serializar = new Layouts.Serializador();

            serializar.SalvarXml <Layouts.Betha.EnviarLoteRpsEnvio>(lote, localArquivos.SalvarEnvioLoteEm);
        }
예제 #9
0
        private void button4_Click(object sender, EventArgs e)
        {
            string caminhoXml = @"C:\NotasEletronicas\1-Interfoc Soluções\nfse\1-env.xml";

            Layouts.Betha.EnviarLoteRpsEnvio envio = RetornarRps();

            if (System.IO.File.Exists(caminhoXml))
            {
                System.IO.File.Delete(caminhoXml);
            }

            var serializar = new Layouts.Serializador();

            serializar.SalvarXml <Layouts.Betha.EnviarLoteRpsEnvio>(envio, caminhoXml);
        }
예제 #10
0
        private void button4_Click(object sender, EventArgs e)
        {
            string caminhoXml = @"C:\Users\danimaribeiro\Documents\Nota_Servico\NOVOS_RPS\1-env.xml";

            Layouts.Betha.EnviarLoteRpsEnvio envio = RetornarRps();

            if (System.IO.File.Exists(caminhoXml))
            {
                System.IO.File.Delete(caminhoXml);
            }

            var serializar = new Layouts.Serializador();

            serializar.SalvarXml <Layouts.Betha.EnviarLoteRpsEnvio>(envio, caminhoXml);
        }
예제 #11
0
        public Core.RespostaCancelamentoNfse CancelarNfse(Layouts.Betha.CancelarNfseEnvio envioCancelamento, Core.Empresa empresa, Core.ArquivosEnvio localArquivos)
        {
            try
            {
                ValidarCaminhos(localArquivos);
                var serializar = new Layouts.Serializador();
                serializar.SalvarXml<Layouts.Betha.CancelarNfseEnvio>(envioCancelamento, localArquivos.SalvarCancelarNfseEnvioEm);

                var envio = new NFSE.Net.Envio.Processar();
                ExecutarConsultas(() =>
                {
                    envio.ProcessaArquivo(empresa, localArquivos.SalvarCancelarNfseEnvioEm, localArquivos.SalvarCancelarNfseRespostaEm, Servicos.CancelarNfse);
                });

                bool erro = false;
                var respostaEnvioLote = serializar.TryLerXml<Layouts.Betha.CancelarNfseReposta>(localArquivos.SalvarCancelarNfseRespostaEm, out erro);
                if (respostaEnvioLote != null)
                {
                    if (respostaEnvioLote.Item is ListaMensagemRetorno)
                    {
                        var retorno = new Core.RespostaCancelamentoNfse();
                        ListaMensagemRetorno mensagensErro = (ListaMensagemRetorno)respostaEnvioLote.Item;
                        retorno.Sucesso = false;
                        retorno.CodigoErro = mensagensErro.MensagemRetorno[0].Codigo;
                        retorno.Correcao = mensagensErro.MensagemRetorno[0].Correcao;
                        retorno.MensagemErro = mensagensErro.MensagemRetorno[0].Mensagem;
                        return retorno;
                    }
                    else
                    {
                        var retorno = new Core.RespostaCancelamentoNfse();
                        tcCancelamentoNfse cancelamento = (tcCancelamentoNfse)respostaEnvioLote.Item;
                        retorno.Sucesso = cancelamento.Confirmacao.InfConfirmacaoCancelamento.Sucesso;
                        retorno.DataHoraCancelamento = cancelamento.Confirmacao.InfConfirmacaoCancelamento.DataHora;
                        retorno.NumeroNfse = cancelamento.Confirmacao.Pedido.InfPedidoCancelamento.IdentificacaoNfse.Numero;
                        return retorno;
                    }
                }
                else
                    return new Core.RespostaCancelamentoNfse() { Sucesso = false, CodigoErro = "00", MensagemErro = "Erro desconhecido" };
            }
            catch (System.Reflection.TargetInvocationException e)
            {
                throw e.InnerException;
            }
        }
예제 #12
0
        public Core.RespostaEnvioNFSe EnviarLoteRps(Core.Empresa empresa, Core.ArquivosEnvio localArquivos)
        {
            try
            {
                var serializar = new Layouts.Serializador();
                var envio      = new NFSE.Net.Envio.Processar();
                var lote       = serializar.LerXml <Layouts.Betha.EnviarLoteRpsEnvio>(localArquivos.SalvarEnvioLoteEm);

                ExecutarConsultas(() =>
                {
                    envio.ProcessaArquivo(empresa, localArquivos.SalvarEnvioLoteEm, localArquivos.SalvarRetornoEnvioLoteEm, Servicos.RecepcionarLoteRps);
                });

                bool erro = false;
                var  respostaEnvioLote = serializar.TryLerXml <Layouts.Betha.EnviarLoteRpsResposta>(localArquivos.SalvarRetornoEnvioLoteEm, out erro);
                while (true)
                {
                    System.Threading.Thread.Sleep(1000);
                    var respostaSituacao = ConsultarSituacaoLote(empresa, respostaEnvioLote, localArquivos);
                    if (respostaSituacao.Items[0] is ListaMensagemRetorno)
                    {
                        if (((ListaMensagemRetorno)respostaSituacao.Items[0]).MensagemRetorno[0].Codigo == "E92")  //Lote ainda em processamento, tentando denovo.
                        {
                            continue;
                        }
                        //else if (((ListaMensagemRetorno)respostaSituacao.Items[0]).MensagemRetorno[0].Codigo == "E10")  //RPS já enviado, passar para o Consulta RPS e verificar se a data de emissão é a mesma
                        //{
                        //    var respostaRps = ConsultarRps(empresa, lote.LoteRps.ListaRps[0].InfRps.IdentificacaoRps, localArquivos);
                        //    var listaErros = new ListaMensagemRetorno() { MensagemRetorno = respostaRps.ListaMensagemRetorno.Length > 0 ? respostaRps.ListaMensagemRetorno : null };
                        //    return MontarResposta(lote, listaErros, null, respostaRps);
                        //}
                        return(MontarResposta(lote, (ListaMensagemRetorno)respostaSituacao.Items[0], null, null));
                    }
                    else
                    {
                        break;
                    }
                }
                var respostaLote = ConsultarLote(empresa, respostaEnvioLote, localArquivos);
                return(MontarResposta(lote, null, respostaLote.ListaNfse, null));
            }
            catch (System.Reflection.TargetInvocationException e)
            {
                throw e.InnerException;
            }
        }
예제 #13
0
 public static Empresas CarregarEmpresasCadastradas()
 {
     if (System.IO.File.Exists(Propriedade.NomeArqEmpresa))
     {
         try
         {
             var serializar = new Layouts.Serializador();
             return serializar.LerXml<Empresas>(Propriedade.NomeArqEmpresa);
         }
         catch (Exception ex)
         {
             throw new Exception("O arquivo de configuração é inválido. A lista de empresas não pode ser recuperada!", ex);
         }
     }
     else
         throw new Exception("O arquivo de configurações não existe. Verifique as configurações");
 }
예제 #14
0
        private void button3_Click(object sender, EventArgs e)
        {
            System.Net.ServicePointManager.Expect100Continue = false;


            string caminhoXml    = @"C:\NotasEletronicas\30-JeF DISTRIBUIDORA DE\nfse\513-ped-loterps.xml";
            string caminhoSalvar = @"C:\NotasEletronicas\30-JeF DISTRIBUIDORA DE\nfse\513-lote-final.xml";
            var    empresa       = RetornaEmpresa(false);

            var envio = new NFSE.Net.Envio.Processar();

            envio.ProcessaArquivo(empresa, caminhoXml, caminhoSalvar, Servicos.ConsultarLoteRps);

            var serializar = new Layouts.Serializador();
            var retorno    = serializar.LerXml <Layouts.Betha.ConsultarLoteRpsResposta>(caminhoSalvar);

            System.Diagnostics.Process.Start(retorno.ListaNfse.ComplNfse[0].Nfse.InfNfse.OutrasInformacoes);
        }
예제 #15
0
 private void button8_Click(object sender, EventArgs e)
 {
     try
     {
         string caminhoXml    = @"C:\NotasEletronicas\30-JeF DISTRIBUIDORA DE\nfse\496-ped-loterps.xml";
         string caminhoSalvar = @"C:\NotasEletronicas\30-JeF DISTRIBUIDORA DE\nfse\496-consulta-por-rps.xml";
         var    empresa       = RetornaEmpresa(false);
         var    envio         = new NFSE.Net.Envio.Processar();
         envio.ProcessaArquivo(empresa, caminhoXml, caminhoSalvar, Servicos.ConsultarNfsePorRps);
         var serializar = new Layouts.Serializador();
         var retorno    = serializar.LerXml <Layouts.Betha.ConsultarNfseRpsResposta>(caminhoSalvar);
         System.Diagnostics.Process.Start(retorno.ComplNfse.Nfse.InfNfse.OutrasInformacoes);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
     }
 }
예제 #16
0
        public Core.RespostaEnvioNFSe EnviarLoteRps(Core.Empresa empresa, Core.ArquivosEnvio localArquivos)
        {
            try
            {
                var serializar = new Layouts.Serializador();
                var envio = new NFSE.Net.Envio.Processar();
                var lote = serializar.LerXml<Layouts.Betha.EnviarLoteRpsEnvio>(localArquivos.SalvarEnvioLoteEm);

                ExecutarConsultas(() =>
                {
                    envio.ProcessaArquivo(empresa, localArquivos.SalvarEnvioLoteEm, localArquivos.SalvarRetornoEnvioLoteEm, Servicos.RecepcionarLoteRps);
                });

                bool erro = false;
                var respostaEnvioLote = serializar.TryLerXml<Layouts.Betha.EnviarLoteRpsResposta>(localArquivos.SalvarRetornoEnvioLoteEm, out erro);
                while (true)
                {
                    System.Threading.Thread.Sleep(1000);
                    var respostaSituacao = ConsultarSituacaoLote(empresa, respostaEnvioLote, localArquivos);
                    if (respostaSituacao.Items[0] is ListaMensagemRetorno)
                    {
                        if (((ListaMensagemRetorno)respostaSituacao.Items[0]).MensagemRetorno[0].Codigo == "E92")  //Lote ainda em processamento, tentando denovo.
                            continue;
                        //else if (((ListaMensagemRetorno)respostaSituacao.Items[0]).MensagemRetorno[0].Codigo == "E10")  //RPS já enviado, passar para o Consulta RPS e verificar se a data de emissão é a mesma
                        //{
                        //    var respostaRps = ConsultarRps(empresa, lote.LoteRps.ListaRps[0].InfRps.IdentificacaoRps, localArquivos);
                        //    var listaErros = new ListaMensagemRetorno() { MensagemRetorno = respostaRps.ListaMensagemRetorno.Length > 0 ? respostaRps.ListaMensagemRetorno : null };
                        //    return MontarResposta(lote, listaErros, null, respostaRps);
                        //}
                        return MontarResposta(lote, (ListaMensagemRetorno)respostaSituacao.Items[0], null, null);
                    }
                    else
                        break;
                }
                var respostaLote = ConsultarLote(empresa, respostaEnvioLote, localArquivos);
                return MontarResposta(lote, null, respostaLote.ListaNfse, null);
            }
            catch (System.Reflection.TargetInvocationException e)
            {
                throw e.InnerException;
            }
        }
예제 #17
0
        private Layouts.Betha.ConsultarLoteRpsResposta ConsultarLote(Core.Empresa empresa, EnviarLoteRpsResposta protocolo, Core.ArquivosEnvio localArquivos)
        {
            var consultaSituacaoLote = new Layouts.Betha.ConsultarLoteRpsEnvio();

            consultaSituacaoLote.Prestador      = new tcIdentificacaoPrestador();
            consultaSituacaoLote.Prestador.Cnpj = empresa.CNPJ;
            consultaSituacaoLote.Prestador.InscricaoMunicipal = empresa.InscricaoMunicipal;
            consultaSituacaoLote.Protocolo = protocolo.Items[2].ToString();

            var serializar = new Layouts.Serializador();

            serializar.SalvarXml <Layouts.Betha.ConsultarLoteRpsEnvio>(consultaSituacaoLote, localArquivos.SalvarConsultaLoteRpsEnvioEm);

            var envio = new NFSE.Net.Envio.Processar();

            ExecutarConsultas(() =>
            {
                envio.ProcessaArquivo(empresa, localArquivos.SalvarConsultaLoteRpsEnvioEm, localArquivos.SalvarConsultaLoteRpsRespostaEm, Servicos.ConsultarLoteRps);
            });

            return(serializar.LerXml <Layouts.Betha.ConsultarLoteRpsResposta>(localArquivos.SalvarConsultaLoteRpsRespostaEm));
        }
예제 #18
0
        private Layouts.Betha.ConsultarNfseRpsResposta ConsultarRps(Core.Empresa empresa, tcIdentificacaoRps rps, Core.ArquivosEnvio localArquivos)
        {
            var consultaRps = new Layouts.Betha.ConsultarNfsePorRpsEnvio();

            consultaRps.Prestador      = new tcIdentificacaoPrestador();
            consultaRps.Prestador.Cnpj = empresa.CNPJ;
            consultaRps.Prestador.InscricaoMunicipal = empresa.InscricaoMunicipal;
            consultaRps.IdentificacaoRps             = rps;

            var serializar = new Layouts.Serializador();

            serializar.SalvarXml <Layouts.Betha.ConsultarNfsePorRpsEnvio>(consultaRps, localArquivos.SalvarConsultaLoteRpsEnvioEm);

            var envio = new NFSE.Net.Envio.Processar();

            ExecutarConsultas(() =>
            {
                envio.ProcessaArquivo(empresa, localArquivos.SalvarConsultaLoteRpsEnvioEm, localArquivos.SalvarConsultaLoteRpsRespostaEm, Servicos.ConsultarNfsePorRps);
            });

            return(serializar.LerXml <Layouts.Betha.ConsultarNfseRpsResposta>(localArquivos.SalvarConsultaLoteRpsRespostaEm));
        }
예제 #19
0
        private Layouts.Betha.ConsultarNfseRpsResposta ConsultarRps(Core.Empresa empresa, tcIdentificacaoRps rps, Core.ArquivosEnvio localArquivos)
        {
            var consultaRps = new Layouts.Betha.ConsultarNfsePorRpsEnvio();
            consultaRps.Prestador = new tcIdentificacaoPrestador();
            consultaRps.Prestador.Cnpj = empresa.CNPJ;
            consultaRps.Prestador.InscricaoMunicipal = empresa.InscricaoMunicipal;
            consultaRps.IdentificacaoRps = rps;

            var serializar = new Layouts.Serializador();
            serializar.SalvarXml<Layouts.Betha.ConsultarNfsePorRpsEnvio>(consultaRps, localArquivos.SalvarConsultaLoteRpsEnvioEm);

            var envio = new NFSE.Net.Envio.Processar();

            ExecutarConsultas(() =>
            {
                envio.ProcessaArquivo(empresa, localArquivos.SalvarConsultaLoteRpsEnvioEm, localArquivos.SalvarConsultaLoteRpsRespostaEm, Servicos.ConsultarNfsePorRps);
            });

            return serializar.LerXml<Layouts.Betha.ConsultarNfseRpsResposta>(localArquivos.SalvarConsultaLoteRpsRespostaEm);
        }
예제 #20
0
        private Layouts.Betha.ConsultarLoteRpsResposta ConsultarLote(Core.Empresa empresa, EnviarLoteRpsResposta protocolo, Core.ArquivosEnvio localArquivos)
        {
            var consultaSituacaoLote = new Layouts.Betha.ConsultarLoteRpsEnvio();
            consultaSituacaoLote.Prestador = new tcIdentificacaoPrestador();
            consultaSituacaoLote.Prestador.Cnpj = empresa.CNPJ;
            consultaSituacaoLote.Prestador.InscricaoMunicipal = empresa.InscricaoMunicipal;
            consultaSituacaoLote.Protocolo = protocolo.Items[2].ToString();

            var serializar = new Layouts.Serializador();
            serializar.SalvarXml<Layouts.Betha.ConsultarLoteRpsEnvio>(consultaSituacaoLote, localArquivos.SalvarConsultaLoteRpsEnvioEm);

            var envio = new NFSE.Net.Envio.Processar();

            ExecutarConsultas(() =>
            {
                envio.ProcessaArquivo(empresa, localArquivos.SalvarConsultaLoteRpsEnvioEm, localArquivos.SalvarConsultaLoteRpsRespostaEm, Servicos.ConsultarLoteRps);
            });

            return serializar.LerXml<Layouts.Betha.ConsultarLoteRpsResposta>(localArquivos.SalvarConsultaLoteRpsRespostaEm);
        }
예제 #21
0
        /// <summary>
        /// Busca as configurações da empresa dentro de sua pasta gravadas em um XML chamado UniNfeConfig.Xml
        /// </summary>
        public static void CarregarEmpresasConfiguradas()
        {
            Empresa.Configuracoes.Clear();
            var empresas = Empresas.CarregarEmpresasCadastradas();
            foreach (var item in empresas.ListaEmpresas)
            {
                string caminhoConfiguracaoEmpresa = System.IO.Path.Combine(Propriedade.PastaExecutavel, item.Cnpj, "nfse", Propriedade.NomeArqConfig);
                if (System.IO.File.Exists(caminhoConfiguracaoEmpresa))
                {
                    var serializador = new Layouts.Serializador();
                    var empresa = serializador.LerXml<Empresa>(caminhoConfiguracaoEmpresa);
                    if (!string.IsNullOrWhiteSpace(empresa.CertificadoSenha))
                        empresa.CertificadoSenha = Criptografia.descriptografaSenha(empresa.CertificadoSenha);
                    else
                        empresa.ErrosValidacao.Add("A senha do certificado é inválida.");
                    empresa.X509Certificado = BuscaConfiguracaoCertificado(empresa);

                    Empresa.Configuracoes.Add(empresa);
                }
                else
                    throw new Exception(string.Format("O arquivo de configuração da empresa: {0} - {1} não existe ", item.Nome, item.Cnpj));
            }
        }