Ir para conteúdo
  • Cadastre-se

dev botao

Atualização dos dados do XML da NFC-e


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

Recommended Posts

  • Membros Pro
Postado

Boa noite, 

Estou desenvolvendo a NFCe no pdv, uso o ACbrEcfVirtualNFCE, estou com dificuldade na contingencia, seguinte:

Faço o cupom e quando envio que recebo o timeout, na propriedade onTransmiteError eu atualizo as propriedades da Nfe, mas quando faz a impressão em contingencia e salva o xml, ele esta igual a nota anterior.

... Fechando cupom

 

while true do

begin

  Try

    AcbrEcf1.FechaCupom(obs.text);

   break;

  except

    on e:exception do

  begin

    Mensagem(e.message)

  end;

end;

 

Evento onTransmitError

      AcbrEcfVirtualNfce1.AcbrNfce.Configuracoes.Geral.FormaEmissao := teOffLine;
      AcbrEcfVirtualNfce1.AcbrNfce.NotasFiscais[0].NFe.Ide.nNF      := GetNumeroNFCE + 1; // Pega o numero do anterior e acrescenta mais para não haver duplicidade
      AcbrEcfVirtualNfce1.AcbrNfce.NotasFiscais[0].NFe.Ide.tpEmis   := teOffLine;
      AcbrEcfVirtualNfce1.AcbrNfce.NotasFiscais[0].NFe.Ide.dhCont   := DataHoraContinencia;
      AcbrEcfVirtualNfce1.AcbrNfce.NotasFiscais[0].NFe.Ide.xJust    := MotivoContingencia;
      AcbrEcfVirtualNfce1.AcbrNfce.NotasFiscais.GerarNfe;

A impressão até sai 2 vias, mas os dados são do xml anterior.... podem me ajudar?

 

Att

 

João Victor

  • Moderadores
Postado

Bom dia @syspan

Quando voce incrementar a numeração, gere um novo XML, assine e grave o mesmo pois vai precisar para retransmitir posteriormente

ex:

ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.nNF:= ANF + 1 ;
ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpEmis:= teOffLine;
ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dhCont:= now;
ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.xJust:= AMotivo;

ACBrNFe1.NotasFiscais.Assinar;
ACBrNFe1.NotasFiscais.Items[0].GravarXML('',...);

//Emite OffLine em 2 vias
ACBrNFe1.NotasFiscais.Items[0].Imprimir;
ACBrNFeDANFCeFortes1.ViaConsumidor:= True;

 

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

  • Moderadores
Postado

Para emissão com ACBrECFVirtual o funcionamento imagino que seja o mesmo que já utiliza nesse caso, mas quando altera a numeração ou algum outro tipo de informação precisa Assinar o XML novamente, assim ficará atualizado também para impressão. E a gravação seria para o envio posterior pois foi emitido Off-Line.

Consultor SAC ACBr

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

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

  • Membros Pro
Postado

Quando chamo a opção AcbrECf1.FechaCupom ele ja faz todo o processo de assinar, validar e enviar do primeiro XML, ai recebo o timeout, gravo o XML no banco para enviar depois, e mudo os dados do componente para gerar em contingencia, depois, de mudado, chamo o AcbrEcf1.FechaCupom, se eu pegar os dados do xml, mesmo depois de ter mudado o numero ele me mostra os dados do xml anterior

  • Membros Pro
Postado

Achei o fio da meada, quando recebo o timeout, todo o restante da finalização do cupom precisa ser feito ali no evento onTransmitError, não posso chamar ACbrEcf1.FechaCupom novamente.

 

Obrigado 

  • Moderadores
  • Solution
Postado
1 minuto atrás, syspan disse:

Achei o fio da meada, quando recebo o timeout, todo o restante da finalização do cupom precisa ser feito ali no evento onTransmitError, não posso chamar ACbrEcf1.FechaCupom novamente.

Correto, todo tratamento para emissão precisa ser feito nesse método, pois o processamento já se encerrou, neste caso está apenas obtendo o código do erro para um tratamento posterior.

Consultor SAC ACBr

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

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

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