FONTE NFE VB.NET
Teste aqui e enviou o lote a nota validou no SEFAZ mas função:
StrRetorno = WebS.EnviaLote4(....
não trouxe nada, sera que teria que alterar a função?
Alguem tem ideia, obrigado.
StrRetorno = WebS.EnviaLote4(....
não trouxe nada, sera que teria que alterar a função?
Alguem tem ideia, obrigado.
Na verdade eu enviei
'ENVIA LOTE DE NOTAS VERSÃO 2.00
StrRetorno = WebS.EnviaLote4(strCaminho & "\" & strNomeXml, Me.txt_CertDigital.Text)
Mas por agora ser sincrono ele me trouxe
StrRetorno.xMotivo = "Lote processado"
Ai nesse caso por ser sincrono eu não tenho mais que consultar certo
Dim RetonoConsulta As New RetRetorno
RetonoConsulta = WebS.ConsultaRecLote4(StrRetorno.nRec, Me.txt_CertDigital.Text)
Mas antes eu tinha aconsulta ao lote com o recibo e buscava no retorno RetC.xMotivo = "Autorizado o uso da NF-e"
e gerava a nota
GerarNotaProcessada(SepararNota(XmlNota.OuterXml), RetC.XmlRecibo, strCaminho & "\" & strNomeXml)
Como fica agora?
'ENVIA LOTE DE NOTAS VERSÃO 2.00
StrRetorno = WebS.EnviaLote4(strCaminho & "\" & strNomeXml, Me.txt_CertDigital.Text)
Mas por agora ser sincrono ele me trouxe
StrRetorno.xMotivo = "Lote processado"
Ai nesse caso por ser sincrono eu não tenho mais que consultar certo
Dim RetonoConsulta As New RetRetorno
RetonoConsulta = WebS.ConsultaRecLote4(StrRetorno.nRec, Me.txt_CertDigital.Text)
Mas antes eu tinha aconsulta ao lote com o recibo e buscava no retorno RetC.xMotivo = "Autorizado o uso da NF-e"
e gerava a nota
GerarNotaProcessada(SepararNota(XmlNota.OuterXml), RetC.XmlRecibo, strCaminho & "\" & strNomeXml)
Como fica agora?
Boa Tarde a todos
Depois que mudei o IndSinc=1 e atualizei os arquivos SchemaNfe acontece o seguinte erro:
System.Xml.Schema.XmlSchemaException: 'Tipo 'TTpCredPresIBSZFM' é não declarado.'
Depois que mudei o IndSinc=1 e atualizei os arquivos SchemaNfe acontece o seguinte erro:
System.Xml.Schema.XmlSchemaException: 'Tipo 'TTpCredPresIBSZFM' é não declarado.'
MITSUEDA2025,
Além da mudança do indSinc para 1, criei 2 novas funções para envio síncrono:
Seguem. Parece que deu certo.
e
Além da mudança do indSinc para 1, criei 2 novas funções para envio síncrono:
Seguem. Parece que deu certo.
Private Sub enviar2() '****** Modo Síncrono
' *** Modo de envio da nfe Síncrono - enviar2
' ******************************
' Versão: NFe 4.00 - Enviar NF-e - Modo Síncrono - 1 Nf-e por vez
' ******************************
Dim WebS As New C_WebService(UrlAcesso)
Dim StrRetorno As RetEnvio_Sincrono
MsgBox("Por favor, não desplugar o Certificado Digital!", MsgBoxStyle.Exclamation, "Certificado")
textBox1.Text = ""
ProgB1.Value = 0
ProgB1.Minimum = 0
ProgB1.Maximum = 4
ProgB1.Visible = True
Label14.Text = ""
Label14.Visible = True
'ENVIA LOTE DE NOTAS VERSÃO 4.00
StrRetorno = WebS.EnviaLote2("seu.xml")
ProgB1.Value += 1
System.Threading.Thread.Sleep(2500)
textBox1.Text += StrRetorno.xMotivo & vbNewLine
If StrRetorno.protNFE.cStat = 100 Then
Label14.Text = "Retorno concluído."
ProgB1.Value += 1
Dim sqly As String
Dim cmdy As New FbCommand
RetonoConsultaENVIO = 1
sqly = ""
sqly += " Update SAIDAS"
sqly += " SET NFE_STATUS = 'XML Enviado', NPROT = '" & StrRetorno.protNFE.nProt & "', XMOTIVO = '" & StrRetorno.protNFE.xMotivo & "'"
sqly += ", VERAPLIC = '" & StrRetorno.protNFE.verAplic & "', DHRECBTO = '" & StrRetorno.protNFE.dhRecbto & "'"
sqly += ", DIGVAL = '" & StrRetorno.protNFE.digVal & "', CSTAT = '" & StrRetorno.protNFE.cStat & "'"
sqly += " WHERE IDSAIDA = " & vr_nfeid
cmdy.Connection = conn_aux
cmdy.Parameters.Clear()
cmdy.CommandType = CommandType.Text
cmdy.CommandText = sqly
cmdy.ExecuteNonQuery()
cmdy.Dispose()
Pesquisar()
TextBox5.Text = StrRetorno.protNFE.nProt
' **** processando a NF-e - criando NFE Proc
System.Threading.Thread.Sleep(1000)
Label14.Text = "Gerando NF-e Processada..."
ProgB1.Value += 1
Gerar_ProNFe()
ProgB1.Value += 1
Label14.Text = "Envio, retorno e processamento realizados."
textBox1.Text += "Chave: " & (StrRetorno.protNFE.chNFe) & vbNewLine
textBox1.Text += "Status - Motivo: " & (StrRetorno.protNFE.cStat) & " - " & (StrRetorno.protNFE.xMotivo) & vbNewLine
textBox1.Text += "Protocolo: " & (StrRetorno.protNFE.nProt) & vbNewLine
textBox1.Text += "Ambiente (1-Prod. / 2-Homol.): " & (StrRetorno.protNFE.tpAmb) & vbNewLine
textBox1.Text += "Dígito Validador: " & (StrRetorno.protNFE.digVal)
Else
textBox1.Text += "ERRO NA NOTA!" & vbNewLine
textBox1.Text += "Motivo: " & StrRetorno.cStat & " - " & StrRetorno.xMotivo
End If
End Sub
e
Public Function EnviaLote2(ByVal EndArquivoXml As String) As RetEnvio_Sincrono
Try
Dim strRetorno As XmlElement
Dim xmldoc = New XmlDocument()
xmldoc.Load(EndArquivoXml) 'Carrega o arquivo XML
Dim CERT As X509Certificate2
CERT = SelecionarCertificado(SerieCert)
Static wsMsg As NFEAutorizacao.Autorizacao
wsMsg = New NFEAutorizacao.Autorizacao(S_Url.UrlNfeAutorizacao)
wsMsg.Timeout = 100000
wsMsg.ClientCertificates.Add(CERT)
System.Net.ServicePointManager.SecurityProtocol = DirectCast(3072, System.Net.SecurityProtocolType)
Dim Notas As String
Notas = xmldoc.OuterXml
'RETORNO DA SEFAZ
strRetorno = wsMsg.nfeAutorizacaoLote(xmldoc) 'wsMsg.nfeRecepcaoLote2(xmldoc)
'DESMEMBRA RETORNO XML
Dim StrRetNota As RetEnvio_Sincrono = Nothing
Dim XmlText As XmlDocument = New XmlDocument
For Each outerNode As XmlNode In strRetorno
For Each InnerNode As XmlNode In outerNode.ChildNodes
If (InnerNode.Name = "verAplic" Or outerNode.Name = "verAplic") Then
StrRetNota.verAplic = InnerNode.InnerText
End If
If (InnerNode.Name = "cStat" Or outerNode.Name = "cStat") Then
StrRetNota.cStat = InnerNode.InnerText
End If
If (InnerNode.Name = "xMotivo" Or outerNode.Name = "xMotivo") Then
StrRetNota.xMotivo = InnerNode.InnerText
End If
If (InnerNode.Name = "cUF" Or outerNode.Name = "cUF") Then
StrRetNota.cUF = InnerNode.InnerText
End If
If (InnerNode.Name = "nRec" Or outerNode.Name = "nRec") Then
StrRetNota.nRec = InnerNode.InnerText
End If
If (InnerNode.Name = "dhRecbto" Or outerNode.Name = "dhRecbto") Then
StrRetNota.dhRecbto = InnerNode.InnerText
End If
If (InnerNode.Name = "tMed" Or outerNode.Name = "tMed") Then
StrRetNota.tMed = InnerNode.InnerText
End If
If (InnerNode.Name = "protNFe" Or outerNode.Name = "protNFe") Then
For Each n As XmlNode In InnerNode
If (n.Name = "infProt" Or InnerNode.Name = "infProt") Then
For Each n2 As XmlNode In n
If (n2.Name = "tpAmb" Or n.Name = "tpAmb") Then
StrRetNota.protNFE.tpAmb = n.InnerText
End If
If (n2.Name = "verAplic" Or n.Name = "verAplic") Then
StrRetNota.protNFE.verAplic = n.InnerText
End If
If (n2.Name = "cStat" Or n.Name = "cStat") Then
StrRetNota.protNFE.cStat = n.InnerText
End If
If (n2.Name = "xMotivo" Or n.Name = "xMotivo") Then
StrRetNota.protNFE.xMotivo = n.InnerText
End If
If (n2.Name = "chNFe" Or n.Name = "chNFe") Then
StrRetNota.protNFE.chNFe = n.InnerText
End If
If (n2.Name = "digVal" Or n.Name = "digVal") Then
StrRetNota.protNFE.digVal = n.InnerText
End If
If (n2.Name = "dhRecbto" Or n.Name = "dhRecbto") Then
StrRetNota.protNFE.dhRecbto = n.InnerText
End If
If (n2.Name = "nProt" Or n.Name = "nProt") Then
StrRetNota.protNFE.nProt = n.InnerText
End If
Next
End If
Next
End If
Next
Next
'MsgBox(StrRetNota.protNFE.cStat & " - " & StrRetNota.protNFE.xMotivo & " - " & StrRetNota.protNFE.tpAmb)
Return StrRetNota
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "")
Return Nothing
End Try
End Function
RICABU,
Obrigado por compartilhar, eu ajustei a rotina de envio alterando a estrutura para RetRetorno inves de RetEnvio... Gambiarra, mas pra mim funcionou rs.
Quero aproveitar para agradecer a todos aqui do forum, eu não sou programador, sou contador e gosto muito da area de tecnologia, mas atuo mais na contabilidade e como key user SAP FI/CO.
Em um passado eu montei um escritorio e queria elaborar um programa para implantar nos clientes, e comecei a estudar VB.NET, tinha familiaridade porque usava VBA, e achei esse forum aqui.
Fiz um piloto de emissão de nota, e como case implantei na empresa do meu irmão kkkk, e ele usa ate hoje, eu descontinuei o projeto, foquei na contabilidade e no ERP SAP como key-user e funcional, mas sempre gostei muito de programação.
Pega algo e ficar horas ali quebrando a cabeça, qd vc ve o dia já foi embora e vc ainda ta no pique, ai qd funciona é top, muito boa a sensação, e com pessoas como vcs que sempre estão dispostos a compartilhar ajuda demais.
Obrigado a todos que compartilham seus conhecimentos e colaboram com o crescimento profissional, vcs estão de parabens.
Abraço
Obrigado por compartilhar, eu ajustei a rotina de envio alterando a estrutura para RetRetorno inves de RetEnvio... Gambiarra, mas pra mim funcionou rs.
Quero aproveitar para agradecer a todos aqui do forum, eu não sou programador, sou contador e gosto muito da area de tecnologia, mas atuo mais na contabilidade e como key user SAP FI/CO.
Em um passado eu montei um escritorio e queria elaborar um programa para implantar nos clientes, e comecei a estudar VB.NET, tinha familiaridade porque usava VBA, e achei esse forum aqui.
Fiz um piloto de emissão de nota, e como case implantei na empresa do meu irmão kkkk, e ele usa ate hoje, eu descontinuei o projeto, foquei na contabilidade e no ERP SAP como key-user e funcional, mas sempre gostei muito de programação.
Pega algo e ficar horas ali quebrando a cabeça, qd vc ve o dia já foi embora e vc ainda ta no pique, ai qd funciona é top, muito boa a sensação, e com pessoas como vcs que sempre estão dispostos a compartilhar ajuda demais.
Obrigado a todos que compartilham seus conhecimentos e colaboram com o crescimento profissional, vcs estão de parabens.
Abraço
Faça seu login para responder