FONTE NFE VB.NET

LEANTRONIC 16/03/2012 19:47:11
#397341
Eu achei estranho, to utilizando o projeto no meu sistema, hj fui emitir uma NFe com ele e primeiro mandei validar, deu OK
Ai qndo fui mandar enviar o lote ele enviou porém não retornou mensagem nenhuma como se nada tivesse acontecido, ai fui tentar emitir denovo e derrepente veio a msg falando q a NFe tava com duplicidade e fui no site consultar a nfe com a chave e tava lá do jeito q eu tinha tirado, porém não gerou o XML e nem falou q foi tirada com exito :/

Pior q depois começou a funcionar normal, to preocupado de acontecer denovo
SANKARVA 19/03/2012 12:34:46
#397500
LEANTRONIC, isso já aconteceu comigo tambem, devido a instabilidade da internet, sugiro a voce a executar a consulta ao lote novamente.

wsMsg1 = New ProdNfeRetRecepcao2.NfeRetRecepcao2 [ô]CABEÇALHO USADA PARA ENVIO DE LOTE
wsMsg1.nfeCabecMsgValue = cab
wsMsg1.Timeout = 100000
wsMsg1.SoapVersion = SoapProtocolVersion.Soap12
wsMsg1.ClientCertificates.Add(Form1.sacCertificadoDigital)

dados.LoadXml([Ô]<?xml version=[Ô][Ô]1.0[Ô][Ô] encoding=[Ô][Ô]UTF-8[Ô][Ô]?><consReciNFe xmlns=[Ô][Ô]http://www.portalfiscal.inf.br/nfe[Ô][Ô] versao=[Ô][Ô]2.00[Ô][Ô]><tpAmb>1</tpAmb><nRec>[Ô] & NAutorizacao & [Ô]</nRec></consReciNFe>[Ô])

strRetorno = wsMsg1.nfeRetRecepcao2(dados) [ô]ENVIA CONSULTA PARA SEFAZ E OBTEM RETORNO EM FORMATO STRING


Abraço
LEANTRONIC 19/03/2012 21:14:56
#397573
Cara entendi e fico aliviado que tem uma solução para isso, não entendi oq faço com esse codigo... tipo pelo oq vi ele a função (ConsultaRecLote2) que retorna as informações de autorizado e Gera a Nota, vc me aconselha é criar uma segunda função dessa em caso de falhas?

Seria +/- isso?

Dim Caminho As String
Dim WebS As New C_WebService(UrlAcesso)
Dim StrRetorno As RetEnvio
Dim RetC As SGC.C_WebService.RetRecibo
[ô]ENVIA LOTE DE NOTAS VERSÃO 2.00
StrRetorno = WebS.EnviaLote2(My.Application.Info.DirectoryPath & [Ô]\NFE\[Ô] & CAMINHONFEGERADA.Text)
MsgBox(StrRetorno.xMotivo)

Dim RetonoConsulta As New RetRetorno

RetonoConsulta = WebS.ConsultaRecLote2(StrRetorno.nRec)
RetonoConsulta = WebS.ConsultaRecLote2_Tentativa2(StrRetorno.nRec)


For Each RetC In RetonoConsulta.L_Retornos
MsgBox(RetC.xMotivo)
If RetC.xMotivo = [Ô]Autorizado o uso da NF-e[Ô] Then
LEANTRONIC 19/03/2012 21:24:24
#397574
Ou dentro do proprio Try do ConsultaRecLote2 colocar o codigo


wsMsg1 = New ProdNfeRetRecepcao2.NfeRetRecepcao2 [ô]CABEÇALHO USADA PARA ENVIO DE LOTE
wsMsg1.nfeCabecMsgValue = cab
wsMsg1.Timeout = 100000
wsMsg1.SoapVersion = SoapProtocolVersion.Soap12
wsMsg1.ClientCertificates.Add(Form1.sacCertificadoDigital)

dados.LoadXml([Ô]<?xml version=[Ô][Ô]1.0[Ô][Ô] encoding=[Ô][Ô]UTF-8[Ô][Ô]?><consReciNFe xmlns=[Ô][Ô]http://www.portalfiscal.inf.br/nfe[Ô][Ô] versao=[Ô][Ô]2.00[Ô][Ô]><tpAmb>1</tpAmb><nRec>[Ô] & NAutorizacao & [Ô]</nRec></consReciNFe>[Ô])

strRetorno = wsMsg1.nfeRetRecepcao2(dados) [ô]ENVIA CONSULTA PARA SEFAZ E OBTEM RETORNO EM FORMATO STRING

Junto com o outro pra executar 2 vezes?

valeu cara
SANKARVA 20/03/2012 19:47:33
#397741
LEANTRONIC, voce nao precisa fazer duas funcoes para isso. No meu caso eu envio o lote a sefaz e ja pego o retorno. Por ser muito rapido, talvez a nota ainda esteja em processamento ou ainda nao há nada a retornar, entao tenho um timer, para ficar executando a rotina ConsutaRecLote2 até ober um retorno de falha ou sucesso.
se a sua rotina ConsultaRecLote2 esta separada do codigo de enviar o lote, basta chama-la novamente dentro de um timer.
abraco.
LEANTRONIC 20/03/2012 21:18:53
#397750
Entendi cara, vou procurar fazer isso mesmo, valeu mesmo :D
Vai me ajudar a evitar muita dor de cabeça
LEANTRONIC 20/03/2012 21:43:39
#397754
Citação:

:
LEANTRONIC, voce nao precisa fazer duas funcoes para isso. No meu caso eu envio o lote a sefaz e ja pego o retorno. Por ser muito rapido, talvez a nota ainda esteja em processamento ou ainda nao há nada a retornar, entao tenho um timer, para ficar executando a rotina ConsutaRecLote2 até ober um retorno de falha ou sucesso.
se a sua rotina ConsultaRecLote2 esta separada do codigo de enviar o lote, basta chama-la novamente dentro de um timer.
abraco.




Cara desculpa a minha ignorancia, é que nunca usei mto esses controles mas pensei em fazer +/- oq vc falou ai, porém em vez de usar um timer eu usaria um while tipo:


While StrRetorno.xMotivo = [Ô][Ô]
StrRetorno = WebS.EnviaLote2(My.Application.Info.DirectoryPath & [Ô]\NFE\[Ô] & CAMINHONFEGERADA.Text)
End While

ai na hora que tivesse qualquer tipo de retorno ele sai do while e finaliza a NFe oq acha?
SANKARVA 21/03/2012 10:07:04
#397800
LEANTRONIC a solucao com o loop While pode ser utilizada tambem, embora nao seja adequada pois voce prende o processamento do seu sistema.

While StrRetorno.xMotivo = [Ô][Ô]
application.DoEvents() [ô] acrescente essa linha
StrRetorno = WebS.EnviaLote2(My.Application.Info.DirectoryPath & [Ô]\NFE\[Ô] & CAMINHONFEGERADA.Text)
End While

abraco
LEANTRONIC 21/03/2012 18:48:04
#397901





Valeuu cara, como falei, isso vai evitar mtos problemas
NILSONTRES 22/03/2012 22:10:25
#398013
Formulario de Segurança,
Alguem já comprou, é preciso mesmo ? Não pode ser em papel comun ?
Página 120 de 228 [2276 registro(s)]
Faça seu login para responder