FONTE NFE VB.NET
Mflavio faça um if e chame a classe cpf e nao a cnpj e o ie nao vai nada
Citação::
Conforme prometido:
show
Certo consegui o CPF e CNPJ
agora como eu consigo colocar as informações da Transportadora?
agora como eu consigo colocar as informações da Transportadora?
estou tendo um erro na hora de validar o XML
isso começo a acontecer depois que eu tentei colocar os dados da trnasportadora
Codigo que eu inseri
esse e o erro que aparece
- The element [ô]transp[ô] in namespace [ô]http://www.portalfiscal.inf.br/nfe[ô] has invalid child element [ô]transporta[ô] in namespace [ô]http://www.portalfiscal.inf.br/nfe[ô]. List of possible elements expected: [ô]modFrete[ô] in namespace [ô]http://www.portalfiscal.inf.br/nfe[ô].
TAG: NFe[1]/infNFe/transp/transporta/
o que pode ser?
isso começo a acontecer depois que eu tentei colocar os dados da trnasportadora
Codigo que eu inseri
Svar = [Ô][Ô]
Svar = DR([Ô]tipo_frete[Ô]).ToString
Vnfe.infNFE.Transp.modFrete = Svar.Substring(0, 1)
Vnfe.infNFE.Transp.Transporta = New transporta
Vnfe.infNFE.Transp.Transporta.CNPJ = (removeFormatacao(DR([Ô]cnpj_transp[Ô]).ToString))
Vnfe.infNFE.Transp.Transporta.IE = Trim(DR([Ô]IE_TRanSP[Ô]).ToString)
Vnfe.infNFE.Transp.Transporta.UF = DR([Ô]uf_transp[Ô]).ToString
Vnfe.infNFE.Transp.Transporta.xEnder = Trim(DR([Ô]end_transp[Ô]).ToString)
Vnfe.infNFE.Transp.Transporta.xMun = Trim(DR([Ô]cidade_transp[Ô]).ToString)
Vnfe.infNFE.Transp.Transporta.xNome = Trim(DR([Ô]rasao_transp[Ô]).ToString)
Vnfe.infNFE.Transp.Vol = New vol
Vnfe.infNFE.Transp.Vol.esp = Trim(DR([Ô]especie[Ô]).ToString)
Vnfe.infNFE.Transp.Vol.marca = Trim(DR([Ô]marca[Ô]).ToString)
Vnfe.infNFE.Transp.Vol.nVol = Trim(DR([Ô]numeracao[Ô]).ToString)
Vnfe.infNFE.Transp.Vol.pesoB = IIf(Trim(DR([Ô]peso_b[Ô]).ToString) <> [Ô][Ô], Trim(DR([Ô]peso_b[Ô]).ToString), Nothing)
Vnfe.infNFE.Transp.Vol.pesoL = IIf(Trim(DR([Ô]peso_l[Ô]).ToString) <> [Ô][Ô], Trim(DR([Ô]peso_l[Ô]).ToString), Nothing)
Vnfe.infNFE.Transp.Vol.qVol = Trim(DR([Ô]qtd[Ô]).ToString)
esse e o erro que aparece
- The element [ô]transp[ô] in namespace [ô]http://www.portalfiscal.inf.br/nfe[ô] has invalid child element [ô]transporta[ô] in namespace [ô]http://www.portalfiscal.inf.br/nfe[ô]. List of possible elements expected: [ô]modFrete[ô] in namespace [ô]http://www.portalfiscal.inf.br/nfe[ô].
TAG: NFe[1]/infNFe/transp/transporta/
o que pode ser?
Esqueci de dizer o erro acontece porque no XML a tag esta sendo montada assim
como eu faço para alterar isso
<transp>
<transporta>
<xNome>CLIENTE RETIRA</xNome>
<UF>SP</UF>
</transporta>
<vol>
<pesoL>1.000</pesoL>
<pesoB>1.000</pesoB>
</vol>
<modFrete>1</modFrete> [ô] essa tag esta em lugar errado deveria esta em cima após <transp>
</transp>
como eu faço para alterar isso
Preciso de ajuda nessa função de inutilizar a NFE VERSÃO 2.0.
Quando eu tento inutilizar as notas, não é permitido e me informa o motivo de erro de schema xml
alguem poderia me dizer o que essa de errado se falta alguma coisa?
Aqui uma função da DLL que eu fiz em VB.NET A FUNÇÃO DE INUTILIZAÇÃO, para utiliza-la em VB6
Quando eu tento inutilizar as notas, não é permitido e me informa o motivo de erro de schema xml
alguem poderia me dizer o que essa de errado se falta alguma coisa?
Aqui uma função da DLL que eu fiz em VB.NET A FUNÇÃO DE INUTILIZAÇÃO, para utiliza-la em VB6
Public Function NfeInutilizacao(ByVal Arquivo As String, ByVal URL_WS As String) As Boolean
Try
If IsNothing(Certificado) Then
If Not SelecionaCertificado() Then
Return False
Exit Function
End If
End If
document.PreserveWhitespace = False
document.Load(Arquivo)
Dim cabecalho As New wsNFeInutilizacao.nfeCabecMsg
cabecalho.cUF = 43
cabecalho.versaoDados = [Ô]2.00[Ô]
Dim inutil As New wsNFeInutilizacao.NfeInutilizacao2
inutil.Url = URL_WS
inutil.nfeCabecMsgValue = cabecalho
inutil.Timeout = 100000
inutil.ClientCertificates.Add(Certificado)
inutil.SoapVersion = Web.Services.Protocols.SoapProtocolVersion.Soap12
retorno = inutil.nfeInutilizacaoNF2(document)
For Each outerNode As XmlNode In retorno
If (outerNode.Name = [Ô]infInut[Ô]) Then wId = outerNode.Attributes.ItemOf([Ô]Id[Ô]).InnerText
For Each InnerNode As XmlNode In outerNode.ChildNodes
If (outerNode.Name = [Ô]tpAmb[Ô] Or InnerNode.Name = [Ô]tpAmb[Ô]) Then wTpAmb = InnerNode.InnerText
If (outerNode.Name = [Ô]verAplic[Ô] Or InnerNode.Name = [Ô]verAplic[Ô]) Then wVerAplic = InnerNode.InnerText
If (outerNode.Name = [Ô]cStat[Ô] Or InnerNode.Name = [Ô]cStat[Ô]) Then wCStat = InnerNode.InnerText
If (outerNode.Name = [Ô]xMotivo[Ô] Or InnerNode.Name = [Ô]xMotivo[Ô]) Then wXMotivo = InnerNode.InnerText
If (outerNode.Name = [Ô]nProt[Ô] Or InnerNode.Name = [Ô]nProt[Ô]) Then wNProt = InnerNode.InnerText
If (outerNode.Name = [Ô]dhRecbto[Ô] Or InnerNode.Name = [Ô]dhRecbto[Ô]) Then wDhRecbto = InnerNode.InnerText
Next
Next
Return True
Catch ex As Exception
MsgBox(ex.Message)
Return False
End Try
End Function
Essa aqui é onde ele executa a inutilização, no projeto em VB 6
Public Function InutilizaNFE(CGCEmit As String, NFInicial As String, NFFinal As String, Ser As String, Justificativa As String) As Boolean
Dim Fso As New FileSystemObject
Dim ArqIni As TextStream
Dim URL As String
Dim sql As String
Dim Ano As String
Dim id As String
Dim rsDados As New ADODB.Recordset
Dim rsGravaRetorno As New ADODB.Recordset
On Error GoTo InutilizaNFE_Error
Xml = [Ô][Ô]
numLoja = w_NumLoja
CGCOrigem = CGCEmit
Serie = Ser
If Trim(CGCOrigem) = [Ô][Ô] Then
InutilizaNFE = False
Exit Function
End If
wArquivoWS = App.Path & [Ô]\NFE\webservices.xml[Ô]
If Not (Fso.FileExists(wArquivoWS)) Then
MsgBox [Ô]Arquivo webservices.xml dos Web Services não encontrado. Verifique.[Ô], vbCritical, [Ô]Atenção[Ô]
InutilizaNFE = False
Exit Function
End If
IdentAmbiente = Left(BuscaGenerico(w_NumLoja, [Ô]IdentAmb[Ô]), 1)
If IdentAmbiente = [Ô][Ô] Then
MsgBox [Ô]Configuração no Toolkit de identificação do ambiente da nota fiscal eletrônica não difinido. Verifique e tente novamente.[Ô], vbInformation, [Ô]Atenção[Ô]
InutilizaNFE = False
Exit Function
End If
LoadMensagem [Ô]Inutilizando Notas Fiscais Eletrônicas. Aguarde...[Ô]
sql = [Ô]select * from Pessoas INNER JOIN Cidades ON Pessoas.Cidade = Cidades.CodCidade WHERE CGCCPF = [ô][Ô] & CGCOrigem & [Ô][ô][Ô]
Set rsDados = w_Conn.Execute(sql)
If Not rsDados.EOF Then
CodUFEmitente = Left(Trim(rsDados.Fields([Ô]CodIBGE[Ô])), 2)
If Trim(CodUFEmitente) = [Ô][Ô] Then
MsgBox [Ô]O código do IBGE não esta definido para o Emitente. Verifique e tente novamente.[Ô], vbInformation, [Ô]Atenção[Ô]
InutilizaNFE = False
Exit Function
End If
[ô] Versao = [Ô]1.07[Ô]
Versao = [Ô]2.00[Ô]
wUF = Left(Trim(rsDados.Fields([Ô]Estado[Ô])), 2)
Ano = Format(Now, [Ô]YY[Ô])
CNPJEmitente = PreencheString(CGCOrigem, [Ô]0[Ô], 14, True)
ModeloNF = [Ô]55[Ô]
SerieNF = Trim(Serie)
If IsNumeric(SerieNF) Then
SerieNF = Left(SerieNF, 3)
Else
SerieNF = [Ô]0[Ô]
End If
CodUFEmitente = Left(Trim(rsDados.Fields([Ô]CodIBGE[Ô])), 2)
id = [Ô]ID[Ô] & CodUFEmitente & CNPJEmitente & ModeloNF & PreencheString(SerieNF, [Ô]0[Ô], 3, True) & PreencheString(NFInicial, [Ô]0[Ô], 9, True) & PreencheString(NFFinal, [Ô]0[Ô], 9, True)
Xml = [Ô]<?xml version=[Ô][Ô]1.0[Ô][Ô] encoding=[Ô][Ô]utf-8[Ô][Ô] ?>[Ô]
Xml = Xml & [Ô]<inutNFe xmlns=[Ô][Ô]http://www.portalfiscal.inf.br/nfe[Ô][Ô] versao=[Ô][Ô]2.00[Ô][Ô]>[Ô]
Xml = Xml & [Ô]<infInut Id=[Ô][Ô][Ô] & id & [Ô][Ô][Ô]>[Ô]
Xml = Xml & [Ô]<tpAmb>[Ô] & IdentAmbiente & [Ô]</tpAmb>[Ô]
Xml = Xml & [Ô]<xServ>INUTILIZAR</xServ>[Ô]
Xml = Xml & [Ô]<cUF>[Ô] & CodUFEmitente & [Ô]</cUF>[Ô]
Xml = Xml & [Ô]<ano>[Ô] & Ano & [Ô]</ano>[Ô]
Xml = Xml & [Ô]<CNPJ>[Ô] & CNPJEmitente & [Ô]</CNPJ>[Ô]
Xml = Xml & [Ô]<mod>[Ô] & ModeloNF & [Ô]</mod>[Ô]
Xml = Xml & [Ô]<serie>[Ô] & SerieNF & [Ô]</serie>[Ô]
Xml = Xml & [Ô]<nNFIni>[Ô] & NFInicial & [Ô]</nNFIni>[Ô]
Xml = Xml & [Ô]<nNFFin>[Ô] & NFFinal & [Ô]</nNFFin>[Ô]
Xml = Xml & [Ô]<xJust>[Ô] & TrataTexto(Justificativa) & [Ô]</xJust>[Ô]
Xml = Xml & [Ô]</infInut>[Ô]
Xml = Xml & [Ô]</inutNFe>[Ô]
wArquivoXML = App.Path & [Ô]\[Ô] & id & [Ô].xml[Ô]
GravaArquivoXML
[ô]Tempo para gravação do arquivo
Sleep 1000
FrmMensagem.Refresh
If Not Signature([Ô]infInut[Ô]) Then
InutilizaNFE = False
Exit Function
End If
[ô]Tempo para gravação do arquivo
Sleep 1000
FrmMensagem.Refresh
URL = URL_WS([Ô]Inutilizacao[Ô])
If Not ClsNFe.NfeInutilizacao(wArquivoXML, URL) Then
InutilizaNFE = False
Exit Function
End If
With rsGravaRetorno
cStatus = ClsNFe.cStat
xMotivo = ClsNFe.xMotivo
.Open [Ô]NotaFiscalEInutilizadas[Ô], w_Conn, adOpenDynamic, adLockOptimistic, adCmdTable
.AddNew
.Fields([Ô]NumLoja[Ô]) = numLoja
.Fields([Ô]CGCOrigem[Ô]) = CGCOrigem
.Fields([Ô]NumNotaInicial[Ô]) = NFInicial
.Fields([Ô]NumNotaFinal[Ô]) = NFFinal
.Fields([Ô]Serie[Ô]) = SerieNF
.Fields([Ô]DataEmiss[Ô]) = Now
.Fields([Ô]Versao[Ô]) = Versao
.Fields([Ô]Ambiente[Ô]) = IdentAmbiente
.Fields([Ô]verAplic[Ô]) = ClsNFe.verAplic
.Fields([Ô]cStat[Ô]) = cStatus
.Fields([Ô]xMotivo[Ô]) = xMotivo
.Fields([Ô]Id[Ô]) = ClsNFe.id
.Fields([Ô]nProt[Ô]) = ClsNFe.nProt
.Fields([Ô]dhRecbto[Ô]) = Replace(ClsNFe.dhRecbto, [Ô]T[Ô], [Ô] [Ô])
.Fields([Ô]Justificativa[Ô]) = TrataTexto(Justificativa)
Update_HDR rsGravaRetorno, [Ô]InutNFe[Ô]
.Update
End With
rsGravaRetorno.Close
Set rsGravaRetorno = Nothing
End If
rsDados.Close
Set rsDados = Nothing
InutilizaNFE = True
Exit Function
InutilizaNFE_Error:
InutilizaNFE = False
MsgBox [Ô]Ocorreu um erro inesperado em InutilizaNFE.[Ô] & Err.Description, vbCritical, w_CabNetuno
End Function
Citação::
Esqueci de dizer o erro acontece porque no XML a tag esta sendo montada assim<transp>
<transporta>
<xNome>CLIENTE RETIRA</xNome>
<UF>SP</UF>
</transporta>
<vol>
<pesoL>1.000</pesoL>
<pesoB>1.000</pesoB>
</vol>
<modFrete>1</modFrete> [ô] essa tag esta em lugar errado deveria esta em cima após <transp>
</transp>
como eu faço para alterar isso
MFlavio,
Para resolver esse problema, abra a classe transp.vb e altere a posição da propriedade modFrete, pois a geração do XML obedece a posicao das propriedades na classe.
Eu também tive esse problema e fazendo isso resolve.
Obrigado RodriguesRM
deu certo
eu tenho uma outra duvida
como eu fiz o sistema bem automatizado
tipo o cliente clica no botão Emitir
o sistema gera o XML, Envia e ja abre a janela com o Danfe
so que fica pedindo o Certificado varias vezes
tem como salvar o certificado em uma variável para pedir o certificado apenas umas vez ao cliente?
deu certo
eu tenho uma outra duvida
como eu fiz o sistema bem automatizado
tipo o cliente clica no botão Emitir
o sistema gera o XML, Envia e ja abre a janela com o Danfe
so que fica pedindo o Certificado varias vezes
tem como salvar o certificado em uma variável para pedir o certificado apenas umas vez ao cliente?
Faça seu login para responder