protected override void PrepararConsultarLoteRps(RetornoConsultarLoteRps retornoWebservice) { // Monta mensagem de envio var loteBuilder = new StringBuilder(); loteBuilder.Append($"<Protocolo>{retornoWebservice.Protocolo}</Protocolo>"); retornoWebservice.XmlEnvio = loteBuilder.ToString(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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; } } }
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(); }
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; }
protected override void AssinarConsultarLoteRps(RetornoConsultarLoteRps retornoWebservice) { }
protected override void AssinarConsultarLoteRps(RetornoConsultarLoteRps retornoWebservice) { retornoWebservice.XmlEnvio = XmlSigning.AssinarXml(retornoWebservice.XmlEnvio, "es:esConsultarLoteRpsEnvio", "", Certificado); }