Regras globais da empresa que definem eventos automáticos no Cockpit, uso da estrutura fabril (hierarquia) e geração automática de lote no reporte de produção.
No ambiente de documentação, Hierarquia produtiva e Geração de lote no reporte estão ativas — os trechos abaixo descrevem o comportamento com essas opções ligadas.
Um único registro por empresa (PUT /production-preferences/) concentra:
Alterações aqui afetam Cockpit, Máquinas, Operações, Estoque, Movimentações e relatórios de produção.



Recursos com cadeado exigem feature no plano (production.preferences.machine_hierarchy, production.preferences.lot_generation).
| Campo na tela | Quando dispara |
|---|---|
| Evento ao iniciar em produção | Start da ordem/operação em modo produção |
| Evento ao iniciar em setup | Start em modo setup |
| Evento ao encerrar | Encerramento da ordem/operação |
Cadastre e revise tipos em Tipos de evento. Os padrão da empresa costumam ser PRODUÇÃO, SETUP e SEM OP (códigos podem variar).
| Área | Comportamento |
|---|---|
| Hierarquia | Cadastro em abas Plantas, Áreas, Linhas (Hierarquia). |
| Máquinas | Campo Linha produtiva na aba Identificação; coluna na lista. |
| Relatórios | Filtros Planta / Área / Linha em Tempos máquina, Indicadores, Relatório de eventos e edição de eventos. |
| API | Parâmetros id_plant, id_production_area, id_production_line em consultas de máquinas/eventos quando a flag está ativa. |
Quando a operação tem Lança estoque ativo e você registra um reporte com quantidade boa e/ou refugo (POST /wms/production-report/):
generate_lot === true nas preferências.lot_generation_rule.lot_id / lot_validity da resposta.O operador não digita o lote no reporte — o sistema cria automaticamente a cada reporte que movimenta estoque com a preferência ativa.
| Tela | Uso |
|---|---|
| Estoque | Saldo por lote; filtro por código |
| Movimentações | Busca/criação manual de lote no modal (combobox) |
| Reimpressão de etiquetas | Histórico com lot_code |
| Etiquetas no reporte | Variáveis de template podem incluir lote gerado |
Disponível só com Geração de lote ligada. Abre o builder com:
| Campo | Descrição |
|---|---|
| Template do código do lote | Texto com tokens {product_code}, {order_code}, {date:YYYYMMDD}, {seq:4}, etc. |
| Sequência (início) | Primeiro número do contador {seq:N} (ex.: 1 → 0001). |
| Sequência (dígitos) | Largura com zeros à esquerda (1–12). Deve combinar com {seq:N} no template. |
| Forçar maiúsculas | Converte o código final para MAIÚSCULAS. |
| Blocos do sistema | Botões que inserem tokens no template (produto, ordem, operação, depósito, endereço, máquina, turno, usuário, datas). |
Template padrão de exemplo:
FG-{order_code}-{product_code}-{date:YYYYMMDD}-{seq:4}
Salvar na página principal ou no modal persiste JSON no backend:
{
"version": 1,
"type": "lot_code_template",
"lot_code_template": "FG-{order_code}-{product_code}-{date:YYYYMMDD}-{seq:4}",
"options": {
"uppercase": true,
"sequence": { "start": 1, "digits": 4 }
}
}
| Grupo | Token | Valor na geração |
|---|---|---|
| Produto | {product_code}, {product_id}, {product_name} | Dados do produto acabado |
| Ordem / operação | {order_code}, {order_id}, {order_type}, {operation_code}, {operation_id}, {operation_name} | Contexto do reporte |
| Logística | {warehouse_code}, {warehouse_id}, {location_code}, {location_id}, {location_type} | Depósito/endereço do reporte |
| Produção | {machine_code}, {machine_id}, {shift}, {quantity}, {user_name}, {user_email} | Máquina, turno, usuário |
| Data/hora | {date:YYYYMMDD}, {date:YYYY-MM-DD}, {time:HHmm}, {datetime:YYYYMMDDHHmmss}, {occurred_at} | Momento do reporte |
| Sequência | {seq:4}, {seq:6}, … | Contador incremental (dígitos = N) |
Dicas de template
-, _) entre blocos; o builder pode inserir - automaticamente.{seq:N} no template deve usar o mesmo N que Sequência (dígitos) (ex.: dígitos 4 → {seq:4}).lot_code na empresa), o sistema reutiliza o registro em vez de falhar.Com lote ativo, na aba Reporte de Operações pode habilitar Empenho obrigatório:
| # | Ação |
|---|---|
| 1 | Hierarquia: planta, áreas, linhas |
| 2 | Máquinas: linha produtiva em cada máquina |
| 3 | Preferências: template de lote + Salvar |
| 4 | Produtos: validade em dias (opcional, para lot_validity) |
| 5 | Operações: endereços WMS, Lança estoque, empenho se necessário |
| 6 | Cockpit: reporte de teste → conferir lote em Estoque |
GET/PUT — /production-preferences/ (use_machine_hierarchy, generate_lot, lot_generation_rule, eventos)GET — /event-types/_generate_report_lot em POST /wms/production-report/ quando generate_lot ativo/plants/, /production-areas/, /production-lines/Ativei hierarquia mas não vejo linha na máquina
Salve as preferências, recarregue Máquinas e confira se a feature do plano está liberada.
Ativei lote mas o reporte não criou código
A operação precisa Lança estoque; sem movimentação WMS o lote pode não ser gerado. Confira também produto acabado na operação.
Posso usar lote manual e automático?
Sim — reporte gera lote; Movimentações permite buscar/criar por lot_code manualmente.
Desligar geração de lote apaga lotes antigos?
Não — apenas impede novos lotes automáticos nos próximos reportes.
Relatório sem máquina com hierarquia
Selecione planta/área/linha ou máquinas explicitamente; hierarquia sozinha sem máquinas cadastradas na linha não retorna linhas.