Boa tarde. Efetuando testes na ECF ecfEscECF, após chamar o comando de fechamento do cupom, simulando um fim de papel, escolhendo a opção "NÃO" no questionamento de tentar novamente, o componente gera um exceção, até ai tudo perfeito, porém chamando o comando de cancelamento logo após a exceção, a variável interna fsEmPagamento fica "True", chegando nessa parte do código.
procedure TACBrECFEscECF.CancelaCupom; var UltimoCOO: Integer; Est: TACBrECFEstado; begin RespostasComando.Clear; //Sendo que esse comando TACBrECF( fpOwner ).Estado, retorna que a impressora esta em pagamento. Est := TACBrECF( fpOwner ).Estado; case Est of estRelatorio : FechaRelatorio ;
estVenda, estPagamento, estNaoFiscal : begin //Caindo nessa parte do código, porém esse comando retorna o erro de Categoria 11 e Motivo 2. //Código original EscECFComando.CMD := 31; EnviaComando; //Código alterado, com possível correção, não sei se foi a melhor forma, porém funcionou. EscECFComando.CMD := 31; try EnviaComando; except if (EscECFResposta.CAT = 11) and fsEmPagamento then begin fsEmPagamento := False; CancelaCupom; end else raise; end; end;