Pular para o conteúdo principal

ST_PRODUCAO — Produção Automática

Tela de configuração: MEQ001 — Parâmetros de Estoque Localização: Aba Opção 1 → grupo Produção → primeiro campo Tabela / Coluna: PARMESTOQUE.ST_PRODUCAO Tipo: DOM_CHAR1 · NOT NULL · DEFAULT 'N' Componente: cmbST_PRODUCAO (TwwDBComboBox, estilo lista suspensa)


Descrição​

Controla se o sistema gera Ordens de Produção automáticas para matérias-primas ao fechar uma Ordem de Produção do produto acabado. Define também como a quantidade a produzir é calculada: com consulta ao saldo de estoque ou sempre pela quantidade total da ficha.

Quando o valor é S, o campo ST_ESTOQUECOMPROMETIDO (aba Opção 1, mesmo grupo) é habilitado para edição. Nos demais valores, ST_ESTOQUECOMPROMETIDO é travado no valor F.


Campos envolvidos​

ColunaTabelaRelação
ST_PRODUCAOPARMESTOQUECampo principal
ST_ESTOQUECOMPROMETIDOPARMESTOQUEHabilitado somente quando ST_PRODUCAO = 'S'
ST_PRODUCAOPRODUCAOColuna distinta — status da ficha de produção (V = Validada). Não é o mesmo campo; aparece em filtros como WHERE P.ST_PRODUCAO = 'V'.
TP_PRODAUTOMATICAPRODUCAOTipo de produção automática da ficha. Apenas fichas com TP_PRODAUTOMATICA = 'A' são consideradas.

Opções disponíveis​

N — Não gera produção automática​

O que fazDetalhe
ComportamentoNenhuma ordem de produção automática é criada. O módulo de produção automática fica desativado para a empresa.
Valor padrão✅ Sim
Campo habilitadoST_ESTOQUECOMPROMETIDO é travado em F

Simulação passo a passo​

  1. Acesse MEQ001 → aba Opção 1 → grupo Produção.
  2. No campo Produção Automática, selecione Não.
  3. Salve o registro.
  4. Gere uma Ordem de Produção (por exemplo via MPD049 ou tela de Pedido) para um produto acabado que possua ficha de produção validada com matéria-prima.
  5. Observe que nenhuma Ordem de Produção automática é criada para a matéria-prima.

Resultado esperado: Ao fechar a Ordem do produto acabado, o sistema não gera ordens automáticas para os componentes da ficha. A produção manual continua funcionando normalmente.

Exceção / Importante: O parâmetro ST_PRODUCAOLOCAL (configurado em MEQ001 — Parâmetros de Estoque, aba Opção 1) e ST_PRODUCAOLOTE (mesma tela, aba Opção 1) controlam aspectos complementares da produção (local e lote) independentemente deste parâmetro.


S — Produz automaticamente se o estoque for insuficiente​

O que fazDetalhe
ComportamentoAo fechar uma OP, o sistema consulta o saldo de estoque da matéria-prima. Se o saldo for insuficiente para atender a quantidade necessária, gera uma OP automática apenas para o que falta.
Campo habilitadoST_ESTOQUECOMPROMETIDO é habilitado para edição

Simulação passo a passo​

  1. Acesse MEQ001 → aba Opção 1 → grupo Produção.
  2. No campo Produção Automática, selecione Sim (Somente Produz se não tiver saldo suficiente no estoque).
  3. Certifique-se de que a matéria-prima (ex.: MatPrima-A) tenha 5 unidades em estoque.
  4. Crie uma ficha de produção para Produto-Final que consuma 10 unidades de MatPrima-A, com Produção Automática = A e ficha status = V (Validada).
  5. Gere e feche uma Ordem de Produção de Produto-Final para 1 unidade.
  6. O sistema calcula: 10 × 1 = 10 unidades necessárias. Saldo disponível = 5. Déficit = 5.

Resultado esperado: O sistema gera automaticamente uma Ordem de Produção para MatPrima-A com quantidade 5 (somente o déficit). O estoque existente é aproveitado.

Exceção / Importante: Quando ST_PRODUCAO = 'S', o campo ST_ESTOQUECOMPROMETIDO fica habilitado. Se configurado como S (Sim), o sistema compromete o estoque no momento do pedido, influenciando o cálculo de saldo disponível para esta verificação. ST_ESTOQUECOMPROMETIDO (configurado em MEQ001 — Parâmetros de Estoque, aba Opção 1).


T — Produz sempre a quantidade total da ficha​

O que fazDetalhe
ComportamentoAo fechar uma OP, o sistema sempre gera Ordem de Produção automática para a quantidade total da matéria-prima, sem consultar o saldo de estoque.
Campo habilitadoST_ESTOQUECOMPROMETIDO é travado em F

Simulação passo a passo​

  1. Acesse MEQ001 → aba Opção 1 → grupo Produção.
  2. No campo Produção Automática, selecione Sim (Sempre Produz a qtde total da ficha).
  3. Certifique-se de que a matéria-prima (ex.: MatPrima-A) tenha 50 unidades em estoque.
  4. Crie uma ficha de produção para Produto-Final que consuma 10 unidades de MatPrima-A, com ficha status = V.
  5. Gere e feche uma Ordem de Produção de Produto-Final para 1 unidade.

Resultado esperado: O sistema gera automaticamente uma Ordem de Produção para MatPrima-A com quantidade 10 (total da ficha), ignorando o saldo de 50 unidades existentes em estoque. Isso permite que a produção seja preparada com antecedência, mesmo havendo estoque disponível.


Tabela comparativa resumida​

ValorRótulo na telaGera OP automática?Consulta estoque?ST_ESTOQUECOMPROMETIDO
NNão❌ Não—Travado em F
SSim (Somente Produz se não tiver saldo suficiente no estoque)✅ Sim✅ Sim — produz apenas o déficitHabilitado
TSim (Sempre Produz a qtde total da ficha)✅ Sim❌ Não — produz o totalTravado em F

Lógica interna (referência)​

A procedure GERA_ORDEMPRODUCAO (Scripts/GERA_ORDEMPRODUCAO.sql) implementa o comportamento:

  1. Lê ST_PRODUCAO da tabela PARMESTOQUE para a empresa (linha 111–118).
  2. Se o flag de semi-acabado está ativo (I_ST_SEMIACABADO = 'S'), sobrescreve o valor para S (linha 128–129).
  3. Para cada matéria-prima do tipo M (material), avalia:
    • Se ST_PRODUCAO IN ('S','T') e não é estorno → entra no bloco de produção automática (linha 352).
    • Busca ficha de produção da matéria-prima com P.ST_PRODUCAO = 'V' e TP_PRODAUTOMATICA = 'A' (linha 358–367).
    • Se ST_PRODUCAO = 'S' → consulta RETORNA_SALDOESTOQUE e calcula déficit (linhas 374–383).
    • Se ST_PRODUCAO = 'T' → pula a consulta de saldo; considera toda a quantidade como déficit.
    • Se o saldo calculado for negativo (déficit) → gera a OP automática (linha 387 em diante).

Telas / rotinas impactadas​

Rotina / TelaArquivoEfeito
MEQ001 — cmbST_PRODUCAOChangesource/MEQ001/UMEQ001.pasHabilita/desabilita ST_ESTOQUECOMPROMETIDO conforme valor
MEQ001 — tabPARMESTOQUEAfterInsertsource/MEQ001/UdmMEQ001.pasDefine valor padrão N ao inserir novo registro
CRC001 — Busca_Parametrossource/CRC001/UdmCRC001.pasLê PARMESTOQUE.ST_PRODUCAO para uso na tela de Conferência
CRC002 — Busca_Parametrossource/CRC002/UdmCRC002.pasLê PARMESTOQUE.ST_PRODUCAO para uso na tela de Pneus
CEQ015 — Ordemproducaosource/CEQ015/UCEQ015.pasLê ST_PRODUCAO de PARMESTOQUE para gerar ordens
GERA_ORDEMPRODUCAOScripts/GERA_ORDEMPRODUCAO.sqlImplementa a lógica central de produção automática (S/T/N)

Procedures impactadas​

Rotinas Delphi com referência direta ao parâmetro (PARMESTOQUE.ST_PRODUCAO)​

RotinaArquivoLinhaEvidência
cmbST_PRODUCAOChangesource/MEQ001/UMEQ001.pas1783Controla habilitação de ST_ESTOQUECOMPROMETIDO
tabPARMESTOQUEAfterInsertsource/MEQ001/UdmMEQ001.pas274Atribui valor padrão 'N'
Busca_Parametrossource/CRC001/UdmCRC001.pas243SELECT ... P.ST_PRODUCAO FROM PARMESTOQUE
Busca_Parametrossource/CRC002/UdmCRC002.pas427SELECT ... P.ST_PRODUCAO FROM PARMESTOQUE
Ordemproducaosource/CEQ015/UCEQ015.pas155SELECT ... P.ST_PRODUCAO FROM PARMESTOQUE

Scripts SQL com referência direta ao campo PARMESTOQUE.ST_PRODUCAO​

ProcedureArquivoLinhaEvidência
GERA_ORDEMPRODUCAOScripts/GERA_ORDEMPRODUCAO.sql111SELECT ... ST_PRODUCAO ... FROM PARMESTOQUE — lógica central do parâmetro

Referências a PRODUCAO.ST_PRODUCAO = 'V' (campo distinto — status da ficha)​

As rotinas abaixo filtram a tabela PRODUCAO por ST_PRODUCAO = 'V' (ficha validada). Este é um campo diferente do parâmetro documentado, mas participa do mesmo fluxo de produção automática — a ficha precisa estar validada para ser considerada.

RotinaArquivoTipo
CEQ003 / CFA002 — consultas de itemUCEQ003.pas, UCFA002.pasDelphi
CEQ004 / CNF010 — saldos e cálculo MPUCEQ004.pas, UCNF010.pasDelphi
MEQ002 — salvar produçãoUMEQ002.pasDelphi
MEQ006 — listar fichasUMEQ006.pasDelphi
LFP001/LFP002/LFP003 — layouts de fichaULFP001.pas etc.Delphi
IntegracaoOnClick — importação e geração de OPsUdmIntegracaoOnClick.pasDelphi
ATUALIZA_PRECOVENDAScripts/ATUALIZA_PRECOVENDA.sqlSQL
CONFIRMA_ORDEMSERVICO / METALScripts/CONFIRMA_ORDEMSERVICO.sqlSQL
GERA_PRODBANDA / GERA_PRODEXAMEFINALScripts/GERA_PRODBANDA.sqlSQL
Demais GERA_PROD* / GERA_RETR*Vários scriptsSQL (leem PR.ST_PRODUCAO da tabela PRODUCAO)

Candidatas por uso da tabela PARMESTOQUE​

As procedures abaixo acessam a tabela PARMESTOQUE mas não citam o campo ST_PRODUCAO literalmente. Não há evidência de impacto funcional direto neste campo.

ProcedureArquivo
AJUSTA_ORDEMPRODPEDANTECIPADOScripts/AJUSTA_ORDEMPRODPEDANTECIPADO.sql
ALTERACAO_BANDAScripts/ALTERACAO_BANDA.sql
CANCELA_ESTOQUEScripts/CANCELA_ESTOQUE.sql
GERA_ESTOQUEScripts/GERA_ESTOQUE.sql
MONTA_ORDEMPRODUCAOPEDIDOScripts/MONTA_ORDEMPRODUCAOPEDIDO.sql
RECALCULA_ESTOQUEScripts/RECALCULA_ESTOQUE.sql
(demais listadas no inventário)—