Pular para conteúdo

Recursos do terminal

Além do fluxo básico de apontamento, o terminal traz vários recursos operacionais que muitas vezes passam despercebidos. Esta página os documenta.

Sistema 100% online — leia primeiro

O terminal é um PWA: a interface e os recursos visuais ficam pré-carregados e abrem mesmo sem rede — mas toda operação de apontamento depende do Protheus. Sem conexão com o ERP, o sistema mostra a tela:

"O sistema de Apontamento necessita de conexão com o servidor ERP para funcionar."

Ou seja: "instalável / offline" significa app instalável com interface em cache — não "opera desconectado". Nada é gravado sem o ERP (o Service Worker declara "Sistema 100% online — depende do ERP").

Leitura por código de barras (wedge)

Leitor de teclado (keyboard wedge), sem configuração no terminal:

  • 8 dígitos = operador (filial 2 + matrícula 6) → identifica o operador e habilita a OP.
  • 11 dígitos = OP (nº 6 + item 2 + sequência 3) → carrega a Ordem de Produção.
  • Distingue leitura de scanner (teclas muito rápidas) de digitação humana; Enter finaliza a leitura e o código não "vaza" para o campo em foco.

Typeahead de operador

Campo de operador com busca conforme digita (endpoint apt003), com debounce — mostra matrícula + nome e preenche ao selecionar. Alternativa ao leitor de código de barras.

Troca de OP

Botão Trocar: muda para outra OP mantendo o operador identificado. A sessão anterior continua no servidor (não é perdida nem encerrada).

Controle de sessão

  • Estado da sessão (ocioso / ativo) e restauração automática da sessão ativa ao identificar o operador.
  • Cronômetro da sessão em andamento.

Encerramento automático da OP

O encerramento (apt013MATA250) é disparado automaticamente após o STOP da última operação da OP — o operador não precisa encerrar manualmente.

Sincronização de relógio

Os horários usados no apontamento vêm do servidor (o backend devolve horaServidor nas respostas). O terminal não depende do relógio local, evitando divergências de horário entre dispositivos.

Reconexão / offline

Detecta os eventos online/offline, exibe um banner de rede indisponível, bloqueia a gravação enquanto offline e restaura automaticamente ao reconectar (ver aviso no topo desta página).

Atualização automática de versão

Polling de version.json + Service Worker (skipWaiting / controllerchange): novos deploys chegam ao terminal sem reinstalar, com banner de atualização. (Versão atual em version.json.)

Cache

  • Service Worker com cache versionado dos assets (apontamento-producao-vN) — inclui o vendor/ (fontes, ícones, pdf.js) para a interface abrir perfeita mesmo sem internet externa.
  • Cache do estado de operações e lazy-load do histórico (rebusca ao trocar de OP).

Timeout e trava de concorrência

  • Toda requisição tem timeout (AbortController + CONFIG.TIMEOUT, 30 s).
  • Trava de processamento (STATE.isProcessing) impede envio duplicado enquanto uma operação está em curso.

Visualizador de PDF

Base de conhecimento (apt023) com zoom e pan dos desenhos/documentos.


Onde isso está no código

Os módulos acima estão marcados por seções no web/app.js (banner // === + título): BARCODE SCANNER, OPERADOR TYPEAHEAD, TIMER, VERSION CHECK, SERVICE WORKER, ACTIONS etc. Bom ponto de partida para manutenção.