FONTE NFE VB.NET

VAGUINER 04/02/2014 14:00:31
#434219
Olá Pessoal Boa Tarde!

Estou com problemas para enviar em produção, em homologação eu consegui enviar, retornou o numero de protocolo, mas em produção quando eu envio não retorna nada, o código e o que foi postado nesse site.

tem algum prazo depois do credenciamento para emitir em produção?

VAGUINER 04/02/2014 23:33:20
#434271
já resolvi.
INTEGRATIOS 06/02/2014 08:59:01
#434336
Citação:

:
já resolvi.



VAGUINER,

Posta qual foi a solução.

Obrigado.

Integratios
VAGUINER 06/02/2014 19:49:50
#434399
Então Integratios, o erro estava no retorno da consulta e no tempo de retorno que é mais demorado no ambiente de produçao. na consulta era a tag amb que estava definida em 2, coloquei um variavel e resolveu, e no retorno eu aumentei o timer do retorno da consulta.

Agora estou com problemas no cancelamento por evento e carta de correção, está retornando o erro:
Rejeição: versão dos dados e superior a versão vigente, pelo que pesquisei o erro está na criação do xml, está faltando essas 2 tags : <envEvento xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô] versao=[Ô]1.00[Ô]>
<idLote>00000002311801</idLote> tentei colocar mas retorna erro, tentei criar a xml por string mas retorna erro na tag <dhEvento> sê alguem poder me ajudar eu agradeço.
TABPRS 11/02/2014 17:43:51
#434572
Boa tarde!

Andei olhando esses fontes da NFe que foi desenvolvido pelos colegas, e verifique que não tem a função de gerar o pdf e enviar por e-mail, alguém está desenvolvendo ou precisa de colaboração para desenvolver?

Obrigado.
SANKARVA 11/02/2014 19:57:18
#434583
VAGUINER segue trecho do código onde gero o cancelamento por evento, o código esta escrito em vb6.

MyBuffer = [Ô]<evento xmlns=[Ô] & Chr(34) & [Ô]http://www.portalfiscal.inf.br/nfe[Ô] & Chr(34) & [Ô] versao=[Ô] & Chr(34) & [Ô]1.00[Ô] & Chr(34) & [Ô]>[Ô]

[ô] DT. 05/11/13 enquanto vigorar o horario de verao a tag do dhEvento tem que ser [Ô]-02:00[Ô]
[ô] qdo cessar o horario de verao voltar a tag para [Ô]-03:00[Ô]
[ô] se nao fizer isso a sefaz recusa o evento dizendo que a data do evento nao pode ser maior que a data do processamento.

MyBuffer = MyBuffer & [Ô]<infEvento Id=[Ô] & Chr(34) & [Ô]ID[Ô] & IdTagCancelamento & Chr(34) & [Ô]>[Ô] & _
[Ô]<cOrgao>35</cOrgao>[Ô] & _
[Ô]<tpAmb>[Ô] & AmbienteNfe & [Ô]</tpAmb>[Ô] & _
[Ô]<CNPJ>99999999999999</CNPJ>[Ô] & _
[Ô]<chNFe>[Ô] & ChaveAcesso & [Ô]</chNFe>[Ô] & _
[Ô]<dhEvento>[Ô] & Format(Now(), [Ô]yyyy-mm-ddThh:mm:ss[Ô]) & [Ô]-02:00[Ô] & [Ô]</dhEvento>[Ô] & _
[Ô]<tpEvento>110111</tpEvento>[Ô] & _
[Ô]<nSeqEvento>1</nSeqEvento>[Ô] & _
[Ô]<verEvento>1.00</verEvento>[Ô] & _
[Ô]<detEvento versao=[Ô] & Chr(34) & [Ô]1.00[Ô] & Chr(34) & [Ô]>[Ô] & _
[Ô]<descEvento>Cancelamento</descEvento>[Ô] & _
[Ô]<nProt>[Ô] & Protocolo & [Ô]</nProt>[Ô] & _
[Ô]<xJust>[Ô] & MotivoCancelamento & [Ô]</xJust>[Ô] & _
[Ô]</detEvento>[Ô] & _
[Ô]</infEvento>[Ô]

MyBuffer = MyBuffer & [Ô]</evento>[Ô]

após criar o xml acima, no vb.net eu coloco ele dentro do lote, para posteriormente assinar e transmitir.

LoteXml = [Ô]<?xml version=[Ô] & Chr(34) & [Ô]1.0[Ô] & Chr(34) & [Ô] encoding=[Ô] & Chr(34) & [Ô]UTF-8[Ô] & Chr(34) & _
[Ô] standalone=[Ô] & Chr(34) & [Ô]no[Ô] & Chr(34) & _
[Ô]?><envEvento xmlns=[Ô] & Chr(34) & [Ô]http://www.portalfiscal.inf.br/nfe[Ô] & Chr(34) & _
[Ô] versao=[Ô] & Chr(34) & [Ô]1.00[Ô] & Chr(34) & [Ô]><idLote>[Ô] & sacLote(cArq) & [Ô]</idLote>[Ô] & myBuffer & [Ô]</envEvento>[Ô]

qualquer dúvida estamos ai.
VAGUINER 11/02/2014 23:23:41
#434598
Obrigado Sankarva pela resposta, mas já tinha resolvido eu estava criando o xml como está no manual com as tags <envEvento xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô] versao=[Ô]1.00[Ô]> e <idLote>00000002311801</idLote>
mas quando eu assinava, só assinava na tag <evento> tentei assinar na tag <infEvento> e depois colocar as outras tags mas dava erro de validação, resolvi fazer igual ao do projeto e deu certo.

Mas valeu pela informação do fuso horário, eu tinha que atrasar a hora para funcionar.

Eu também estou usando o vb6 só que criei uma dll, está funcionando 100%.
VAGUINER 11/02/2014 23:29:57
#434599
TABPRS, referente ao pdf é só imprimir por uma impressora virtua;l enviar por e-mail e mais fácil ainda no vb.net.
DANIELCPAETE 12/02/2014 08:41:33
#434608
Eu utilizo o bulzip para impressão do PDF
SANKARVA 12/02/2014 10:00:09
#434615
Imprimir o DANFE em PDF


Public Sub ImprimeDANFE()

Dim Relatorio As New PrintDocument, Previa As New PrintPreviewDialog

Try
XmlDoc.Load(_PathXml) [ô] carrega o arquivo da nfe para a memoria
Catch ex As Exception
MsgBox([Ô]Problemas com o Xml da NF-e.[Ô], MsgBoxStyle.Critical, [Ô]Atenção Sr. Usuário[Ô])
Exit Sub
End Try

QtdItensDanfe = PegaQtdItensDanfe() [ô] guarda o total de produtos constantes no danfe
SetaTotalFolha() [ô] calcula qtas folhas seram necessarias para imprimir o danfe

AddHandler Relatorio.BeginPrint, AddressOf InicioImpressao [ô]ASSOCIA OS EVENTOS DE IMPRESSÃO
AddHandler Relatorio.PrintPage, AddressOf PrinterXmlNFe

Relatorio.DefaultPageSettings.Landscape = False [ô] imprime nfe na orientacao retrato

If _saida = [Ô]V[Ô] Then [ô] quer ver a impressao na tela

Previa.Document = Relatorio

Previa.FormBorderStyle = FormBorderStyle.Sizable
Previa.PrintPreviewControl.Zoom = 1 [ô] 100%
Previa.AutoSizeMode = AutoSizeMode.GrowOnly

Previa.ShowDialog()

Previa.Close()
Previa.Dispose()
Relatorio.Dispose()

ElseIf _saida = [Ô]PDF[Ô] Then

Dim obj As New Object

obj = CreateObject([Ô]Bullzip.PDFPrinterSettings[Ô]) [ô] tem que ter a impressora bullzip instalada

obj.SetValue([Ô]Output[Ô], _caminhoPdf & _ChaveAcesso & [Ô].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)

Relatorio.PrinterSettings.PrinterName = [Ô]Bullzip PDF Printer[Ô]
Relatorio.Print()
Relatorio.Dispose()

ElseIf _saida = [Ô]P[Ô] Then

Try

Relatorio.Print()
Relatorio.Dispose()

Catch ex As Exception

MsgBox([Ô]Problemas com a Impressora.[Ô])

End Try

End If

End Sub

------------------------------------------------------------------------------------------------------------
Rotina para enviar o email

Private Sub DisparaEmail()

Dim EnviaEmail As New EnviaEmail, CaminhoXml As String = String.Empty

EnviaEmail.Destinatario = ConnectionFactory.PegaInfoBancoDados([Ô]Select a.Email From Clientes a, Conhecimento b [Ô] & _
[Ô]Where a.Documento = b.Destinatario and b.NumeroCt = [ô][Ô] & dgvGride.Item(4, LinhaGride).Value & [Ô][ô][Ô], [Ô][Ô])

Dim ComCopia As String = ConnectionFactory.PegaInfoBancoDados([Ô]Select a.E_MailContador From Empresa a, Conhecimento b [Ô] & _
[Ô]Where a.Cnpj = b.Emitente and b.NumeroCt = [ô][Ô] & dgvGride.Item(4, LinhaGride).Value & [Ô][ô][Ô], [Ô][Ô])

ComCopia = ComCopia & IIf(ComCopia <> String.Empty, [Ô];[Ô], [Ô][Ô]) & _
ConnectionFactory.PegaInfoBancoDados([Ô]Select a.E_mailAdicional From Clientes a, Conhecimento b [Ô] & _
[Ô]Where a.Documento = b.Destinatario and b.NumeroCt = [ô][Ô] & dgvGride.Item(4, LinhaGride).Value & [Ô][ô][Ô], [Ô][Ô])
EnviaEmail.ComCopia = ComCopia
EnviaEmail.ComCopiaOculta = [Ô]CC@gmail.com[Ô]
EnviaEmail.AssuntoEmail = [Ô]Xml autorizado Nº [Ô] & dgvGride.Item(4, LinhaGride).Value
EnviaEmail.CorpoEmail = [Ô]Segue Xml Autorizado do Conhecimento Nº [Ô] & dgvGride.Item(4, LinhaGride).Value
EnviaEmail.EnderecoEmail = ConnectionFactory.PegaInfoBancoDados([Ô]Select Conteudo From ArqIni Where ArqIni = [ô]EMAIL[ô] and Chave = [ô]SETUP[ô] and Parametro = [ô]REMETENTE[ô][Ô], [Ô][Ô])
EnviaEmail.NomeSerExibido = ConnectionFactory.PegaInfoBancoDados([Ô]Select a.Fantasia From Empresa a, Conhecimento b [Ô] & _
[Ô]Where a.Cnpj = b.Emitente and b.NumeroCt = [ô][Ô] & dgvGride.Item(4, LinhaGride).Value & [Ô][ô][Ô], [Ô][Ô])
EnviaEmail.NomeUsuario = ConnectionFactory.PegaInfoBancoDados([Ô]Select Conteudo From ArqIni Where ArqIni = [ô]EMAIL[ô] and Chave = [ô]SETUP[ô] and Parametro = [ô]NOMEUSUARIO[ô][Ô], [Ô][Ô])
EnviaEmail.Senha = ConnectionFactory.PegaInfoBancoDados([Ô]Select Conteudo From ArqIni Where ArqIni = [ô]EMAIL[ô] and Chave = [ô]SETUP[ô] and Parametro = [ô]SENHA[ô][Ô], [Ô][Ô])

CaminhoXml = PastaEmitido & IIf(AmbienteCTe = [Ô]1[Ô], [Ô]PRODUCAO\[Ô], [Ô]HOMOLOGACAO\[Ô]) & _
[Ô]A_[Ô] & txtData.Text.Substring(6, 4) & [Ô]\M_[Ô] & txtData.Text.Substring(3, 2) & [Ô]\D_[Ô] & txtData.Text.Substring(0, 2) & [Ô]\[Ô]

EnviaEmail.ArrayAnexo = {CaminhoXml & dgvGride.Item(11, LinhaGride).Value & [Ô]-cte.xml[Ô]}

EnviaEmail.Host = ConnectionFactory.PegaInfoBancoDados([Ô]Select Conteudo From ArqIni Where ArqIni = [ô]EMAIL[ô] and Chave = [ô]SETUP[ô] and Parametro = [ô]HOST[ô][Ô], [Ô][Ô])
EnviaEmail.Porta = ConnectionFactory.PegaInfoBancoDados([Ô]Select Conteudo From ArqIni Where ArqIni = [ô]EMAIL[ô] and Chave = [ô]SETUP[ô] and Parametro = [ô]PORTA[ô][Ô], 0)
EnviaEmail.ssl = ConnectionFactory.PegaInfoBancoDados([Ô]Select Conteudo From ArqIni Where ArqIni = [ô]EMAIL[ô] and Chave = [ô]SETUP[ô] and Parametro = [ô]SSL[ô][Ô], [Ô][Ô]) = [Ô]S[Ô]

EnviaEmail.Envia()

End Sub

--------------------------------------------------------------------------------------------------------------
Classe de envio de e-mail

Imports System.Net.Mail

Public Class EnviaEmail

#Region [Ô]Propriedades da Classe[Ô]

Private _EnderecoEmail As String
Public Property EnderecoEmail() As String
Get
Return _EnderecoEmail
End Get
Set(ByVal value As String)
_EnderecoEmail = value
End Set
End Property

Private _NomeSerExibido As String = String.Empty
Public WriteOnly Property NomeSerExibido() As String
Set(ByVal value As String)
_NomeSerExibido = value
End Set
End Property

Private _Destinatario As String
Public Property Destinatario() As String
Get
Return _Destinatario
End Get
Set(ByVal value As String)
_Destinatario = value
End Set

End Property

Private _ComCopia As String = String.Empty
Public WriteOnly Property ComCopia() As String
Set(ByVal value As String)
_ComCopia = value
End Set
End Property

Private _comCopiaOculta As String
Public Property ComCopiaOculta() As String
Get
Return _comCopiaOculta
End Get
Set(ByVal value As String)
_comCopiaOculta = value
End Set
End Property

Private _AssuntoEmail As String
Public WriteOnly Property AssuntoEmail() As String
Set(ByVal value As String)
_AssuntoEmail = value
End Set
End Property

Private _CorpoEmail As String
Public WriteOnly Property CorpoEmail() As String
Set(ByVal value As String)
_CorpoEmail = value
End Set
End Property

Private _ArrayAnexo As Array = Nothing
Public WriteOnly Property ArrayAnexo() As Array
Set(ByVal value As Array)
_ArrayAnexo = value
End Set
End Property

Private _host As String
Public WriteOnly Property Host() As String
Set(ByVal value As String)
_host = value
End Set
End Property

Private _porta As Integer
Public WriteOnly Property Porta() As Integer
Set(ByVal value As Integer)
_porta = value
End Set
End Property

Private _nomeUsuario As String = String.Empty
Public WriteOnly Property NomeUsuario() As String
Set(ByVal value As String)
_nomeUsuario = value
End Set
End Property

Private _senha As String = String.Empty
Public WriteOnly Property Senha() As String
Set(ByVal value As String)
_senha = value
End Set
End Property

Private _sucesso As Boolean
Public ReadOnly Property Sucesso() As Boolean
Get
Return _sucesso
End Get
End Property

Private _ssl As Boolean
Public Property SSL() As Boolean
Get
Return _ssl
End Get
Set(ByVal value As Boolean)
_ssl = value
End Set
End Property

#End Region

#Region [Ô]Metodos da Classe[Ô]

Public Sub Envia()

Dim SendMail As New System.Net.Mail.MailMessage()

Try
SendMail.From = New MailAddress(_EnderecoEmail, _NomeSerExibido, System.Text.Encoding.UTF8)
SendMail.To.Add(_Destinatario)

Catch ex As Exception

End Try

If _ComCopia <> String.Empty Then

_ComCopia = _ComCopia.Replace([Ô];[Ô], [Ô],[Ô]) [ô] troca ; por ,

Try [ô] previne o user ter info um email invalido
SendMail.CC.Add(_ComCopia)
Catch ex As Exception

End Try

End If

If _comCopiaOculta <> String.Empty Then SendMail.Bcc.Add(_comCopiaOculta)

If _AssuntoEmail <> String.Empty Then SendMail.Subject = _AssuntoEmail
If _CorpoEmail <> String.Empty Then SendMail.Body = _CorpoEmail

If _ArrayAnexo IsNot Nothing Then

For x As Integer = 0 To UBound(_ArrayAnexo)
SendMail.Attachments.Add(New Attachment(_ArrayAnexo(x))) [ô] fazer um array de anexos
Next

End If

Try

[ô]Dim SmtpClient As New System.Net.Mail.SmtpClient(_host, _porta)
Dim SmtpClient As New System.Net.Mail.SmtpClient
SmtpClient.Host = _host
SmtpClient.Port = _porta

SmtpClient.
Página 166 de 228 [2276 registro(s)]
Faça seu login para responder