Pular para o conteúdo principal

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.

  1. Foram feitos dois pedidos:

    • Pedido 1: venda de 3 unidades
    • Pedido 2: venda de 5 unidades
  2. No banco de dados, inicialmente:

    • ESTOQUE.TGFEST = 10
    • RESERVADO.TGFEST = 8
  3. Após faturar o Pedido 1 no ERP:

    • RESERVADO.TGFEST passa a 5
    • ESTOQUE.TGFEST passa a 7

Isso ocorre porque, ao faturar, o que estava reservado passa a ser efetivamente consumido do estoque real.

  1. Se o Pedido 2 for cancelado (não faturado):
    • O RESERVADO.TGFEST remove as unidades reservadas do Pedido 2
    • O ESTOQUE.TGFEST permanece sem alteração adicional relacionada ao cancelamento

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

  1. O sistema consulta o estoque disponível no Banco Cloud (tabela TGFEST).
  2. 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:

  1. Busca o lote disponível com a data de validade mais próxima.
  2. Consome o estoque desse lote primeiro.
  3. 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 = 5
    • DTVAL = 03/03/2026
  • Lote 002
    • ESTOQUE = 5
    • DTVAL = 10/03/2026

No fechamento do pedido:

  1. O sistema consome 5 unidades do lote 001 (validade mais próxima).
  2. 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.TGFEST
  • DTVAL.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
      (campo DTVALI.TMVOPROEST maior que a data atual).
  • 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
      (campo NUVIUT.TMVOPROEST menor ou igual ao NUVIUT.TMVOCLI).

Cenário 2: IDSPLT = '1' e IDVIUT = '0'

  • Serão recuperados todos os lotes disponíveis não vencidos
    (campo DTVALI.TMVOPROEST maior 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)

Material de apoio