Validação por Fórmula em cada item da venda

Este validador é a versão "item a item" da validação por fórmula em vendas. Em vez de olhar a venda como um todo, ele repete a sua fórmula para cada produto da venda e, se algum reprovar, barra a gravação e aponta exatamente qual item está com problema.

Use-o quando a regra é sobre cada produto — quantidade mínima, preço, lote, campo personalizado do item — e não sobre o documento inteiro. Para regras sobre o total, o destinatário ou as datas da venda, use a fórmula da venda inteira.

Como referenciar o item na fórmula

Aqui o contexto da fórmula é o item, não a venda. Por isso os atributos começam por invoice_product:

  • invoice_product.quantity — quantidade do item
  • invoice_product.product.nome_do_atributo — dados do produto do item (inclusive campos personalizados com o prefixo cf_)
  • invoice_product.productlot.nome_do_atributo — dados do lote

Consulte Fórmulas para a sintaxe e a lista completa de atributos.

Cadastrando

  1. No menu superior, clique na Engrenagem.
  2. Clique em Validações personalizadas.
  3. Escolha Venda.
  4. Clique em Incluir.
  5. Na galeria, selecione o modelo Fórmula personalizada aplicada a cada item da venda.
  6. Preencha os campos e clique em Salvar.

Campos

Além dos campos comuns a toda validação, este validador tem:

  • Fórmula: a regra avaliada para cada item. Deve devolver verdadeiro para liberar o item e falso para barrá-lo.
  • Mensagem de erro: o texto exibido no item que reprovou.

Exemplo: quantidade mínima por produto

Cada produto tem um campo personalizado cf_pedidomnimo com a quantidade mínima de venda. Para barrar a venda quando algum item ficar abaixo dele:

  • Fórmula:
{
  ">=": [
    { "attr": "invoice_product.quantity" },
    { "attr": "invoice_product.product.cf_pedidomnimo" }
  ]
}
  • Mensagem de erro: A quantidade informada está abaixo do pedido mínimo definido para este item.

Como funciona: para cada item, a fórmula compara a quantidade vendida com o pedido mínimo cadastrado no produto. Se a quantidade for maior ou igual, o item passa; se for menor, ele é barrado com a mensagem acima. Produtos sem pedido mínimo podem ter 0 no campo personalizado, liberando qualquer quantidade.

Exemplo: lote obrigatório em todos os itens

Quando a operação exige rastreabilidade por lote, é comum precisar que nenhum item seja gravado sem o lote informado. Como a regra é sobre cada produto, o validador por item resolve com uma fórmula curta:

  • Fórmula:
{ "is_filled": [{ "attr": "invoice_product.productlot" }] }
  • Mensagem de erro: Informe o lote deste item antes de salvar a venda.

Como funciona: a fórmula roda uma vez para cada item da venda e verifica se o lote está preenchido. Itens com lote passam. Qualquer item sem lote é barrado, e o sistema aponta exatamente qual precisa ser corrigido.