Beispiel #1
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;
            }
        }
Beispiel #2
0
        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);
        }