Пример #1
0
        protected override void TratarRetornoConsultarNFSe(RetornoConsultarNFSe retornoWebservice, NotaServicoCollection notas)
        {
            // Analisa mensagem de retorno
            var xmlRet = XDocument.Parse(retornoWebservice.XmlRetorno);
            MensagemErro(retornoWebservice, xmlRet.Root, "ConsultarNfseResposta");

            if (retornoWebservice.Erros.Any()) return;

            var retornoLote = xmlRet.Root.ElementAnyNs("ConsultarNfseResposta");
            var listaNfse = retornoLote?.ElementAnyNs("ListaNfse");
            if (listaNfse == null)
            {
                retornoWebservice.Erros.Add(new Evento { Codigo = "0", Descricao = "Lista de NFSe não encontrada! (ListaNfse)" });
                return;
            }

            var notasServico = new List<NotaServico>();

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

            retornoWebservice.Notas = notasServico.ToArray();
            retornoWebservice.Sucesso = true;
        }
Пример #2
0
        protected override void PrepararConsultarNFSe(RetornoConsultarNFSe retornoWebservice)
        {
            if (retornoWebservice.NumeroNFse < 1)
            {
                retornoWebservice.Erros.Add(new Evento {
                    Codigo = "0", Descricao = "Número do NFSe não informado para a consulta."
                });
                return;
            }

            if (retornoWebservice.Inicio == null)
            {
                retornoWebservice.Erros.Add(new Evento {
                    Codigo = "0", Descricao = "Você deve informar a competência no campo Início."
                });
                return;
            }

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

            loteBuilder.Append($"<Competencia_Mes>{retornoWebservice.Inicio?.Month.ZeroFill(2)}</Competencia_Mes>");
            loteBuilder.Append($"<Competencia_Ano>{retornoWebservice.Inicio?.Year}</Competencia_Ano>");
            loteBuilder.Append($"<RPS_Serie></RPS_Serie>");
            loteBuilder.Append($"<RPS_Numero></RPS_Numero>");
            loteBuilder.Append($"<Nota_Serie>{retornoWebservice.SerieNFse}</Nota_Serie>");
            loteBuilder.Append($"<Nota_Numero>{retornoWebservice.NumeroNFse}</Nota_Numero>");

            retornoWebservice.XmlEnvio = loteBuilder.ToString();
        }
Пример #3
0
        protected override void PrepararConsultarNFSe(RetornoConsultarNFSe retornoWebservice)
        {
            var loteBuilder = new StringBuilder();

            loteBuilder.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
            loteBuilder.Append("<ConsultarNfseEnvio xmlns=\"http://www.issnetonline.com.br/webserviceabrasf/vsd/servico_consultar_nfse_envio.xsd\">" +
                               "xmlns:tc=\"http://www.issnetonline.com.br/webserviceabrasf/vsd/tipos_complexos.xsd\">");
            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>");

            if (retornoWebservice.NumeroNFse > 0)
            {
                loteBuilder.Append($"<NumeroNfse>{retornoWebservice.NumeroNFse}</tc:NumeroNfse>");
            }

            if (retornoWebservice.Inicio.HasValue && retornoWebservice.Fim.HasValue)
            {
                loteBuilder.Append("<PeriodoEmissao>");
                loteBuilder.Append($"<DataInicial>{retornoWebservice.Inicio:yyyy-MM-dd}</DataInicial>");
                loteBuilder.Append($"<DataFinal>{retornoWebservice.Fim:yyyy-MM-dd}</DataFinal>");
                loteBuilder.Append("</PeriodoEmissao>");
            }

            if (!retornoWebservice.CPFCNPJTomador.IsEmpty())
            {
                loteBuilder.Append("<Tomador>");
                loteBuilder.Append("<tc:CpfCnpj>");
                loteBuilder.Append(retornoWebservice.CPFCNPJTomador.IsCNPJ()
                    ? $"<tc:Cnpj>{retornoWebservice.CPFCNPJTomador.ZeroFill(14)}</tc:Cnpj>"
                    : $"<tc:Cpf>{retornoWebservice.CPFCNPJTomador.ZeroFill(11)}</tc:Cpf>");
                loteBuilder.Append("</tc:CpfCnpj>");
                if (!retornoWebservice.IMTomador.IsEmpty())
                {
                    loteBuilder.Append($"<tc:InscricaoMunicipal>{retornoWebservice.CPFCNPJTomador}</tc:InscricaoMunicipal>");
                }
                loteBuilder.Append("</Tomador>");
            }

            if (!retornoWebservice.NomeIntermediario.IsEmpty() && !retornoWebservice.CPFCNPJIntermediario.IsEmpty())
            {
                loteBuilder.Append("<IntermediarioServico>");
                loteBuilder.Append($"<tc:RazaoSocial>{retornoWebservice.NomeIntermediario}</tc:RazaoSocial>");
                loteBuilder.Append("<tc:CpfCnpj>");
                loteBuilder.Append(retornoWebservice.CPFCNPJIntermediario.IsCNPJ()
                    ? $"<tc:Cnpj>{retornoWebservice.CPFCNPJIntermediario.ZeroFill(14)}</tc:Cnpj>"
                    : $"<tc:Cpf>{retornoWebservice.CPFCNPJIntermediario.ZeroFill(11)}</tc:Cpf>");
                loteBuilder.Append("</tc:CpfCnpj>");
                if (!retornoWebservice.IMIntermediario.IsEmpty())
                {
                    loteBuilder.Append($"<tc:InscricaoMunicipal>{retornoWebservice.IMIntermediario}</tc:InscricaoMunicipal>");
                }
                loteBuilder.Append("</IntermediarioServico>");
            }

            loteBuilder.Append("</ConsultarNfseEnvio>");

            retornoWebservice.XmlEnvio = loteBuilder.ToString();
        }
Пример #4
0
        protected override void PrepararConsultarNFSe(RetornoConsultarNFSe retornoWebservice)
        {
            var xml = new StringBuilder();

            xml.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
            xml.Append("<es:esConsultarNfseEnvio 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\">");
            xml.Append("<prestador>");
            xml.Append($"<cnpj>{Configuracoes.PrestadorPadrao.CpfCnpj}</cnpj>");
            xml.Append($"<idEntidade>{Municipio.IdEntidade}</idEntidade>");
            xml.Append("</prestador>");

            if (retornoWebservice.NumeroNFse > 0)
            {
                xml.Append($"<nrNfse>{ retornoWebservice.NumeroNFse }</nrNfse>");
            }
            else
            {
                if (!retornoWebservice.Inicio.HasValue || !retornoWebservice.Fim.HasValue)
                {
                    retornoWebservice.Erros.Add(new Evento {
                        Codigo = "0", Descricao = "Data de início ou fim não informada para a consulta."
                    });
                    return;
                }

                xml.Append("<periodoEmissao>");
                xml.Append($"<dtInicial>{retornoWebservice.Inicio:yyyy'-'MM'-'dd'T'HH':'mm':'ss}</dtInicial>");
                xml.Append($"<dtFinal>{retornoWebservice.Fim:yyyy'-'MM'-'dd'T'HH':'mm':'ss}</dtFinal>");
                xml.Append("</periodoEmissao>");
            }

            xml.Append("</es:esConsultarNfseEnvio>");

            retornoWebservice.XmlEnvio = xml.ToString();;
        }
Пример #5
0
        protected override void TratarRetornoConsultarNFSe(RetornoConsultarNFSe retornoWebservice, NotaServicoCollection notas)
        {
            // Analisa mensagem de retorno
            var xmlRet = XDocument.Parse(AjustarRetorno(retornoWebservice.XmlRetorno));

            MensagemErro(retornoWebservice, xmlRet, "WS_ConsultaNfse.ExecuteResponse", "Listamensagemretorno", "tcMensagemRetorno");

            if (retornoWebservice.Erros.Count > 0)
            {
                return;
            }

            var retornoLote = xmlRet.ElementAnyNs("WS_ConsultaNfse.ExecuteResponse").ElementAnyNs("Consultarnfseresposta");
            var listaNfse   = retornoLote?.ElementAnyNs("ListaNfse");

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

            var notasServico = new List <NotaServico>();

            foreach (var compNfse in listaNfse.ElementsAnyNs("CompNfse"))
            {
                var nota = LoadXml(compNfse.AsString());
                notas.Add(nota);
                notasServico.Add(nota);
            }

            retornoWebservice.Notas   = notasServico.ToArray();
            retornoWebservice.Sucesso = true;
        }
Пример #6
0
        protected override void PrepararConsultarNFSe(RetornoConsultarNFSe retornoWebservice)
        {
            var loteBuilder = new StringBuilder();

            loteBuilder.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
            loteBuilder.Append("<WS_ConsultaNfse.Execute xmlns:fiss=\"FISS-LEX\">");
            loteBuilder.Append("<fiss:Consultarnfseenvio>");
            loteBuilder.Append("<Prestador>");
            loteBuilder.Append($"<Cnpj>{Configuracoes.PrestadorPadrao.CpfCnpj.ZeroFill(14)}</Cnpj>");
            loteBuilder.Append($"<InscricaoMunicipal>{Configuracoes.PrestadorPadrao.InscricaoMunicipal}</InscricaoMunicipal>");
            loteBuilder.Append("</Prestador>");

            if (retornoWebservice.NumeroNFse > 0)
            {
                loteBuilder.Append($"<NumeroNfse>{retornoWebservice.NumeroNFse}</NumeroNfse>");
            }

            if (retornoWebservice.Inicio.HasValue && retornoWebservice.Fim.HasValue)
            {
                loteBuilder.Append("<PeriodoEmissao>");
                loteBuilder.Append($"<DataInicial>{retornoWebservice.Inicio:yyyy-MM-dd}</DataInicial>");
                loteBuilder.Append($"<DataFinal>{retornoWebservice.Fim:yyyy-MM-dd}</DataFinal>");
                loteBuilder.Append("</PeriodoEmissao>");
            }

            if (!retornoWebservice.CPFCNPJTomador.IsEmpty())
            {
                loteBuilder.Append("<Tomador>");
                loteBuilder.Append("<CpfCnpj>");
                loteBuilder.Append(retornoWebservice.CPFCNPJTomador.IsCNPJ()
                    ? $"<Cnpj>{retornoWebservice.CPFCNPJTomador.ZeroFill(14)}</Cnpj>"
                    : $"<Cpf>{retornoWebservice.CPFCNPJTomador.ZeroFill(11)}</Cpf>");
                loteBuilder.Append("</CpfCnpj>");
                if (!retornoWebservice.IMTomador.IsEmpty())
                {
                    loteBuilder.Append($"<InscricaoMunicipal>{retornoWebservice.IMTomador}</InscricaoMunicipal>");
                }
                loteBuilder.Append("</Tomador>");
            }

            if (!retornoWebservice.NomeIntermediario.IsEmpty() && !retornoWebservice.CPFCNPJIntermediario.IsEmpty())
            {
                loteBuilder.Append("<IntermediarioServico>");
                loteBuilder.Append($"<RazaoSocial>{retornoWebservice.NomeIntermediario}</RazaoSocial>");
                loteBuilder.Append(retornoWebservice.CPFCNPJIntermediario.IsCNPJ()
                    ? $"<Cnpj>{retornoWebservice.CPFCNPJIntermediario.ZeroFill(14)}</Cnpj>"
                    : $"<Cpf>{retornoWebservice.CPFCNPJIntermediario.ZeroFill(11)}</Cpf>");
                loteBuilder.Append("</CpfCnpj>");
                if (!retornoWebservice.IMIntermediario.IsEmpty())
                {
                    loteBuilder.Append($"<InscricaoMunicipal>{retornoWebservice.IMIntermediario}</InscricaoMunicipal>");
                }
                loteBuilder.Append("</IntermediarioServico>");
            }

            loteBuilder.Append("</fiss:Consultarnfseenvio>");
            loteBuilder.Append("</WS_ConsultaNfse.Execute>");
            retornoWebservice.XmlEnvio = loteBuilder.ToString();
        }
Пример #7
0
        protected override void PrepararConsultarNFSe(RetornoConsultarNFSe retornoWebservice)
        {
            if (retornoWebservice.NumeroNFse < 1)
            {
                retornoWebservice.Erros.Add(new Evento {
                    Codigo = "0", Descricao = "Número do RPS/NFSe não informado para a consulta."
                });
                return;
            }

            retornoWebservice.XmlEnvio = ConsultarRPSNFSe(0, "", retornoWebservice.NumeroNFse);
        }
Пример #8
0
        protected override void TratarRetornoConsultarNFSe(RetornoConsultarNFSe retornoWebservice, NotaServicoCollection notas)
        {
            // Analisa mensagem de retorno
            var xmlRet = XDocument.Parse(retornoWebservice.XmlRetorno);

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

            var elementRoot = xmlRet.ElementAnyNs("esConsultarNfseResposta");
            var listaNfse   = elementRoot.ElementAnyNs("listaNfse");

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

            var notasServico = new List <NotaServico>();

            foreach (var nfse in listaNfse.ElementsAnyNs("nfse"))
            {
                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);
                notasServico.Add(nota);
            }

            retornoWebservice.Notas   = notasServico.ToArray();
            retornoWebservice.Sucesso = true;
        }
Пример #9
0
        protected override void TratarRetornoConsultarNFSe(RetornoConsultarNFSe 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.Notas   = notasServico.ToArray();
            retornoWebservice.Sucesso = true;
        }
Пример #10
0
        protected override void TratarRetornoConsultarNFSe(RetornoConsultarNFSe 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.Notas = notasServico.ToArray();
            notasServico.AddRange(notasServico);
        }
Пример #11
0
 protected override void AssinarConsultarNFSe(RetornoConsultarNFSe retornoWebservice)
 {
 }
Пример #12
0
 protected override void AssinarConsultarNFSe(RetornoConsultarNFSe retornoWebservice)
 {
     //Não precisa assinar.
 }
Пример #13
0
 protected override void AssinarConsultarNFSe(RetornoConsultarNFSe retornoWebservice)
 {
     retornoWebservice.XmlEnvio = XmlSigning.AssinarXml(retornoWebservice.XmlEnvio, "p1:PedidoConsultaNFe", "", Certificado);
 }