Pular para conteúdo

Fluxo de apontamento

O apontamento gira em torno de uma sessão (registro em MLTEC_0051), que representa um operador trabalhando em uma operação de uma OP num recurso. Só pode existir uma sessão ativa por combinação OP + Operação (índice único em MLTEC_0051).

Estados da sessão

A coluna MLTEC_0051.STATUS controla o ciclo de vida:

Status Significado
I Em produção (iniciada)
P Pausada (há uma pausa aberta em MLTEC_0052)
(encerrada) Sessão finalizada — DTFIM/HRFIM preenchidos ou registro descartado

Ciclo completo

stateDiagram-v2
    [*] --> Iniciada: apt004 (START)
    Iniciada --> Pausada: apt005 (PAUSE) + motivo (CYN)
    Pausada --> Iniciada: apt006 (RESUME)
    Iniciada --> Iniciada: apt007 (APONTAR produção · MATA681)
    Iniciada --> Iniciada: apt018 (REFUGO/PERDA · MATA685)
    Iniciada --> Encerrada: apt008 (parar/descartar sessão)
    Encerrada --> [*]
    Iniciada --> OPEncerrada: apt013 (encerrar OP · MATA250)
Passo Endpoint O que faz Grava em
Iniciar sessão apt004 Abre a sessão para OP/operação/recurso/operador MLTEC_0051 (STATUS I)
Pausar apt005 Abre uma pausa com motivo de parada (CYN) MLTEC_0052 + STATUS P
Retomar apt006 Fecha a pausa, acumula tempo pausado (TPAUSE) MLTEC_0052 / MLTEC_0051
Apontar produção apt007 Registra quantidade produzida SH6 via MATA681 + QTDPROD
Apontar refugo/perda apt018 Registra refugo/perda com motivo (CYO) SBC via MATA685 + QTDPERDA
Encerrar OP apt013 Encerra a Ordem de Produção SC2.C2_DATRF via MATA250
Parar/descartar sessão apt008 Finaliza a sessão do operador MLTEC_0051

Consulta de estado

  • apt009 devolve o detalhe da sessão (com suas pausas de MLTEC_0052).
  • apt001 lista as operações da OP e as sessões ativas; apt016 faz o lookup de OP/produto.

Estorno (com autorização de supervisor)

O estorno de um apontamento é protegido por credenciais de supervisor validadas no servidor:

sequenceDiagram
    participant O as Operador (terminal)
    participant S as Supervisor
    participant B as Backend (Protheus)
    O->>B: apt011 — pré-checagem (UX)
    B-->>O: apontamento elegível?
    O->>S: solicita autorização
    S->>B: apt012 — usuário + senha de supervisor
    B->>B: valida (PswSeek / PswName)
    alt credenciais válidas
        B-->>O: estorno efetivado (auditoria registra o supervisor)
    else inválidas
        B-->>O: 401 — negado, nada é alterado
    end

Regra de ouro do estorno

  • apt011 é apenas pré-checagem de UX — não autoriza nada.
  • apt012 valida a senha do supervisor no servidor (PswSeek/PswName); falha → 401.
  • O nome do supervisor autorizador é gravado na auditoria.
  • O registro a estornar é identificado pelo R_E_C_N_O_ da SH6 (AUTRECNO do MATA681, opção 5) — não pelo H6_SEQ, que costuma vir em branco no SIGAPCP. O front envia recno (e H6_IDENT para auditoria); o servidor reconfere OP+operação antes de estornar.

Estorno de perda (refugo)

A perda tem estorno próprio, via apt024MATA685 opção 6, identificando o documento por BC_NUMSEQ. Ele reverte a SBC e o movimento de estoque (não é um DELETE). Estorna o documento inteiro (todos os itens daquele apontamento de perda) e exige a mesma senha de supervisor do estorno de apontamento.

Guardas de segurança do fluxo

  • OP encerrada: U_ApOpFechada / U_ApSessOpFechada bloqueiam apontar/pausar/retomar em OP com C2_DATRF preenchido (o descarte de sessão via apt008 continua permitido, para o operador fechar a própria sessão).
  • Sessão única: índice único parcial em MLTEC_0051 impede duas sessões ativas (I/P) na mesma OP+Operação.
  • Validação de entrada: todo parâmetro passa por whitelist (utilApt) antes de qualquer query (OP = 11 dígitos, operação ≤ 5 dígitos, recurso ≤ 6, etc.) → entrada fora do formato responde 400.