Ir para conteúdo
  • Cadastre-se

dev botao

Seq. 27 SiTef - Tratamento de queda de energia - Comportamento ao inicializar


Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 3160 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Moderadores
Postado

Bom dia,

 

estou realizando os testes para homologar o SiTef e na sequencia 27 é pedido para que faça uma transação e no meio da impressao do comprovante resetar o computador e desligar a ecf. Quando o computador reinicializar é pedido para abrir o paf-ecf ainda com a ecf desligada.

O objetivo do teste é confirmar a transação tef pendente.

Aí entra o comportamento do ACBrTEFD. Ao ser inicializado ele dispara o evento OnInfoECF para retornar o status atual da mesma. Como a ecf ainda está desligada o retorno é "Outros" representado pela letra "O". Olhando a unit ACBrTEFDCliSiTef no método inicializar quando é retornado o status "Outros", o comportamento atual é cancelar as transações pendentes.

 

// Cupom Ficou aberto ?? Se SIM, Cancele tudo... //
  if (Est in ['V','P','N','O']) then
     CancelarTransacoesPendentesClass
  else
     // NAO, Cupom Fechado, Pode confirmar e Mandar aviso para re-imprimir //
     ConfirmarESolicitarImpressaoTransacoesPendentes ;

Nesse caso, para atender ao teste, poderia ser retirado o status "Outros" da condicional para cancelar? Isso traria alguma anomalia futura em outro comportamento do componente? Ficaria dessa forma:

 

// Cupom Ficou aberto ?? Se SIM, Cancele tudo... //
  if (Est in ['V','P','N']) then
     CancelarTransacoesPendentesClass
  else
     // NAO, Cupom Fechado, Pode confirmar e Mandar aviso para re-imprimir //
     ConfirmarESolicitarImpressaoTransacoesPendentes ;

Ou talvez há alguma outra forma de contornar a situação?

 

Grato.

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Postado (editado)
41 minutos atrás, Cleber disse:

Bom dia,

 

estou realizando os testes para homologar o SiTef e na sequencia 27 é pedido para que faça uma transação e no meio da impressao do comprovante resetar o computador e desligar a ecf. Quando o computador reinicializar é pedido para abrir o paf-ecf ainda com a ecf desligada.

O objetivo do teste é confirmar a transação tef pendente.

Aí entra o comportamento do ACBrTEFD. Ao ser inicializado ele dispara o evento OnInfoECF para retornar o status atual da mesma. Como a ecf ainda está desligada o retorno é "Outros" representado pela letra "O". Olhando a unit ACBrTEFDCliSiTef no método inicializar quando é retornado o status "Outros", o comportamento atual é cancelar as transações pendentes.

 


// Cupom Ficou aberto ?? Se SIM, Cancele tudo... //
  if (Est in ['V','P','N','O']) then
     CancelarTransacoesPendentesClass
  else
     // NAO, Cupom Fechado, Pode confirmar e Mandar aviso para re-imprimir //
     ConfirmarESolicitarImpressaoTransacoesPendentes ;

Nesse caso, para atender ao teste, poderia ser retirado o status "Outros" da condicional para cancelar? Isso traria alguma anomalia futura em outro comportamento do componente? Ficaria dessa forma:

 


// Cupom Ficou aberto ?? Se SIM, Cancele tudo... //
  if (Est in ['V','P','N']) then
     CancelarTransacoesPendentesClass
  else
     // NAO, Cupom Fechado, Pode confirmar e Mandar aviso para re-imprimir //
     ConfirmarESolicitarImpressaoTransacoesPendentes ;

Ou talvez há alguma outra forma de contornar a situação?

 

Grato.

Acho que tem um equivoco ai.

Se o COMPROVANTE não foi totalmente impresso e a impressora está inativa, ou seja, retornando "OUTROS", então a transação tem que ser cancelada mesmo.

O componente está se comportando da forma correta.

Pergunte ao homologador se um comprovante impresso pela metade é válido, já que ele está solicitando que a transação seja confirmada nessa situação.

Editado por giulianon

Giuliano Naspolini Ribeiro

Automalog Consultoria e Sistemas Ltda

  • Fundadores
  • Solution
Postado

Leia as observações do TEFDDemo...

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:

procedure TForm1.ACBrTEFD1InfoECF(Operacao : TACBrTEFDInfoECF;
   var RetornoECF : String );
var
   ASubTotal: Double;
begin
   try
      if not ACBrECF1.Ativo then
         ACBrECF1.Ativar ;
   except
      { Para CliSiTEF ou V&SPague aplique o IF abaixo em sua aplicação, que
        permite saber se o Cupom foi concluido mesmo com o ECF desligado }

      if (not ACBrTEFD1.TEF.Inicializado) and   { Está na inicialização ? }
         (Operacao = ineEstadoECF) and          { Quer Saber o estado do ECF ? (mas se chegou aqui é pq o ECF já está com problemas) }
         (ACBrTEFD1.GPAtual in [gpCliSiTef,gpVeSPague]) then
      begin
         { 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' ;
         }

         //RetornoECF := 'O';    // Executará CancelarTransacoesPendentes;
         RetornoECF := 'R';    // Executará ConfirmarESolicitarImpressaoTransacoesPendentes;
         exit ;
      end ;

      raise ;
   end;

......

 

  • Curtir 3
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.