ACBR - Autorização

Fórum sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (NFe, NFCe, NFSe, SPEED, Projeto ACBr, TEF, ECD, EFD, etc.)

Moderador: Moderadores

Laudelino Scarmagnani
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Fev 2007 10:54

ACBR - Autorização

Mensagem por Laudelino Scarmagnani »

Olá, pessoal.
Estou com o seguinte problema.
Envio a NFe pelo ACBrNFeMonitor. Às vezes, imprime como não autorizada.
tenho que consultar pelo ACBr para então imprimir pelo ACBr. Caso tente a impressão, sem a consulta, imprime como não autorizada.
Neste caso, não tenho o protocolo de autorização no meu sistema.
Estou fazendo algo errado, mas não consigo encontrar onde.
Laudelino
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

ACBR - Autorização

Mensagem por alaminojunior »

Experimente atrasar alguns millisec´s entre enviar o xml e receber para impressão. Outra dica interessante é realizar uma consulta antes da impressão.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Laudelino Scarmagnani
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Fev 2007 10:54

ACBR - Autorização

Mensagem por Laudelino Scarmagnani »

Alamino, faço isso no ACBrNFeMonitor?
Laudelino
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

ACBR - Autorização

Mensagem por alaminojunior »

Eu costumo fazer uma consulta antes da impressão da nota.

Código: Selecionar todos

...
criação
envio
consulta
impressão
...
Depois de enviada, pode acontecer do xml chegar sem o protocolo e fazendo uma nova consulta, o mesmo é devolvido já com o protocolo, ou seja: autorizada.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Laudelino Scarmagnani
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Fev 2007 10:54

ACBR - Autorização

Mensagem por Laudelino Scarmagnani »

Ok, Obrigado.
Vou fazer a consulta apos o envio, caso não obtenha a autorização na resposta do envio.
Laudelino
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

ACBR - Autorização

Mensagem por rubens »

Olá..

Comigo aqui tá acontecendo o seguinte: Quando a internet está muito lenta, aparece a mensagem de serviço indisponivel pelo acbr, mas a nota foi enviada. Daí deixei uma opção de consulta no programa... Só que tem que solicitar a consulta umas 4 ou 5 vezes para atualizar o xml. Eu tenho uma rotina de verificação controlada pela CStat="100" se foi a nota foi autorizada daí atualizo os dados no meu banco de dados... Pelo que sei do acbr quando voce consulta uma nota ele atualiza automaticamente o xml... Só que daí manda imprimir aparece a tarja sem autorização de uso. Só depois de consultar umas 5 vezes ou mais é que atualiza para imprimir sem a tarja... Alguem tem algum outro tipo de controle ou confirmação a respeito disso?

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Laudelino Scarmagnani
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Fev 2007 10:54

ACBR - Autorização

Mensagem por Laudelino Scarmagnani »

Rubens, bom dia!
É este o problema que está acontecendo meu sistema. Vou ter que verificar, pois o envio de uma consulta somente pode nao resolver.
Laudelino
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

ACBR - Autorização

Mensagem por rubens »

Já percebi que se entra no acbr e manda consultar pelo acbr atualiza na hora.... mas se manda consultar via txt, tem que fazer umas 05 tentativas ou mais para atualizar...

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Laudelino Scarmagnani
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Fev 2007 10:54

ACBR - Autorização

Mensagem por Laudelino Scarmagnani »

E isso passou a ocorrer a partir da Versão 2 da NFe.
Laudelino
Kiko Fernandes
Usuário Nível 3
Usuário Nível 3
Mensagens: 213
Registrado em: 24 Out 2008 22:41
Localização: Foz do Iguaçu

ACBR - Autorização

Mensagem por Kiko Fernandes »

Pelo que sei do acbr quando voce consulta uma nota ele atualiza automaticamente o xml... Só que daí manda imprimir aparece a tarja sem autorização de uso. Só depois de consultar umas 5 vezes ou mais é que atualiza para imprimir sem a tarja... Alguem tem algum outro tipo de controle ou confirmação a respeito disso?
Rubes o comando NFe.ConsultarNFe(cArqXML) pode ser usado de 2 formas.
1 - o parâmetro cArqXml ser a chave da nota. (Esta não atualiza o XML)
2 - o parâmetro cArqXml ser o arquivo xml. (Esta o retorno atualiza o XML)
Você tem o conhecimento deste procedimento?
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

ACBR - Autorização

Mensagem por rubens »

Kiko olha como eu faço :

Código: Selecionar todos

/////////////////////////////////////////////////////////////////////////////
function	ConsultarNFe( cNFe )
LOCAL cTELA := SAVESCREEN(0,0,24,79)
cCmd:= iif(cNFe=nil,"",cNFe)
Comando( "NFE.ConsultarNFe", ["]+cCmd+["] )
Tmp(2)
cretorno :=  PEGRETNFE(.T.)

nLINHAS	:= MLCOUNT( cRETORNO )
aLINHA	:= {}
lAUTORIZA := .F.

cNPROT	 := ""
cDIGVAL	 := ""
cDHRECBTO  := ""
cCSTAT	 := ""
cHORA	 := ""

FOR X = 1 TO nLINHAS

		AADD( aLINHA, MEMOLINE(cRETORNO,79,X) )
		DO CASE
			CASE AT("CStat",aLINHA[X])>0
				// VERIFICA SE TEM UMA LINHA STATUS
				cCSTAT := SubStr(Alltrim(aLinha[X]),At("=",aLinha[X])+1,Len(aLinha[X]))
				// SE cCSTAT = 100 - AUTORIZADO O USO DA NFE				IF cCSTAT="100"
					lAUTORIZA := .T.
				ENDIF
			CASE AT("NProt",aLINHA[X])>0
				cNPROT := SubStr(Alltrim(aLinha[X]),At("=",aLinha[X])+1,Len(aLinha[X]))
			CASE AT("DigVal",aLINHA[X])>0
				cDIGVAL:= SubStr(Alltrim(aLinha[X]),At("=",aLinha[X])+1,Len(aLinha[X]))
			CASE AT("DhRecbto",aLINHA[X])>0
				cDHRECBTO := SubStr(Alltrim(aLinha[X]),10,10)
				cHORA	:= SUBSTR(ALLTRIM(aLINHA[X]),21,8)
		ENDCASE
	NEXT
                // Se a nota foi autorizada grava os dados do retorno
	IF lAUTORIZA
		WHILE(.T.)

			IF RLOCK()
				_FIELD->NF->NPROT  := cNPROT
				_FIELD->NF->DIGVAL := cDIGVAL
				_FIELD->NF->DATAENVIO:= CTOD(LEFT( cDHRECBTO,10) )
				_FIELD->NF->CSTAT  := cCSTAT
				_FIELD->NF->HORA   := cHORA
				UNLOCK
				EXIT
			ENDIF

		ENDDO
	ENDIF

	RESTSCREEN( 0,0,24,79, cTELA )
	return cretorno

Depois disso o cliente vai na opção de imprimir o danfe... então tem tempo de sobra para atualizar o XML né... mas não atualiza... só depois de executar esta função umas 05 vezes é que atualiza o XML... Eu não tenho como saber se atualizou ou não... somente mandando imprimir... Aí o cliente chia...
Precisa ter uma informação no retorno falando se o xml foi atualizado ou não...
Agora se vou no monitor e mando consultar pelo monitor, quando mando imprimir tá atualizado blz, de primeira...
Mas é isso que tento evitar né.. o clienter abrir o monitor e consultar a nota... gostaria de fazer tudo automatico de dentro do programa.
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Kiko Fernandes
Usuário Nível 3
Usuário Nível 3
Mensagens: 213
Registrado em: 24 Out 2008 22:41
Localização: Foz do Iguaçu

ACBR - Autorização

Mensagem por Kiko Fernandes »

Entendi Rubens, mas neste parâmetro (cNFe), você passa somente o número da chave ou você informa também o arquivo?

O que me referi é que você tem duas opções de consulta, como exemplo:

Usando a sua função:
Ex.: 1
ConsultarNfe( "41110400061100000128550010000001501000001506" ) Desta maneira foi passado apenas a chave da NFe. Nos testes que eu fiz não atualiza o arquivo XML.

Ex.: 2
ConsultarNfe("c:\seupath\41110400061100000128550010000001501000001506-nfe.xml") Desta maneira foi passado o arquivo xml e este deve atualizar o arquivo XML quando tem o protocolo de autorização.
Você também está informando conforme o exemplo 2?
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

ACBR - Autorização

Mensagem por rubens »

Eu guardo o nome do arquivo num dbf, daí quando manda consultar, imprimir ou cancelar.... sempre busca o esse nome do arquivo com o parh... está indo o arquivo do xml mesmo e não somente a chave...

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Kiko Fernandes
Usuário Nível 3
Usuário Nível 3
Mensagens: 213
Registrado em: 24 Out 2008 22:41
Localização: Foz do Iguaçu

ACBR - Autorização

Mensagem por Kiko Fernandes »

ok. Eu aguardo 3 segundos após enviar a consulta para então buscar o retorno.
Vi a tua rotina, seria aquele "tmp(2)" algo como aguardar 2 segundos?
Se for, vc está aguardando também, ai não sei te dizer, você poderia fazer uma experiência aumentando este tempo de espera.
O que posso te afirmar é que ainda não tive este problema, quando acontece isto ele atualiza de primeira também, igual como se estivesse executando direto no monitor.
Laudelino Scarmagnani
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Fev 2007 10:54

ACBR - Autorização

Mensagem por Laudelino Scarmagnani »

Kiko, bom dia.
Não sei se podes passar, como seria a função PEGRETNFE(.T.)? É que eu pego o arquivo texto retornado pelo ACBr e gravo em um DBF, ai leio linha a linha. Você faz isso diretamente com o arquivo texto.
Laudelino
Responder