Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

Olá,

Tenho duas dúvidas:

1- Para que exatamente serve o comando ACBrNFe1.NotasFiscais.Validar?

2 - O comando ACBrNFe1.Enviar executa ANTES automaticamente o ACBrNFe1.NotasFiscais.Validar ou eu tenho que validar manualmente?

Desde já agradeço a atenção

  • Membros Pro
Postado
3 minutos atrás, Amarildo de Matos disse:

boa tarde..

   a primeira pergunta seria -> Valida arquivo da NFe. Arquivo deve estar assinado.

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

  a segunda pergunda seria -> se for levar em consideracao o AcbrMonitorPlus, ele envia e assina.

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

Boa tarde Amarildo...

Eu não uso o Monitor, uso o componente.

  • Membros Pro
Postado
1 minuto atrás, Amarildo de Matos disse:

sim..eu sei..

é que coloquei para comparar, pois as funcões devem ser as mesmas. so quiz ajudar.

Grato Amarildo...

Eu suponho que a assinatura deve ocorrer antes do envio, se não o XML seria recusado. 

E seria interessante você validar antes, já que afirmou que não ocorre validação pelo ENVIAR.

  • Moderadores
  • Solution
Postado
35 minutos atrás, doidopb disse:

1- Para que exatamente serve o comando ACBrNFe1.NotasFiscais.Validar?

Comparar o XML gerado contra os Schemas locais.

36 minutos atrás, doidopb disse:

2 - O comando ACBrNFe1.Enviar executa ANTES automaticamente o ACBrNFe1.NotasFiscais.Validar ou eu tenho que validar manualmente?

O método enviar assina, valida, envia, consulta o recibo no método assíncrono, e imprime o DANFE (se o parâmetro estiver True).

Leia os fontes:

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;
  NotasFiscais.Validar;

  Result := WebServices.Envia(ALote, Sincrono, Zipado);

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

 

  • Curtir 1
  • Obrigado 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Membros Pro
Postado
14 minutos atrás, Sérgio Assunção disse:

@doidopb
A validação "confronta" o XML gerado pela aplicação com os Schemas, é um processo offline. Caso tenha algum erro de estrutura ou sintaxe, o erro é exibido nesse momento.

Por isso é interessante seguir o fluxo "assinar", "validar", "enviar".

Só pra confirmar...

De acordo com o BigWings o Validar já é executado no Enviar, antes do envio e depois da assinatura...

Portanto no ato do envio, se ocorrer falha na validação, seria gerado uma exceção e o envio nem seria iniciado... Correto?

  • Curtir 1
Postado
41 minutos atrás, doidopb disse:

Só pra confirmar...

De acordo com o BigWings o Validar já é executado no Enviar, antes do envio e depois da assinatura...

Portanto no ato do envio, se ocorrer falha na validação, seria gerado uma exceção e o envio nem seria iniciado... Correto?

Sim. Se houver erro na validação a sequencia é interrompida.

  • Curtir 2
Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

  • Este tópico foi criado há 2186 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.