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; } }
private Core.RespostaEnvioNFSe MontarResposta(Layouts.Betha.EnviarLoteRpsEnvio lote, ListaMensagemRetorno listaRetorno, ConsultarLoteRpsRespostaListaNfse respostaConsulta, ConsultarNfseRpsResposta respostaRps) { var resposta = new Core.RespostaEnvioNFSe(); int indice = 0; foreach (var item in lote.LoteRps.ListaRps) { var resp = new Core.ItemResposta(); resp.LoteEnvio = lote.LoteRps.NumeroLote; resp.NumeroRps = item.InfRps.IdentificacaoRps.Numero; resp.Serie = item.InfRps.IdentificacaoRps.Serie; resp.Identificacao = item.InfRps.Id; if (listaRetorno != null && listaRetorno.MensagemRetorno != null) { resp.Sucesso = false; if (indice > 0 && listaRetorno.MensagemRetorno.Length > 1) { resp.CodigoErro = listaRetorno.MensagemRetorno[indice].Codigo; resp.MensagemErro = listaRetorno.MensagemRetorno[indice].Mensagem; resp.Correcao = listaRetorno.MensagemRetorno[indice].Correcao; } else { resp.CodigoErro = listaRetorno.MensagemRetorno[0].Codigo; resp.MensagemErro = listaRetorno.MensagemRetorno[0].Mensagem; resp.Correcao = listaRetorno.MensagemRetorno[0].Correcao; } } else if (respostaConsulta != null) { resp.Sucesso = true; resp.IdentificacaoRetorno = respostaConsulta.ComplNfse[indice].Nfse.InfNfse.CodigoVerificacao; resp.UrlConsulta = respostaConsulta.ComplNfse[indice].Nfse.InfNfse.OutrasInformacoes; } else if (respostaRps != null) { resp.Sucesso = true; resp.Identificacao = respostaRps.ComplNfse.Nfse.InfNfse.CodigoVerificacao; resp.UrlConsulta = respostaRps.ComplNfse.Nfse.InfNfse.OutrasInformacoes; } resposta.Add(resp); indice++; } return(resposta); }