Jump to content
Fivewin Brasil

Emissor de Nota Fiscal Eletrônica-Erro inesperado


kapiaba

Recommended Posts

Emissor de Nota Fiscal Eletrônica - Erro inesperado na execução!

Por acaso, alguém saberia me dizer do que se trata este erro?

Se houver como corrigir, como faço?

Gilmer, a classe está quebrando e não deixa continuar...

Você já passou por isso? Como resolver?

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

joao@pleno.com.br

Fone: (11) 3106-2832 / 8243-5632

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Link to comment
Share on other sites

Emissor de Nota Fiscal Eletrônica - Erro inesperado na execução!

Por acaso, alguém saberia me dizer do que se trata este erro?

Se houver como corrigir, como faço?

Gilmer, a classe está quebrando e não deixa continuar...

Você já passou por isso? Como resolver?

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

joao@pleno.com.br

Fone: (11) 3106-2832 / 8243-5632

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Link to comment
Share on other sites

ERRO: INESPERADO AO TRATAR O XML DO WSOBJECT REFERENCE NOT SET TO AN INSTANCE OF AN OBJECT.

TVONFEUTIL:BUSCANFE

Que dureza!

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

joao@pleno.com.br

Fone: (11) 3106-2832 / 8243-5632

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Link to comment
Share on other sites

citação:

O .Net Framework tá instalado nesta CPU João? A dll está registrada corretamente e para a versão certa que vc está usando?


id=quote>id=quote>

YES, Friend!id=size5>

Está correto no CLIENTE.

Tudo funcionando corretamente... Em uma nota... Pimba!

Erro muito louco!

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

joao@pleno.com.br

Fone: (11) 3106-2832 / 8243-5632

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Link to comment
Share on other sites

citação:

Acho que este pepino quem descasca é o suporte da flexdocs...

icon_smile_sad.gif

assinatura.jpg


id=quote>id=quote>

Obrigado Vailton, vamos esperar o Gilmer ver...

Seria interessante ele repassar isto ao pessoal da FLEXDOCS e ver a saida... VIA CLASSE.

Por aqui, RESUELTO!

Qualquer coisa, falar com Mister Paulo Araújo!

Muchas gracias.

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

joao@pleno.com.br

Fone: (11) 3106-2832 / 8243-5632

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Link to comment
Share on other sites

Amigos,

Só para desabafar e deixar a solução do tópico.

A maioria dos nossos clientes são empresas de cestas básicas e de natal. Nesta época do ano, cada uma delas chega a emitir cerca de 500 notas POR DIA. Umas mais e outras menos. A chance de dar algum problema é imensa, pois não depende só de nós.

Estruturamos o nosso sistema marcando num BD cada fase do processo da NFe.

Quando gerado, alteramos o status para "GER" e habilitamos o botão TRANSMITIR.

Após transmitido, alteramos o status para "ENV" e habilitamos o botão CONSULTA LOTE.

É aí que a coisa pegou. Em 2 clientes nossos a "mardita" da Sefaz retornou o número do RECIBO, com data e hora. Portanto, ela atestou que RECEBEU as Notas.

Só que comprovadamente elas SUMIRAM na base de dados deles.

Quando se consulta o lote num caso desses, fornecendo o número do recibo, dá o erro apontado pelo João.

Só que nós não podemos simplesmente voltar o status para a fase anterior.

A solução foi acrescentar a rotina abaixo num botão "Consulta Status". Ela, ANTES de "voltar" para o status inicial, pesquisa se a nota realmente está ou não na base do Sefaz.


IF CADNFE->STATUS = "ENV" // nfe já transmitida

oNFEUtil:=tVoNFeUtil():New(CADPARAM->UF,val(cTpAmb),cCertificado,wProxy,wUsuario,wSenha,cLicenca,.t.)

NX := oNFEUtil:ConsultaStatus()

If NX = 0

//-> nada a fazer

ELSE

TONE( 900, 2 )

DO CASE

CASE NX = 105

cMensa := ( "em processamento na secretaria da fazenda" )

CASE NX = 107

cMensa := ( "Serviço Paralisado Momentaneamente (curto prazo) " )

CASE NX = 108

cMensa := ( "Serviço Paralisado Momentaneamente (curto prazo) " )

CASE NX = 109

cMensa := ( "Serviço Paralisado sem Previsão de Retorno " )

CASE NX = 281

cMensa := ( "Rejeição: Certificado Transmissor Data Validade" )

OTHERWISE

cMensa := OemToAnsi( "Problemas na TransmissÆo/ConexÆo. " + ;

"Internet Pode Estar com Problemas." )

ENDCASE

oMensa:Refresh()

oRetorno:Refresh()

oRecibo:Refresh()

oDetalhes:Refresh()

//-> Abre Notas Fiscais

SELECT CADNFE

//-> permanecer somente consulta lote/status habilitado

lGerar := .F.

lTransmite := .F.

lConsulta := .T.

lCancela := .F.

lConsStatus := .T.

RETURN NIL

ENDIF

SELECT CADNFE

cChaveAcesso:=alltrim(CADNFE->CHAVEACES)

cMensa:="";cRetorno:="";xRecibo:="";cDetalhes:=""

oMensa:Refresh()

oRetorno:Refresh()

oRecibo:Refresh()

oDetalhes:Refresh()

carq:="REMESSA\nfe"+cChaveAcesso+"-nfe.xml"

cXmlAssinado:=""

cRecibo:=""

nRet:=oNfeUtil:ConsultaNf(cChaveAcesso,cXmlAssinado)

IF oNfeUtil:lAutorizada // nota está na SEFAZ

wtexto:=oNfeUtil:aUltStatus[3]

wpos:=AT("",wTexto)+7

nProtocolo := SUBSTR( wTexto, wPos, 15 )

wposData := AT( "", wTexto ) + 10

cDataNfe := SUBSTR( wtexto, wposData, 10 )

wposHora := AT( "", wTexto ) + 21

cHoraNfe := SUBSTR( wtexto, wposHora, 8 )

cXmlRemessaSemestarassinado:=oNfeUtil:ReadXml(cArq)

cXmlAssinado:=Space(Len(cXmlRemessaSemestarassinado))

oNfeUtil:Assinar(cXmlRemessaSemestarassinado ,"infNFe", @cXmlAssinado)

nRet:=oNfeUtil:ConsultaNf(cChaveAcesso,cXmlAssinado)

oNfe := TVoNFe():New()

oNfe:PegaChaveAcesso(cXmlAssinado)

oNFe:SaveXml(,cXmlAssinado, 2 ) //-> Enviadas - Funcionou OK

oNFe:SaveXml(,oNfeUtil:cXmlProtocolo, 3 ) //-> Protocolos

SELECT CADNFE

RLOCK()

REPL PROTOCOLO WITH nProtocolo

REPL PROTODATA WITH CTOD(SUBS(cDataNfe,9,2)+"/"+SUBS(cDataNfe,6,2)+"/"+SUBS(cDataNfe,1,4))

REPL PROTOHORA WITH cHoraNfe

REPL STATUS WITH "APR"

REPL RETNFE WITH "TR"

COMMIT

UNLOCK

TONE( 900, 2 )

cMensa := OemToAnsi( "CLIENTE: " ) + NOME_CLIENTE_VIEW() + " - " + ;

+ VERIFICA_STATUS_CLIENTE()

cRetorno := "PROT: " + ALLTRIM( CADNFE->PROTOCOLO )

xRecibo := "REC.: " + ALLTRIM( CADNFE->RECIBO )

cChave := ALLTRIM(CADNFE->CHAVEACES)

cGerado := OemToAnsi( "Arquivo XML da Nota Fiscal Eletr“nica " + ;

"Gerada, Est  no Diret¢rio: " ) +CRLF+CRLF

cBackup := OemToAnsi( "Recomenda‡Æo: " +CRLF+CRLF+ ;

"Altamente recomend vel, que se fa‡a, " + ;

"C¢pia de Seguran‡a(BACKUP) Di ria, " + ;

"em um PENDRIVE. " +CRLF+ ;

"Vocˆ pode usar o BRAZIP.EXE ou o " + ;

"WINZIP.EXE ou o PKZIP.EXE " + ;

"Estes compactadores de Arquivos, sÆo " + ;

"gratuitos e podem ser(em) baixados " + ;

"em: http://www.baixaki.com.br " +CRLF+CRLF+ ;

"Contato Sistemas e Processamentos @" + ;

ALLTRIM( STR( D_ANO ) ) + " - " + ;

"http://www.pleno.com.br " +CRLF+ ;

"Todos os direitos reservados." )

//

cXml := cPathNFe := CURDRIVE() + ":\" + GETCURDIR() + ;

"\REMESSA\ENVIADAS\" + ;

ALLTRIM( cChave ) + ;

"nfe.xml" + CRLF + CRLF + ;

"DATA: " + ;

DTOC(CADNFE->DATA ) + ;

+ " - " + ;

"HORA: " + ;

CADNFE->HORA + ;

+ " - " + ;

"PROTOCOLO: " + ;

CADNFE->PROTOCOLO + ;

+ CRLF + ;

"DATA PROT: " + ;

DTOC( CADNFE->PROTODATA ) + ;

+ " - " + ;

"HORA PROT: " + ;

CADNFE->PROTOHORA +CRLF + ;

"RECIBO: " + ;

CADNFE->RECIBO +CRLF+CRLF

cDetalhes := cGerado + cXml + cbackup

oMensa:Refresh()

oRetorno:Refresh()

oRecibo:Refresh()

oDetalhes:Refresh()

// desligar: gerar / transmitir / consulta lote

// habilitar imprimir danfe

lDanfe := .T.

lGerar := .F.

lTransmite := .F.

lConsulta := .F.

lCancela := .F.

lConsStatus := .F.

oBmp4:Disable()

oBmp4:Refresh()

ELSE

IF nRet = 105 .OR. nRet = 108 .OR. nRet = 109

DO CASE

CASE nRet = 105

cMensa := ( "Em Processamento na Sefaz. Tente Novamente " )

CASE nRet = 108

cMensa := ( "Serviço Paralisado Momentaneamente (curto prazo) " )

CASE nRet = 109

cMensa := ( "Serviço Paralisado sem Previsão de Retorno " )

ENDCASE

// nada a fazer, permanecer na consulta de lote

lGerar := .F.

lTransmite := .F.

lConsulta := .T.

lCancela := .F.

lConsStatus := .F.

oBmp4:Enable()

oBmp4:Refresh()

oMensa:Refresh()

oRetorno:Refresh()

oRecibo:Refresh()

oDetalhes:Refresh()

//-> Abre Notas Fiscais

SELECT CADNFE

RETURN ( .F. )

ELSE

// retornar

SELECT CADNFE

RLOCK()

REPL STATUS WITH " "

REPL RETNFE WITH "NT"

COMMIT

UNLOCK

// desligar: transmitir / consulta lote

// habilitar: gerar

lGerar := .T.

lTransmite := .F.

lConsulta := .F.

lCancela := .F.

lConsStatus := .F.

oBmp4:Disable()

oBmp4:Refresh()

ENDIF

ENDIF

ENDIF

id=code>id=code>

assinatpaulo.jpg

Editado por - pauloaraujo on 03/12/2009 10:56:40

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...