Skip to content

Commit ab620b3

Browse files
author
Letícia Lopes
committed
Finalizado consulta lote
1 parent 3dbf741 commit ab620b3

3 files changed

Lines changed: 130 additions & 18 deletions

File tree

src/OpenAC.Net.NFSe.Demo/FormMain.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,7 @@ private void GerarRps()
529529
var municipio = cmbCidades.GetSelectedValue<OpenMunicipioNFSe>();
530530
if (municipio == null) return;
531531

532-
var numeroRps = "475";
532+
var numeroRps = "162";
533533
if (InputBox.Show("Nº RPS", "Informe o número do RPS.", ref numeroRps).Equals(DialogResult.Cancel)) return;
534534

535535
openNFSe.NotasServico.Clear();
@@ -587,7 +587,7 @@ private void GerarRps()
587587
nfSe.Servico.CodigoCnae = cnae;
588588

589589
var CodigoTributacaoMunicipio = municipio.Provedor.IsIn(NFSeProvider.SiapNet, NFSeProvider.ABase) ? "5211701" :
590-
municipio.Provedor.IsIn(NFSeProvider.GISS) ? "0710" :
590+
municipio.Provedor.IsIn(NFSeProvider.GISS) ? "8121400" :
591591
municipio.Provedor.IsIn(NFSeProvider.Sigep) ? "1" : "01.07.00 / 00010700";
592592

593593
nfSe.Servico.ItemListaServico = itemListaServico;
@@ -602,7 +602,7 @@ private void GerarRps()
602602
}
603603

604604
if (municipio.Provedor.IsIn(NFSeProvider.GISS))
605-
nfSe.Servico.CodigoPais = 1058;
605+
nfSe.Servico.CodigoPais = 0076;
606606

607607
nfSe.Servico.Valores.ValorServicos = 1;
608608
nfSe.Servico.Valores.ValorDeducoes = 0;
@@ -615,7 +615,7 @@ private void GerarRps()
615615
nfSe.Servico.Valores.ValorIss = municipio.Provedor == NFSeProvider.SiapNet ? 2 : 0.20m;
616616
nfSe.Servico.Valores.ValorOutrasRetencoes = 0;
617617
nfSe.Servico.Valores.BaseCalculo = 1;
618-
nfSe.Servico.Valores.Aliquota = /*municipio.Provedor == NFSeProvider.GISS ? 0.0200m :*/ 2;
618+
nfSe.Servico.Valores.Aliquota = municipio.Provedor == NFSeProvider.GISS ? 0.0200m : 2;
619619
nfSe.Servico.Valores.ValorLiquidoNfse = 1;
620620
nfSe.Servico.Valores.ValorIssRetido = 0;
621621
nfSe.Servico.Valores.DescontoCondicionado = 0;
@@ -648,12 +648,12 @@ private void GerarRps()
648648
nfSe.Tomador.Endereco.CodigoMunicipio = municipio.Codigo;
649649
nfSe.Tomador.Endereco.Municipio = municipio.Nome;
650650
nfSe.Tomador.Endereco.Uf = municipio.UF.ToString();
651-
nfSe.Tomador.Endereco.Cep = "14020010";
651+
nfSe.Tomador.Endereco.Cep = "14876155";
652652
nfSe.Tomador.Endereco.CodigoPais = 1058;
653653
nfSe.Tomador.Endereco.Pais = "BRASIL";
654654

655655
nfSe.Tomador.DadosContato.DDD = "16";
656-
nfSe.Tomador.DadosContato.Telefone = "30111234";
656+
nfSe.Tomador.DadosContato.Telefone = "1630111234";
657657
nfSe.Tomador.DadosContato.Email = "NOME@EMPRESA.COM.BR";
658658
}
659659

src/OpenAC.Net.NFSe/Providers/GISS/GISSServiceClient.cs

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,17 @@ public string Enviar(string cabec, string msg)
5151
public string ConsultarLoteRps(string cabec, string msg)
5252
{
5353
var message = new StringBuilder();
54-
message.Append("<nfse:ConsultarLoteRps>");
55-
message.Append("<ConsultarLoteRpsEnvio>");
54+
message.Append("<nfse:ConsultarLoteRpsRequest>");
55+
message.Append("<nfseCabecMsg>");
56+
message.AppendCData("<ns4:cabecalho versao=\"2.00\" xmlns:ns2=\"http://www.giss.com.br/tipos-v2_04.xsd\" xmlns:ns4=\"http://www.giss.com.br/cabecalho-v2_04.xsd\" xmlns:nss03=\"http://www.w3.org/2000/09/xmldsig#\"><ns4:versaoDados>2.00</ns4:versaoDados></ns4:cabecalho>");
57+
message.Append("</nfseCabecMsg>");
58+
message.Append("<nfseDadosMsg>");
5659
message.AppendCData(msg);
57-
message.Append("</ConsultarLoteRpsEnvio>");
58-
message.Append("</nfse:ConsultarLoteRps>");
60+
message.Append("</nfseDadosMsg>");
61+
62+
message.Append("</nfse:ConsultarLoteRpsRequest>");
5963

60-
return Execute("ConsultarLoteRps", message.ToString(), "ConsultarLoteRpsResposta");
64+
return Execute("http://nfse.abrasf.org.br/ConsultarLoteRps", message.ToString(), "ConsultarLoteRpsResposta");
6165
}
6266

6367
public string ConsultarSequencialRps(string cabec, string msg) => throw new NotImplementedException("Função não implementada/suportada neste Provedor !");
@@ -79,13 +83,17 @@ public string ConsultarNFSeRps(string cabec, string msg)
7983
public string CancelarNFSe(string cabec, string msg)
8084
{
8185
var message = new StringBuilder();
82-
message.Append("<nfse:cancelarNfse>");
83-
message.Append("<CancelarNfseEnvio>");
86+
message.Append("<nfse:CancelarNfseRequest>");
87+
message.Append("<nfseCabecMsg>");
88+
message.AppendCData("<ns4:cabecalho versao=\"2.00\" xmlns:ns2=\"http://www.giss.com.br/tipos-v2_04.xsd\" xmlns:ns4=\"http://www.giss.com.br/cabecalho-v2_04.xsd\" xmlns:nss03=\"http://www.w3.org/2000/09/xmldsig#\"><ns4:versaoDados>2.00</ns4:versaoDados></ns4:cabecalho>");
89+
message.Append("</nfseCabecMsg>");
90+
message.Append("<nfseDadosMsg>");
8491
message.AppendCData(msg);
85-
message.Append("</CancelarNfseEnvio>");
86-
message.Append("</nfse:cancelarNfse>");
92+
message.Append("</nfseDadosMsg>");
93+
94+
message.Append("</nfse:CancelarNfseRequest>");
8795

88-
return Execute("cancelarNfse", message.ToString(), "CancelarNfseResposta");
96+
return Execute("http://nfse.abrasf.org.br/CancelarNfse", message.ToString(), "CancelarNfseResposta");
8997
}
9098

9199
public string CancelarNFSeLote(string cabec, string msg) => throw new NotImplementedException("Função não implementada/suportada neste Provedor !");
@@ -104,7 +112,8 @@ protected override string TratarRetorno(XElement xElement, string[] responseTag)
104112
reader.MoveToContent();
105113
var xml = reader.ReadOuterXml().Replace("ns2:", string.Empty).Replace("ns3:", string.Empty);
106114

107-
XmlDocument xmlDoc = new XmlDocument();
115+
return xml;
116+
/*XmlDocument xmlDoc = new XmlDocument();
108117
xmlDoc.LoadXml(xml);
109118
110119
var mensagem = xmlDoc.GetElementsByTagName("Mensagem");
@@ -117,7 +126,7 @@ protected override string TratarRetorno(XElement xElement, string[] responseTag)
117126
if (correcao.Count > 0)
118127
correcaoText = " - Correção: " + correcao[0].InnerText;
119128
return mensagem[0].InnerText + correcaoText;
120-
}
129+
}*/
121130
}
122131

123132
#endregion Methods

src/OpenAC.Net.NFSe/Providers/GISS/ProviderGISS.cs

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,109 @@ protected override void AssinarEnviar(RetornoEnviar retornoWebservice)
174174
retornoWebservice.XmlEnvio = XmlSigning.AssinarXml(retornoWebservice.XmlEnvio, "ns4:EnviarLoteRpsEnvio", "ns4:LoteRps", Certificado);
175175
}
176176

177+
protected override void PrepararConsultarLoteRps(RetornoConsultarLoteRps retornoWebservice)
178+
{
179+
var loteBuilder = new StringBuilder();
180+
loteBuilder.Append($"<ConsultarLoteRpsEnvio {GetNamespace()}>");
181+
loteBuilder.Append("<Prestador>");
182+
loteBuilder.Append("<CpfCnpj>");
183+
loteBuilder.Append(Configuracoes.PrestadorPadrao.CpfCnpj.IsCNPJ()
184+
? $"<Cnpj>{Configuracoes.PrestadorPadrao.CpfCnpj.ZeroFill(14)}</Cnpj>"
185+
: $"<Cpf>{Configuracoes.PrestadorPadrao.CpfCnpj.ZeroFill(11)}</Cpf>");
186+
loteBuilder.Append("</CpfCnpj>");
187+
if (!Configuracoes.PrestadorPadrao.InscricaoMunicipal.IsEmpty()) loteBuilder.Append($"<InscricaoMunicipal>{Configuracoes.PrestadorPadrao.InscricaoMunicipal}</InscricaoMunicipal>");
188+
loteBuilder.Append("</Prestador>");
189+
loteBuilder.Append($"<Protocolo>{retornoWebservice.Protocolo}</Protocolo>");
190+
loteBuilder.Append("</ConsultarLoteRpsEnvio>");
191+
192+
var xmlstring = loteBuilder.ToString().Replace("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>", "");
193+
XDocument doc = XDocument.Parse(xmlstring);
194+
XNamespace nsRoot = "http://www.giss.com.br/consultar-lote-rps-envio-v2_04.xsd";
195+
XNamespace nsChild = "http://www.giss.com.br/tipos-v2_04.xsd";
196+
197+
doc.Root.Name = nsRoot + doc.Root.Name.LocalName;
198+
199+
doc.Root.SetAttributeValue(XNamespace.Xmlns + "con", nsRoot);
200+
doc.Root.SetAttributeValue(XNamespace.Xmlns + "tip", nsChild);
201+
202+
foreach (var element in doc.Descendants().ToList())
203+
element.Name = nsChild + element.Name.LocalName;
204+
205+
var loteRps = doc.Descendants().First(x=>x.Name.LocalName == "Prestador");
206+
loteRps.Name = nsRoot + loteRps.Name.LocalName;
207+
var protocolo = doc.Descendants().First(x=>x.Name.LocalName == "Protocolo");
208+
protocolo.Name = nsRoot + protocolo.Name.LocalName;
209+
210+
doc.Root.Name = nsRoot + doc.Root.Name.LocalName;
211+
212+
var xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + doc;
213+
214+
retornoWebservice.XmlEnvio = xml;
215+
}
216+
217+
/// <inheritdoc />
218+
protected override void AssinarConsultarLoteRps(RetornoConsultarLoteRps retornoWebservice)
219+
{
220+
retornoWebservice.XmlEnvio = XmlSigning.AssinarXml(retornoWebservice.XmlEnvio, "con:ConsultarLoteRpsEnvio", "", Certificado);
221+
}
222+
223+
protected override void PrepararCancelarNFSe(RetornoCancelar retornoWebservice)
224+
{
225+
if (retornoWebservice.NumeroNFSe.IsEmpty() || retornoWebservice.CodigoCancelamento.IsEmpty())
226+
{
227+
retornoWebservice.Erros.Add(new Evento { Codigo = "AC0001", Descricao = "Número da NFSe/Codigo de cancelamento não informado para cancelamento." });
228+
return;
229+
}
230+
231+
var loteBuilder = new StringBuilder();
232+
233+
loteBuilder.Append($"<CancelarNfseEnvio {GetNamespace()}>");
234+
loteBuilder.Append("<Pedido>");
235+
loteBuilder.Append($"<InfPedidoCancelamento Id=\"N{retornoWebservice.NumeroNFSe}\">");
236+
loteBuilder.Append("<IdentificacaoNfse>");
237+
loteBuilder.Append($"<Numero>{retornoWebservice.NumeroNFSe}</Numero>");
238+
loteBuilder.Append("<CpfCnpj>");
239+
loteBuilder.Append(Configuracoes.PrestadorPadrao.CpfCnpj.IsCNPJ()
240+
? $"<Cnpj>{Configuracoes.PrestadorPadrao.CpfCnpj.ZeroFill(14)}</Cnpj>"
241+
: $"<Cpf>{Configuracoes.PrestadorPadrao.CpfCnpj.ZeroFill(11)}</Cpf>");
242+
loteBuilder.Append("</CpfCnpj>");
243+
if (!Configuracoes.PrestadorPadrao.InscricaoMunicipal.IsEmpty()) loteBuilder.Append($"<InscricaoMunicipal>{Configuracoes.PrestadorPadrao.InscricaoMunicipal}</InscricaoMunicipal>");
244+
loteBuilder.Append($"<CodigoMunicipio>{Configuracoes.PrestadorPadrao.Endereco.CodigoMunicipio}</CodigoMunicipio>");
245+
loteBuilder.Append("</IdentificacaoNfse>");
246+
loteBuilder.Append($"<CodigoCancelamento>{retornoWebservice.CodigoCancelamento}</CodigoCancelamento>");
247+
loteBuilder.Append("</InfPedidoCancelamento>");
248+
loteBuilder.Append("</Pedido>");
249+
loteBuilder.Append("</CancelarNfseEnvio>");
250+
var xmlstring = loteBuilder.ToString().Replace("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>", "");
251+
XDocument doc = XDocument.Parse(xmlstring);
252+
253+
XNamespace nsRoot = "http://www.giss.com.br/cancelar-nfse-envio-v2_04.xsd";
254+
XNamespace nsChild = "http://www.giss.com.br/tipos-v2_04.xsd";
255+
256+
doc.Root.Name = nsRoot + doc.Root.Name.LocalName;
257+
258+
doc.Root.SetAttributeValue(XNamespace.Xmlns + "can", nsRoot);
259+
doc.Root.SetAttributeValue(XNamespace.Xmlns + "tip", nsChild);
260+
261+
foreach (var element in doc.Descendants().ToList())
262+
element.Name = nsChild + element.Name.LocalName;
263+
264+
var pedido = doc.Descendants().First(x=>x.Name.LocalName == "Pedido");
265+
pedido.Name = nsRoot + pedido.Name.LocalName;
266+
267+
doc.Root.Name = nsRoot + doc.Root.Name.LocalName;
268+
269+
var xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + doc;
270+
271+
retornoWebservice.XmlEnvio = xml;
272+
}
273+
274+
/// <inheritdoc />
275+
protected override void AssinarCancelarNFSe(RetornoCancelar retornoWebservice)
276+
{
277+
retornoWebservice.XmlEnvio = XmlSigning.AssinarXml(retornoWebservice.XmlEnvio, "can:Pedido", "tip:InfPedidoCancelamento", Certificado);
278+
}
279+
177280
/// <inheritdoc />
178281
protected override void TratarRetornoEnviarSincrono(RetornoEnviar retornoWebservice,
179282
NotaServicoCollection notas)

0 commit comments

Comments
 (0)