TP_VALIDACAOESTNEG — Validação Estoque Negativo M.P.
Tela de configuração: MEQ001 — Parâmetros de Estoque Localização: Parâmetros → Opção 2 → Validação Estoque Negativo M.P. [MEQ012] Tabela / Campo:
PARMESTOQUE.TP_VALIDACAOESTNEGTipo:DOM_CHAR1(CHAR 1) Valor padrão:B(Bloqueia Processo) Componente:cmbTP_VALIDACAOESTNEG(TwwDBComboBox)
Quando o campo fica visível
O combobox só é exibido quando o parâmetro ST_COMPROMETIDO (configurado em MEQ001, aba Parâmetros → Opção 1) está com o valor P (Produção) ou R (Requisição). Para qualquer outro valor, o campo fica oculto e o valor gravado no banco permanece o padrão B.
Campos envolvidos
| Campo | Tabela | Descrição |
|---|---|---|
TP_VALIDACAOESTNEG | PARMESTOQUE | Define se o sistema bloqueia ou apenas alerta ao detectar saldo de estoque insuficiente na Ordem de Produção (MEQ012) |
Telas impactadas
| Tela | Efeito |
|---|---|
| MEQ012 — Ordem de Produção | A procedure ValidaEstoque consulta este parâmetro para decidir se bloqueia ou alerta quando uma matéria-prima fica com saldo negativo |
Opções disponíveis
| Valor | Rótulo na tela | Comportamento |
|---|---|---|
B | Bloqueia Processo | Lança exceção (E-0000) e impede a continuação da operação |
A | Apenas Avisa | Exibe mensagem de confirmação (C-0000) perguntando se o usuário deseja continuar mesmo assim |
B — Bloqueia Processo (Padrão)
| O que faz | Detalhe |
|---|---|
| Ação ao detectar saldo insuficiente | Lança exceção com erro E-0000, impedindo a continuação |
| Exige confirmação do usuário? | Não — a operação é cancelada automaticamente |
| Editável? | Sim, sempre que o campo estiver visível |
Simulação passo a passo
- Acesse a tela MEQ001 (Parâmetros de Estoque).
- Na aba Parâmetros → Opção 1, certifique-se de que o campo Estoque Comprometido (
ST_COMPROMETIDO) esteja como Produção (P) ou Requisição (R). - Na aba Parâmetros → Opção 2, localize o campo Validação Estoque Negativo M.P. [MEQ012].
- Selecione o valor Bloqueia Processo.
- Salve o registro.
- Na tela MEQ012 (Ordem de Produção), abra ou crie uma ordem cuja matéria-prima não possua saldo suficiente (saldo comprometido ou saldo de estoque negativo).
- Tente confirmar/processar a ordem.
Resultado esperado: O sistema exibe uma mensagem de erro (E-0000) informando que o item não possui quantidade necessária de estoque para a ordem, mostrando a quantidade disponível e a quantidade da ordem. A operação é bloqueada — o usuário não pode continuar.
A — Apenas Avisa
| O que faz | Detalhe |
|---|---|
| Ação ao detectar saldo insuficiente | Exibe mensagem de confirmação (C-0000) perguntando "Deseja Continuar?" |
| Exige confirmação do usuário? | Sim — se o usuário responder Não, a operação é cancelada com erro E-0000 ("Operação Cancelada!") |
| Editável? | Sim, sempre que o campo estiver visível |
Simulação passo a passo
- Acesse a tela MEQ001 (Parâmetros de Estoque).
- Na aba Parâmetros → Opção 1, certifique-se de que o campo Estoque Comprometido (
ST_COMPROMETIDO) esteja como Produção (P) ou Requisição (R). - Na aba Parâmetros → Opção 2, localize o campo Validação Estoque Negativo M.P. [MEQ012].
- Selecione o valor Apenas Avisa.
- Salve o registro.
- Na tela MEQ012 (Ordem de Produção), abra ou crie uma ordem cuja matéria-prima não possua saldo suficiente.
- Tente confirmar/processar a ordem.
- O sistema exibirá uma pergunta: "O Item [X] não Possui a Quantidade Necessária de Estoque Para Ordem! ... Deseja Continuar?".
- Clique Sim para permitir que a operação prossiga mesmo com saldo negativo.
- Clique Não para cancelar.
Resultado esperado: O sistema exibe um alerta com os detalhes do saldo (quantidade disponível × quantidade da ordem). Se o usuário confirmar (Sim), a operação continua normalmente. Se recusar (Não), a operação é cancelada com a mensagem "Operação Cancelada!".
Excecao / Importante: A validação de estoque negativo em MEQ012 verifica dois cenários distintos, ambos afetados por este parâmetro:
- Estoque comprometido (
ST_ESTOQUE = 'C'na tabelaITEMLOCAL): consultaRETORNA_ESTOQUECOMPROMETIDO— aplica quandoST_COMPROMETIDO=PouR.- Saldo de estoque geral (
ST_ESTOQUE <> 'C'): consultaRETORNA_SALDOESTOQUE— aplica quandoST_COMPROMETIDO=N.Em ambos os cenários, o parâmetro
TP_VALIDACAOESTNEGdota o mesmo comportamento: bloqueio absoluto (B) ou alerta com opção de continuar (A).
Regra Geral de Autorização
Não existe controle de autorização (usuário autorizador, permissão especial) vinculado a este parâmetro. Qualquer usuário com acesso à tela MEQ001 pode alterá-lo. O comportamento de bloqueio/alerta é aplicado automaticamente pela procedure ValidaEstoque em MEQ012.
Tabela Comparativa Resumida
| Aspecto | B — Bloqueia | A — Apenas Avisa |
|---|---|---|
| Mensagem exibida | Erro (E-0000) | Confirmação (C-0000) |
| Usuário pode continuar? | ❌ Não | ✅ Sim (se confirmar) |
| Operação cancelada automaticamente? | ✅ Sim | ❌ Apenas se o usuário recusar |
| Valor padrão | ✅ (DEFAULT 'B') | — |
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Linha | Evidência |
|---|---|---|---|
TfrmMEQ001.cmbST_COMPROMETIDOChange | source/MEQ001/UMEQ001.pas | 1770 | Controla visibilidade do campo conforme ST_COMPROMETIDO = P ou R |
TdmMEQ012.ValidaEstoque | source/MEQ012/UdmMEQ012.pas | 1558, 1581 | Consulta parmEstoque.Values['TP_VALIDACAOESTNEG'] para decidir entre bloqueio (B) e alerta (A) em ambos os cenários (estoque comprometido e saldo geral) |
Referências SQL diretas ao campo TP_VALIDACAOESTNEG em Scripts/
Nenhuma referência direta ao campo TP_VALIDACAOEST取得以及 foi encontrada em procedures SQL sob Scripts/. A lógica de validação ocorre inteiramente no código Delphi da unit UdmMEQ012.pas.
Candidatas por uso da tabela PARMESTOQUE
As seguintes procedures fazem SELECT/JOIN na tabela PARMESTOQUE, mas não citam o campo TP_VALIDACAOESTNEG diretamente. Não há impacto funcional direto confirmado:
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.