ST_ESTOQUEDIAPESSOA - Estoque Diário por Pessoa (Comportamento)
Tela de configuração: MEQ001 — Parâmetros de Estoque Localização: Aba
&EstoqueTabela:PARMESTOQUE.ST_ESTOQUEDIAPESSOATipo:CHAR(1)— Combobox (cmbST_ESTOQUEDIAPESSOA) Valor padrão:N(Não)
Resumo
| O que faz | Detalhe |
|---|---|
| Habilita/desabilita o rastreamento de estoque por pessoa e por dia | S = Ativa gravação na tabela ESTOQUEDIAPESSOA; N = Desativa (padrão) |
| Tabela impactada | ESTOQUEDIAPESSOA — registra posições de estoque com CD_PESSOA e DT_ESTOQUE |
| Gatilho de gravação | Movimentos de estoque vinculados a nota fiscal (NR_LANCTONOTA não nulo) |
Telas impactadas
- MEQ001 — Parâmetros de Estoque (tela de configuração do próprio parâmetro)
- O rastreamento habilitado por este parâmetro alimenta a tabela
ESTOQUEDIAPESSOA, que pode ser consultada por relatórios e rotinas que leem essa tabela.
Campos envolvidos
| Campo | Tabela | Tipo | Padrão | Observação |
|---|---|---|---|---|
ST_ESTOQUEDIAPESSOA | PARMESTOQUE | CHAR(1) | 'N' | Controla o comportamento |
CD_PESSOA | ESTOQUEDIAPESSOA | INTEGER | — | Pessoa (cliente/fornecedor) vinculada |
CD_ITEM | ESTOQUEDIAPESSOA | INTEGER | — | Produto |
CD_LOCAL / CD_TIPOLOCAL | ESTOQUEDIAPESSOA | INTEGER | — | Local de estoque |
DT_ESTOQUE | ESTOQUEDIAPESSOA | DATE | — | Data do estoque |
QT_ESTOQUE | ESTOQUEDIAPESSOA | NUMERIC(15,5) | — | Quantidade acumulada |
QT_ALTERNATIVA | ESTOQUEDIAPESSOA | NUMERIC(15,5) | — | Quantidade alternativa (peso, etc.) |
Opções disponíveis
S — Sim (Ativa Estoque Diário por Pessoa)
| O que faz | Detalhe |
|---|---|
Habilita gravação na tabela ESTOQUEDIAPESSOA | A procedure ATUALIZA_ESTOQUEDIAPESSOA é acionada quando o parâmetro = 'S' |
| Rastreia estoque por pessoa e data | Cada movimento de nota fiscal gera/atualiza registro com CD_PESSOA + DT_ESTOQUE |
| Propaga saldos futuros | Registros com data posterior são recalculados ao inserir movimentação |
| Considera tipo de operação | Entradas (E) e saídas (S) afetam o sinal da quantidade |
Simulação passo a passo
- Acesse MEQ001 — Parâmetros de Estoque.
- Na aba
&Estoque, localize o campo Parâmetros Estoque (controlecmbST_ESTOQUEDIAPESSOA). - Selecione a opção Sim.
- Salve os parâmetros.
- Realize uma movimentação de estoque vinculada a uma nota fiscal (ex: emissão de NF de venda ou entrada de compra).
- Consulte a tabela
ESTOQUEDIAPESSOA.
Resultado esperado: Um registro é criado/atualizado em ESTOQUEDIAPESSOA contendo CD_EMPRESA, CD_ITEM, CD_LOCAL, CD_TIPOLOCAL, DT_ESTOQUE, CD_PESSOA (recuperado da nota fiscal), QT_ESTOQUE (soma cumulativa) e QT_ALTERNATIVA. Movimentos futuros (datas posteriores) são recalculados para refletir a nova quantidade.
Exceção / Importante: A gravação só ocorre quando o movimento de estoque está vinculado a uma nota fiscal (
NR_LANCTONOTAnão nulo). Movimentos avulsos sem nota fiscal não geram registro emESTOQUEDIAPESSOA, mesmo com este parâmetro ='S'.
Exceção / Importante: O tipo de operação (entrada
Eou saídaS) é obtido da operação vinculada ao movimento (OPERACAO.TP_OPERACAO). Saídas invertem o sinal (negativo), entradas mantêm positivo.
N — Não (Desativa — Padrão)
| O que faz | Detalhe |
|---|---|
Desabilita gravação na tabela ESTOQUEDIAPESSOA | A procedure ATUALIZA_ESTOQUEDIAPESSOA ignora a lógica de rastreamento quando o parâmetro = 'N' |
| Comportamento padrão do sistema | Nenhuma tabela adicional é alimentada |
Simulação passo a passo
- Acesse MEQ001 — Parâmetros de Estoque.
- Na aba
&Estoque, verifique que o campo Parâmetros Estoque (cmbST_ESTOQUEDIAPESSOA) está selecionado como Não. - Realize uma movimentação de estoque normalmente (NF de venda, entrada de compra, etc.).
- Consulte a tabela
ESTOQUEDIAPESSOA.
Resultado esperado: Nenhum registro é criado ou alterado em ESTOQUEDIAPESSOA. O estoque tradicional (tabela ESTOQUE) funciona normalmente.
Tabela Comparativa Resumida
| Valor | Descrição | Grava ESTOQUEDIAPESSOA? | Rastreia por Pessoa? |
|---|---|---|---|
S | Sim | ✅ | ✅ |
N | Não (padrão) | ❌ | ❌ |
Procedures impactadas
Referências SQL diretas ao campo
| Rotina | Arquivo | Linhas evidência | Descrição |
|---|---|---|---|
ATUALIZA_ESTOQUEDIAPESSOA (procedure) | Scripts/ATUALIZA_ESTOQUEDIAPESSOA.sql | 31–34, 36 | Consulta ST_ESTOQUEDIAPESSOA em PARMESTOQUE. Se = 'S', executa lógica de gravação em ESTOQUEDIAPESSOA: INSERT de novo registro ou UPDATE cumulativo, propagando saldos para datas futuras, invertendo sinal conforme tipo de operação. |
Candidatas por uso da tabela (PARMESTOQUE)
Nota: As rotinas abaixo fazem JOIN com
PARMESTOQUE, mas não foram encontradas referências diretas ao campoST_ESTOQUEDIAPESSOAno corpo dessas procedures. A relação é indireta (uso de outros parâmetros da tabela).
| Rotina | Arquivo |
|---|---|
GERA_ESTOQUE | Scripts/GERA_ESTOQUE.sql |
GERA_ESTOQUE_NOTAFISCAL | Scripts/GERA_ESTOQUE_NOTAFISCAL.sql |
CANCELA_ESTOQUE | Scripts/CANCELA_ESTOQUE.sql |
Estrutura da Tabela ESTOQUEDIAPESSOA
A tabela ESTOQUEDIAPESSOA é alimentada quando ST_ESTOQUEDIAPESSOA = 'S' e possui a seguinte estrutura:
CREATE TABLE ESTOQUEDIAPESSOA (
CD_EMPRESA DOM_INTEGER NOT NULL,
CD_ITEM DOM_INTEGER NOT NULL,
CD_LOCAL DOM_INTEGER NOT NULL,
CD_TIPOLOCAL DOM_INTEGER NOT NULL,
DT_ESTOQUE DOM_DATE NOT NULL,
CD_PESSOA DOM_INTEGER NOT NULL,
QT_ESTOQUE DOM_NUMERIC15_5,
QT_ALTERNATIVA DOM_NUMERIC15_5,
DT_REGISTRO DOM_TIMESTAMP_NOW
);
ALTER TABLE ESTOQUEDIAPESSOA ADD CONSTRAINT PK_ESTOQUEDIAPESSOA
PRIMARY KEY (CD_EMPRESA, CD_ITEM, CD_LOCAL, CD_TIPOLOCAL, DT_ESTOQUE, CD_PESSOA);