ST_PERDAPRODUCAO — Perda na Produção
Tela de configuração: MEQ001 — Parâmetros de Estoque
Localização: Parâmetros → Opção 1
Tabela / Campo: PARMESTOQUE.ST_PERDAPRODUCAO
Tipo: CHAR(1)
Valor padrão: N
Controla como o sistema registra a perda de matéria-prima durante o fechamento de uma Ordem de Produção. Define se o valor da perda é incorporado ao custo do Produto Acabado ou se apenas a quantidade é baixada do estoque, sem impacto no custo final.
Campos envolvidos
| Campo | Tabela | Função |
|---|
ST_PERDAPRODUCAO | PARMESTOQUE | Flag que define o tratamento da perda (S/N) |
CD_OPERPRODPERDA | PARMESTOQUE | Operação de estoque utilizada para registrar a baixa de perda |
CD_HISTPERDA | PARMESTOQUE | Histórico padrão vinculado à movimentação de perda |
Telas impactadas
| Tela | Descrição |
|---|
| MEQ001 | Tela de configuração do parâmetro |
| CEQ002 | Consulta de Ordens de Produção — utiliza o parâmetro no cálculo de custo unitário |
| CEQ015 | Consulta de Ordens de Produção — carrega o parâmetro na query de dados |
| MEQ020 | Manutenção de Ordens de Produção — carrega o parâmetro na query de dados |
| MEQ044 | Manutenção de Ordens de Produção — carrega o parâmetro na query de dados |
Opções disponíveis
S — Soma o valor da perda no custo do Produto Acabado
| O que faz | Detalhe |
|---|
| Impacto no custo | Sim — o valor gasto com a matéria-prima perdida é adicionado ao custo do Produto Acabado |
| Movimentação de estoque | Baixa a quantidade perdida via operação de perda (CD_OPERPRODPERDA) com TP_DOCUMENTO = 'PR' |
| Cálculo unitário | A quantidade perdida (QT_PERDA) é somada ao divisor no cálculo do custo unitário |
Simulação passo a passo
- Acesse MEQ001 → Parâmetros → Opção 1.
- No campo Perda na Produção, selecione S — Soma o valor da perda no custo do Produto Acabado.
- Salve o parâmetro.
- Crie uma Ordem de Produção para o Produto X com 100 unidades.
- Registre uma perda de 10 unidades de matéria-prima no apontamento.
- Finalize (feche) a Ordem de Produção.
- Consulte a movimentação de estoque da matéria-prima: será registrada uma saída com
TP_DOCUMENTO = 'PR'.
- Consulte o custo do Produto Acabado: o valor das 10 unidades perdidas estará incluído no custo total.
Resultado esperado: O custo do Produto X será calculado dividindo o valor total gasto em matéria-prima por 110 (100 produzidas + 10 perdidas), diluindo o prejuízo da perda no custo unitário de cada unidade produzida.
Excecao / Importante: A quantidade de perda pode ser informada por lote (tabela ORDEMPRODUCAOLOTE). Quando há lotes, o sistema percorre cada lote individualmente, gerando uma movimentação de estoque separada por lote.
N — Somente faz a saída em quantidade e ignora o valor da perda
| O que faz | Detalhe |
|---|
| Impacto no custo | Não — o valor da perda é desconsiderado no custo do Produto Acabado |
| Movimentação de estoque | Baixa apenas a quantidade perdida via operação de perda (CD_OPERPRODPERDA) com TP_DOCUMENTO = 'AV' (avulso) |
| Cálculo unitário | A quantidade perdida não é somada ao divisor; o custo unitário é calculado apenas com a quantidade produzida |
Simulação passo a passo
- Acesse MEQ001 → Parâmetros → Opção 1.
- No campo Perda na Produção, selecione N — Somente faz a saída em quantidade e ignora o valor da perda.
- Salve o parâmetro.
- Crie uma Ordem de Produção para o Produto X com 100 unidades.
- Registre uma perda de 10 unidades de matéria-prima no apontamento.
- Finalize (feche) a Ordem de Produção.
- Consulte a movimentação de estoque da matéria-prima: será registrada uma saída com
TP_DOCUMENTO = 'AV' (avulso).
- Consulte o custo do Produto Acabado: o valor das 10 unidades perdidas não aparece no custo.
Resultado esperado: O custo do Produto X será calculado dividindo o valor total gasto em matéria-prima por 100 (apenas unidades produzidas). A perda gera apenas baixa de quantidade no estoque da matéria-prima, sem repasse de valor ao Produto Acabado. O prejuízo da perda fica registrado como custo avulso separado.
Excecao / Importante: Mesmo com ST_PERDAPRODUCAO = 'N', a saída de estoque da quantidade perdida sempre ocorre. A diferença é que o tipo de documento gerado é 'AV' (avulso) em vez de 'PR' (produção), o que impede a inclusão do valor no custo do Produto Acabado.
Tabela comparativa resumida
| Aspecto | S — Soma no custo | N — Ignora valor |
|---|
| Saída de quantidade da perda | ✓ | ✓ |
| Valor da perda incluído no custo do PA | ✓ | ✗ |
TP_DOCUMENTO gerado | 'PR' (produção) | 'AV' (avulso) |
| Custo unitário do PA | Calculado sobre (produzido + perdido) | Calculado apenas sobre produzido |
| Valor padrão | — | ✓ |
Procedures impactadas
| Rotina | Arquivo | Evidência |
|---|
iniciar | source/CEQ002/UCEQ002.pas:293 | Carrega iST_PERDAPRODUCAO da tabela PARMESTOQUE para uso nos cálculos de custo |
TfrmCEQ002.btnProcurarClick | source/CEQ002/UCEQ002.pas:967 | Quando ST_PERDAPRODUCAO = 'S', soma QT_PERDA ao divisor do custo unitário |
tabPARMESTOQUEAfterInsert | source/MEQ001/UdmMEQ001.pas:282 | Define valor padrão 'N' ao inserir novo registro |
| Procedure | Arquivo | Evidência |
|---|
GERA_ORDEMPRODUCAO | Scripts/GERA_ORDEMPRODUCAO.sql:91,584 | Declara variável V_ST_PERDAPRODUCAO; quando 'S', gera saída com TP_DOCUMENTO = 'PR'; quando 'N', gera com TP_DOCUMENTO = 'AV' |
Carregamento em queries (sem lógica condicional direta)
Estas rotinas carregam o campo ST_PERDAPRODUCAO em suas queries SELECT, mas não possuem lógica condicional diretamente no código Delphi visível nas evidências:
| Rotina | Arquivo |
|---|
Ordemproducao | source/CEQ015/UCEQ015.pas:157 |
Ordemproducao | source/MEQ020/UMEQ020.pas:179 |
TfrmMEQ044.btnORDEMPRODClick | source/MEQ044/UMEQ044.pas:920 |