Produção
Lista ordens de produção
Retorna as ordens de produção da empresa, com SKU produzido, armazém, status, pedido vinculado (quando há) e dados do usuário criador. Aceita filtros por id, SKU, status e faixa de data de cadastro.
Cria uma ordem de produção
Cria uma OP para um SKU configurado como `OwnProduction = 1`. Efeitos no momento da criação:
Detalha uma ordem de produção
Retorna a OP completa com: cabeçalho, lista de **itens consumidos** (`Items` — array de `StockKeepingUnitMovement` de cada insumo com SKU, quantidade, custo total e unitário, armazém), lista de **etapas** (`StockKeepingUnitProductionLineSteps` — array com status, tempo gasto, tempo decorrido, usuário que finalizou cada uma) e somatórios de tempo (`TimeSpentTotal`, `TimeElapsedTotal`) e custo (`ValueCostTotal`).
Atualiza uma ordem de produção
Atualiza campos editáveis (`DateEstimated`, `Comments`, `IDTypeStatusSkuProduction`, `IDOrder`) — apenas os campos enviados são alterados. Bloqueia atualização quando a OP está **Finalizada** com pedido vinculado ou **Cancelada**. Quando `IDTypeStatusSkuProduction` é enviado, valida que existe no catálogo. A resposta é o detalhe atualizado.
Cancela uma ordem de produção
**Cancelamento lógico**: marca a OP como `IDTypeStatusSkuProduction = 4` (Cancelado) e remove fisicamente os movimentos de insumos consumidos (`StockKeepingUnitMovement`) e as etapas (`StockKeepingUnitProductionSteps`). Reverte automaticamente o saldo dos insumos no armazém. Bloqueado quando a OP já está **Finalizada** ou **Cancelada**. A resposta é o detalhe da OP cancelada.
Finaliza a ordem de produção (gera Recebimento)
Conclui a OP marcando como `IDTypeStatusSkuProduction = 1` (Finalizado). Efeitos colaterais:
Atualiza uma etapa da OP (status e tempo gasto)
Marca o progresso de uma etapa específica da OP: muda o status (`IDTypeStatusSkuProduction`) e registra o tempo gasto (`TimeSpent`, formato `HH:MM:SS`). Quando muda para 3 (Em andamento), grava `RecordTimestampStart = NOW()`. Quando muda para 1 (Finalizado), grava `RecordTimestampEnd = NOW()` e `RecordUserCreatedEnd` (usuário autenticado). Como efeito colateral, a OP-mãe passa para status 3 (Em andamento) — sai do Aberto. Devolve o detalhe da OP.
Line
7 itens
Sku
3 itens