Bom dia,
eu fiz o seguinte teste, coloquei só um pedaço de papel na impressora e fui lançando produtos (isso no meu pdv e no ecf teste), quando acaba o papel ele não passa na exception do 'sem papel' e sim no exception do 'sem resposta', abaixo tenho o exemplo de como está o exception do meu pdv hoje.
Except
on E:EACBrECFSemPapel do
begin
TLogUtils.Log('FIM DO PAPEL');
FECF.Desativar;
Synchronize(
procedure
begin
TDlgAviso.Error('FIM DO PAPEL, SUBSTITUA O PAPEL E PRESSIONE OK');
end);
FECF.Ativar;
try
if SubTotal <> FECF.Subtotal then
begin
SubTotal := FECF.Subtotal;
ControleArquivo.GravaItemVenda(FLista.Items[Key].Codigo + ';' + FLista.Items[Key].Sequencia.ToString);
VendeuItem := True;
end;
except
end;
end;
on E:EACBrECFSemResposta do
begin
TLogUtils.Log('Sem resposta');
FECF.Desativar;
Synchronize(
procedure
begin
TDlgAviso.Error('ECF NÃO RESPONDE, VERIFIQUE O PAPEL E OS CABOS');
end);
FECF.Ativar;
try
if SubTotal <> FECF.Subtotal then
begin
SubTotal := FECF.Subtotal;
ControleArquivo.GravaItemVenda(FLista.Items[Key].Codigo + ';' + FLista.Items[Key].Sequencia.ToString);
VendeuItem := True;
end;
except
end;
end;
on E:Exception do
begin
try
TLogUtils.Log(E.Message);
if not FLista.Items[Key].isPreVenda then
begin
FECF.Desativar;
Synchronize(
procedure
begin
TDlgAviso.Error('Impressora não esta em linha, verifique os cabos e o papel.');
end);
FECF.Ativar;
if SubTotal <> FECF.Subtotal then
begin
SubTotal := FECF.Subtotal;
ControleArquivo.GravaItemVenda(FLista.Items[Key].Codigo + ';' + FLista.Items[Key].Sequencia.ToString);
VendeuItem := True;
end
else
begin
Log.Add('Erro Adicionando Item Cupom:'+FLista.Items[Key].Descricao);
Log.Add('Erro adicionando item: ' + E.Message);
ControleArquivo.GravaErro('Produto: '+FLista.Items[Key].Descricao + #13 + 'Erro : '+E.Message);
VendeuItem := True;
FErroECF := True;
end;
end
else
begin
Log.Add('Erro Adicionando Item Cupom:'+FLista.Items[Key].Descricao);
Log.Add('Erro adicionando item: ' + E.Message);
ControleArquivo.GravaErro('Produto: '+FLista.Items[Key].Descricao + #13 + 'Erro : '+E.Message);
VendeuItem := True;
FErroECF := True;
end;
except
end;
end;
End;