Validação por Fórmula em Compras
Esta validação personalizada avalia uma regra que você escreve no momento de gravar uma compra. Se a condição for verdadeira, a compra é salva; se for falsa, a gravação é barrada com a mensagem de erro. Em compras, este é o único tipo de validador disponível.
Os atributos da fórmula começam por purchase — incluindo a coleção de parcelas purchase.purchase_bills. Consulte Fórmulas para a sintaxe e a lista de atributos.
Cadastrando
- No menu superior, clique na Engrenagem.
- Clique em Validações personalizadas.
- Escolha Compra.
- Clique em Incluir.
- Na galeria, selecione o modelo Fórmula personalizada.
- Preencha os campos e clique em Salvar.
Campos
Além dos campos comuns a toda validação, este validador tem dois campos próprios:
- Fórmula: a regra que decide se a compra pode ser gravada. Deve devolver verdadeiro para liberar e falso para barrar.
- Mensagem de erro: o texto exibido quando a compra é barrada.
Exemplo: não permitir compra sem parcelas
Impede que uma compra seja gravada sem nenhuma parcela informada, evitando lançamentos incompletos que atrapalham a gestão financeira.
- Fórmula:
{
">": [
{
"reduce": [
{ "values_of": ["purchase.purchase_bills", "expire_at"] },
{ "+": [1, { "var": "accumulator" }] }
]
},
0
]
}
- Mensagem de erro:
Ops: Faltou informar as parcelas
Como funciona: o values_of percorre as parcelas da compra (purchase_bills) coletando os valores de expire_at. O reduce conta quantas parcelas existem somando 1 a cada iteração. Se o resultado for maior que 0, há parcelas — a validação passa. Se for 0, nenhuma parcela foi informada e o sistema exibe a mensagem de erro.
Perguntas e respostas
1 - Minhas compras importadas automáticas não estão sendo salvas. O que pode ser?
R: Se o erro exibido é Ops: Faltou informar as parcelas, é provável que a validação de compra sem parcelas esteja bloqueando o processo porque o XML importado não inclui parcelas. Nesse caso, pode ser necessário configurar a validação para que ela não rode nessa etapa. Entre em contato com o nosso suporte para ajustar.