Pessoal tudo bem?
Estou tendo um problema com o teste de homologação da clisitef sequencia 44.
É para apresentar uma mensagem com o seguinte texto: “Última transação TEF não foi efetuada. Favor reter o Cupom.”, e está sendo apresentado a mensagem assim "Transação não efetuada."
fiz o teste com o exemplo da acbr e foi apresentado o mesmo problema.
Debugei o fonte do componente ACBRTEFD e na classe "TACBrTEFDCliSiTef" na procedure "FinalizarTransacao" tem o seguinte teste:
if (Est = 'O') then
AMsg := CACBrTEFD_CliSiTef_TransacaoNaoEfetuada
else
AMsg := CACBrTEFD_CliSiTef_TransacaoNaoEfetuadaReterCupom;
"As constantes acima estão preenchidas da seguinte forma:
CACBrTEFD_CliSiTef_TransacaoNaoEfetuada = 'Transação não efetuada.' ;
CACBrTEFD_CliSiTef_TransacaoNaoEfetuadaReterCupom =
'Transação não efetuada.'+sLineBreak+'Favor reter o Cupom' ;"
No evento "OnInfoECF" do componente "ACBRTEFD" fiz a programação conforme o orientação no comentário do exemplo da ACBR. que segue abaixo:
{ Leia o último Documento Gravado no seu Banco de Dados, e verifique
se o Cupom já foi finalizado,ou se já foi aberto um CCD ou Gerencial...
Exemplo:
Documento.Le(0);
if (Documento.Finalizado) or (pos(Documento.Denominacao,'CC|RG') > 0) then
RetornoECF := 'R'
else
RetornoECF := 'O' ;
}
Está retornando 'O' pois cupom fiscal não foi finalizado (obs.: No exemplo da ACBR deixei o retorno fixo assim "RetornoECF := 'O'; // Executará CancelarTransacoesPendentes;" )
O componente cancela a transação pendente conforme requisito do teste mas a mensagem que deveria ser apresentada é a outra.
O que devo fazer para que o cancelamento continue sendo executado, mas que a mensagem apresentada para o usuário seja a da constante CACBrTEFD_CliSiTef_TransacaoNaoEfetuadaReterCupom (“Última transação TEF não foi efetuada. Favor reter o Cupom.”)?
obs.: Segue abaixo o roteiro do teste da sequencia 44 caso precisem para tirar alguma dúvida:
Preparação:
- Esta transação poderá ser de qualquer valor
- A aplicação sempre deverá verificar o status da impressora.
Execução:
- Realizar uma transação de Crédito magnético com uma parte do valor da venda
- Selecionar a opção á vista
- Chamar o 2º cartão com o valor restante da venda, ao aparecer a mensagem de “Insira ou passe o cartão”, desligar o computador (reset) e em seguida desligar a impressora
- Ligar apenas o computador
- Cancelar a transação TEF mesmo com a impressora desligadae caso não tenha lançado a forma de pagamento é permitido aproveitar o cupom fiscal.
Resultado Esperado
- Tratar a pendência da transação TEF
- Exibir mensagem ao operador:
“Última transação TEF não foi efetuada. Favor reter o Cupom.”
- Verificar o status da impressora e exibir mensagem de Falha de comunicação
- Não há impressão de cupom TEF.
- A transação não será autorizada
Aguardo feedback e desde já obrigado pela atenção.