ST_COMPROMETIDO — Controle de Estoque Comprometido
Tela de configuração: MEQ001 — Parâmetros de Estoque Localização: Aba
&EstoqueTabela:PARMESTOQUE.ST_COMPROMETIDOComponente:cmbST_COMPROMETIDO(combobox) Tipo:CHAR(1)Valor padrão:N
Define quais tipos de documento participam do cálculo de estoque comprometido (quantidade reservada/separada). Quando habilitado, o sistema subtrai as quantidades vinculadas a pedidos, ordens de serviço, mestras, orçamentos ou ordens de produção do saldo disponível, impedindo que essas quantidades sejam vendidas ou alocadas novamente.
Telas impactadas
| Tela | Efeito |
|---|---|
| CEQ001 | Exibe coluna de produção na grid de saldo quando P ou R; consulta o campo para determinar ST_VENDARESTRITA |
| CEQ018 | Controla visibilidade das abas (Pedidos, OS, Mestra, Orçamento, OP) na consulta de estoque comprometido |
| MEQ012 | Valida estoque para ordens de produção quando P ou R |
| MEQ015 | Balanço de estoque — quantidade editável conforme comprometimento |
jLoteProducao (ULoteSaida.pas, ULoteSaidaAgrupado.pas) | Lotes de saída consideram estoque comprometido quando valor <> 'N' |
Campos envolvidos
Quando ST_COMPROMETIDO é alterado, outros campos na mesma aba ficam visíveis ou ocultos:
| Campo | Tabela | Visível quando |
|---|---|---|
ST_CONSIDERABLOQ | PARMESTOQUE | Valor <> 'N' |
ST_VENDARESTRITA | PARMESTOQUE | Valor <> 'N' |
TP_VALIDACAOESTNEG | PARMESTOQUE | Valor = P ou R |
Opções disponíveis
S — Pedidos
| O que faz | Detalhe |
|---|---|
| Compromete estoque | Somente Pedidos de Venda |
| Abas visíveis no CEQ018 | Pedidos |
| Campos extras visíveis | ST_CONSIDERABLOQ, ST_VENDARESTRITA |
Simulação passo a passo
- Acesse MEQ001 → Parâmetros → Aba Estoque.
- No campo "Estoque Comprometido", selecione "Pedidos" (valor
S). - Salve o parâmetro.
- Crie um Pedido de Venda para o Produto X com quantidade 10.
- Acesse CEQ001 e consulte o Produto X.
- Observe que o estoque disponível já desconta as 10 unidades do pedido.
Resultado esperado: Apenas Pedidos de Venda geram estoque comprometido. Ordens de Serviço, Mestras, Orçamentos e Ordens de Produção não são considerados.
O — Pedidos e Ordens de Serviço
| O que faz | Detalhe |
|---|---|
| Compromete estoque | Pedidos de Venda + Ordens de Serviço |
| Abas visíveis no CEQ018 | Pedidos, Ordens de Serviço |
| Campos extras visíveis | ST_CONSIDERABLOQ, ST_VENDARESTRITA |
Simulação passo a passo
- Acesse MEQ001 → Parâmetros → Aba Estoque.
- Selecione "Pedidos e Ordens Serviços" (valor
O). - Salve o parâmetro.
- Crie um Pedido de Venda (Produto X, qty 5) e uma Ordem de Serviço (Produto X, qty 3).
- Consulte o Produto X em CEQ001.
- Observe que o estoque disponível desconta 8 unidades (5 do pedido + 3 da OS).
Resultado esperado: Pedidos e Ordens de Serviço geram estoque comprometido. Mestras, Orçamentos e Ordens de Produção não são considerados.
M — Pedidos, Ordens de Serviço e Mestras
| O que faz | Detalhe |
|---|---|
| Compromete estoque | Pedidos + Ordens de Serviço + Notas Mestras |
| Abas visíveis no CEQ018 | Pedidos, Ordens de Serviço, Mestras |
| Campos extras visíveis | ST_CONSIDERABLOQ, ST_VENDARESTRITA |
Simulação passo a passo
- Acesse MEQ001 → Parâmetros → Aba Estoque.
- Selecione "Pedidos, Ordens Serviços e Mestras" (valor
M). - Salve o parâmetro.
- Crie um Pedido (qty 5), uma OS (qty 3) e uma Nota Mestra (qty 2) para o Produto X.
- Consulte o Produto X em CEQ018 — a aba "Mestras" estará visível.
- O estoque disponível desconta 10 unidades.
Resultado esperado: Pedidos, OS e Mestras comprometem estoque. Orçamentos e Ordens de Produção não.
T — Pedidos, Ordens de Serviço, Mestras e Orçamentos
| O que faz | Detalhe |
|---|---|
| Compromete estoque | Pedidos + OS + Mestras + Orçamentos |
| Abas visíveis no CEQ018 | Todas exceto Ordens de Produção |
| Campos extras visíveis | ST_CONSIDERABLOQ, ST_VENDARESTRITA |
Simulação passo a passo
- Acesse MEQ001 → Parâmetros → Aba Estoque.
- Selecione "Pedidos, Ord. Serviços, Mestras e Orçamentos" (valor
T). - Salve o parâmetro.
- Crie documentos dos quatro tipos para o Produto X.
- Consulte em CEQ018 — todas as abas exceto "Ordens de Produção" estarão visíveis.
Resultado esperado: Máximo comprometimento para documentos comerciais. Orçamentos também passam a bloquear estoque.
P — Pedidos e Ordens de Produção
| O que faz | Detalhe |
|---|---|
| Compromete estoque | Pedidos + Ordens de Produção (entrada e saída) |
| Abas visíveis no CEQ018 | Pedidos, Ordens de Produção |
| Coluna extra no CEQ001 | Coluna de produção visível na grid de saldo |
| Campo extra visível | TP_VALIDACAOESTNEG (validação de estoque negativo na produção) |
Simulação passo a passo
- Acesse MEQ001 → Parâmetros → Aba Estoque.
- Selecione "Pedidos e Ordens de Produção" (valor
P). - O campo "Validação Estoque Negativo" (
TP_VALIDACAOESTNEG) torna-se visível — configure conforme necessário. - Salve o parâmetro.
- Crie um Pedido de Venda (qty 5) e uma Ordem de Produção (qty 10) para o Produto X.
- Consulte o Produto X em CEQ001 — a coluna de produção estará visível.
- Na tela MEQ012, o sistema valida o estoque ao processar a OP.
Resultado esperado: Pedidos e Ordens de Produção comprometem estoque. A produção é considerada tanto na entrada quanto na saída.
Exceção / Importante: Quando
ST_COMPROMETIDO = 'P', a tela MEQ012 executa validação de estoque para ordens de produção, verificando se o item local tem estoque (ST_ESTOQUE = 'C') antes de permitir o processamento.
R — Pedidos, Ordens de Serviço e Ordens de Produção
| O que faz | Detalhe |
|---|---|
| Compromete estoque | Pedidos + OS + Ordens de Produção |
| Abas visíveis no CEQ018 | Pedidos, Ordens de Serviço, Ordens de Produção |
| Coluna extra no CEQ001 | Coluna de produção visível |
| Campo extra visível | TP_VALIDACAOESTNEG |
Simulação passo a passo
- Acesse MEQ001 → Parâmetros → Aba Estoque.
- Selecione "Pedidos, Ordens de Serviço e Ordens de Produção" (valor
R). - Configure o campo "Validação Estoque Negativo".
- Salve o parâmetro.
- Crie um Pedido, uma OS e uma OP para o Produto X.
- Consulte em CEQ018 — as abas de Pedidos, OS e OP estarão visíveis.
Resultado esperado: Combinação que inclui produção e atendimento (OS), sem considerar Mestras e Orçamentos.
N — Não (Desativado)
| O que faz | Detalhe |
|---|---|
| Compromete estoque | Nenhum documento |
| Abas visíveis no CEQ018 | Nenhuma (tela sem abas de comprometimento) |
| Campos ocultos | ST_CONSIDERABLOQ, ST_VENDARESTRITA, TP_VALIDACAOESTNEG |
Simulação passo a passo
- Acesse MEQ001 → Parâmetros → Aba Estoque.
- Selecione "Não" (valor
N). - Observe que os campos "Considera Bloqueio" (
ST_CONSIDERABLOQ) e "Venda Restrita" (ST_VENDARESTRITA) desaparecem da tela. - Salve o parâmetro.
- Crie um Pedido de Venda (qty 10) para o Produto X.
- Consulte o Produto X em CEQ001 — o estoque disponível não desconta as 10 unidades do pedido.
Resultado esperado: Nenhum documento compromete estoque. O saldo disponível é igual ao saldo físico. É o comportamento padrão do sistema.
Tabela comparativa resumida
| Valor | Pedidos Venda | Ordens Serviço | Mestras | Orçamentos | Ordens Produção | TP_VALIDACAOESTNEG visível |
|---|---|---|---|---|---|---|
S | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
O | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
M | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
T | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
P | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
R | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ |
N | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Regra geral
- O valor é lido diretamente da tabela
PARMESTOQUEpor diversas procedures SQL (RETORNA_ESTOQUECOMPROMETIDO,RETORNA_ESTOQUECOMPROMETGRADE,RETORNA_ESTOQUECOMPROMETLOCAL) e rotinas Delphi. - Os valores funcionam como uma escala cumulativa — cada opção adiciona um tipo de documento ao cálculo, exceto os valores
PeRque formam um grupo separado (incluem produção, excluem Mestras/Orçamentos). - O parâmetro
ST_COMPROMETIDOCOMPRA(configurado em MEQ001 — Parâmetros de Estoque) controla separadamente se Pedidos de Compra também comprometem estoque. - O parâmetro
ST_CONSIDERABLOQ(configurado em MEQ001 — Parâmetros de Estoque) define se pedidos bloqueados são considerados no cálculo do comprometido.
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Linha | Evidência |
|---|---|---|---|
iniciar | source/CEQ001/UCEQ001.pas | 259 | gridSALDO.Columns[9].Visible := (parmEstoque.Values['ST_COMPROMETIDO'] = 'P') |
TfrmCEQ001.btnProcurarClick | source/CEQ001/UCEQ001.pas | 847 | Consulta SQL com PE.ST_COMPROMETIDO |
TdmCEQ001.tabSALDOCalcFields | source/CEQ001/UdmCEQ001.pas | 271 | Consulta PE.ST_COMPROMETIDO, PE.ST_VENDARESTRITA |
TfrmCEQ018.HabilitaAbas | source/CEQ018/UCEQ018.pas | 507 | Controla visibilidade das abas conforme valor |
Busca_Parametros | source/CEQ018/UdmCEQ018.pas | 180 | SELECT P.ST_COMPROMETIDO |
TdmCEQ018.tabFILTROCD_EMPRESAValidate | source/CEQ018/UdmCEQ018.pas | 208 | SELECT ST_COMPROMETIDO |
TdmCEQ018.AbreConsulta | source/CEQ018/UdmCEQ018.pas | 417 | ParamByName('ST_COMPROMETIDO').AsString |
cmbST_COMPROMETIDOChange | source/MEQ001/UMEQ001.pas | 1753 | Controla visibilidade de campos dependentes |
TdmMEQ001.tabPARMESTOQUEAfterInsert | source/MEQ001/UdmMEQ001.pas | 277 | Valor padrão 'N' |
Busca_Parametros | source/MEQ012/UdmMEQ012.pas | 230 | Carrega ST_COMPROMETIDO para produção |
TdmMEQ012.ValidaEstoque | source/MEQ012/UdmMEQ012.pas | 1528 | if ((iST_COMPROMETIDO = 'P') or (iST_COMPROMETIDO = 'R')) |
CarregarLoteSaida | source/jLoteProducao/ULoteSaida.pas | 232 | if (Trim(parmEstoque.Values['ST_COMPROMETIDO']) <> 'N') |
TfrmLoteAgrupado.tabITEMAfterScroll | source/jLoteProducao/ULoteSaidaAgrupado.pas | 792 | SELECT PE.ST_COMPROMETIDO |
Scripts SQL com referência direta ao campo
| Procedure/View | Arquivo | Linha | Evidência |
|---|---|---|---|
RETORNA_ESTOQUECOMPROMETIDO | Scripts/RETORNA_ESTOQUECOMPROMETIDO.sql | 66–134 | Lógica completa com todos os valores |
RETORNA_ESTOQUECOMPROMETGRADE | Scripts/RETORNA_ESTOQUECOMPROMETGRADE.sql | 49–77 | Comprometimento por grade |
RETORNA_ESTOQUECOMPROMETLOCAL | Scripts/RETORNA_ESTOQUECOMPROMETLOCAL.sql | 55–85 | Comprometimento por local |
RETORNA_ITEMESTOQUECOMPROMETIDO | Scripts/RETORNA_ITEMESTOQUECOMPROMETIDO.sql | 9 | Declaração da variável |
RETORNA_QTDECOMPROMETIDA | Scripts/RETORNA_QTDECOMPROMETIDA.sql | 7 | Parâmetro de entrada |
RETORNA_QTDEESTOQUEGRADE | Scripts/RETORNA_QTDEESTOQUEGRADE.sql | 18 | Declaração da variável |
TRGAIU_PEDIDO | Scripts/TRGAIU_PEDIDO.sql | 17 | Trigger de Pedido |
VIEW_CNF005 | Scripts/VIEW_CNF005.sql | 8 | Parâmetro de entrada |
VIEW_REQ010 | Scripts/VIEW_REQ010.sql | 32 | Declaração da variável |
Candidatas por uso da tabela
Diversas procedures/views acessam a tabela PARMESTOQUE sem citar o campo ST_COMPROMETIDO diretamente. Não foi encontrada referência direta ao campo nesses scripts; o impacto seria apenas indireto (via consulta genérica à tabela). Incluem-se: GERA_ESTOQUE, GERA_ESTOQUE_NOTAFISCAL, CANCELA_ESTOQUE, CONFIRMA_ORDEMSERVICO, entre outras listadas na evidência.