Boa tarde Vinícius,
Você pode fazer assim no método de transmissão:
function TransmitirNFCe;
var
bNotaJaTransmitida : Boolean;
...
begin
...
if (ACBrNFe1.Enviar(iLoteId, False, False)) then
if not ConsultaChaveNFCe(sChaveNFCEe) then
end;
Boa tarde Vinícius,
Eu faço dessa forma tento 3 vezes para garantir a transmissão. Caso contrário não consegua transmitir emito em OFFLINE e depois será transmitida por outro método. Quando o problema de Internet ou servidor da sefaz voltar em fim.
Espero ter te ajudado! E dá uma curtida ai! Valeu!
procedure TransmitirNFCe (sChaveNFCEe : string);
var
bNotaJaTransmitida : Boolean;
iTentativas : Integer;
...
begin
...
repeat
bNotaJaTransmitida := false;
ACBrNFe1.Enviar(iLoteId, False, False);
bNotaJaTransmitida := ConsultaChaveNFCe(sChaveNFCEe);
if bNotaJaTransmitida then
Exit;
until (iTentativas > 3);
if (not bNotaJaTransmitida) then
begin
// Código para gerar nota em OFFLINE para depois transmitir.
....
end;
...
end;