ST_AJUSTACUSTONEGATIVO – Ajusta Custo Negativo Automaticamente
Tela de configuração: MEQ001 – Parâmetros de Estoque Localização na UI: Parâmetros → Aba
&Estoque→ Campo "Ajusta custo negativo automaticamente" Tabela / Coluna:PARMESTOQUE.ST_AJUSTACUSTONEGATIVOTipo:CHAR(1)— Combobox (Sim/Não) Valor padrão:N
Comportamento Geral
Quando habilitado (S), o sistema ajusta automaticamente os valores de custo médio e último custo durante o processamento de movimentações de estoque, impedindo que o saldo em valor ou preço médio fique negativo. O ajuste ocorre nas rotinas GERA_ESTOQUE e RECALCULA_ESTOQUE.
Os movimentos ajustados são identificados pelo campo "Ajuste" na tela CEQ005 (consulta de movimentos de estoque).
Campos envolvidos
| Campo | Descrição |
|---|---|
PARMESTOQUE.ST_AJUSTACUSTONEGATIVO | Flag S/N que ativa o ajuste automático |
ESTOQUE.VL_PRECOMEDIO / VL_CUSTOMEDIO | Custo médio do produto (zerado pelo ajuste) |
ESTOQUE.VL_ULTIMOCUSTO | Último custo registrado (zerado pelo ajuste) |
ESTOQUE.VL_ESTOQUE / VL_ATUAL / VL_SALDO | Valor total do saldo em estoque |
Opções disponíveis
S – Sim (Ajuste Automático Ativo)
| O que faz | Detalhe |
|---|---|
| Ajusta custo automaticamente | Quando o saldo em valor/preço médio ficaria negativo após uma movimentação, o sistema recalcula para zero |
| Marca campo "Ajuste" | Na tela CEQ005, o movimento ajustado fica identificado |
Simulação passo a passo
- Acesse MEQ001 (Parâmetros de Estoque).
- Vá até a aba &Estoque.
- Localize o campo "Ajusta custo negativo automaticamente".
- Selecione "Sim" (
S). - Salve o registro.
- Realize uma saída de estoque que deixe o saldo em valor negativo (ex.: produto com custo médio R$ 10,00, saldo de 5 unidades, saia 10 unidades).
- Processe a movimentação via
GERA_ESTOQUE. - Consulte o movimento em CEQ005 — observe que o campo "Ajuste" indica que houve ajuste automático e o custo médio foi zerado.
Resultado esperado: O sistema ajusta o valor do movimento para zerar o saldo em valor e o preço médio. O campo "Ajuste" na CEQ005 marca o movimento como ajustado.
Excecao / Importante: O ajuste ocorre em três cenários distintos, todos processados nas rotinas
GERA_ESTOQUEeRECALCULA_ESTOQUE:
- Saldo anterior de valor zerado: entrada com quantidade > 0 a custo médio → preço médio e último custo são zerados.
- Saldo anterior positivo (qty e valor) mas saldo atual fica negativo: valor do movimento é ajustado para zerar o saldo em valor.
- Saldo anterior de quantidade negativo e saldo atual fica negativo em qty e valor: mesmo ajuste para zerar o saldo em valor.
N – Não (Sem Ajuste Automático)
| O que faz | Detalhe |
|---|---|
| Não ajusta custo automaticamente | O saldo em valor/preço médio pode ficar negativo sem intervenção do sistema |
| Campo "Ajuste" não é preenchido | Na CEQ005, não há marcação de ajuste |
Simulação passo a passo
- Acesse MEQ001 (Parâmetros de Estoque).
- Vá até a aba &Estoque.
- Localize o campo "Ajusta custo negativo automaticamente".
- Selecione "Não" (
N). - Salve o registro.
- Realize uma saída de estoque que deixe o saldo em valor negativo.
- Processe a movimentação via
GERA_ESTOQUE. - Consulte o saldo em estoque — o preço médio e o valor do saldo podem permanecer negativos.
Resultado esperado: Nenhum ajuste é aplicado. O custo médio e o valor do saldo podem ficar negativos, dependendo das configurações de ST_CUSTONEGATIVO (configurado em MEQ001, aba &Estoque).
Procedures impactadas
Rotinas Delphi com referência direta ao parâmetro
| Rotina | Arquivo | Linha | Evidência |
|---|---|---|---|
TdmMEQ001.tabPARMESTOQUEAfterInsert | source/MEQ001/UdmMEQ001.pas | 302 | Define valor padrão 'N' ao inserir novo registro |
Referências SQL diretas ao campo
| Procedure/Script | Arquivo | Linha | Evidência |
|---|---|---|---|
GERA_ESTOQUE | Scripts/GERA_ESTOQUE.sql | 87, 579 | Declara variável I_ST_AJUSTACUSTONEGATIVO; lê da tabela PARMESTOQUE e aplica ajuste quando 'S' |
RECALCULA_ESTOQUE | Scripts/RECALCULA_ESTOQUE.sql | 99, 730 | Declara variável I_ST_AJUSTACUSTONEGATIVO; lê da tabela PARMESTOQUE e aplica ajuste quando 'S' |
Candidatas por uso da tabela PARMESTOQUE
Nenhuma referência direta ao campo ST_AJUSTACUSTONEGATIVO foi encontrada fora das duas rotinas acima. As demais procedures listadas abaixo acessam a tabela PARMESTOQUE para outros campos:
AJUSTA_ORDEMPRODPEDANTECIPADO, ALTERACAO_BANDA, ATUALIZA_CONSUMOMEDIO, ATUALIZA_ESTOQUEDIAPESSOA, CALCULA_FORMACAOPRECOVENDA, CANCELA_ESTOQUE, CONFIRMA_ORDEMSERVICO, CONFIRMA_ORDEMSERVICOMETAL, GERA_ESTOQUE_NOTAFISCAL, GERA_ESTOQUEPSALT, GERA_NOTAFISCALESTOQUE, GERA_ORDEMPRODUCAO, GERA_PRODENVELOPAMENTO, GERA_PRODLOTEPRODUCAO, GERA_PRODMONTAGEMRECAP, GERA_PRODVULCANIZACAO, GERA_SPEDBLOCOL, GERA_SPEDECFBLOCOL, GRAVA_AVISOS, MONTA_ORDEMPRODITEMPEDIDOGRADE.
Parâmetros relacionados
| Parâmetro | Onde configurar | Relação |
|---|---|---|
ST_CUSTONEGATIVO | MEQ001 — aba &Estoque | Controla se o custo negativo é permitido; complementa ST_AJUSTACUSTONEGATIVO |
TP_CUSTOESTOQUE | MEQ001 — aba &Estoque | Define o tipo de custo (Médio, FIFO, etc.); afeta qual custo é ajustado |
ST_ZERAVALORSALDO | MEQ001 — aba &Estoque | Parâmetro adjacente na mesma aba; controla zeramento de saldo em valor |