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); } }
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; } }
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; } }
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; } }
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; } }