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 iteminvoice_product.product.nome_do_atributo— dados do produto do item (inclusive campos personalizados com o prefixocf_)invoice_product.productlot.nome_do_atributo— dados do lote
Consulte Fórmulas para a sintaxe e a lista completa de atributos.
Cadastrando
- No menu superior, clique na Engrenagem.
- Clique em Validações personalizadas.
- Escolha Venda.
- Clique em Incluir.
- Na galeria, selecione o modelo Fórmula personalizada aplicada a cada item da venda.
- 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.