Ir para conteúdo
  • Cadastre-se

dev botao

CliSiTef pré-homologação Seq. 44 - ACBRTefD + NFC-e


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

Recommended Posts

  • Membros Pro

Olá pessoal.

Estou com uma situação/problema em relação ao uso do estadoSimuladoECF. Não é nada errado no ACBr apenas dúvida de como implementar.
Estudei o demo do ACBrNFC-e + TEF e consigo realizar o procedimento normalmente, já me situei quanto à necessidade do "estadoSimuladoECF". Mas estou com a seguinte situação agora:

Cenário:
- Transação com 2 cartões + NFC-e.
- Seq. 44 (Sequência 44) do roteiro de pré-homologação. Nela é solicitado que eu passe o 1° cartão normalmente, e assim que solicitar para inserir o 2°, eu devo desligar o PC e impressora. No retorno a transação TEF deveria ser Cancelada.

Situação/Problema:
Ao religar o computador e inicializar o meu PDV (e o ACbrTEFD), é acionado o método VerificarTransacoesPendentes da classe ACBrTEFDClass e executado este código:

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

 

O problema é que, diferente de uma impressora ECF, aqui eu não sou forçado a comunicar novamente com a impressora (para recuperar o cupom ECF) e nem tenho como recuperar o ultimo valor atribuido à variável "estadoSimuladoECF".
Sendo assim, ao invés de Cancelar a transação, ela é aprovada.
Obs: Meu ACbrTEFD com NFC-e sempre inicia com o estado "tpsLivre".

Tenho uma solução em mente: A cada alteração, armazenar o valor da variável "estadoSimuladoECF" em um arquivo INI (ou BD local do PDV), e quando houver alguma queda bruta de energia, eu recupero esta informação e se o valor for "tpsPagamento" (EstadoECF='P') então faria o cancelamento normalmente tal como está no Roteiro.

Eu não queria implementar sem postar aqui para ver se alguém tem uma sugestão melhor e também para ficar registra a solução, a fim de ajudar outros membros.

Obs: Não se se fui bem claro. De qualquer forma segue abaixo a desrição do roteiro:

image.thumb.png.7012529d1165248d0e54372cf83a9f82.png

Desde já agradeço.

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
  • 2 semanas depois ...
  • Membros Pro
Em 19/10/2018 at 15:43, gralak disse:

OLá maiconsaraiva não sei se seria a melhor saída. Mas no meu caso creie uma function no base de dados que grava terminal e o statusecf simulada. Assim consigo retornar esse status ao iniciar o programa novamente.

Olá @gralak valeu pela dica, no meu caso acabei fazendo por INI mesmo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1997 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.

The popup will be closed in 10 segundos...