Fechamento de Produção¶
MKI > Produção > Fechar Produção
Visão Geral¶
O Fechamento de Produção é o processo que conclui uma ordem de produção: registra a quantidade fabricada, dá baixa nas matérias-primas consumidas e dá entrada no estoque do produto acabado. É o passo final do ciclo de produção no MKI.
A tela oferece dois modos de fechamento:
- Coletivo — fecha múltiplos produtos ao mesmo tempo informando produto e quantidade (útil para fechamentos em lote de produtos idênticos em várias ordens)
- Individual — fecha produto por produto selecionando a ordem específica (permite lançamentos parciais e controle mais granular)
Campos e Banco de Dados¶
Aba Coletiva¶
| Campo na Tela | Para que serve | Regras |
|---|---|---|
| Produto | Produto acabado a fechar (lookup em PRODUTOS) |
F3 abre pesquisa; filtra pelo grupo de produto do parâmetro |
| Quantidade | Quantidade produzida a registrar | Obrigatório. Aceita decimais. |
| Grid coletiva | Exibe a lista de produtos/quantidades a fechar em lote | Itens adicionados manualmente. |
| Botão Excluir | Remove item da lista da grid | — |
| Botão Limpar | Limpa toda a lista | — |
Aba Individual¶
| Campo na Tela | Tabela.Campo Banco | Para que serve | Regras |
|---|---|---|---|
| Produção | PRODUCAO.PD_CODIGO |
Ordem de produção a fechar | F3 abre busca de ordens abertas. |
| Produto | PRODUDTL.PD_PRODUTO |
Produto específico dentro da ordem | Selecionado após escolher a ordem. |
| Quantidade | registrado em DPRODUDTL.DP_QUANTIDADE |
Quantidade parcial ou total a lançar | Obrigatório. Pode ser menor que PD_QUANT (fechamento parcial se chkSaidaParcial marcado). |
| Saída Parcial | flag local | Permite registrar menos do que o total da ordem sem fechar definitivamente | Se desmarcado, o sistema fecha a ordem completamente. |
| Grid de Parciais | DPRODUDTL |
Histórico de lançamentos parciais já realizados para este produto/ordem | Read-only. Mostra data, hora, usuário e quantidade de cada lançamento. |
| Quantidade Total de Lançamentos | DPRODUDTL.SUM_QUANTIDADE |
Soma dos lançamentos parciais já feitos | Calculado. Atualizado em tempo real. |
Matérias-Primas consumidas (PRODUCMP)¶
| Campo | Tabela.Campo Banco | Para que serve |
|---|---|---|
| Matéria-Prima | PRODUCMP.PM_MATPRIMA |
Insumo a ser baixado |
| Quantidade Calculada | PRODUCMP.PM_QUANT |
Quantidade conforme composição × qtd produzida |
| Quantidade Final | PRODUCMP.PM_QUANTF |
Quantidade real a baixar (pode ser editada pelo operador) |
| Data/Hora atualização | PRODUCMP.PM_DTATLZ / PM_HRATLZ |
Registro da baixa |
Regras de Negócio¶
O que acontece no fechamento (BBtn_gerarClick)¶
- Valida produto e quantidade informados.
- Para cada produto:
- Registra o lançamento em
DPRODUDTL(quantidade parcial com data, hora e usuário). - Atualiza
PRODUDTL.PD_DTFECHcom a data atual (marca o produto como fechado). - Baixa as matérias-primas: Para cada MP da ordem (
PRODUCMP), descontaPM_QUANTFdo estoque da filial (FILIALPROD). Se trabalha com lotes (INSV_LOTES = 'S'), debita do lote específico. - Entrada do produto acabado: Dá entrada no estoque do produto acabado na filial destino com o lote e validade informados.
- Se
ATLZ_CUSTO_PRODUCAO = 'S': atualiza o preço de custo do produto acabado com o custo calculado da composição. - Se
CALC_PVENDA = 'S': recalcula o preço de venda a partir do novo custo. - Atualiza o status da ordem
PRODUCAO.PD_STATUSpara o status de "Concluído".
Fechamento parcial¶
Quando chkSaidaParcial está marcado, o lançamento em DPRODUDTL é registrado mas a ordem não é fechada definitivamente (PD_DTFECH fica em branco). Novos lançamentos parciais podem ser feitos até atingir a quantidade total.
Nova produção a partir do fechamento¶
O botão Clips (Nova Produção) permite criar uma nova ordem de produção diretamente desta tela, reabrindo a tela de Ordens de Produção com dados pré-preenchidos.
Excluir lançamento parcial¶
O botão Excluir Lançamento remove o último lançamento parcial em DPRODUDTL para permitir correção antes do fechamento definitivo.
Tabelas envolvidas no fechamento¶
| Tabela | Operação | O que faz |
|---|---|---|
DPRODUDTL |
INSERT | Registra o lançamento parcial/total |
PRODUDTL |
UPDATE | Preenche PD_DTFECH ao fechar |
PRODUCAO |
UPDATE | Atualiza status para concluído |
PRODUCMP |
UPDATE | Registra data/hora da baixa de MP |
FILIALPROD |
UPDATE | Desconta estoque das MPS e adiciona produto acabado |
FLOTES |
UPDATE | Debita do lote específico de MP (se INSV_LOTES = 'S') |
PRODUTOS |
UPDATE | Atualiza PR_PRECOCUST (se ATLZ_CUSTO_PRODUCAO = 'S') |
Integrações e Lookups¶
| Campo | Origem |
|---|---|
| F3 Produção (individual) | PRODUCAO — ordens abertas (sem PD_DTFECH) |
| F3 Produto (coletivo) | PRODUTOS — filtrado por grupo se GRUPOMP configurado |
| Sub-grid matérias-primas | PRODUCMP JOIN PRODUTOS — MP da ordem selecionada |
| Sub-grid parciais | DPRODUDTL — histórico de lançamentos já feitos |
Passo a Passo do Usuário¶
Como fechar uma produção (modo individual)?¶
- Acesse Produção → Fechar Produção, aba Individual.
- Clique em Selecionar Produção (F3) e escolha a ordem de produção.
- Selecione o produto na grid de produtos da ordem.
- Informe a Quantidade produzida.
- Se for fechamento parcial, marque Saída Parcial.
- Clique em Gerar. O sistema registra a saída e faz as movimentações de estoque.
Como fechar em modo coletivo?¶
- Acesse aba Coletivo.
- Informe o produto (F3) e a quantidade.
- Repita para todos os produtos a fechar.
- Clique em Gerar. O sistema fecha todos os registros da lista.
Perguntas frequentes do suporte¶
"O estoque do produto acabado não aumentou após o fechamento"
→ Verifique se o parâmetro NCONSESTOQUE = 'S' não está marcado na ordem (PRODUCAO.PD_NCONSESTOQUE). Quando ativo, o fechamento não movimenta estoque.
"As matérias-primas não baixaram no fechamento"
→ Verifique se os produtos da ordem têm composição cadastrada. Sem composição, não há MP para baixar. Verifique também o parâmetro INSV_LOTES — se ativo e o lote não estiver corretamente informado na ordem, pode haver erro na baixa.
"Erro ao fechar — produto sem lote obrigatório"
→ O parâmetro INCLOTE = 'S' exige que todo produto acabado tenha lote informado em PRODUDTL.PD_LOTE. Oriente o operador a preencher o lote na ordem de produção antes de fechar.
"O preço de custo do produto não foi atualizado após o fechamento"
→ O parâmetro ATLZ_CUSTO_PRODUCAO deve estar como 'S' em Parâmetros Especiais. Se estiver 'N', o custo não é atualizado automaticamente no fechamento.