FONTE NFE VB.NET

MFLAVIO 03/01/2011 13:31:33
#360954
Alguem tem a rotina para cancelar a Nota?
RODRIGUESRM 04/01/2011 08:22:57
#361029
Citação:

:
Alguem tem a rotina para cancelar a Nota?



MFlavio,

os arquivos disponibilizados na página 33 e na página 39 possuem quase que na totalidade o que você precisa, inclusive com exemplos bem práticos. Dá uma olha, vê se te ajuda.
MFLAVIO 04/01/2011 14:33:35
#361067
Citação:

:
:
Alguem tem a rotina para cancelar a Nota?

MFlavio,

os arquivos disponibilizados na página 33 e na página 39 possuem quase que na totalidade o que você precisa, inclusive com exemplos bem práticos. Dá uma olha, vê se te ajuda.



Amigo eu só achei os XML e o projeto sem as funções de cancelamento e inutilização
RODRIGUESRM 04/01/2011 17:21:24
#361083
Citação:

:
:
:
Alguem tem a rotina para cancelar a Nota?

MFlavio,

os arquivos disponibilizados na página 33 e na página 39 possuem quase que na totalidade o que você precisa, inclusive com exemplos bem práticos. Dá uma olha, vê se te ajuda.

Amigo eu só achei os XML e o projeto sem as funções de cancelamento e inutilização



MFlavio,

Desculpe-me pela [ô]Gafe[ô], havia me esquecido que o projeto da página 33 não tinha a chamada da função de cancelamento, contudo vamos ao que interessa, na página 50 postei toda a classe de cancelamento, e abaixo posto a minha função que chama o cancelamento (ela está um pouco adaptada as minhas necessidades, mas creio que deva ajudar).

Public Function CancelaNFe(ByVal stpAmb As String, ByVal sVersao As String, ByVal schNFe As String, ByVal snProt As String, ByVal sxJust As String, ByVal sSerialCertificado As String) As XmlDocument

Dim oXMLCancelamento = New XmlDocument()
Dim oXMLRetorno As New XmlDocument

Dim s_cStat As String = String.Empty
Dim s_xMotivo As String = String.Empty

Dim sArqXMLHom As String = String.Empty

Dim strXML As String

Try

[ô]Selecionando o Certificado
Dim oCertificado As X509Certificate2 = CertificadoDigital.SelecionarCertificado(sSerialCertificado)

Dim wsMsg As Cancelamento2.NfeCancelamento2
Dim cab As New Cancelamento2.nfeCabecMsg

[ô]UF E VERSÃO DO CABEÇALHO
cab.cUF = S_Url.CodigoUF
cab.versaoDados = sVersao

[ô]Instanciando a Conexão com WebService
wsMsg = New Cancelamento2.NfeCancelamento2(S_Url.UrlNfeCancelamento)

[ô]Associando cabeçalho da NFe
wsMsg.nfeCabecMsgValue = cab

[ô]Definindo o Tempo Máximo de Espera pro Retorno
wsMsg.Timeout = 100000 [ô]1 minuto e 40 segundos

[ô]Associando certificado a conexão WS
wsMsg.ClientCertificates.Add(oCertificado)

[ô]Definindo protocolo usando a conexão
wsMsg.SoapVersion = SoapProtocolVersion.Soap12

[ô]Montar XML de Cancelamento
[ô]-------------------------------------------------------------------------------------------------------------------------
Dim oNFeCanc As New NFe()

oNFeCanc.versao = sVersao
oNFeCanc.Id = schNFe
oNFeCanc.nProt = snProt
oNFeCanc.xJust = sxJust
oNFeCanc.infNFE.Ide.tpAmb = stpAmb

oXMLCancelamento = oNFeCanc.GerarXMLCancelamento()

[ô]Matando Objeto NFe
oNFeCanc = Nothing

[ô]Assinando o XML de Cancelamento
oXMLCancelamento = CertificadoDigital.Assinar(oXMLCancelamento, [Ô]infCanc[Ô], oCertificado)

[ô]Validando o XML Assinado
[ô]-------------------------------------------------------------------------------------------------------------------------
Dim strResultadoValidacao As String = ValidaXML.ValidarXML(oXMLCancelamento, [Ô]cancNFe_v2.00.xsd[Ô]).Trim()
If strResultadoValidacao.Length() > 0 Then
Throw New Exception([Ô]Falha na validação do XML![Ô] & vbCrLf & strResultadoValidacao)
End If

[ô]Finalizando Geração de XML de Cancelamento
[ô]-------------------------------------------------------------------------------------------------------------------------
oXMLCancelamento.LoadXml([Ô]<?xml version=[Ô][Ô]1.0[Ô][Ô] encoding=[Ô][Ô]utf-8[Ô][Ô] ?>[Ô] & oXMLCancelamento.InnerXml)

[ô]oXMLCancelamento.InnerXml.Substring(38)

[ô]Enviando Cancelamento
[ô]-------------------------------------------------------------------------------------------------------------------------
Dim oNodeRetorno As XmlElement
oNodeRetorno = wsMsg.nfeCancelamentoNF2(oXMLCancelamento)

[ô]Identificando cStat e xMotivo
For Each oNoPrincipal In oNodeRetorno
If oNodeRetorno.Name = [Ô]retCancNFe[Ô] 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
End If
If s_cStat <> String.Empty And s_xMotivo <> String.Empty Then
Exit For
End If
Next
Exit For
End If
Next

[ô]Montar XML de Homolocação de Cancelamento de NFe
Dim oXMLHomologacao As New XmlDocument
If s_cStat = [Ô]101[Ô] Then

strXML = [Ô]<?xml version=[Ô][Ô]1.0[Ô][Ô] encoding=[Ô][Ô]utf-8[Ô][Ô] ?>[Ô]
strXML += [Ô]<procCancNFe versao=[Ô][Ô][Ô] & sVersao & [Ô][Ô][Ô] xmlns=[Ô][Ô]http://www.portalfiscal.inf.br/nfe[Ô][Ô]>[Ô]
strXML += oXMLCancelamento.InnerXml.Substring(38)
strXML += [Ô]<retCancNFe versao=[Ô][Ô][Ô] & sVersao & [Ô][Ô][Ô] xmlns=[Ô][Ô]http://www.portalfiscal.inf.br/nfe[Ô][Ô]>[Ô]
strXML += oNodeRetorno.InnerXml
strXML += [Ô]</retCancNFe>[Ô]
strXML += [Ô]</procCancNFe>[Ô]

oXMLHomologacao.LoadXml(strXML)
sArqXMLHom = My.Settings.pastaNFe & [Ô]\NFe_[Ô] & Integer.Parse(schNFe.Substring(25, 9)) & [Ô]_cancelamento.xml[Ô]
Using xmltw As New XmlTextWriter(sArqXMLHom, New UTF8Encoding(False))
oXMLHomologacao.WriteTo(xmltw)
xmltw.Close()
End Using

End If

[ô]Montar XML Final
strXML = [Ô]<?xml version=[Ô][Ô]1.0[Ô][Ô] encoding=[Ô][Ô]utf-8[Ô][Ô] ?>[Ô]
strXML += [Ô]<ret>[Ô]
strXML += [Ô]<retSolicitacao>[Ô]
strXML += [Ô]<cStat>[Ô] & s_cStat & [Ô]</cStat>[Ô]
strXML += [Ô]<xMotivo>[Ô] & s_xMotivo & [Ô]</xMotivo>[Ô]
If sArqXMLHom <> String.Empty Then
strXML += [Ô]<xArquivoXML>[Ô] & sArqXMLHom & [Ô]</xArquivoXML>[Ô]
End If
strXML += [Ô]</retSolicitacao>[Ô]
strXML += [Ô]<xmlFinal>[Ô]
strXML += oNodeRetorno.InnerXml
strXML += [Ô]</xmlFinal>[Ô]
strXML += [Ô]</ret>[Ô]

oXMLRetorno.LoadXml(strXML)

Catch ex As Exception

strXML = [Ô]<?xml version=[Ô][Ô]1.0[Ô][Ô] encoding=[Ô][Ô]utf-8[Ô][Ô]?>[Ô]
strXML += [Ô]<ret>[Ô]
strXML += [Ô]<retSolicitacao>[Ô]
strXML += [Ô]<cStat>0</cStat>[Ô]
strXML += [Ô]<xMotivo>[Ô] & ex.Message & [Ô]</xMotivo>[Ô]
strXML += [Ô]</retSolicitacao>[Ô]
strXML += [Ô]</ret>[Ô]

oXMLRetorno.LoadXml(strXML)

End Try

Return oXMLRetorno

End Function
MFLAVIO 04/01/2011 21:28:05
#361118
RodriguesRM

valeu peja Ajuda

estou tendo um erro

quando tento cancelar uma NFE me retorna erro

[Ô]Rejeição: Ambiente informado diverge do Ambiente de recebimento[Ô]

eu estou informando 2 no <tpAmb>
pois a nota foi gerada em Homologação

tem alguma dica?
DOUTORX 05/01/2011 08:30:14
#361136
BARROS,

Essa tabela de NCM é igual a uma outra que um pessoal da Unidata me enviou, igualzinha.
GUILHERMEDEFRAN 05/01/2011 08:57:44
#361142
oi, alguem poderia verificar o que pode estar errado ao realizar a inutilização?

código aqui:
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=337965&varPagina=60
RODRIGUESRM 05/01/2011 10:47:06
#361178
Citação:

:
RodriguesRM

valeu peja Ajuda

estou tendo um erro

quando tento cancelar uma NFE me retorna erro

[Ô]Rejeição: Ambiente informado diverge do Ambiente de recebimento[Ô]

eu estou informando 2 no <tpAmb>
pois a nota foi gerada em Homologação

tem alguma dica?



MFlavio,

Verifique você está consumindo os WebServices corretos, pois você não pode passar no seu XML tpAmb=2 e consumir os WebServices de Produção e o mesmo ocorre ao contrário.
Página 64 de 228 [2276 registro(s)]
Faça seu login para responder