ST_ESTOQUECOMPROMETIDO - Parâmetro de Tipo de Estoque
Tela de configuração: MEQ001 — Parâmetros de Estoque Localização: Aba
&Estoque→ GrupogrpEstoqueTabela:PARMESTOQUE.ST_ESTOQUECOMPROMETIDOComponente:cmbST_ESTOQUECOMPROMETIDO(combobox) Valor padrão:F(Estoque Físico) Tipo:CHAR(1)—DOM_CHAR1
Telas impactadas
| Tela | Descrição | Uso do parâmetro |
|---|---|---|
| MEQ001 | Parâmetros de Estoque | Configuração principal |
| REQ003 | Relatório de Estoque | Checkbox cmbST_ESTOQUECOMPROMETIDO influencia layout do relatório |
| CEQ001 | Parâmetros da Empresa | Campo ST_ESTOQUECOMPROMETIDO na tabela EMPRESA |
| MFA001 | Parâmetros de Faturamento | ST_ALERTAESTOQUENEGATIVO depende deste parâmetro para cálculo de saldo comprometido |
Campos envolvidos
| Campo | Tabela | Tipo | Default | Obrigatoriedade |
|---|---|---|---|---|
ST_ESTOQUECOMPROMETIDO | PARMESTOQUE | CHAR(1) | F | NOT NULL |
Opções disponíveis
| Valor | Descrição | Editável | Requer | Restrição |
|---|---|---|---|---|
F | Estoque Físico (padrão) | Sim | — | Nenhuma |
C | Estoque Comprometido | Sim | — | Nenhuma |
F — Estoque Físico (Padrão)
Usa a quantidade disponível real em estoque (saldo físico) para verificação de negativação. Pedidos pendentes não são descontados do saldo — o sistema valida apenas a quantidade existente no estoque físico.
Simulação passo a passo
- Acesse MEQ001 — Parâmetros de Estoque.
- Na aba &Estoque, localize o campo Estoque Comprometido na Produção.
- Selecione a opção Estoque Físico (
F). - Salve as alterações (F6 ou botão Salvar).
Resultado esperado: Nas procedures VERIFICA_ESTOQUENEGATIVOPEDIDO e VERIFICA_ESTOQUENEGATIVONOTA, ao validar itens com ST_ESTOQUECOMPROMETIDO = 'F', o sistema utiliza o saldo físico disponível (RETORNA_ESTOQUECOMPROMETIDO) para checar se há estoque suficiente. Pedidos abertos/pendentes não são abatidos do cálculo — o bloco de validação entra porque <> 'N'.
Em MONTA_ORDEMPRODUCAOSERVICO, a geração de ordens de produção pela Ordem de Serviço usa o estoque físico real para verificar saldo de matéria-prima.
C — Estoque Comprometido
Considera as quantidades já comprometidas em pedidos e ordens em aberto para o cálculo do saldo disponível. O sistema desconta do estoque físico todas as reservas pendentes, resultando em um saldo líquido comprometido.
Simulação passo a passo
- Acesse MEQ001 — Parâmetros de Estoque.
- Na aba &Estoque, localize o campo Estoque Comprometido na Produção.
- Selecione a opção Estoque Comprometido (
C). - Salve as alterações (F6 ou botão Salvar).
Resultado esperado: O parâmetro passa a ser 'C' em PARMESTOQUE. Nas procedures de validação de estoque negativo (VERIFICA_ESTOQUENEGATIVOPEDIDO e VERIFICA_ESTOQUENEGATIVONOTA), a função RETORNA_ESTOQUECOMPROMETIDO retorna o saldo já considerando as reservas pendentes, resultando em um saldo líquido menor que o físico. Em MONTA_ORDEMPRODUCAOSERVICO, a verificação de saldo para ordens de produção pode considerar o estoque comprometido (embora o caminho 'C' esteja parcialmente comentado no código — linha 159).
Exceção / Importante: No script
MONTA_ORDEMPRODUCAOSERVICO.sql, a linha 158–159 contém um comentário explícito:--IF (V_ST_ESTOQUECOMPROMETIDO = 'C') THEN -- PARAMETRO NA MEQ001 ESTOQUECOMPROMETIDO DIFERENTE DE FISICO(PADRÃO). Isso indica que o caminho alternativo para'C'nessa rotina não está ativo no momento. O efeito funcional de'C'vs'F'nesse script é, portanto, limitado ou inexistente. Nas proceduresVERIFICA_ESTOQUENEGATIVO*, ambas ('F'e'C') são tratadas igualmente pois a condição é<> 'N'.
Regras de Negócio
Interação com outros parâmetros
| Parâmetro | Relação | Configuração |
|---|---|---|
PARMFATUR.ST_ALERTAESTOQUENEGATIVO | A verificação de estoque comprometido só é executada se ST_ESTOQUECOMPROMETIDO <> 'N' | MFA001 — Parâmetros de Faturamento |
PARMFATUR.ST_ESTOQUENEGATIVO | Ativa a rotina que chama a verificação de estoque comprometido | MFA001 — Parâmetros de Faturamento |
PARMESTOQUE.ST_PRODUCAO | Quando ST_ESTOQUECOMPROMETIDO muda, o combo pode ser desabilitado dependendo de ST_PRODUCAO (UMEQ001.pas:1787) | MEQ001 — Parâmetros de Estoque |
Fluxo de verificação de estoque negativo (pedido)
Quando ST_ESTOQUENEGATIVO = 'S' (em PARMFATUR) e ST_ESTOQUECOMPROMETIDO <> 'N':
VERIFICA_ESTOQUENEGATIVOPEDIDObusca o parâmetro (linha 34–38).- Se
ST_ESTOQUEITEM = 'C', chamaRETORNA_ESTOQUECOMPROMETIDOpara obter saldo comprometido (linha 62–66). - Compara quantidade do pedido (
QT_ITEMPEDIDO) com o saldo disponível (V_QT_ESTCOMPROMETIDO). - Se o saldo for insuficiente, retorna
O_ST_ALERTABLOQUEIA = 'S'com a mensagem de estoque negativo.
Fluxo de verificação de estoque negativo (nota)
Mesmo padrão de pedido, porém em VERIFICA_ESTOQUENEGATIVONOTA:
- Inclui verificação de
ST_PRODUCAO(ST_PRODUCAOAUTO) antes de prosseguir com a validação do item. - Passa
CD_TIPOLOCALeCD_LOCALparaRETORNA_ESTOQUECOMPROMETIDO(linha 70–72).
Procedures impactadas
Rotinas Delphi com referência direta
| Rotina | Arquivo | Linha | Evidência |
|---|---|---|---|
TfrmMEQ001.cmbST_PRODUCAOChange | source/MEQ001/UMEQ001.pas | 1787 | cmbST_ESTOQUECOMPROMETIDO.Enabled := False; |
TdmMEQ001.tabPARMESTOQUEAfterInsert | source/MEQ001/UdmMEQ001.pas | 293 | tabPARMESTOQUEST_ESTOQUECOMPROMETIDO.AsString := 'F'; |
TfrmREQ003.btnImprimirClick | source/REQ003/UREQ003.pas | 406 | if (cmbST_ESTOQUECOMPROMETIDO.Value = 'N') then |
TfrmREQ003.cmbMD_LAYOUTChange | source/REQ003/UREQ003.pas | 758 | cmbST_ESTOQUECOMPROMETIDO.Value := 'N'; |
TfrmCEQ001.btnNovoClick | source/CEQ001/UCEQ001.pas | 330 | dmCEQ001.tabEMPRESAST_ESTOQUECOMPROMETIDO.AsString := 'T'; |
chkST_ESTOQUECOMPROMETIDOClick | source/TPO010/UTPO010.pas | 57 | procedure chkST_ESTOQUECOMPROMETIDOClick(Sender: TObject); |
TfrmTPO010.chkST_ESTOQUECOMPROMETIDOClick | source/TPO010/UTPO010.pas | 495 | procedure TfrmTPO010.chkST_ESTOQUECOMPROMETIDOClick(Sender: TObject); |
TdmTPO010.tabEMPRESAAfterInsert | source/TPO010/UdmTPO010.pas | 105 | tabEMPRESAST_ESTOQUECOMPROMETIDO.AsString := 'S'; |
chkST_ESTOQUECOMPROMETIDOClick | source/TPO018/UTPO018.pas | 59 | procedure chkST_ESTOQUECOMPROMETIDOClick(Sender: TObject); |
TdmTPO018.tabEMPRESAAfterInsert | source/TPO018/UdmTPO018.pas | 105 | tabEMPRESAST_ESTOQUECOMPROMETIDO.AsString := 'S'; |
Referências SQL diretas ao campo
| Procedure | Arquivo | Linha | Evidência |
|---|---|---|---|
MONTA_ORDEMPRODUCAOSERVICO | Scripts/MONTA_ORDEMPRODUCAOSERVICO.sql | 34, 46–51, 90, 98, 152 | IF (V_ST_ESTOQUECOMPROMETIDO = 'F') THEN / = 'C' |
VERIFICA_ESTOQUENEGATIVONOTA | Scripts/VERIFICA_ESTOQUENEGATIVONOTA.sql | 25, 39–42, 102, 233 | IF (V_ST_ESTOQUECOMPROMETIDO <> 'N') THEN |
VERIFICA_ESTOQUENEGATIVOPEDIDO | Scripts/VERIFICA_ESTOQUENEGATIVOPEDIDO.sql | 22, 34–38, 101, 240 | IF (V_ST_ESTOQUECOMPROMETIDO <> 'N') THEN |
Candidatas por uso da tabela (sem referência literal ao campo)
Estas procedures usam PARMESTOQUE mas não citam ST_ESTOQUECOMPROMETIDO literalmente — validar impacto antes de afirmar:
AJUSTA_ORDEMPRODPEDANTECIPADO, ALTERACAO_BANDA, ATUALIZA_CONSUMOMEDIO, ATUALIZA_ESTOQUEDIAPESSOA, CALCULA_FORMACAOPRECOVENDA, CANCELA_ESTOQUE, CONFIRMA_ORDEMSERVICO, CONFIRMA_ORDEMSERVICOMETAL, GERA_ESTOQUE, GERA_ESTOQUE_NOTAFISCAL, GERA_ESTOQUEPSALT, GERA_NOTAFISCALESTOQUE, GERA_ORDEMPRODUCAO, GERA_PRODENVELOPAMENTO, GERA_PRODLOTEPRODUCAO, GERA_PRODMONTAGEMRECAP, GERA_PRODVULCANIZACAO, GERA_SPEDBLOCOL, GERA_SPEDECFBLOCOL, GRAVA_AVISOS.
Observações
- Os valores
'F'e'C'são funcionalmente equivalentes nas proceduresVERIFICA_ESTOQUENEGATIVO*pois a condição é<> 'N'. A diferença prática ocorre no comportamento da procedureRETORNA_ESTOQUECOMPROMETIDOchamada em contexto. CEQ001atribui'T'como padrão ao campoST_ESTOQUECOMPROMETIDOna tabelaEMPRESA— valor não presente nas opções da MEQ001 (F/C). Isto pode indicar comportamento específico por empresa.TPO010eTPO018usam um checkboxchkST_ESTOQUECOMPROMETIDOcom padrão'S', sugerindo variação de semântica (booleano ao invés de enum).