Ir para conteúdo
  • Cadastre-se

dev botao
  • Este tópico foi criado há 3480 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Olá pessoal,

Imaginem o seguinte cenário: O PDV está sem comunicação com a SEFAZ, então, a NFCe é aberta em modo offline (contingência). Durante a venda o PDV  restabelece a conexão com a SEFAZ, logo, tenho a possibilidade de enviar essa NFCe normalmente.

 

Quando abro a NFCe offline a chave é formada. (41150513284396000198650100000010009000001005) com o digito 9, identificando que é offline.

 

O que estou fazendo é o seguinte: ao abrir a NFCe offline, informo o motivo e a data/hora, e no momento de enviar, se a conexão estiver OK, limpo os campos Ide.xJust e Ide.dhCont, e mudo o Ide.tpEmis para teNormal, Gero o xml, valido e assino.

Porém ao validar o xml, o mesmo retorna que o campo xJust deve ter um valor, creio que seja pq a chave ainda esteja como offline (digito 9).

 

É possível executar esse cenário? Abrir a NFCe em contingência (chave 41150513284396000198650100000010009000001005) e depois enviar normalmente (chave 41150513284396000198650100000010001000001005)?

 

 

[]'s

Postado (editado)

Olá , não tenho certeza mas...

 

Ao gerar a NFCe em contingencia ou offline você faz todos os procedimentos 

 

Ide.tpEmiss = teOffline | teContingencia;

Ide.dhCont = now; 

Ide.xJust     = 'JUSTIFICATIVA';

Validar

Assinar

Etc...

 

Ao voltar a Conexão você carrega a(s) nota(s) e envia...

 

ACBrNFe1.NotasFiscais.LoadFromFile(seuXML.xml);

ACBrNFe1.Enviar(...)

 

 

 

É possível executar esse cenário? Abrir a NFCe em contingência (chave 41150513284396000198650100000010009000001005) e depois enviar normalmente (chave 41150513284396000198650100000010001000001005)?

 

Sobre a sua pergunta, acredito que não , pois imagine o seguinte cenario:

 

O Cliente pega uma nota no estabelecimento emitida em contingencia com a chave :41150513284396000198650100000010009000001005,

se a chave for alterada para 41150513284396000198650100000010001000001005 , o cliente nunca ira conseguir consultar aquela nota, pois houve alteração na chave.

Editado por William Mattos
  • Membros Pro
Postado

Exatamente, porém, olhe esse fluxo:

 

Ide.tpEmiss = teOffline | teContingencia; (Sem conexão com a SEFAZ)

Ide.dhCont = now; 

Ide.xJust     = 'JUSTIFICATIVA';

VendeItem

VendeItem

Voltou a Conexão com a SEFAZ:

Ide.tpEmiss = teNormal;

Ide.dhCont = DateZero; 

 

Ide.xJust     = '';

VendeItem

VendeItem

Validar <- Aqui Retorna que devo informar uma Valor para Ide.xJust... 

Assinar

ACBrNFe1.Enviar(...) 

 

Esse fluxo deveria funcionar sem problemas, ou não posso mais alterar o Ide.tpEmiss  após abrir a NFCe?

Postado (editado)
Ah , agora entendi sua situação, com a nota ainda aberta pode alterar tpEmiss sim , não poderia depois de imprimir.
 
 
olhando no codigo do ACBr as condições referentes a Justificativa da Contingencia
if (Self.Items[i].NFe.Ide.tpEmis = teNormal) and
       ((Self.Items[i].NFe.Ide.xJust > '') or (Self.Items[i].NFe.Ide.dhCont <> 0)) then //B28-10
       Erros := Erros + '556-Justificativa de entrada em contingência não deve ser informada para tipo de emissão normal'+sLineBreak;
   if (Self.Items[i].NFe.Ide.tpEmis in[teContingencia, teDPEC, teFSDA, teOffLine]) and
       (Self.Items[i].NFe.Ide.xJust = '') then //B28-20
       Erros := Erros + '557-A Justificativa de entrada em contingência deve ser informada'+sLineBreak;

Ao validar, confirme se 

tpEmiss = teNormal, 

xJust está vazio

e somente para verificar , altere Ide.dhCont := DateZero;  por Ide.dhCont := 0; 
Editado por William Mattos
  • Solution
Postado

Outra coisa que você pode tentar

 

antes de validar

ACBr.NotasFiscais.Items[0].NFe.infNFe.ID  :=  ''; //Força o Componente a Gerar uma Nova Chave.
ACBr.NotasFiscais.GerarNFe;
  • Curtir 1
  • Membros Pro
Postado

Boa William, 

Fiz as seguinte alterações, conforme vc sugeriu:

Ide.dhCont := DateZero; Alterei para Ide.dhCont := 0; pra não ocorrer nenhum resulta inesperado aqui (Self.Items[i].NFe.Ide.dhCont <> 0).

E também adicionei ACBr.NotasFiscais.Items[0].NFe.infNFe.ID := '';

 

E funcionou perfeitamente! Muito obrigado pela ajuda...

 

[]'s

  • Curtir 1
  • Este tópico foi criado há 3480 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.