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_PRODUCAOTipo: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
| Coluna | Tabela | Relação |
|---|---|---|
ST_PRODUCAO | PARMESTOQUE | Campo principal |
ST_ESTOQUECOMPROMETIDO | PARMESTOQUE | Habilitado somente quando ST_PRODUCAO = 'S' |
ST_PRODUCAO | PRODUCAO | Coluna distinta — status da ficha de produção (V = Validada). Não é o mesmo campo; aparece em filtros como WHERE P.ST_PRODUCAO = 'V'. |
TP_PRODAUTOMATICA | PRODUCAO | Tipo 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 faz | Detalhe |
|---|---|
| Comportamento | Nenhuma 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 habilitado | ST_ESTOQUECOMPROMETIDO é travado em F |
Simulação passo a passo
- Acesse MEQ001 → aba Opção 1 → grupo Produção.
- No campo Produção Automática, selecione Não.
- Salve o registro.
- 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.
- 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) eST_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 faz | Detalhe |
|---|---|
| Comportamento | Ao 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 habilitado | ST_ESTOQUECOMPROMETIDO é habilitado para edição |
Simulação passo a passo
- Acesse MEQ001 → aba Opção 1 → grupo Produção.
- No campo Produção Automática, selecione Sim (Somente Produz se não tiver saldo suficiente no estoque).
- Certifique-se de que a matéria-prima (ex.: MatPrima-A) tenha 5 unidades em estoque.
- 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).
- Gere e feche uma Ordem de Produção de Produto-Final para 1 unidade.
- 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 campoST_ESTOQUECOMPROMETIDOfica 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 faz | Detalhe |
|---|---|
| Comportamento | Ao 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 habilitado | ST_ESTOQUECOMPROMETIDO é travado em F |
Simulação passo a passo
- Acesse MEQ001 → aba Opção 1 → grupo Produção.
- No campo Produção Automática, selecione Sim (Sempre Produz a qtde total da ficha).
- Certifique-se de que a matéria-prima (ex.: MatPrima-A) tenha 50 unidades em estoque.
- Crie uma ficha de produção para Produto-Final que consuma 10 unidades de MatPrima-A, com ficha status = V.
- 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
| Valor | Rótulo na tela | Gera OP automática? | Consulta estoque? | ST_ESTOQUECOMPROMETIDO |
|---|---|---|---|---|
| N | Não | ❌ Não | — | Travado em F |
| S | Sim (Somente Produz se não tiver saldo suficiente no estoque) | ✅ Sim | ✅ Sim — produz apenas o déficit | Habilitado |
| T | Sim (Sempre Produz a qtde total da ficha) | ✅ Sim | ❌ Não — produz o total | Travado em F |
Lógica interna (referência)
A procedure GERA_ORDEMPRODUCAO (Scripts/GERA_ORDEMPRODUCAO.sql) implementa o comportamento:
- Lê
ST_PRODUCAOda tabelaPARMESTOQUEpara a empresa (linha 111–118). - Se o flag de semi-acabado está ativo (
I_ST_SEMIACABADO = 'S'), sobrescreve o valor para S (linha 128–129). - 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'eTP_PRODAUTOMATICA = 'A'(linha 358–367). - Se
ST_PRODUCAO = 'S'→ consultaRETORNA_SALDOESTOQUEe 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).
- Se
Telas / rotinas impactadas
| Rotina / Tela | Arquivo | Efeito |
|---|---|---|
| MEQ001 — cmbST_PRODUCAOChange | source/MEQ001/UMEQ001.pas | Habilita/desabilita ST_ESTOQUECOMPROMETIDO conforme valor |
| MEQ001 — tabPARMESTOQUEAfterInsert | source/MEQ001/UdmMEQ001.pas | Define valor padrão N ao inserir novo registro |
| CRC001 — Busca_Parametros | source/CRC001/UdmCRC001.pas | Lê PARMESTOQUE.ST_PRODUCAO para uso na tela de Conferência |
| CRC002 — Busca_Parametros | source/CRC002/UdmCRC002.pas | Lê PARMESTOQUE.ST_PRODUCAO para uso na tela de Pneus |
| CEQ015 — Ordemproducao | source/CEQ015/UCEQ015.pas | Lê ST_PRODUCAO de PARMESTOQUE para gerar ordens |
| GERA_ORDEMPRODUCAO | Scripts/GERA_ORDEMPRODUCAO.sql | Implementa 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)
| Rotina | Arquivo | Linha | Evidência |
|---|---|---|---|
cmbST_PRODUCAOChange | source/MEQ001/UMEQ001.pas | 1783 | Controla habilitação de ST_ESTOQUECOMPROMETIDO |
tabPARMESTOQUEAfterInsert | source/MEQ001/UdmMEQ001.pas | 274 | Atribui valor padrão 'N' |
Busca_Parametros | source/CRC001/UdmCRC001.pas | 243 | SELECT ... P.ST_PRODUCAO FROM PARMESTOQUE |
Busca_Parametros | source/CRC002/UdmCRC002.pas | 427 | SELECT ... P.ST_PRODUCAO FROM PARMESTOQUE |
Ordemproducao | source/CEQ015/UCEQ015.pas | 155 | SELECT ... P.ST_PRODUCAO FROM PARMESTOQUE |
Scripts SQL com referência direta ao campo PARMESTOQUE.ST_PRODUCAO
| Procedure | Arquivo | Linha | Evidência |
|---|---|---|---|
GERA_ORDEMPRODUCAO | Scripts/GERA_ORDEMPRODUCAO.sql | 111 | SELECT ... 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.
| Rotina | Arquivo | Tipo |
|---|---|---|
| CEQ003 / CFA002 — consultas de item | UCEQ003.pas, UCFA002.pas | Delphi |
| CEQ004 / CNF010 — saldos e cálculo MP | UCEQ004.pas, UCNF010.pas | Delphi |
| MEQ002 — salvar produção | UMEQ002.pas | Delphi |
| MEQ006 — listar fichas | UMEQ006.pas | Delphi |
| LFP001/LFP002/LFP003 — layouts de ficha | ULFP001.pas etc. | Delphi |
| IntegracaoOnClick — importação e geração de OPs | UdmIntegracaoOnClick.pas | Delphi |
| ATUALIZA_PRECOVENDA | Scripts/ATUALIZA_PRECOVENDA.sql | SQL |
| CONFIRMA_ORDEMSERVICO / METAL | Scripts/CONFIRMA_ORDEMSERVICO.sql | SQL |
| GERA_PRODBANDA / GERA_PRODEXAMEFINAL | Scripts/GERA_PRODBANDA.sql | SQL |
| Demais GERA_PROD* / GERA_RETR* | Vários scripts | SQL (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.
| Procedure | Arquivo |
|---|---|
| AJUSTA_ORDEMPRODPEDANTECIPADO | Scripts/AJUSTA_ORDEMPRODPEDANTECIPADO.sql |
| ALTERACAO_BANDA | Scripts/ALTERACAO_BANDA.sql |
| CANCELA_ESTOQUE | Scripts/CANCELA_ESTOQUE.sql |
| GERA_ESTOQUE | Scripts/GERA_ESTOQUE.sql |
| MONTA_ORDEMPRODUCAOPEDIDO | Scripts/MONTA_ORDEMPRODUCAOPEDIDO.sql |
| RECALCULA_ESTOQUE | Scripts/RECALCULA_ESTOQUE.sql |
| (demais listadas no inventário) | — |