Regra de Validação de Estoque
Este documento descreve como funciona a regra de validação de estoque no Landix, considerando o funcionamento do estoque no Sankhya.
Visão geral do estoque no Sankhya
No Sankhya, o estoque é controlado pela tabela TGFEST, responsável por armazenar as informações de estoque por produto, local, empresa e (opcionalmente) lote.
Para que um estoque seja considerado válido para uso no Landix, o campo ATIVO.TGFEST deve estar com valor 'S', indicando que o estoque está ativo no ERP.
Campos importantes da TGFEST
Na tabela TGFEST, os principais campos para entendimento da validação são:
CODPROD: código do produto ao qual o estoque pertence.CODLOCAL: código do local de estoque.CODEMP: código da empresa proprietária do estoque.CONTROLE: código do lote/controle do estoque (campo opcional).ESTOQUE: quantidade de estoque disponível registrada.RESERVADO: quantidade de estoque reservada para pedidos ainda não faturados.DTVAL: data de validade do lote (controle).
Cálculo do estoque disponível na validação
A quantidade utilizada na validação de estoque é calculada por:
ESTOQUE.TGFEST - RESERVADO.TGFEST
Esse cálculo representa o estoque disponível efetivo, subtraindo as reservas de pedidos que ainda não foram faturados.
Exemplo de comportamento de ESTOQUE e RESERVADO
Considere o Produto X com 10 unidades em estoque.
-
Foram feitos dois pedidos:
- Pedido 1: venda de 3 unidades
- Pedido 2: venda de 5 unidades
-
No banco de dados, inicialmente:
ESTOQUE.TGFEST = 10RESERVADO.TGFEST = 8
-
Após faturar o Pedido 1 no ERP:
RESERVADO.TGFESTpassa a 5ESTOQUE.TGFESTpassa a 7
Isso ocorre porque, ao faturar, o que estava reservado passa a ser efetivamente consumido do estoque real.
- Se o Pedido 2 for cancelado (não faturado):
- O
RESERVADO.TGFESTremove as unidades reservadas do Pedido 2 - O
ESTOQUE.TGFESTpermanece sem alteração adicional relacionada ao cancelamento
- O
Comportamento quando há (ou não) controle/lote
CONTROLE sem preenchimento
Quando o campo CONTROLE não é utilizado no ERP (sem valor), o consumo do estoque considera que não há distinção por lote. Nesse caso, a validação soma os estoques disponíveis do produto em todas as linhas correspondentes na TGFEST.
CONTROLE preenchido
Quando o campo CONTROLE está preenchido, o consumo de estoque passa a ser feito por lote.
Exemplo:
- Se o produto X for vendido com
CONTROLE = 001, o estoque consumido deve ser exclusivamente desse lote. - Nenhum outro lote poderá atender esse consumo, pois a validação respeita o lote utilizado na venda.
Regra com WMSBLOQUEADO
Quando o campo adicional WMSBLOQUEADO.TGFEST estiver preenchido, o cálculo do estoque disponível passa a considerar a quantidade bloqueada:
ESTOQUE.TGFEST - RESERVADO.TGFEST - WMSBLOQUEADO.TGFEST
Ativação da validação de estoque no Landix
Para ativar a validação de estoque no Landix, utilize o parâmetro de perfil:
- “Valida estoque no fechamento do pedido?” (IDVEFC)
Possíveis valores:
- NÃO VALIDA ESTOQUE
- EXIBE OPÇÃO PARA VALIDAÇÃO
- SEMPRE VALIDA ESTOQUE
- EXIBE OPÇÃO PARA VALIDAÇÃO E PERMITE ERRO DE EXPORTAÇÃO
- SEMPRE VALIDA O ESTOQUE E PERMITE ERRO DE EXPORTAÇÃO
- VALIDA ESTOQUE NO PRONTA ENTREGA
Também existe o parâmetro:
- “Local padrão para validação de estoque:” (CDLEVL)
Quando CDLEVL não estiver preenchido, o sistema buscará o estoque nos locais definidos:
- na tabela de condições especiais (TMVSCDE)
ou - na tabela de TOPs por empresa (TMVSTOPEXP)
Comportamento no fechamento do pedido
Quando o parâmetro IDVEFC estiver ativo, ao fechar um pedido no Landix o sistema valida se existe estoque suficiente para todos os itens vendidos.
-
Se houver estoque suficiente para todos os produtos:
- o pedido é descarregado e exportado diretamente para o ERP.
-
Se não houver estoque suficiente:
- o comportamento dependerá do parâmetro IDCORT.
Corte de itens com estoque insuficiente
Parâmetro:
- “Valida corte de itens com estoque insuficiente após validação de estoque:” (IDCORT)
Possíveis valores:
- NÃO
- SIM, EXIBE MENSAGEM E NÃO PERMITE O FECHAMENTO DO PEDIDO COM ITENS SEM ESTOQUE
- SIM, EXIBE MENSAGEM E FORNECE OPÇÃO CORTAR OS ITENS E FECHAR O PEDIDO
- SIM, NÃO EXIBE MENSAGEM, REALIZA O CORTE DOS ITENS E FECHA O PEDIDO
Quando houver corte, será exibida uma tela ao vendedor com os itens com estoque insuficiente. Ao selecionar um produto, o vendedor pode visualizar:
- quantidade atendida
- quantidade faltante
Com isso, ele pode ajustar o pedido e reenviá-lo.
Validação de estoque via Landix
Além da validação de estoque realizada utilizando a API Sankhya, existe a opção de validar o estoque no lado da Landix, utilizando o Banco Cloud como base.
Configuração
Para habilitar essa validação, ative o parâmetro:
- “Valida estoque em cloud antes de inserir pedido via API?” (IDVEIA)
Quando o IDVEIA estiver ligado, o sistema realiza a validação de estoque considerando como estoque disponível os dados da tabela TGFEST no banco cloud.
Comportamento da validação
- O sistema consulta o estoque disponível no Banco Cloud (tabela TGFEST).
- Se a validação de estoque no lado da Landix for aprovada:
- o pedido é enviado automaticamente ao ERP sem depender da validação de estoque no momento da inserção via API.
⚠ Atenção
A validação realizada pela Landix não substitui a validação do ERP.
Se o cliente precisar que o Sankhya valide estoque no momento da entrada do pedido, é necessário configurar o ERP para executar essa validação.
Vantagens
- Melhora de performance, pois evita tentativas de inserção do pedido na API apenas para descobrir se há estoque no ERP.
- Reduz chamadas e tratamento de erro na API, tornando o fluxo mais eficiente.
Limitação e recomendação de uso
Apesar do ganho de performance, essa abordagem não é recomendada como regra padrão, pois:
- o banco cloud não é 100% atualizado em tempo real;
- podem ocorrer divergências de estoque entre o Banco Cloud e o Sankhya;
- nesses casos, a validação pode aprovar o pedido na Landix, mas o ERP pode rejeitar posteriormente por falta de estoque (dependendo da configuração de validação no Sankhya).
Atenção
Ao utilizar o IDVEIA, é importante considerar o risco de divergência de estoque entre o Banco Cloud e o ERP, principalmente em cenários com alta rotatividade de estoque.
Split de lotes por validade
A regra de split define a forma de consumo do estoque considerando a data de validade do lote, registrada em DTVAL.TGFEST.
Quando a validação de estoque estiver habilitada e o split também, o sistema:
- Busca o lote disponível com a data de validade mais próxima.
- Consome o estoque desse lote primeiro.
- Se não houver quantidade suficiente, passa para o próximo lote com a validade mais próxima, e assim sucessivamente.
Exemplo de split
Considere o Produto X, com necessidade de 10 unidades no pedido.
Existem dois estoques na TGFEST:
- Lote 001
ESTOQUE = 5DTVAL = 03/03/2026
- Lote 002
ESTOQUE = 5DTVAL = 10/03/2026
No fechamento do pedido:
- O sistema consome 5 unidades do lote 001 (validade mais próxima).
- Como ainda faltam 5 unidades, consome 5 unidades do lote 002.
Requisitos para ativar o split
No Sankhya, o cliente deve preencher para os estoques disponíveis:
CONTROLE.TGFESTDTVAL.TGFEST
No Landix, deve ser ativado o parâmetro de perfil:
- “Realiza split entre os lotes dos produtos?” (IDSPLT)
Regra de vida útil do parceiro (com split)
Parâmetro:
- “Utiliza a regra de vida útil do parceiro?” (IDVIUT)
Quando ativado, o sistema passa a validar o campo AD_VIDAUTIL.TGFEST.
Cenário 1: IDSPLT = '1' e IDVIUT = '1'
-
Se a vida útil do parceiro for 0:
- serão recuperados todos os lotes disponíveis não vencidos
(campoDTVALI.TMVOPROESTmaior que a data atual).
- serão recuperados todos os lotes disponíveis não vencidos
-
Se a vida útil do parceiro for maior que 0:
- serão recuperados os lotes disponíveis com vida útil menor ou igual à vida útil do parceiro
(campoNUVIUT.TMVOPROESTmenor ou igual aoNUVIUT.TMVOCLI).
- serão recuperados os lotes disponíveis com vida útil menor ou igual à vida útil do parceiro
Cenário 2: IDSPLT = '1' e IDVIUT = '0'
- Serão recuperados todos os lotes disponíveis não vencidos
(campoDTVALI.TMVOPROESTmaior que a data atual).
Automatização de lotes no pedido
Dentro da regra de split, é possível definir quais produtos devem ser submetidos ao split de controle/lote (explosão de lotes) durante a validação de estoque na emissão de pedidos no Landix SFV.
Para isso, são utilizados:
- o campo
TIPCONTEST.TGFPRO - o parâmetro Sankhya
LOTEDVAL(tabela TSIPAR)
Regras por TIPCONTEST
-
TIPCONTEST = 'N'(Sem controle adicional): não realiza split. -
TIPCONTEST = 'L'(Número do lote):- se o parâmetro LOTEDTVAL estiver habilitado: realiza split
- se o parâmetro LOTEDTVAL estiver desabilitado: não realiza split
-
TIPCONTEST = 'V'(Data da validade): realiza split
Parâmetros Landix relacionados à validação do split por produto
Para utilizar essas regras, ative os parâmetros de perfil:
- “Valida configuração de tipo de controle do produto para realizar split?” (IDVPSP)
- “Usar data de validade junto com Lote?” (IDVLLT)