FONTE NFE VB.NET
Fiz da seguinte forma ,
Doc_VisualizarDanfe.PrinterSettings.PrinterName = [Ô]Bullzip PDF Printer[Ô]
Doc_VisualizarDanfe.PrinterSettings.PrintToFile = True
Doc_VisualizarDanfe.PrinterSettings.PrintFileName = [Ô]c:\xxxxx.pdf[Ô]
Doc_VisualizarDanfe.Print()
Gera o arquivo pdf , mas quando vou abrir ele me fala que está corrompido .
Sou novo em VB, sendo que só programava em VBA. Alguém tem o projeto desse tópico que pode me passar para aprender?
Const PDF_PRINTERNAME As String = [Ô]Bullzip PDF Printer[Ô]
Const PRINTER_PROGID As String = [Ô]Bullzip.PDFPrinterSettings[Ô]
Dim obj As New Object
obj = CreateObject(PRINTER_PROGID)
obj.SetValue([Ô]Output[Ô], [Ô]nomenota.pdf[Ô])
obj.SetValue([Ô]ConfirmOverwrite[Ô], [Ô]no[Ô])
obj.SetValue([Ô]ShowSaveAS[Ô], [Ô]never[Ô])
obj.SetValue([Ô]ShowSettings[Ô], [Ô]never[Ô])
obj.SetValue([Ô]ShowPDF[Ô], [Ô]no[Ô])
obj.SetValue([Ô]RememberLastFileName[Ô], [Ô]no[Ô])
obj.SetValue([Ô]RememberLastFolderName[Ô], [Ô]no[Ô])
obj.WriteSettings(True)
PrintDialog1.Document.DefaultPageSettings.PrinterSettings.PrinterName = PDF_PRINTERNAME
PrintDialog1.Document.Print()
Dim runonce As String
runonce = obj.GetSettingsFileName(True)
While Dir(runonce, FileAttribute.Normal) <> [Ô][Ô]
Sleep(100)
End While
Citação::
Boa tarde
Eu estou trabalhando em um projeto para consultar a situação das NFe,
Estou utilizando o VS 2008 com o VB.NET,
Criei o projeto adicionei o WEBReference do SVRS e criei as instruções para que o sistema me retorne a situação da NFe, quando eu realizo uma pesquisa com uma chave de acesso do RS o sistema retorna a situação exata da NFe, porem se eu consultar uma chave de acesso de SC ele me retorna o erro 226 [Ô]Rejeicao: Codigo da UF do Emitente diverge da UF autorizadora[Ô], lembrando que SC faz parte do SVRS, alguem sabe o que devo alterar para corrigir este ponto?
Código:
Dim XMLConteudo As String
Dim chave As String = TextBox1.Text
XMLConteudo = [Ô]<?xml version=[Ô] & Chr(34) & [Ô]1.0[Ô] & Chr(34) & [Ô] encoding=[Ô] & Chr(34) & [Ô]UTF-8[Ô] & Chr(34) & [Ô] ?><consSitNFe xmlns=[Ô] & Chr(34) & [Ô]http://www.portalfiscal.inf.br/nfe[Ô] & Chr(34) & [Ô] xmlns:ds=[Ô] & Chr(34) & [Ô]http://www.w3.org/2000/09/xmldsig#[Ô] & Chr(34) & [Ô] versao=[Ô] & Chr(34) & [Ô]2.00[Ô] & Chr(34) & [Ô]><tpAmb>1</tpAmb><xServ>CONSULTAR</xServ><chNFe>[Ô] + TextBox1.Text + [Ô]</chNFe></consSitNFe>[Ô]
Dim myXMLDoc As New XmlDocument()
myXMLDoc.PreserveWhitespace = True
myXMLDoc.LoadXml(XMLConteudo)
[ô]carrego o conteudo do XML...
Dim xmlDados As XmlNode
xmlDados = myXMLDoc.DocumentElement
Dim obj As New SVRS.NfeConsulta2
Dim cabec As New SVRS.nfeCabecMsg
cabec.cUF = [Ô]43[Ô]
cabec.versaoDados = [Ô]2.00[Ô]
obj.nfeCabecMsgValue = cabec
[ô]seleciona o certificado.
Dim cert As New X509Certificate2([Ô]c:certi.pfx[Ô], [Ô]******[Ô], X509KeyStorageFlags.MachineKeySet Or X509KeyStorageFlags.PersistKeySet)
Dim store As New X509Store(StoreName.My, StoreLocation.LocalMachine)
Dim collection As New X509Certificate2Collection
Dim oX509Cert As X509Certificate2 = New X509Certificate2()
store.Open(OpenFlags.ReadWrite)
store.Add(cert)
collection = store.Certificates
oX509Cert = collection.Item(0)
Dim certificado As X509Certificate2 = oX509Cert
obj.ClientCertificates.Add(certificado)
TextBox3.Text = obj.nfeConsultaNF2(xmlDados).OuterXml
Bom dia, alguem poderia me ajudar com o problema acima?
Muito Obrigado, funcionou perfeitamente !!!!
Eu ia fazer uma pergunta exatamente sobre como consultar a situação de uma NFe!!!
Vou estudar seu post.
Mas já tenho algumas dúvidas:
Eu terei que utilizar o certificado digital da minha empresa para acessar apenas a situação? Continuando nesse pensamento, eu vi no seu código que você declara variáveis do tipo: X509Certificate2. Como eu faço para chamar isso no VB.net? Você utiliza alguma biblioteca do VB.net (include alguma_coisa?). Aqui utilizo o smart card via porta USB. Alguém sabe como faço para usar isso?
Eu consigo ler normalmente o xml com as bibliotecas do VB, mas não faço a menor ideia de como consultar a situação do mesmo. Desculpe se fiz perguntas banais, mas como programador solo e amador, falta tempo para estudar a fundo isso, já que minha função verdadeira é auxiliar de escritório! Qualquer ajuda é bem vinda!
Citação::
Putzzzz Vanderval!
Eu ia fazer uma pergunta exatamente sobre como consultar a situação de uma NFe!!!
Vou estudar seu post.
Mas já tenho algumas dúvidas:
Eu terei que utilizar o certificado digital da minha empresa para acessar apenas a situação? Continuando nesse pensamento, eu vi no seu código que você declara variáveis do tipo: X509Certificate2. Como eu faço para chamar isso no VB.net? Você utiliza alguma biblioteca do VB.net (include alguma_coisa?). Aqui utilizo o smart card via porta USB. Alguém sabe como faço para usar isso?
Eu consigo ler normalmente o xml com as bibliotecas do VB, mas não faço a menor ideia de como consultar a situação do mesmo. Desculpe se fiz perguntas banais, mas como programador solo e amador, falta tempo para estudar a fundo isso, já que minha função verdadeira é auxiliar de escritório! Qualquer ajuda é bem vinda!
Eu terei que utilizar o certificado digital da minha empresa para acessar apenas a situação?
R.: Sim, para acessar o WebService do SEFAZ você vai precisar de um certificado digital.
Continuando nesse pensamento, eu vi no seu código que você declara variáveis do tipo: X509Certificate2. Como eu faço para chamar isso no VB.net? Você utiliza alguma biblioteca do VB.net (include alguma_coisa?)
R.: Para ler esse tipo de vaviavel voce deve adicionar o [Ô]Imports System.Security.Cryptography.X509Certificates.[Ô]
Quanto ao resto é só adicionar uma [Ô]Web Reference[Ô] apontando para o webservice do SEFAZ referente a consulta e adequar o seu código ao meu código fonte, lembrando... que o meu código só esta funcionando para consultar notas emitidas do RS e que ainda estou precisando da preciosa ajuda de vocês, valeuu
O seu código vai ser de grande ajuda com certeza!
Boa sorte para você. E Quem sabe eu consigo fazer alguma coisa ainda hoje com o seu código fonte(começo de mês sempre é atolado para mim). Novamente muito obrigado!
Eu peguei o manual de integração e comecei a estudar a parte 4.5 - Web Service NFEConsulta Protocolo. E também baseado no código fonte do Vanderval.
Como eu já tinha criado várias rotinas anteriores para ler um xml e pegar determinadas informações, adaptei uma delas para pegar a chave do xml { node = xpathNav.SelectSingleNode([Ô]//nfe:nfeProc/nfe:protNFe/nfe:infProt/nfe:chNFe[Ô], ns) }
Até aà beleza... aà comecei a implementar o código fonto do Vandeval, a montagem do XML parece estar correta de acordo com o manual que tenho. o problema está nas linhas:
Dim obj As New SVRS.NfeConsulta2
Dim cabec As New SVRS.nfeCabecMsg
Eu não faço a menor idéia do que seja SVRS... deve ser o SEFAZ do Rio Grande do Sul???
Alguém poderia iluminar o meu caminho??? Dar algumas dicas de como sair dessa cilada?
Aproveitando, vou antecipar uma outra questão: O Certificado que usam aqui é um de cartão via porta USB. O Código fonte do Vanderval trata disso??? Ou simplesmente o web service busca isso sozinho depois?
Desde já, obrigado pela atenção!