Pular para o conteúdo principal

ST_ESTOQUEDIAPESSOA - Estoque Diário por Pessoa (Comportamento)

Tela de configuração: MEQ001 — Parâmetros de Estoque Localização: Aba &Estoque Tabela: PARMESTOQUE.ST_ESTOQUEDIAPESSOA Tipo: CHAR(1) — Combobox (cmbST_ESTOQUEDIAPESSOA) Valor padrão: N (Não)

Resumo​

O que fazDetalhe
Habilita/desabilita o rastreamento de estoque por pessoa e por diaS = Ativa gravação na tabela ESTOQUEDIAPESSOA; N = Desativa (padrão)
Tabela impactadaESTOQUEDIAPESSOA — registra posições de estoque com CD_PESSOA e DT_ESTOQUE
Gatilho de gravaçãoMovimentos 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​

CampoTabelaTipoPadrãoObservação
ST_ESTOQUEDIAPESSOAPARMESTOQUECHAR(1)'N'Controla o comportamento
CD_PESSOAESTOQUEDIAPESSOAINTEGER—Pessoa (cliente/fornecedor) vinculada
CD_ITEMESTOQUEDIAPESSOAINTEGER—Produto
CD_LOCAL / CD_TIPOLOCALESTOQUEDIAPESSOAINTEGER—Local de estoque
DT_ESTOQUEESTOQUEDIAPESSOADATE—Data do estoque
QT_ESTOQUEESTOQUEDIAPESSOANUMERIC(15,5)—Quantidade acumulada
QT_ALTERNATIVAESTOQUEDIAPESSOANUMERIC(15,5)—Quantidade alternativa (peso, etc.)

Opções disponíveis​

S — Sim (Ativa Estoque Diário por Pessoa)​

O que fazDetalhe
Habilita gravação na tabela ESTOQUEDIAPESSOAA procedure ATUALIZA_ESTOQUEDIAPESSOA é acionada quando o parâmetro = 'S'
Rastreia estoque por pessoa e dataCada movimento de nota fiscal gera/atualiza registro com CD_PESSOA + DT_ESTOQUE
Propaga saldos futurosRegistros com data posterior são recalculados ao inserir movimentação
Considera tipo de operaçãoEntradas (E) e saídas (S) afetam o sinal da quantidade

Simulação passo a passo​

  1. Acesse MEQ001 — Parâmetros de Estoque.
  2. Na aba &Estoque, localize o campo Parâmetros Estoque (controle cmbST_ESTOQUEDIAPESSOA).
  3. Selecione a opção Sim.
  4. Salve os parâmetros.
  5. Realize uma movimentação de estoque vinculada a uma nota fiscal (ex: emissão de NF de venda ou entrada de compra).
  6. 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_LANCTONOTA não nulo). Movimentos avulsos sem nota fiscal não geram registro em ESTOQUEDIAPESSOA, mesmo com este parâmetro = 'S'.

Exceção / Importante: O tipo de operação (entrada E ou saída S) é 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 fazDetalhe
Desabilita gravação na tabela ESTOQUEDIAPESSOAA procedure ATUALIZA_ESTOQUEDIAPESSOA ignora a lógica de rastreamento quando o parâmetro = 'N'
Comportamento padrão do sistemaNenhuma tabela adicional é alimentada

Simulação passo a passo​

  1. Acesse MEQ001 — Parâmetros de Estoque.
  2. Na aba &Estoque, verifique que o campo Parâmetros Estoque (cmbST_ESTOQUEDIAPESSOA) está selecionado como Não.
  3. Realize uma movimentação de estoque normalmente (NF de venda, entrada de compra, etc.).
  4. Consulte a tabela ESTOQUEDIAPESSOA.

Resultado esperado: Nenhum registro é criado ou alterado em ESTOQUEDIAPESSOA. O estoque tradicional (tabela ESTOQUE) funciona normalmente.

Tabela Comparativa Resumida​

ValorDescriçãoGrava ESTOQUEDIAPESSOA?Rastreia por Pessoa?
SSim✅✅
NNão (padrão)❌❌

Procedures impactadas​

Referências SQL diretas ao campo​

RotinaArquivoLinhas evidênciaDescrição
ATUALIZA_ESTOQUEDIAPESSOA (procedure)Scripts/ATUALIZA_ESTOQUEDIAPESSOA.sql31–34, 36Consulta 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 campo ST_ESTOQUEDIAPESSOA no corpo dessas procedures. A relação é indireta (uso de outros parâmetros da tabela).

RotinaArquivo
GERA_ESTOQUEScripts/GERA_ESTOQUE.sql
GERA_ESTOQUE_NOTAFISCALScripts/GERA_ESTOQUE_NOTAFISCAL.sql
CANCELA_ESTOQUEScripts/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);