Ir para conteúdo
  • Cadastre-se

dev botao

Envio de Notas emitidas em contingencia Off-Line


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

Recommended Posts

Colegas estou com o seguinte problema.

Na emissão off-Line preencho a tag tpemi = 9

Quanto volta a internet seleciono o XML e faço o envio, sempre fiz desse jeito.

Porem de dois dias atrás  começou que quando  faço o envio estou recebendo a mensagem de codigo de Hash do QRcode difere do calculado,

Outra hora  "envio de lote com mais de uma nota';

outra hora "Falha na validação da Nota"

 

só faço um loop na tabela pegando o xml gerado em contigencia

TRY
    while not cdsNFC.Eof  do
    begin
        FDataModule.ACBrNFe1.NotasFiscais.LoadFromFile(cdsNFCLOCALXML.AsString);
        FDataModule.ACBrNFe1.Enviar('1',False  ,False);
        FDataModule.ACBrNFe1.WebServices.Consulta.NFeChave := cdsNFCLOCALCHAVE.AsString;
        FDataModule.ACBrNFe1.WebServices.Consulta.Executar;
        Protoco :=  FDataModule.ACBrNFe1.WebServices.Consulta.Protocolo ;
    end;
EXCEPT
    ON ERR : EXCEPTION DO
    BEGIN
        Application.MessageBox(PChar(E.Message), 'Informação do Sistema', MB_OK+MB_ICONEXCLAMATION);
    END;
END;

ALguem poderia mim informar se estou fazendo da forma correta , se houve alteração

 

Obrigado

Link para o comentário
Compartilhar em outros sites

UF - PB

Hoje aconteceu de Novo 

Procedimento anterior.

Emito a NFC-e em Modo off-Line com  tpEmis= 9
Quando volta a internet seleciono o XML e executo  ACBrNFe1.Enviar('1',False  ,True);
Recebo a Rejeição "CODIGO DE HASH NO QR-CODE DIFERE DO CALCULADO"

Solução
   Recrio o XML com data e hora atual
   executo ACBrNFe1.Enviar('1',False  ,True);
   Pronto a nota é Transmitida.
   
 Observação.
    Isso ta errado pois altera a chave da NFC-e.
    Já recriei o xml com a mesma data e hora da emissão, ai ocorre a mesma rejeição

 

Se Alguem puder mim dá uma dica de como tratar este envio eu agradeço

Link para o comentário
Compartilhar em outros sites

Nao Ricardo está false,

o padrão eu deixo sempre em false,

fiz o  teste com LoadFromFile(Caminho do XML)

também ocorre vez em quando a rejeição  "CODIGO DE HASH NO QR-CODE DIFERE DO CALCULADO"

Pessoal o que ta mim encafifando é porque ocorre vez em quando, não é sempre

e parece que é coisa do capeta, pois só ocorre quando estou emitindo um certificado, quando estou dirigindo, ou quando estou em atendimento. só nas horas mais impróprias.

 

Link para o comentário
Compartilhar em outros sites

Bom depois de muito fuçar consegui descobri qual é o problema.

Quando chamado >>> FDataModule.ACBrNFe1.Enviar('1',False  ,True);

function TACBrNFe.Enviar(ALote: String; Imprimir: Boolean; Sincrono: Boolean;
  Zipado: Boolean): Boolean;
var
  i: integer;
begin
  WebServices.Enviar.Clear;
  WebServices.Retorno.Clear;

  if NotasFiscais.Count <= 0 then
    GerarException(ACBrStr('ERRO: Nenhuma NF-e adicionada ao Lote'));

  if NotasFiscais.Count > 50 then
    GerarException(ACBrStr('ERRO: Conjunto de NF-e transmitidas (máximo de 50 NF-e)' +
      ' excedido. Quantidade atual: ' + IntToStr(NotasFiscais.Count)));

  //NotasFiscais.Assinar; // Basta comentar esta Linha
  //NotasFiscais.Validar; // Basta comentar esta Linha 

//( Pois quando foi gerado o xml já foi executado o Assinar e o Validar e quando é feito isso novamente é alterado a data e hora do QRCode -  que vai provocar a rejeição do Codigo no QR-Code divere do calculado,
//pois a SEFAZ faz o calculo pela data de emissão da  Nota e o ACBr ta fazendo pela data e hora atual no momento da execução)

  if DANFE <> nil then
  begin
    for i := 0 to NotasFiscais.Count - 1 do
    begin
      if NotasFiscais.Items.Confirmada and Imprimir then
      begin
        NotasFiscais.Items.Imprimir;
        if (DANFE.ClassName = 'TACBrNFeDANFERaveCB') then
          Break;
      end;
    end;
  end;
end;

Isso deveria ser modificado no componente, pra identificar quando a nota for em contigencia offline não executar o Assinar Validar, ou até mesmo na chamada do procedimento

ter a opção de Assinar e Validar. pois estes dois procedimentos geralmente são executados no momento da criação do xml.

Link para o comentário
Compartilhar em outros sites

8 horas atrás, Arnaldo Cruz disse:

Isso deveria ser modificado no componente, pra identificar quando a nota for em contigencia offline não executar o Assinar Validar, ou até mesmo na chamada do procedimento

Como alternativa, a mexer no componente, tente substituir "ACBrNFe1.Enviar(1, False, True)" por:

ACBrNFe1.WebServices.Enviar.Lote := 1;
ACBrNFe1.WebServices.Enviar.Sincrono := True;
ACBrNFe1.WebServices.Enviar.Executar;

Att

Ricardo

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1967 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.