コード例 #1
0
        protected override void PrepararConsultarLoteRps(RetornoConsultarLoteRps retornoWebservice)
        {
            // Monta mensagem de envio
            var loteBuilder = new StringBuilder();

            loteBuilder.Append($"<Protocolo>{retornoWebservice.Protocolo}</Protocolo>");

            retornoWebservice.XmlEnvio = loteBuilder.ToString();
        }
コード例 #2
0
        protected override void TratarRetornoConsultarLoteRps(RetornoConsultarLoteRps retornoWebservice, NotaServicoCollection notas)
        {
            // Analisa mensagem de retorno// Analisa mensagem de retorno
            var xmlRet = XDocument.Parse(retornoWebservice.XmlRetorno);

            if (!(xmlRet.Root.ElementAnyNs("Sdt_consultanotasprotocoloout").ElementAnyNs("Retorno")?.GetValue <bool>() ?? false))
            {
                MensagemErro(retornoWebservice, xmlRet.Root, "Sdt_consultanotasprotocoloout");
                retornoWebservice.Sucesso = false;

                return;
            }

            var retornoLote = xmlRet.ElementAnyNs("Sdt_consultanotasprotocoloout");
            var listaNfse   = retornoLote?.ElementAnyNs("XML_Notas");

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

            retornoWebservice.Sucesso = true;

            var notasServico = new List <NotaServico>();

            foreach (var compNfse in listaNfse.ElementAnyNs("Reg20")?.ElementsAnyNs("Reg20Item"))
            {
                var nfse       = compNfse;
                var numeroNFSe = nfse.ElementAnyNs("NumNf")?.GetValue <string>() ?? string.Empty;
                var chaveNFSe  = nfse.ElementAnyNs("CodVernf")?.GetValue <string>() ?? string.Empty;
                var dataNFSe   = nfse.ElementAnyNs("DtEmiNf")?.GetValue <DateTime>() ?? DateTime.Now;
                var numeroRps  = nfse?.ElementAnyNs("NumRps")?.GetValue <string>() ?? string.Empty;

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

                var nota = notas.FirstOrDefault(x => x.IdentificacaoRps.Numero == numeroRps);
                if (nota == null)
                {
                    nota = LoadXml(compNfse.ToString());
                }
                else
                {
                    nota.IdentificacaoNFSe.Numero = numeroNFSe;
                    nota.IdentificacaoNFSe.Chave  = chaveNFSe;
                }

                notas.Add(nota);
                notasServico.Add(nota);
            }

            retornoWebservice.Notas = notasServico.ToArray();
        }
コード例 #3
0
 protected override void PrepararConsultarLoteRps(RetornoConsultarLoteRps retornoWebservice)
 {
     var loteBuilder = new StringBuilder();
     loteBuilder.Append($"<ConsultarLoteRpsEnvio {GetNamespace()}>");
     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($"<Protocolo xmlns=\"\">{retornoWebservice.Protocolo}</Protocolo>");
     loteBuilder.Append("</ConsultarLoteRpsEnvio>");
     retornoWebservice.XmlEnvio = loteBuilder.ToString();
 }
コード例 #4
0
 protected override void PrepararConsultarLoteRps(RetornoConsultarLoteRps retornoWebservice)
 {
     retornoWebservice.XmlEnvio = new StringBuilder()
                                  .Append("<es:esConsultarLoteRpsEnvio 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 esConsultarLoteRpsEnvio_v01.xsd\">")
                                  .Append("<prestador>")
                                  .Append($"<cnpj>{ Configuracoes.PrestadorPadrao.CpfCnpj }</cnpj>")
                                  .Append($"<idEntidade>{ Municipio.IdEntidade }</idEntidade>")
                                  .Append("</prestador>")
                                  .Append($"<nrLoteRps>{ retornoWebservice.Lote }</nrLoteRps>")
                                  .Append("</es:esConsultarLoteRpsEnvio>")
                                  .ToString();
 }
コード例 #5
0
        protected override void PrepararConsultarLoteRps(RetornoConsultarLoteRps retornoWebservice)
        {
            var loteBuilder = new StringBuilder();

            loteBuilder.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
            loteBuilder.Append("<PedidoConsultaLote xmlns=\"http://www.prefeitura.sp.gov.br/nfe\" xmlns:xsi = \"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd = \"http://www.w3.org/2001/XMLSchema\">");
            loteBuilder.Append("<Cabecalho xmlns=\"\" Versao=\"1\">");
            loteBuilder.Append($"<CPFCNPJRemetente><CNPJ>{Configuracoes.PrestadorPadrao.CpfCnpj.ZeroFill(14)}</CNPJ></CPFCNPJRemetente>");
            loteBuilder.Append($"<NumeroLote>{retornoWebservice.Lote}</NumeroLote>");
            loteBuilder.Append("</Cabecalho>");
            loteBuilder.Append("</PedidoConsultaLote>");
            retornoWebservice.XmlEnvio = loteBuilder.ToString();
        }
コード例 #6
0
        protected override void TratarRetornoConsultarLoteRps(RetornoConsultarLoteRps retornoWebservice, NotaServicoCollection notas)
        {
            var xmlRet = XDocument.Parse(AjustarRetorno(retornoWebservice.XmlRetorno));

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

            var rootElement = xmlRet.ElementAnyNs("WS_ConsultaLoteRps.ExecuteResponse").ElementAnyNs("Consultarloterpsresposta");
            var listaNfse   = rootElement?.ElementAnyNs("ListaNfse");

            if (listaNfse == null)
            {
                retornoWebservice.Erros.Add(new Evento {
                    Codigo = "0", Descricao = "Nenhuma NFSe retornada pelo webservice."
                });
                return;
            }

            retornoWebservice.Sucesso = true;

            var notasServicos = new List <NotaServico>();

            foreach (var compNfse in listaNfse.ElementsAnyNs("CompNfse"))
            {
                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("IdentificacaoRps")?.ElementAnyNs("Numero")?.GetValue <string>() ?? string.Empty;
                GravarNFSeEmDisco(compNfse.AsString(true), $"NFSe-{numeroNFSe}-{chaveNFSe}-.xml", dataNFSe);

                var nota = notas.FirstOrDefault(x => x.IdentificacaoRps.Numero == numeroRps);
                if (nota == null)
                {
                    notas.Load(compNfse.ToString());
                }
                else
                {
                    nota.IdentificacaoNFSe.Numero = numeroNFSe;
                    nota.IdentificacaoNFSe.Chave  = chaveNFSe;
                }

                notasServicos.Add(nota);
            }

            retornoWebservice.Notas = notasServicos.ToArray();
        }
コード例 #7
0
        protected override void PrepararConsultarLoteRps(RetornoConsultarLoteRps retornoWebservice)
        {
            var loteBuilder = new StringBuilder();

            loteBuilder.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
            loteBuilder.Append("<ConsultarLoteRpsEnvio xmlns=\"http://www.issnetonline.com.br/webserviceabrasf/vsd/servico_consultar_lote_rps_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>");
            loteBuilder.Append($"<Protocolo>{retornoWebservice.Protocolo}</Protocolo>");
            loteBuilder.Append("</ConsultarLoteRpsEnvio>");

            retornoWebservice.XmlEnvio = loteBuilder.ToString();
        }
コード例 #8
0
        protected override void PrepararConsultarLoteRps(RetornoConsultarLoteRps retornoWebservice)
        {
            var loteBuilder = new StringBuilder();

            loteBuilder.Append("<WS_ConsultaLoteRps.Execute xmlns:fiss=\"FISS-LEX\">");
            loteBuilder.Append("<fiss:Consultarloterpsenvio>");
            loteBuilder.Append("<Prestador>");
            loteBuilder.Append($"<Cnpj>{Configuracoes.PrestadorPadrao.CpfCnpj.ZeroFill(14)}</Cnpj>");
            loteBuilder.Append($"<InscricaoMunicipal>{Configuracoes.PrestadorPadrao.InscricaoMunicipal}</InscricaoMunicipal>");
            loteBuilder.Append("</Prestador>");
            loteBuilder.Append($"<Protocolo>{retornoWebservice.Protocolo}</Protocolo>");
            loteBuilder.Append("</fiss:Consultarloterpsenvio>");
            loteBuilder.Append("</WS_ConsultaLoteRps.Execute>");
            retornoWebservice.XmlEnvio = loteBuilder.ToString();
        }
コード例 #9
0
        protected override void PrepararConsultarLoteRps(RetornoConsultarLoteRps retornoWebservice)
        {
            var loteBuilder = new StringBuilder();

            loteBuilder.Append($"<nfse:ConsultarLoteRpsEnvio xmlns:nfse=\"http://nfse.abrasf.org.br\">");
            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($"<Protocolo>{retornoWebservice.Protocolo}</Protocolo>");
            loteBuilder.Append("</nfse:ConsultarLoteRpsEnvio>");
            retornoWebservice.XmlEnvio = loteBuilder.ToString();
        }
コード例 #10
0
        protected override void TratarRetornoConsultarLoteRps(RetornoConsultarLoteRps retornoWebservice, NotaServicoCollection notas)
        {
            // Analisa mensagem de retorno
            var xmlRet = XDocument.Parse(retornoWebservice.XmlRetorno);

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

            var retornoLote = xmlRet.ElementAnyNs("ConsultarLoteRpsResult");
            var listaNfse   = retornoLote?.ElementAnyNs("ListaNfse");

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

            retornoWebservice.Sucesso = true;

            foreach (var compNfse in listaNfse.ElementsAnyNs("CompNfse"))
            {
                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 dataEmissao = nfse.ElementAnyNs("DataEmissao")?.GetValue <DateTime>() ?? DateTime.Now;
                var numeroRps   = nfse?.ElementAnyNs("IdentificacaoRps")?.ElementAnyNs("Numero")?.GetValue <string>() ?? string.Empty;
                GravarNFSeEmDisco(compNfse.AsString(true), $"NFSe-{numeroNFSe}-{chaveNFSe}-.xml", dataEmissao);

                var nota = notas.FirstOrDefault(x => x.IdentificacaoRps.Numero == numeroRps);
                if (nota == null)
                {
                    notas.Load(compNfse.ToString());
                }
                else
                {
                    nota.IdentificacaoNFSe.Numero      = numeroNFSe;
                    nota.IdentificacaoNFSe.Chave       = chaveNFSe;
                    nota.IdentificacaoNFSe.DataEmissao = dataEmissao;
                }
            }
        }
コード例 #11
0
        protected override void TratarRetornoConsultarLoteRps(RetornoConsultarLoteRps 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;

            var notasServico = new List <NotaServico>();

            foreach (var nfse in xmlRet.Root.ElementsAnyNs("NFe"))
            {
                var chaveNFSe         = nfse.ElementAnyNs("ChaveNFe");
                var numeroNFSe        = chaveNFSe?.ElementAnyNs("NumeroNFe")?.GetValue <string>() ?? string.Empty;
                var codigoVerificacao = chaveNFSe?.ElementAnyNs("CodigoVerificacao")?.GetValue <string>() ?? string.Empty;

                var dataNFSe = nfse.ElementAnyNs("DataEmissaoNFe")?.GetValue <DateTime>() ?? DateTime.Now;

                var chaveRPS = nfse.ElementAnyNs("ChaveRPS");

                var numeroRps = chaveRPS?.ElementAnyNs("NumeroRPS")?.GetValue <string>() ?? string.Empty;

                GravarNFSeEmDisco(nfse.ToString(), $"NFSe-{numeroNFSe}-{codigoVerificacao}-.xml", dataNFSe);

                var nota = notas.FirstOrDefault(x => x.IdentificacaoRps.Numero == numeroRps);
                if (nota == null)
                {
                    nota = LoadXml(nfse.ToString());
                    notas.Add(nota);
                }
                else
                {
                    nota.IdentificacaoNFSe.Numero = numeroNFSe;
                    nota.IdentificacaoNFSe.Chave  = codigoVerificacao;
                }

                notasServico.Add(nota);
            }

            retornoWebservice.Notas = notasServico.ToArray();
        }
コード例 #12
0
        protected override void TratarRetornoConsultarLoteRps(RetornoConsultarLoteRps retornoWebservice, NotaServicoCollection notas)
        {
            // Analisa mensagem de retorno
            var xmlRet      = XDocument.Parse(retornoWebservice.XmlRetorno);
            var rootElement = xmlRet.ElementAnyNs("esConsultarLoteRpsResposta");

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

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

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

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

            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;

                notas.Add(nota);
            }

            retornoWebservice.Sucesso = true;
        }
コード例 #13
0
 protected override void AssinarConsultarLoteRps(RetornoConsultarLoteRps retornoWebservice)
 {
 }
コード例 #14
0
 protected override void AssinarConsultarLoteRps(RetornoConsultarLoteRps retornoWebservice)
 {
     retornoWebservice.XmlEnvio = XmlSigning.AssinarXml(retornoWebservice.XmlEnvio, "es:esConsultarLoteRpsEnvio", "", Certificado);
 }