FONTE NFE VB.NET

DANIELCPAETE 21/12/2010 22:24:25
#360142
Mflavio faça um if e chame a classe cpf e nao a cnpj e o ie nao vai nada
S4NGU3 22/12/2010 03:23:33
#360150
Citação:

:
Conforme prometido:




show
MFLAVIO 22/12/2010 13:05:13
#360191
Certo consegui o CPF e CNPJ

agora como eu consigo colocar as informações da Transportadora?
MFLAVIO 22/12/2010 14:31:43
#360205
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
 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?
MFLAVIO 22/12/2010 15:10:09
#360211
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
GUILHERMEDEFRAN 22/12/2010 15:16:48
#360214
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


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

GUILHERMEDEFRAN 22/12/2010 15:24:03
#360216
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

RODRIGUESRM 22/12/2010 16:26:39
#360219
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.
MFLAVIO 22/12/2010 17:40:52
#360234
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?
Página 60 de 228 [2276 registro(s)]
Faça seu login para responder