Pular para o conteúdo principal

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_VALIDACAOESTNEG Tipo: 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​

CampoTabelaDescrição
TP_VALIDACAOESTNEGPARMESTOQUEDefine se o sistema bloqueia ou apenas alerta ao detectar saldo de estoque insuficiente na Ordem de Produção (MEQ012)

Telas impactadas​

TelaEfeito
MEQ012 — Ordem de ProduçãoA 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​

ValorRótulo na telaComportamento
BBloqueia ProcessoLança exceção (E-0000) e impede a continuação da operação
AApenas AvisaExibe mensagem de confirmação (C-0000) perguntando se o usuário deseja continuar mesmo assim

B — Bloqueia Processo (Padrão)​

O que fazDetalhe
Ação ao detectar saldo insuficienteLanç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​

  1. Acesse a tela MEQ001 (Parâmetros de Estoque).
  2. 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).
  3. Na aba Parâmetros → Opção 2, localize o campo Validação Estoque Negativo M.P. [MEQ012].
  4. Selecione o valor Bloqueia Processo.
  5. Salve o registro.
  6. 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).
  7. 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 fazDetalhe
Ação ao detectar saldo insuficienteExibe 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​

  1. Acesse a tela MEQ001 (Parâmetros de Estoque).
  2. 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).
  3. Na aba Parâmetros → Opção 2, localize o campo Validação Estoque Negativo M.P. [MEQ012].
  4. Selecione o valor Apenas Avisa.
  5. Salve o registro.
  6. Na tela MEQ012 (Ordem de Produção), abra ou crie uma ordem cuja matéria-prima não possua saldo suficiente.
  7. Tente confirmar/processar a ordem.
  8. 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 tabela ITEMLOCAL): consulta RETORNA_ESTOQUECOMPROMETIDO — aplica quando ST_COMPROMETIDO = P ou R.
  • Saldo de estoque geral (ST_ESTOQUE <> 'C'): consulta RETORNA_SALDOESTOQUE — aplica quando ST_COMPROMETIDO = N.

Em ambos os cenários, o parâmetro TP_VALIDACAOESTNEG dota 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​

AspectoB — BloqueiaA — Apenas Avisa
Mensagem exibidaErro (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​

RotinaArquivoLinhaEvidência
TfrmMEQ001.cmbST_COMPROMETIDOChangesource/MEQ001/UMEQ001.pas1770Controla visibilidade do campo conforme ST_COMPROMETIDO = P ou R
TdmMEQ012.ValidaEstoquesource/MEQ012/UdmMEQ012.pas1558, 1581Consulta 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.