Ir para conteúdo
  • Cadastre-se

dev botao

Enviar Lote de Nfce AcbrMonitor


Ver Solução Respondido por José M. S. Junior,
  • Este tópico foi criado há 2189 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa tarde..
Alguém usa o envio de nfe/nfce em lotes no ACBRMonitor? 
pode ajudar?
Estou fazendo o seguinte a cada 20 nfces adiciono em um lote. Então digamos que tenho 60 nfce gerou 3 lotes de 20. Que foram salvos na pasta do acbr\Lotes\Lote1 ... 
Para enviar estou usando NFe.EnviarLoteNFE, nLote. 
Em modo de homologação e em modo de produção não faz diferente, só retorna lote recebido. Independente de sincrono e assincrono. 
E agora como consultar isso. 
Achei no manual o comando NFE.ReciboNfe(cRecibo)
Em homologação me retorna  OK: Arquivo=C:\ACBrNfe2\Retorno\'510000021545835'-pro-rec.xml que direciona para o xml de informacao do envio. 
Em produção dá erro não catalogado. 

Alguém consegue fazer o envio em lotes certinho para me ajudar a ver o que estou fazendo errado aqui. 

Obrigado
Rubens

  • Moderadores
Postado

Boa tarde @Rubens

para envio em lote precisa utilizar o método NFe.AdicionarNFe, adicionando todas as NFes e posteriormente o método NFe.EnviarLoteNFe

https://acbr.sourceforge.io/ACBrMonitor/NFEAdicionarNFe.html

https://acbr.sourceforge.io/ACBrMonitor/NFEEnviarLoteNFe.html

O mais aconselhado é utilizar uma rotina para enviar uma por vez. Assim já obtem o XML de retorno fica mais prático o tratamento na sua aplicação.

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado (editado)

Boa tarde... 

Sim o sistema já roda perfeitamente com um nfce somente.. 

O Problema é que o SEFAZ do MT ficou parado por mais de 4 dias. Não tenho contingência no sistema ainda e se tivesse ia ser o mesmo problema.. ia ter que ser tudo enviado fora do prazo. O cliente tem mais de 800 nfce para enviar. Mandar uma por uma vai ser complicado. Tô tentando fazer uma implementação para ajuda-lo. 

Acho que fiz correto... primeiro adicionei as nfe. Fiz um teste inicial com umas 60 nfce somente. Adicionou certinho ps lotes de 20 em 20, gerou os xmls dentro da pasta acbr\lotes\lote1 ... até lote 3. Daí tentei enviar lotes com o comando NFe.EnviarLoteNFE(1), NFe.EnviarLoteNFE(2), NFe.EnviarLoteNFE(3). 

Envia em modo homologação e em modo produção, independente se colocar sincrono ou assincrono. So que das duas formas retorna só a mensagem de lote recebido. 

29/11/2018 12:02:37 - NFe.EnviarLoteNFE(1)
29/11/2018 12:02:39 - OK: Lote recebido com sucesso
[Envio]
CStat=103
CUF=51
DhRecbto=29/11/2018 12:02:37
Msg=Lote recebido com sucesso
NRec=510000021545835
TMed=1
VerAplic=MT_A2RL-4.00
Versao=MT_A2RL-4.00
XMotivo=Lote recebido com sucesso
tpAmb=2


[Retorno]
CStat=0
CUF=0
DhRecbto=30/12/1899
Msg=
VerAplic=
Versao=
XMotivo=
nRec=510000021545835
tpAmb=1

Daí pego o número do recibo e consulto com 

29/11/2018 12:03:40 - NFE.ReciboNfe('510000021545835')
29/11/2018 12:03:41 - OK: Arquivo=C:\ACBrNfe2\Retorno\'510000021545835'-pro-rec.xml

Arquivo xml que foi referenciado510000021545835-ped-rec-soap.xml está em anexo.

em homologação me retorna o erro acima em produção dá erro não catalogado. 

Preciso saber se estão corretos os procedimentos ou se tá faltando algum passo. 

Rubens

Editado por Rubens
Acrescentar um arquivo
Postado

Sim Amarildo.. 

Senão não tinha gerado os lotes... 

Foram gerados os lotes certinho dentro da pasta acbrnfe\lotes. 

Por ultimo agora  apaguei tudo e fiz um teste só com dois xmls..para ver se era a qtde de xmls em cada lote. A mesma coisa.. 

	WHILE !EOF()
	
	   SELE NFC
	   cNUMERO 	:= NFC->NUMERO
	   cFOP 		:= NFC->FOP
	   nIMPOSTO	:= 0.00
	   nPORIMPO	:= 0.00
	
	   ARQNFE := cPATH+"NFC"+STRZERO(VAL(cNUMERO),6)+".TXT"	
	   Mostra2(0, 'Gerando Nfce -> '+cNumero  )
	   
	   cNumLote := Alltrim( Str(Numlote) )
		// Gera texto da Nfce	
		GeraTXT_NFCe(.f.)
		
		cTEXTOINI:= HB_MEMOREAD( ARQNFE )
		COMANFE2('NFe.AdicionarNFe',cTextoIni+","+cNumLote, .f.)
	
		nQTDENFC ++
	
		IF nQTDENFC = 20
		
			nQTDENFC := 0
			NUMLOTE	:= NUMLOTE+1
			
		ENDIF
		
		SELE NFC
		DBSKIP()
		
	ENDDO
	
	DbSelectArea('NFC')
	DbClearFilter()
	
	FOR X = 1 TO NUMLOTE
		altd()
		Mostra2(0, 'Enviando Lote : '+ ALLTRIM(STR(X)))		
		COMANFE2('NFe.EnviarLoteNFE', ALLTRIM(STR(X)))
		Alert( cRETORNO )			
	NEXT
	

Acima a codificação, mesmo em harbour... dá para ver que estou usando Nfe.AdicionarNfe e depois de adicionado Nfe.EnviarloteNfe. 

 

Rubens

Lotes.png

  • Moderadores
  • Solution
Postado
2 horas atrás, Rubens disse:

Arquivo xml que foi referenciado510000021545835-ped-rec-soap.xml está em anexo.

Aparentemente está correto... sempre vai ser assíncrono, retorna apenas o numero do recibo (Foi Recebido)

Na consulta de recibo, se estiver recebendo o XML de retorno estará recebendo o que a SEFAZ processou, talvez as NFs ainda não foram processadas. Experimentou consultar individualmente pela chave?

No log não aprece o erro da consulta de lote que voce citou.

  • Curtir 1
Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado

Ok José... 

Realmente já havia consultado pela chave antes mas não tinha obtido resposta.

consultei agora e obtive resposta.

29/11/2018 16:15:51 - NFe.SetVersaoDF(4.00)
29/11/2018 16:15:51 - ATENÇÃO: Chave RSA Privada NÃO pode ser lida no arquivo "swh.ini".

29/11/2018 16:15:51 - OK: 
29/11/2018 16:15:52 - NFe.SetModeloDF("65")
29/11/2018 16:15:52 - OK: 
29/11/2018 16:15:52 - NFE.ConsultarNFe("51181123215849000188650010001576121001576122")
29/11/2018 16:15:53 - OK: Autorizado o uso da NF-e
[Consulta]
CStat=100
CUF=51
ChNFe=51181123215849000188650010001576121001576122
DhRecbto=29/11/2018 11:15:52
DigVal=my37eEF9CrZMDR5SWjIvPc7OEv8=
Msg=Autorizado o uso da NF-e
NProt=151180001377866
VerAplic=MT_A2RL-4.00
Versao=MT_A2RL-4.00
XMotivo=Autorizado o uso da NF-e
tpAmb=2

29/11/2018 16:16:02 - NFe.SetVersaoDF(4.00)
29/11/2018 16:16:02 - ATENÇÃO: Chave RSA Privada NÃO pode ser lida no arquivo "swh.ini".

29/11/2018 16:16:02 - OK: 
29/11/2018 16:16:03 - NFe.SetModeloDF("65")
29/11/2018 16:16:03 - OK: 
29/11/2018 16:16:03 - NFE.ConsultarNFe("51181123215849000188650010001576111001576117")
29/11/2018 16:16:04 - OK: Autorizado o uso da NF-e
[Consulta]
CStat=100
CUF=51
ChNFe=51181123215849000188650010001576111001576117
DhRecbto=29/11/2018 09:18:11
DigVal=KIPRQK9WgZ1OiUHFUQ4V409n2YQ=
Msg=Autorizado o uso da NF-e
NProt=151180001377856
VerAplic=MT_A2RL-4.00
Versao=MT_A2RL-4.00
XMotivo=Autorizado o uso da NF-e
tpAmb=2

Já é melhor...  mas diante dessa situação deverei aguardar algumas horas e efetuar a consulta de cada chave também já que a SEFAZ não esta retornando a resposta no retorno do envio.... mas já é um progresso. 

Vou fazer uns testes em produção para ver.

Já que tá relacionado, saberia me informar quantos notas posso adicionar num lote?

Obrigado

Rubens

  • Curtir 1
  • Moderadores
Postado
14 horas atrás, Rubens disse:

Já que tá relacionado, saberia me informar quantos notas posso adicionar num lote?

Bom dia, pode enviar até 50 NFe por lote ou no máximo 500Kb o arquivo XML.

  • Curtir 1
Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado

Bom dia... 

Em produção consegui transmitir os lotes. 

Só não tive retorno do resumo do lote nota a nota, a não ser em caso de erros, tipo mandei um lote com notas duplicadas aí me retorno o resumo de nota a nota informando que estava duplicado, mas quando não dá nenhum erro também não retorna o resumo, só a mensagem de lote recebido.

Implementei uma rotina para consultar a chave individual daquele lote (no caso o xml para já atualizar os xmls)  e depois de alguns minutos rodei a rotina e obtive retorno com status 100. Atualizei meu banco e ok deu certo. 

Imagino que pela qtde de notas no lote vai demorar mesmo para processador todas e dar um retorno detalhado, nota a nota. 

Obrigado ... 

  • Curtir 2
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.