Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Boa tarde.
 
Estamos tentando gerar NFC-e em contingência e encontramos alguns obstáculos.
 
Em primeiro lugar, gostaríamos de saber qual o tipo de contingência, levando em consideração que não há conexão com a Internet (totalmente offline).
 
Segue abaixo como estamos fazendo utilizando o tipo de contingência FS:
 
 
//Imprimindo NFCe em Contingência
 
            ACBrNFe1.Configuracoes.Geral.FormaEmissao := teContingencia;
            ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpEmis := teContingencia;
            ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dhCont := date;
            ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.xJust  := 'Justificativa Contingencia';
            ACBrNFe1.NotasFiscais.Assinar;
            ACBrNFe1.NotasFiscais.Valida;
 
//Salva XML
            ACBrNFe1.NotasFiscais.Items[0].SaveToFile(PATH_SALVAR+'\'+ ChaveNFe +'-NFe.xml');
            ACBrNFe1.NotasFiscais.Imprimir;
 
 
//Tentativa de Enviar Nota em Contingência 
           ACBrNFe1.NotasFiscais.Clear;
           //Recupera XML
           OpenDialog1.FileName := ACBrNFe1.Configuracoes.Geral.PathSalvar + Filtro + '-nfe.xml';
           ACBrNFe1.NotasFiscais.LoadFromFile(OpenDialog1.FileName);
           ACBrNFe1.Configuracoes.Geral.FormaEmissao := teNormal;
           ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpEmis := teNormal;
           ACBrNFe1.Configuracoes.Geral.ModeloDF := moNFCe;
           ACBrNFe1.NotasFiscais.Valida;
           ACBrNFe1.Enviar(1,False,True);
           TudoOk :=  ACBrNFe1.NotasFiscais.Items[0].Confirmada;
 
O Comando ACBrNFe1.NotasFiscais.Items[0].Confirmada é sempre FALSE. E se for feita uma consulta da chave a nota não consta na base da Sefaz.
 
[]s
 
Equipe Plenus Software
Link para o comentário
Compartilhar em outros sites

  • Moderadores

levando em consideração que não há conexão com a Internet (totalmente offline).

 

.......

O Comando ACBrNFe1.NotasFiscais.Items[0].Confirmada é sempre FALSE. E se for feita uma consulta da chave a nota não consta na base da Sefaz.

Não entendi sua pergunta, como que vc quer verificar que a nota está confirmada se vc está "totalmente offline"?

ACBrNFe1.Configuracoes.Geral.FormaEmissao := teContingencia;
ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpEmis := teContingencia;
Além disso, vc deve verificar com seu estado quais são os tipos de contingência aceitos por ele, mas pra quem está totalmente offline este tipo "teContingencia" não é usado, este foi um dos primeiros modos de contingência criado para NFe para uso em Formulário de Segurança, hoje não é mais permitido mais este tipo, apenas o tipo FS-DA diferente do primeiro que era apenas FS.
djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Reformulando...

 

Estamos gerando NFC-e em Contingência Offline (verificamos na Sefaz MT que é o modelo correto).

 

Emitindo NFCe em Contigência - OffLine (não há conexão à Internet)

ACBrNFe1.Configuracoes.Geral.FormaEmissao := teOffLine;

ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpEmis := teOffLine;

ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dhCont := Now;

 ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.xJust  := 'Problemas Técnicos';

ACBrNFe1.NotasFiscais.Assinar;

ACBrNFe1.NotasFiscais.Valida;

//Salvar Arquivo XML

ACBrNFe1.NotasFiscais.Items[0].SaveToFile (PathArquivo)

Até aqui tudo OK

 

 

Com a conexão reestabelecida com a SEFAZ, tento Efetivar (Enviar NFCe)

//Carrega Arquivo

ACBrNFe1.NotasFiscais.LoadFromFile(PathArquivo);

ACBrNFe1.Configuracoes.WebServices.Ambiente   := taHomologacao;

ACBrNFe1.Configuracoes.Geral.FormaEmissao := teNormal;

ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpEmis := teNormal;

 ACBrNFe1.Configuracoes.Geral.ModeloDF := moNFCe;

ACBrNFe1.Configuracoes.WebServices.Visualizar := True;

ACBrNFe1.NotasFiscais.Valida;

ACBrNFe1.Enviar(1,False,True);

 

Aqui retorna o seguinte erro:

 

Ambiente: 2

Versão Aplicativo: 3.00

Status Código: 502

Status Descrição: Rejeição: Erro na Chave de Acesso - Campo Id não corresponde a concatenação dos campos correspondentes

UF: MT

dhRecebto: 30/10/2013 16:02:54

chNFe: 511310014250440001266500100000021709000021704

 

[]s

 

Equipe Plenus Software

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Vc não deve mudar a forma de emissão qdo for tentar transmitir, afinal, a NFCe foi emitida OffLine, apenas está sendo transmitida posteriormente.

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

//André obrigado pela força mais ainda não resolveu. vamos lá...

//Estamos gerando NFC-e em Contingência Offline (verificamos na Sefaz MT que é o modelo correto).

//Emitindo NFCe em Contigência - OffLine (não há conexão à Internet)

ACBrNFe1.Configuracoes.Geral.FormaEmissao := teOffLine;
51131001425044000126650010000021779000021772-NFe.xmlimagem3.bmp
ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpEmis := teOffLine;

ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dhCont := Now;

 ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.xJust  := 'Problemas Técnicos';

ACBrNFe1.NotasFiscais.Assinar;

ACBrNFe1.NotasFiscais.Valida;

//Salvar Arquivo XML

ACBrNFe1.NotasFiscais.Items[0].SaveToFile (PathArquivo)

Até aqui tudo OK

//Como você me pediu pra fazer

//Carrega Arquivo

ACBrNFe1.NotasFiscais.LoadFromFile(PathArquivo);

//Enviar

ACBrNFe1.Enviar(1,False,True);

//Se eu fizer isso logo em seguida de emitir em contigência me devolve o seguinte erro:

URL não disponível para o estado solicitado

//Se eu sair do sistema e tentar enviar retorna a seguinte mensagem:
TAG:<ID>:B09/dhEmi(Data de emissão) - Tamanho maior que o máximo permitido [2013-10-31T115:49:33-03:00]
TAG:<ID>:B28/dhCont(Data de Hora de entrada em contingência) - Tamanho maior que o máximo permitido [2013-10-31T115:49:37-03:00]
 

Segue em anexo o Arquivo XML e a imagem do segundo erro...

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

//André obrigado pela força mais ainda não resolveu. vamos lá...

//Estamos gerando NFC-e em Contingência Offline (verificamos na Sefaz MT que é o modelo correto).

//Emitindo NFCe em Contigência - OffLine (não há conexão à Internet)

ACBrNFe1.Configuracoes.Geral.FormaEmissao := teOffLine;

attachicon.gif51131001425044000126650010000021779000021772-NFe.xmlattachicon.gifimagem3.bmp

ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpEmis := teOffLine;

ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dhCont := Now;

 ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.xJust  := 'Problemas Técnicos';

ACBrNFe1.NotasFiscais.Assinar;

ACBrNFe1.NotasFiscais.Valida;

//Salvar Arquivo XML

ACBrNFe1.NotasFiscais.Items[0].SaveToFile (PathArquivo)

Até aqui tudo OK

//Como você me pediu pra fazer

//Carrega Arquivo

ACBrNFe1.NotasFiscais.LoadFromFile(PathArquivo);

//Enviar

ACBrNFe1.Enviar(1,False,True);

//Se eu fizer isso logo em seguida de emitir em contigência me devolve o seguinte erro:

URL não disponível para o estado solicitado

//Se eu sair do sistema e tentar enviar retorna a seguinte mensagem:

TAG:<ID>:B09/dhEmi(Data de emissão) - Tamanho maior que o máximo permitido [2013-10-31T115:49:33-03:00]

TAG:<ID>:B28/dhCont(Data de Hora de entrada em contingência) - Tamanho maior que o máximo permitido [2013-10-31T115:49:37-03:00]

 

Segue em anexo o Arquivo XML e a imagem do segundo erro...

Meu amigo verifica a data da entrada em contingencia talvez vc esteja passando data e hora atual do envio, vc deve manter a data e hora da entrada em contingencia, pois a sefaz nao vai aceitar a data do envio igual  a data e hora em contingencia.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

udenilson

Olhando sua resposta tentei alterar a Data de Emissão no momento de Enviar

 

Imprimindo em Contingência...

ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dEmi   := now; (não aceita vazio)

ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dhCont := now;

Imprimi em contigência... ok

 

Aguardo algum tempo e Tento Enviar para Sefaz

 

//Enviar

ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dEmi   := now;

//Atribuo Novamente a Data de Emissão

ACBrNFe1.Enviar(1,False,True);

 

Neste Caso a Data de Emissão Ficará maior que a Data de Contingência que foi atribuida anteriormente..

Infelizmente o problema persiste. (Ver imagem de erro Imagem4).

 

Caso você tenha esta rotina funcionando e poder me ajudar ficarei muito grato. Não consegui encontrar nada

de Exemplo nos instaladores do ACBr. imagem4.bmp

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Não mude NADA no XML, apenas carregue e envie. Você deve informar os campos de contingência no momento que gerou a nota e não na hora de enviar.

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Pessoal obrigado pelas respostas, mais precisei mudar duas coisinhas para que eu tivesse êxito.

 

1º Setar novamente ACBrNFe1.Configuracoes.Geral.ModeloDF := moNFCe; 

pois por padrão fica ACBrNFe1.Configuracoes.Geral.ModeloDF := moNFe

Recuperar o XML - Realmente (não precisei alterar nada)

(Resolveu o problema das Datas)

 

 

2º Alteração na Unit ACBrNFeUtil

(Reslveu o problema da URL)

 

class function NotaUtil.GetURL(const AUF, AAmbiente, FormaEmissao : Integer;
  ALayOut: TLayOut; AModeloDF: TpcnModeloDF = moNFe): WideString;
begin

 

case FormaEmissao of
  1,2,4,5,9 : begin
.....

 

No Case FormaEmissao eu acrescentei o 9 (teOffLine) dessa forma buscou minha URL no estado MT corretamente e a nota foi enviada.

Consultei a Nota no Site da Sefaz e apareceu normalmente. Porém fica resgistrado "Emitida em Contingência"...

 

Caso a solução não seja essa por favor me responder...

 

Segue em anexo a Imagem da NFCe Enviada.

Imagem NFCE Enviada.bmp

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Pessoal obrigado pelas respostas, mais precisei mudar duas coisinhas para que eu tivesse êxito.

 

1º Setar novamente ACBrNFe1.Configuracoes.Geral.ModeloDF := moNFCe; 

pois por padrão fica ACBrNFe1.Configuracoes.Geral.ModeloDF := moNFe

Recuperar o XML - Realmente (não precisei alterar nada)

(Resolveu o problema das Datas)

 

 

2º Alteração na Unit ACBrNFeUtil

(Reslveu o problema da URL)

 

class function NotaUtil.GetURL(const AUF, AAmbiente, FormaEmissao : Integer;

  ALayOut: TLayOut; AModeloDF: TpcnModeloDF = moNFe): WideString;

begin

 

case FormaEmissao of

  1,2,4,5,9 : begin

.....

 

No Case FormaEmissao eu acrescentei o 9 (teOffLine) dessa forma buscou minha URL no estado MT corretamente e a nota foi enviada.

Consultei a Nota no Site da Sefaz e apareceu normalmente. Porém fica resgistrado "Emitida em Contingência"...

 

Caso a solução não seja essa por favor me responder...

 

Segue em anexo a Imagem da NFCe Enviada.

Post errado

Editado por udenilson
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Não mude NADA no XML, apenas carregue e envie. Você deve informar os campos de contingência no momento que gerou a nota e não na hora de enviar.

Andre me responde a seguinte duvida: Quanto a nfce em contingencia esta claro que nao posso mudar nada no xml. Minha pergunta é:  qdo eu corrego e envio o xml o componente ira assinar novamente o xml?  ou vai manter a assinatura original. Pois a assinar fez parte do qr code em contingencia. 

Me desculpe se eu estiver errado.

Grato

Link para o comentário
Compartilhar em outros sites

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