FONTE NFE VB.NET
abs a todos...
Abração
cancelar e imprimir o Danfe
mais ainda não consigo atualizar o XML com o retorno do Sefaz
qualquer poderia me dar um helpe neste sendito
pois o XML que estou enviando os clientes disem que o xml não e um xml de distribuição
Olá PCROCKFELLER ...
A Inutilização esta OK !
Meu agradecimento ao BARROS pela presteza e qualidade do algoritmo.
PCROCKFELLER, conforme combinado quem terminasse primeiro postaria.
Dei uma [Ô]ajustada[Ô] para adequar aos testes.
Ficou assim:
Dim sMsgStatus As String = String.Empty
[ô] ------------------------------------------- Captura o Certificado ------------------------------------------------------
Dim CERT As X509Certificate2
CERT = SelecionarCertificado(mdlCertificado.gsNumSerie)
[ô] ------------------------------------------- Parâmetros do Web Service ------------------------------------------------------
Dim cab As New Inutilizacao2.nfeCabecMsg
Dim wsMsg As Inutilizacao2.NfeInutilizacao2
cab.cUF = plUrlAcesso.CodigoUF
cab.versaoDados = [Ô]2.00[Ô]
[ô]v wsMsg.Url = plUrlAcesso.UrlNfeInutilizacao [ô] [Ô]https://nfe.fazenda.sp.gov.br/nfeweb/services/nfeinutilizacao2.asmx[Ô]
wsMsg = New Inutilizacao2.NfeInutilizacao2(plUrlAcesso.UrlNfeInutilizacao)
wsMsg.nfeCabecMsgValue = cab
wsMsg.Timeout = 100000
wsMsg.ClientCertificates.Add(CERT)
wsMsg.SoapVersion = Web.Services.Protocols.SoapProtocolVersion.Soap12
[ô] ------------------------------------------- Cria o XML de Inutilizacao ------------------------------------------------------
Dim strID As String = String.Empty
strID = (plUrlAcesso.CodigoUF & ano & CNPJ & [Ô]55001[Ô] & ([Ô]000000[Ô] & nNFIni) & ([Ô]000000[Ô] & nNFFin))
Dim strXML As String = String.Empty
strXML += [Ô]<inutNFe xmlns=[ô]http://www.portalfiscal.inf.br/nfe[ô] versao=[ô]2.00[ô]>[Ô]
strXML += [Ô]<infInut Id =[ô]ID[Ô] & strID & [Ô][ô]>[Ô]
strXML += [Ô]<tpAmb>[Ô] & [Ô]2[Ô] & [Ô]</tpAmb>[Ô]
strXML += [Ô]<xServ>INUTILIZAR</xServ>[Ô]
strXML += [Ô]<cUF>[Ô] & plUrlAcesso.CodigoUF & [Ô]</cUF>[Ô]
strXML += [Ô]<ano>[Ô] & ano & [Ô]</ano>[Ô]
strXML += [Ô]<CNPJ>[Ô] & CNPJ & [Ô]</CNPJ>[Ô]
strXML += [Ô]<mod>55</mod>[Ô]
strXML += [Ô]<serie>1</serie>[Ô]
strXML += [Ô]<nNFIni>[Ô] & nNFIni & [Ô]</nNFIni>[Ô]
strXML += [Ô]<nNFFin>[Ô] & nNFFin & [Ô]</nNFFin>[Ô]
strXML += [Ô]<xJust>[Ô] & xJust & [Ô]</xJust>[Ô]
strXML += [Ô]</infInut>[Ô]
strXML += [Ô]</inutNFe>[Ô]
Dim xmldoc = New XmlDocument()
xmldoc.LoadXml(strXML)
[ô] ------------------------------------------- Assina o XML ------------------------------------------------------
xmldoc = Assinar(xmldoc, [Ô]infInut[Ô], CERT)
[ô] ------------------------------------------- Validando o XML Assinado ------------------------------------------------------
Dim strResultadoValidacao As String = ValidarXML(xmldoc, (My.Application.Info.DirectoryPath & [Ô]\inutNFe_v2.00.xsd[Ô]))
If strResultadoValidacao = String.Empty Then sMsgStatus = [Ô]Arquivo Validado com Sucesso[Ô] Else sMsgStatus = [Ô]Falha na validação do XML![Ô]
[ô] ------------------------------------------- Finalizando Geração de XML de Inutilização ------------------------------------------------------
xmldoc.LoadXml([Ô]<?xml version=[Ô][Ô]1.0[Ô][Ô] encoding=[Ô][Ô]utf-8[Ô][Ô] ?>[Ô] & xmldoc.InnerXml)
[ô] ------------------------------------------- Enviando Inutilização ------------------------------------------------------
Dim oNodeRetorno As XmlElement
Dim oNoPrincipal As XmlElement
oNodeRetorno = wsMsg.nfeInutilizacaoNF2(xmldoc)
Dim s_cStat As String = [Ô][Ô], s_xMotivo As String = [Ô][Ô], s_xNumeroProtocolo As String = [Ô][Ô], sVersao As String = [Ô][Ô]
[ô] ------------------------------------------- Identificando cStat e xMotivo ------------------------------------------------------
For Each oNoPrincipal In oNodeRetorno
If oNodeRetorno.Name = [Ô]retInutNFe[Ô] Then
For Each oNode As XmlNode In oNoPrincipal
If oNode.Name = [Ô]cStat[Ô] Then
s_cStat = oNode.InnerText
ElseIf oNode.Name = [Ô]xMotivo[Ô] Then
s_xMotivo = oNode.InnerText
ElseIf oNode.Name = [Ô]nProt[Ô] Then
s_xNumeroProtocolo = oNode.InnerText
End If
If s_cStat <> [Ô][Ô] And s_xMotivo <> [Ô][Ô] Then
Exit For
End If
Next
Exit For
End If
Next
If s_xMotivo = [Ô]Inutilizacao de numero homologado[Ô] Then
sMsgStatus += (vbCrLf & [Ô]Notas Fiscais - Inutilizadas[Ô])
End If
Return sMsgStatus
Abraço a todos ...
Eu tive esse problema tempos atraz, tudo começou quando em uma transmisão ocorreu um erro no envio por duplicidade da NF.
Tente de tudo e nada...
Fiz o seguinte.
A rotina cria 2 arquivos .XML, um com o nome do seu arquivo.xml e outro TryNfeLote.xml, eles são incrementados a cada envio.
Eu apaguei, e tudo voltou ao normal....
é claro que a rotina recriou os arquivos mas a numeração do lote começou do 1.
Abraço
Citação::
Olá BARROS ...
Olá PCROCKFELLER ...
A Inutilização esta OK !
Meu agradecimento ao BARROS pela presteza e qualidade do algoritmo.
PCROCKFELLER, conforme combinado quem terminasse primeiro postaria.
Dei uma [Ô]ajustada[Ô] para adequar aos testes.
Ficou assim:
Dim sMsgStatus As String = String.Empty
[ô] ------------------------------------------- Captura o Certificado ------------------------------------------------------
Dim CERT As X509Certificate2
CERT = SelecionarCertificado(mdlCertificado.gsNumSerie)
[ô] ------------------------------------------- Parâmetros do Web Service ------------------------------------------------------
Dim cab As New Inutilizacao2.nfeCabecMsg
Dim wsMsg As Inutilizacao2.NfeInutilizacao2
cab.cUF = plUrlAcesso.CodigoUF
cab.versaoDados = [Ô]2.00[Ô]
[ô]v wsMsg.Url = plUrlAcesso.UrlNfeInutilizacao [ô] [Ô]https://nfe.fazenda.sp.gov.br/nfeweb/services/nfeinutilizacao2.asmx[Ô]
wsMsg = New Inutilizacao2.NfeInutilizacao2(plUrlAcesso.UrlNfeInutilizacao)
wsMsg.nfeCabecMsgValue = cab
wsMsg.Timeout = 100000
wsMsg.ClientCertificates.Add(CERT)
wsMsg.SoapVersion = Web.Services.Protocols.SoapProtocolVersion.Soap12
[ô] ------------------------------------------- Cria o XML de Inutilizacao ------------------------------------------------------
Dim strID As String = String.Empty
strID = (plUrlAcesso.CodigoUF & ano & CNPJ & [Ô]55001[Ô] & ([Ô]000000[Ô] & nNFIni) & ([Ô]000000[Ô] & nNFFin))
Dim strXML As String = String.Empty
strXML += [Ô]<inutNFe xmlns=[ô]http://www.portalfiscal.inf.br/nfe[ô] versao=[ô]2.00[ô]>[Ô]
strXML += [Ô]<infInut Id =[ô]ID[Ô] & strID & [Ô][ô]>[Ô]
strXML += [Ô]<tpAmb>[Ô] & [Ô]2[Ô] & [Ô]</tpAmb>[Ô]
strXML += [Ô]<xServ>INUTILIZAR</xServ>[Ô]
strXML += [Ô]<cUF>[Ô] & plUrlAcesso.CodigoUF & [Ô]</cUF>[Ô]
strXML += [Ô]<ano>[Ô] & ano & [Ô]</ano>[Ô]
strXML += [Ô]<CNPJ>[Ô] & CNPJ & [Ô]</CNPJ>[Ô]
strXML += [Ô]<mod>55</mod>[Ô]
strXML += [Ô]<serie>1</serie>[Ô]
strXML += [Ô]<nNFIni>[Ô] & nNFIni & [Ô]</nNFIni>[Ô]
strXML += [Ô]<nNFFin>[Ô] & nNFFin & [Ô]</nNFFin>[Ô]
strXML += [Ô]<xJust>[Ô] & xJust & [Ô]</xJust>[Ô]
strXML += [Ô]</infInut>[Ô]
strXML += [Ô]</inutNFe>[Ô]
Dim xmldoc = New XmlDocument()
xmldoc.LoadXml(strXML)
[ô] ------------------------------------------- Assina o XML ------------------------------------------------------
xmldoc = Assinar(xmldoc, [Ô]infInut[Ô], CERT)
[ô] ------------------------------------------- Validando o XML Assinado ------------------------------------------------------
Dim strResultadoValidacao As String = ValidarXML(xmldoc, (My.Application.Info.DirectoryPath & [Ô]inutNFe_v2.00.xsd[Ô]))
If strResultadoValidacao = String.Empty Then sMsgStatus = [Ô]Arquivo Validado com Sucesso[Ô] Else sMsgStatus = [Ô]Falha na validação do XML![Ô]
[ô] ------------------------------------------- Finalizando Geração de XML de Inutilização ------------------------------------------------------
xmldoc.LoadXml([Ô]<?xml version=[Ô][Ô]1.0[Ô][Ô] encoding=[Ô][Ô]utf-8[Ô][Ô] ?>[Ô] & xmldoc.InnerXml)
[ô] ------------------------------------------- Enviando Inutilização ------------------------------------------------------
Dim oNodeRetorno As XmlElement
Dim oNoPrincipal As XmlElement
oNodeRetorno = wsMsg.nfeInutilizacaoNF2(xmldoc)
Dim s_cStat As String = [Ô][Ô], s_xMotivo As String = [Ô][Ô], s_xNumeroProtocolo As String = [Ô][Ô], sVersao As String = [Ô][Ô]
[ô] ------------------------------------------- Identificando cStat e xMotivo ------------------------------------------------------
For Each oNoPrincipal In oNodeRetorno
If oNodeRetorno.Name = [Ô]retInutNFe[Ô] Then
For Each oNode As XmlNode In oNoPrincipal
If oNode.Name = [Ô]cStat[Ô] Then
s_cStat = oNode.InnerText
ElseIf oNode.Name = [Ô]xMotivo[Ô] Then
s_xMotivo = oNode.InnerText
ElseIf oNode.Name = [Ô]nProt[Ô] Then
s_xNumeroProtocolo = oNode.InnerText
End If
If s_cStat <> [Ô][Ô] And s_xMotivo <> [Ô][Ô] Then
Exit For
End If
Next
Exit For
End If
Next
If s_xMotivo = [Ô]Inutilizacao de numero homologado[Ô] Then
sMsgStatus += (vbCrLf & [Ô]Notas Fiscais - Inutilizadas[Ô])
End If
Return sMsgStatus
Abraço a todos ...
Valeu, vou ajustar no meu também.....Obrigado
Está dando um erro: Rejeição: Falha no Schema XML.
Estou testando no ambiente de homologação, será que é isso?
Citação::
pRockFeller, veja se não há nenhum acento no seu xml, ou se não há nenhuma TAG em aberto...
Daniel: Tá tranquilo, amigo. Só tô brincando, prá descontrair.
NETODV1:Que é isso, amigo: Sò estou retribuindo um pouco da ajuda que tive por aqui.
Barros, não há acentos e as tags acho que estão corretas, está abaixo:
<inutNFe xmlns=[ô]http://www.portalfiscal.inf.br/nfe[ô] versao=[ô]2.00[ô]><infInut Id =[ô]ID3520114539725400012555001000000001000000010[ô]><tpAmb>2</tpAmb><xServ>INUTILIZAR</xServ><cUF>35</cUF><ano>2011</ano><CNPJ>45397254000125</CNPJ><mod>55</mod><serie>1</serie><nNFIni>1</nNFIni><nNFFin>10</nNFFin><xJust>Teste Erro</xJust></infInut></inutNFe>[Ô]
A comparação com o esquema dá validado com sucesso, mas o retorno do envio dá rejeição
Obrigado pela ajuda