Esempio n. 1
0
        protected override void PrepararConsultarNFSeRps(RetornoConsultarNFSeRps retornoWebservice, NotaServicoCollection notas)
        {
            if (retornoWebservice.NumeroRps < 1)
            {
                retornoWebservice.Erros.Add(new Evento {
                    Codigo = "0", Descricao = "Número da NFSe não informado para a consulta."
                });
                return;
            }

            var loteBuilder = new StringBuilder();

            loteBuilder.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
            loteBuilder.Append("<ConsultarNfseRpsEnvio xmlns=\"http://www.issnetonline.com.br/webserviceabrasf/vsd/servico_consultar_nfse_rps_envio.xsd\">" +
                               "xmlns:tc=\"http://www.issnetonline.com.br/webserviceabrasf/vsd/tipos_complexos.xsd\">");
            loteBuilder.Append("<IdentificacaoRps>");
            loteBuilder.Append($"<tc:Numero>{retornoWebservice.NumeroRps}</tc:Numero>");
            loteBuilder.Append($"<tc:Serie>{retornoWebservice.Serie}</tc:Serie>");
            loteBuilder.Append($"<tc:Tipo>{(int)retornoWebservice.Tipo + 1}</tc:Tipo>");
            loteBuilder.Append("</IdentificacaoRps>");
            loteBuilder.Append("<Prestador>");
            loteBuilder.Append($"<tc:CpfCnpj><tc:Cnpj>{Configuracoes.PrestadorPadrao.CpfCnpj.ZeroFill(14)}</tc:Cnpj></tc:CpfCnpj>");
            loteBuilder.Append($"<tc:InscricaoMunicipal>{Configuracoes.PrestadorPadrao.InscricaoMunicipal}</tc:InscricaoMunicipal>");
            loteBuilder.Append("</Prestador>");
            loteBuilder.Append("</ConsultarNfseRpsEnvio>");

            retornoWebservice.XmlEnvio = loteBuilder.ToString();
        }
Esempio n. 2
0
        protected override void PrepararConsultarNFSeRps(RetornoConsultarNFSeRps retornoWebservice, NotaServicoCollection notas)
        {
            if (retornoWebservice.NumeroRps < 1)
            {
                retornoWebservice.Erros.Add(new Evento {
                    Codigo = "0", Descricao = "Número da NFSe não informado para a consulta."
                });
                return;
            }

            var loteBuilder = new StringBuilder();

            loteBuilder.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
            loteBuilder.Append($"<ConsultarNfsePorRpsEnvio {GetNamespace()}>");
            loteBuilder.Append("<IdentificacaoRps xmlns=\"\">");
            loteBuilder.Append($"<Numero>{retornoWebservice.NumeroRps}</Numero>");
            loteBuilder.Append($"<Serie>{retornoWebservice.Serie}</Serie>");
            loteBuilder.Append($"<Tipo>{(int)retornoWebservice.Tipo + 1}</Tipo>");
            loteBuilder.Append("</IdentificacaoRps>");
            loteBuilder.Append("<Prestador xmlns=\"\">");
            loteBuilder.Append($"<Cnpj>{Configuracoes.PrestadorPadrao.CpfCnpj.ZeroFill(14)}</Cnpj>");
            loteBuilder.Append($"<InscricaoMunicipal>{Configuracoes.PrestadorPadrao.InscricaoMunicipal}</InscricaoMunicipal>");
            loteBuilder.Append("</Prestador>");
            loteBuilder.Append("</ConsultarNfsePorRpsEnvio>");
            retornoWebservice.XmlEnvio = loteBuilder.ToString();
        }
Esempio n. 3
0
        protected override void TratarRetornoConsultarNFSeRps(RetornoConsultarNFSeRps retornoWebservice, NotaServicoCollection notas)
        {
            // Analisa mensagem de retorno
            var xmlRet = XDocument.Parse(AjustarRetorno(retornoWebservice.XmlRetorno));

            MensagemErro(retornoWebservice, xmlRet.Root, "Listamensagemretorno", "tcMensagemRetorno");
            if (retornoWebservice.Erros.Any())
            {
                return;
            }

            var elementRoot = xmlRet.ElementAnyNs("WS_ConsultaNfsePorRps.ExecuteResponse");
            var compNfse    = elementRoot.ElementAnyNs("Consultarnfserpsresposta")?.ElementAnyNs("CompNfse");

            if (compNfse == null)
            {
                retornoWebservice.Erros.Add(new Evento {
                    Codigo = "0", Descricao = "Nota Fiscal não encontrada! (CompNfse)"
                });
                return;
            }

            // Carrega a nota fiscal na coleção de Notas Fiscais
            var nota = LoadXml(compNfse.AsString());

            notas.Add(nota);

            retornoWebservice.Nota    = nota;
            retornoWebservice.Sucesso = true;
        }
Esempio n. 4
0
        protected override void PrepararConsultarNFSeRps(RetornoConsultarNFSeRps retornoWebservice, NotaServicoCollection notas)
        {
            if (retornoWebservice.NumeroRps < 1)
            {
                retornoWebservice.Erros.Add(new Evento {
                    Codigo = "0", Descricao = "Número da RPS não informado para a consulta."
                });
                return;
            }

            var loteBuilder = new StringBuilder();

            loteBuilder.Append($"<nfse:ConsultarNfseRpsEnvio xmlns:nfse=\"http://nfse.abrasf.org.br\">");
            loteBuilder.Append("<IdentificacaoRps>");
            loteBuilder.Append($"<Numero>{retornoWebservice.NumeroRps}</Numero>");
            loteBuilder.Append($"<Serie>{retornoWebservice.Serie}</Serie>");
            loteBuilder.Append($"<Tipo>{(int)retornoWebservice.Tipo + 1}</Tipo>");
            loteBuilder.Append("</IdentificacaoRps>");
            loteBuilder.Append("<Prestador>");
            loteBuilder.Append("<CpfCnpj>");
            loteBuilder.Append(Configuracoes.PrestadorPadrao.CpfCnpj.IsCNPJ()
                ? $"<Cnpj>{Configuracoes.PrestadorPadrao.CpfCnpj.ZeroFill(14)}</Cnpj>"
                : $"<Cpf>{Configuracoes.PrestadorPadrao.CpfCnpj.ZeroFill(11)}</Cpf>");
            loteBuilder.Append("</CpfCnpj>");
            loteBuilder.Append("</Prestador>");
            loteBuilder.Append("</nfse:ConsultarNfseRpsEnvio>");
            retornoWebservice.XmlEnvio = loteBuilder.ToString();
        }
        protected override void PrepararConsultarNFSeRps(RetornoConsultarNFSeRps retornoWebservice, NotaServicoCollection notas)
        {
            if (retornoWebservice.NumeroRps < 1)
            {
                retornoWebservice.Erros.Add(new Evento {
                    Codigo = "0", Descricao = "Número do RPS/NFSe não informado para a consulta."
                });
                return;
            }

            retornoWebservice.XmlEnvio = ConsultarRPSNFSe(retornoWebservice.NumeroRps, retornoWebservice.Serie, 0);
        }
Esempio n. 6
0
        protected override void TratarRetornoConsultarNFSeRps(RetornoConsultarNFSeRps retornoWebservice, NotaServicoCollection notas)
        {
            // Analisa mensagem de retorno
            var xmlRet = XDocument.Parse(retornoWebservice.XmlRetorno);

            MensagemErro(retornoWebservice, xmlRet, ConsultarNfseRpsResposta);
            if (retornoWebservice.Erros.Any())
            {
                return;
            }

            var compNfse = xmlRet.ElementAnyNs(ConsultarNfseRpsResposta)?.ElementAnyNs("CompNfse");

            if (compNfse == null)
            {
                retornoWebservice.Erros.Add(new Evento {
                    Codigo = "0", Descricao = "Nota Fiscal não encontrada! (CompNfse)"
                });
                return;
            }

            var nfse       = compNfse.ElementAnyNs("Nfse").ElementAnyNs("InfNfse");
            var numeroNFSe = nfse.ElementAnyNs("Numero")?.GetValue <string>() ?? string.Empty;
            var chaveNFSe  = nfse.ElementAnyNs("CodigoVerificacao")?.GetValue <string>() ?? string.Empty;
            var dataNFSe   = nfse.ElementAnyNs("DataEmissao")?.GetValue <DateTime>() ?? DateTime.Now;
            var numeroRps  = nfse.ElementAnyNs("DeclaracaoPrestacaoServico")?
                             .ElementAnyNs("IdentificacaoRps")?
                             .ElementAnyNs("Numero").GetValue <string>() ?? string.Empty;

            GravarNFSeEmDisco(compNfse.AsString(true), $"NFSe-{numeroNFSe}-{chaveNFSe}-.xml", dataNFSe);

            // Carrega a nota fiscal na coleção de Notas Fiscais
            var nota = notas.FirstOrDefault(x => x.IdentificacaoRps.Numero == numeroRps);

            if (nota == null)
            {
                nota = notas.Load(compNfse.ToString());
            }
            else
            {
                nota.IdentificacaoNFSe.Numero      = numeroNFSe;
                nota.IdentificacaoNFSe.Chave       = chaveNFSe;
                nota.IdentificacaoNFSe.DataEmissao = dataNFSe;
            }

            retornoWebservice.Nota = nota;
        }
        protected override void TratarRetornoConsultarNFSeRps(RetornoConsultarNFSeRps retornoWebservice, NotaServicoCollection notas)
        {
            // Analisa mensagem de retorno
            var xmlRet = XDocument.Parse(retornoWebservice.XmlRetorno);

            MensagemErro(retornoWebservice, xmlRet.ElementAnyNs("esConsultarNfsePorRpsResposta"), "mensagemRetorno");
            if (retornoWebservice.Erros.Count > 0)
            {
                return;
            }

            var elementRoot = xmlRet.ElementAnyNs("esConsultarNfsePorRpsResposta");

            var nfse = elementRoot.ElementAnyNs("nfse");

            if (nfse == null)
            {
                retornoWebservice.Erros.Add(new Evento {
                    Codigo = "0", Descricao = "Nota Fiscal não encontrada! (nfse)"
                });
                return;
            }

            var nota = new NotaServico(Configuracoes);

            nota.IdentificacaoNFSe.Chave       = nfse?.ElementAnyNs("cdAutenticacao")?.GetValue <string>() ?? string.Empty;
            nota.IdentificacaoNFSe.Numero      = nfse?.ElementAnyNs("nrNfse")?.GetValue <string>() ?? string.Empty;
            nota.IdentificacaoRps.Numero       = nfse?.ElementAnyNs("nrRps")?.GetValue <string>() ?? string.Empty;
            nota.IdentificacaoNFSe.DataEmissao = nfse.ElementAnyNs("dtEmissaoNfs")?.GetValue <DateTime>() ?? DateTime.MinValue;
            nota.Situacao = SituacaoNFSeRps.Normal;

            var infoCancelamento = nfse.ElementAnyNs("cancelamento");

            if (infoCancelamento != null)
            {
                nota.Cancelamento.DataHora           = infoCancelamento.ElementAnyNs("dtCancelamento")?.GetValue <DateTime>() ?? DateTime.MinValue;
                nota.Cancelamento.MotivoCancelamento = infoCancelamento?.ElementAnyNs("dsCancelamento")?.GetValue <string>() ?? string.Empty;
                nota.Situacao = SituacaoNFSeRps.Cancelado;
            }

            notas.Add(nota);
            retornoWebservice.Nota    = nota;
            retornoWebservice.Sucesso = true;
        }
Esempio n. 8
0
        protected override void PrepararConsultarNFSeRps(RetornoConsultarNFSeRps retornoWebservice, NotaServicoCollection notas)
        {
            var loteBuilder = new StringBuilder();

            loteBuilder.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
            loteBuilder.Append("<WS_ConsultaNfsePorRps.Execute xmlns:fiss=\"FISS-LEX\">");
            loteBuilder.Append("<fiss:Consultarnfserpsenvio>");
            loteBuilder.Append("<IdentificacaoRps>");
            loteBuilder.Append($"<Numero>{retornoWebservice.NumeroRps}</Numero>");
            loteBuilder.Append($"<Serie>{retornoWebservice.Serie}</Serie>");
            loteBuilder.Append($"<Tipo>{(int)retornoWebservice.Tipo + 1}</Tipo>");
            loteBuilder.Append("</IdentificacaoRps>");
            loteBuilder.Append("<Prestador>");
            loteBuilder.Append($"<Cnpj>{Configuracoes.PrestadorPadrao.CpfCnpj.ZeroFill(14)}</Cnpj>");
            loteBuilder.Append($"<InscricaoMunicipal>{Configuracoes.PrestadorPadrao.InscricaoMunicipal}</InscricaoMunicipal>");
            loteBuilder.Append("</Prestador>");
            loteBuilder.Append("</fiss:Consultarnfserpsenvio>");
            loteBuilder.Append("</WS_ConsultaNfsePorRps.Execute>");
            retornoWebservice.XmlEnvio = loteBuilder.ToString();
        }
Esempio n. 9
0
        protected override void TratarRetornoConsultarNFSeRps(RetornoConsultarNFSeRps retornoWebservice, NotaServicoCollection notas)
        {
            // Analisa mensagem de retorno
            var xmlRet    = XDocument.Parse(retornoWebservice.XmlRetorno);
            var xmlString = xmlRet.Root.ElementAnyNs("Xml_saida").GetValue <string>();

            xmlRet = XDocument.Parse(xmlString);

            MensagemErro2(retornoWebservice, xmlRet);
            if (retornoWebservice.Erros.Any())
            {
                return;
            }

            var xmlElement = xmlRet.ElementAnyNs("Info");

            var listaNfse = xmlElement.ElementAnyNs("Lista_Notas");

            if (listaNfse == null)
            {
                retornoWebservice.Erros.Add(new Evento {
                    Codigo = "0", Descricao = "Nota Fiscal não encontrada! (Nota)"
                });
                return;
            }

            var notasServico = new List <NotaServico>();

            foreach (var compNfse in listaNfse.ElementsAnyNs("Nota"))
            {
                // Carrega a nota fiscal na coleção de Notas Fiscais
                var nota = LoadXml(compNfse.AsString());
                notas.Add(nota);
                notasServico.Add(nota);
            }

            retornoWebservice.Nota    = notasServico.FirstOrDefault();
            retornoWebservice.Sucesso = true;
        }
Esempio n. 10
0
        protected override void TratarRetornoConsultarNFSeRps(RetornoConsultarNFSeRps retornoWebservice, NotaServicoCollection notas)
        {
            var xmlRet = XDocument.Parse(retornoWebservice.XmlRetorno);

            MensagemErro(retornoWebservice, xmlRet, "RetornoConsulta");
            if (retornoWebservice.Erros.Any())
            {
                return;
            }

            retornoWebservice.Sucesso = xmlRet.Root?.ElementAnyNs("Cabecalho")?.ElementAnyNs("Sucesso")?.GetValue <bool>() ?? false;

            if (!retornoWebservice.Sucesso)
            {
                return;
            }

            var notasServico = xmlRet.Root.ElementsAnyNs("NFe").Select(nfse => LoadXml(nfse.ToString())).ToList();

            retornoWebservice.Nota = notasServico[0];
            notasServico.AddRange(notasServico);
        }
Esempio n. 11
0
        protected override void PrepararConsultarNFSeRps(RetornoConsultarNFSeRps retornoWebservice, NotaServicoCollection notas)
        {
            if (retornoWebservice.NumeroRps < 1)
            {
                retornoWebservice.Erros.Add(new Evento {
                    Codigo = "0", Descricao = "Número do RPS não informado para a consulta."
                });
                return;
            }

            if (retornoWebservice.MesCompetencia <= 0 || retornoWebservice.MesCompetencia >= 13)
            {
                retornoWebservice.Erros.Add(new Evento {
                    Codigo = "0", Descricao = "Você deve informar o mês de competência."
                });
                return;
            }

            if (retornoWebservice.AnoCompetencia <= 2000 || retornoWebservice.AnoCompetencia > DateTime.Now.Year)
            {
                retornoWebservice.Erros.Add(new Evento {
                    Codigo = "0", Descricao = "Você deve informar o ano de competência."
                });
                return;
            }

            // Monta mensagem de envio
            var loteBuilder = new StringBuilder();

            loteBuilder.Append($"<Competencia_Mes>{retornoWebservice.MesCompetencia.ZeroFill(2)}</Competencia_Mes>");
            loteBuilder.Append($"<Competencia_Ano>{retornoWebservice.AnoCompetencia}</Competencia_Ano>");
            loteBuilder.Append($"<RPS_Serie>{retornoWebservice.Serie}</RPS_Serie>");
            loteBuilder.Append($"<RPS_Numero>{retornoWebservice.NumeroRps}</RPS_Numero>");
            loteBuilder.Append($"<Nota_Serie></Nota_Serie>");
            loteBuilder.Append($"<Nota_Numero></Nota_Numero>");

            retornoWebservice.XmlEnvio = loteBuilder.ToString();
        }
Esempio n. 12
0
        protected override void PrepararConsultarNFSeRps(RetornoConsultarNFSeRps retornoWebservice, NotaServicoCollection notas)
        {
            if (retornoWebservice.NumeroRps < 1)
            {
                retornoWebservice.Erros.Add(new Evento {
                    Codigo = "0", Descricao = "Número do RPS/NFSe não informado para a consulta."
                });
                return;
            }

            retornoWebservice.XmlEnvio = new StringBuilder()
                                         .Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")
                                         .Append("<es:esConsultarNfsePorRpsEnvio xmlns:es=\"http://www.equiplano.com.br/esnfs\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.equiplano.com.br/enfs esConsultarNfsePorRpsEnvio_v01.xsd\">")
                                         .Append("<rps>")
                                         .Append($"<nrRps>{retornoWebservice.NumeroRps}</nrRps>")
                                         .Append($"<nrEmissorRps>{Configuracoes.PrestadorPadrao.NumeroEmissorRps}</nrEmissorRps>")
                                         .Append("</rps>")
                                         .Append("<prestador>")
                                         .Append($"<cnpj>{Configuracoes.PrestadorPadrao.CpfCnpj}</cnpj>")
                                         .Append($"<idEntidade>{Municipio.IdEntidade}</idEntidade>")
                                         .Append("</prestador>")
                                         .Append("</es:esConsultarNfsePorRpsEnvio>")
                                         .ToString();
        }
Esempio n. 13
0
 protected override void AssinarConsultarNFSeRps(RetornoConsultarNFSeRps retornoWebservice)
 {
 }
Esempio n. 14
0
 protected override void AssinarConsultarNFSeRps(RetornoConsultarNFSeRps retornoWebservice)
 {
     //Não precisa assinar.
 }
Esempio n. 15
0
 protected override void AssinarConsultarNFSeRps(RetornoConsultarNFSeRps retornoWebservice)
 {
     retornoWebservice.XmlEnvio = XmlSigning.AssinarXml(retornoWebservice.XmlEnvio, "p1:PedidoConsultaNFe", "", Certificado);
 }