/// <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)); } } }
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"); }
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; } }
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); }
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()); } }
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; } }
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)); }
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)); }
/// <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)); } }
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); }
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); }