Pular para o conteúdo principal

ST_APENASITENSREGRA — Restrição de Itens por Regra de Estoque

Tela de configuração: MEQ001 — Parâmetros de Estoque Localização na UI: Aba Tipo → Checkbox "Realizar ajuste apenas para itens com regras parametrizadas abaixo" Tabela / Campo: PARMESTOQUE.ST_APENASITENSREGRA Tipo: CHAR(1) — não nulo, valor padrão N Componente: chkST_APENASITENSREGRA (TDBCheckBox)


Resumo​

Quando marcado (S), a tela de Acerto de Quantidade e Custo (MEQ013) só permite incluir itens que possuam pelo menos uma regra configurada na tabela GRUPOESTOQUE. Itens sem regra são bloqueados com mensagem de erro.

Quando desmarcado (N — padrão), qualquer item pode ser ajustado; na ausência de regra específica, o sistema utiliza as operações de estoque padrão configuradas nos parâmetros.


Telas impactadas​

TelaDescriçãoImpacto
MEQ001 — Parâmetros de EstoqueTela onde o parâmetro é configuradoCheckbox na aba "Tipo"
MEQ013 — Acerto de Quantidade e CustoTela de lançamento do acertoValidação na inclusão/edição de itens — bloqueia itens sem regra em GRUPOESTOQUE

Campos envolvidos​

CampoTabelaPapel
ST_APENASITENSREGRAPARMESTOQUEFlag que habilita/desabilita a restrição
CD_OPERACAOGRUPOESTOQUEOperação de estoque da regra encontrada
CD_HISTORICOGRUPOESTOQUEHistórico da regra encontrada
CD_ITEM, CD_GRUPO, CD_SUBGRUPO, CD_LOCAL, CD_TIPOLOCAL, CD_SECAO, CD_CATEGORIAGRUPOESTOQUEFiltros utilizados para localizar a regra aplicável ao item

Opções disponíveis​

S — Marcado (Apenas itens com regra)​

O que fazDetalhe
Bloqueia itens sem regraAo validar um item na MEQ013, o sistema consulta GRUPOESTOQUE para Entrada e Saída. Se nenhuma regra for encontrada, o item é rejeitado.
Comportamento em edição unitáriaExibe erro imediato: "O Item não possui Regra configurada. Verifique! [MEQ001]"
Comportamento em adição em loteAcumula o código e descrição do item na lista iCodigosItensErro para exibir ao final do processo

Simulação passo a passo​

  1. Acesse MEQ001 → aba Tipo.
  2. Marque o checkbox "Realizar ajuste apenas para itens com regras parametrizadas abaixo".
  3. Salve o parâmetro.
  4. Abra a tela MEQ013 (Acerto de Quantidade e Custo).
  5. Informe um item que não possua regra cadastrada na tabela GRUPOESTOQUE (verificando item, grupo, subgrupo, local, tipo local, seção e categoria).
  6. Tente confirmar a linha do item.

Resultado esperado: O sistema exibe a mensagem "O Item não possui Regra configurada. Verifique! [MEQ001]" e não permite incluir o item no acerto.

Exceção / Importante: Se o item possuir regra em GRUPOESTOQUE para Entrada ou Saída, o sistema aceita o item e preenche automaticamente a operação e o histórico de estoque conforme a regra encontrada (com prioridade para regra mais específica: item > grupo > subgrupo > local > tipo local > seção > categoria).


N — Desmarcado (Livre — valor padrão)​

O que fazDetalhe
Permite qualquer itemA validação de regra em GRUPOESTOQUE continua ocorrendo, mas se nenhuma regra for encontrada, o item é aceito normalmente.
Operações padrãoNa ausência de regra, utiliza CD_OPERESTOQUESAI / CD_OPERESTOQUEENT e CD_HISTREQUISICAO configurados nos parâmetros de estoque (MEQ001).

Simulação passo a passo​

  1. Acesse MEQ001 → aba Tipo.
  2. Certifique-se de que o checkbox "Realizar ajuste apenas para itens com regras parametrizadas abaixo" esteja desmarcado.
  3. Salve o parâmetro.
  4. Abra a tela MEQ013 (Acerto de Quantidade e Custo).
  5. Informe um item que não possua regra cadastrada na tabela GRUPOESTOQUE.
  6. Tente confirmar a linha do item.

Resultado esperado: O item é aceito normalmente. As operações de estoque de entrada e saída são preenchidas com os valores padrão configurados em MEQ001 (CD_OPERESTOQUEENT / CD_OPERESTOQUESAI e CD_HISTREQUISICAO).


Regra de busca de regras em GRUPOESTOQUE​

Quando o parâmetro está ativo, o sistema busca regras na tabela GRUPOESTOQUE com a seguinte lógica:

  1. Entrada — busca regra com TP_OPERACAO = 'E'
  2. Saída — busca regra com TP_OPERACAO = 'S'

Os filtros aplicados utilizam COALESCE para ignorar campos nulos na regra (regra genérica). A ordenação prioriza regras mais específicas:

PrioridadeCampoPeso
1ªCD_ITEM15 pontos
2ªCD_LOCAL5 pontos
2ªCD_TIPOLOCAL5 pontos
2ªCD_GRUPO5 pontos
2ªCD_SUBGRUPO5 pontos
2ªCD_SECAO5 pontos
2ªCD_CATEGORIA5 pontos

A regra com maior pontuação (mais específica) é selecionada (FIRST 1 com ORDER BY ... DESC).


Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoLinhaEvidência
TdmMEQ001.tabPARMESTOQUEAfterInsertsource/MEQ001/UdmMEQ001.pas303Define valor padrão 'N' ao inserir novo registro
Busca_Parametrossource/MEQ013/UdmMEQ013.pas126Lê ST_APENASITENSREGRA de PARMESTOQUE e armazena em iST_APENASITENSREGRA
TdmMEQ013.tabITEMCD_ITEMValidatesource/MEQ013/UdmMEQ013.pas418–421Valida se o item possui regra quando iST_APENASITENSREGRA = 'S'

Referências SQL diretas ao campo em Scripts/​

Não foi encontrada referência direta ao campo ST_APENASITENSREGRA em procedures/views SQL sob Scripts/. O campo é utilizado exclusivamente pelo código Delphi (MEQ001 para configuração e MEQ013 para validação em runtime).

Candidatas por uso da tabela PARMESTOQUE​

Diversas procedures SQL fazem FROM PARMESTOQUE ou JOIN PARMESTOQUE, mas nenhuma consulta o campo ST_APENASITENSREGRA diretamente. As procedures candidatas (GERA_ESTOQUE, CANCELA_ESTOQUE, GERA_NOTAFISCALESTOQUE, etc.) utilizam outros campos da tabela para geração e cancelamento de estoque — sem impacto funcional direto identificado neste parâmetro.