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_APENASITENSREGRATipo:CHAR(1)— não nulo, valor padrãoNComponente: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
| Tela | Descrição | Impacto |
|---|---|---|
| MEQ001 — Parâmetros de Estoque | Tela onde o parâmetro é configurado | Checkbox na aba "Tipo" |
| MEQ013 — Acerto de Quantidade e Custo | Tela de lançamento do acerto | Validação na inclusão/edição de itens — bloqueia itens sem regra em GRUPOESTOQUE |
Campos envolvidos
| Campo | Tabela | Papel |
|---|---|---|
ST_APENASITENSREGRA | PARMESTOQUE | Flag que habilita/desabilita a restrição |
CD_OPERACAO | GRUPOESTOQUE | Operação de estoque da regra encontrada |
CD_HISTORICO | GRUPOESTOQUE | Histórico da regra encontrada |
CD_ITEM, CD_GRUPO, CD_SUBGRUPO, CD_LOCAL, CD_TIPOLOCAL, CD_SECAO, CD_CATEGORIA | GRUPOESTOQUE | Filtros utilizados para localizar a regra aplicável ao item |
Opções disponíveis
S — Marcado (Apenas itens com regra)
| O que faz | Detalhe |
|---|---|
| Bloqueia itens sem regra | Ao 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ária | Exibe erro imediato: "O Item não possui Regra configurada. Verifique! [MEQ001]" |
| Comportamento em adição em lote | Acumula o código e descrição do item na lista iCodigosItensErro para exibir ao final do processo |
Simulação passo a passo
- Acesse MEQ001 → aba Tipo.
- Marque o checkbox "Realizar ajuste apenas para itens com regras parametrizadas abaixo".
- Salve o parâmetro.
- Abra a tela MEQ013 (Acerto de Quantidade e Custo).
- Informe um item que não possua regra cadastrada na tabela
GRUPOESTOQUE(verificando item, grupo, subgrupo, local, tipo local, seção e categoria). - 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
GRUPOESTOQUEpara 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 faz | Detalhe |
|---|---|
| Permite qualquer item | A validação de regra em GRUPOESTOQUE continua ocorrendo, mas se nenhuma regra for encontrada, o item é aceito normalmente. |
| Operações padrão | Na ausência de regra, utiliza CD_OPERESTOQUESAI / CD_OPERESTOQUEENT e CD_HISTREQUISICAO configurados nos parâmetros de estoque (MEQ001). |
Simulação passo a passo
- Acesse MEQ001 → aba Tipo.
- Certifique-se de que o checkbox "Realizar ajuste apenas para itens com regras parametrizadas abaixo" esteja desmarcado.
- Salve o parâmetro.
- Abra a tela MEQ013 (Acerto de Quantidade e Custo).
- Informe um item que não possua regra cadastrada na tabela
GRUPOESTOQUE. - 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:
- Entrada — busca regra com
TP_OPERACAO = 'E' - 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:
| Prioridade | Campo | Peso |
|---|---|---|
| 1ª | CD_ITEM | 15 pontos |
| 2ª | CD_LOCAL | 5 pontos |
| 2ª | CD_TIPOLOCAL | 5 pontos |
| 2ª | CD_GRUPO | 5 pontos |
| 2ª | CD_SUBGRUPO | 5 pontos |
| 2ª | CD_SECAO | 5 pontos |
| 2ª | CD_CATEGORIA | 5 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
| Rotina | Arquivo | Linha | Evidência |
|---|---|---|---|
TdmMEQ001.tabPARMESTOQUEAfterInsert | source/MEQ001/UdmMEQ001.pas | 303 | Define valor padrão 'N' ao inserir novo registro |
Busca_Parametros | source/MEQ013/UdmMEQ013.pas | 126 | Lê ST_APENASITENSREGRA de PARMESTOQUE e armazena em iST_APENASITENSREGRA |
TdmMEQ013.tabITEMCD_ITEMValidate | source/MEQ013/UdmMEQ013.pas | 418–421 | Valida 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.