Validação de Cliente Inadimplente
Esta validação personalizada barra a gravação de uma venda quando o cliente tem valores vencidos e em aberto no financeiro. É um validador pronto, sem necessidade de fórmula, e o seu comportamento é ajustado por dois campos.
Cadastrando
- No menu superior, clique na Engrenagem.
- Clique em Validações personalizadas.
- Escolha Venda.
- Clique em Incluir.
- Na galeria, selecione o modelo Cliente inadimplente.
- Ajuste os campos abaixo e clique em Salvar.
Campos
Além dos campos comuns a toda validação, este validador tem dois campos próprios:
- Valor mínimo de dívida para bloqueio: o valor a partir do qual a venda é barrada. Enquanto o total em aberto do cliente não ultrapassar esse valor, a venda passa. Deixe
0para barrar qualquer valor em atraso. - Dias de tolerância após o vencimento: o período de carência depois do vencimento. Só entram na conta os títulos vencidos há mais dias do que o informado aqui. Com
0, o título conta já no dia seguinte ao vencimento.
Exemplo: com valor mínimo de R$ 100,00 e tolerância de 5 dias, a venda é barrada apenas quando o cliente acumula mais de R$ 100,00 em títulos vencidos há mais de 5 dias.
Barrar só quando o pagamento for Boleto
Dá para restringir a inadimplência a um meio de pagamento específico, deixando passar dinheiro, PIX ou cartão e barrando só quando houver Boleto. Combine este validador com um critério de execução por fórmula:
- No campo Execução, escolha critério específico, selecione o atributo Destinatário e alterne o modo de valor de atributo para fórmula. Cole o JSON abaixo, substituindo
ID_DO_BOLETOpelo ID real do meio de pagamento Boleto da licença (visível na URL em Engrenagem → Meios de pagamento):
{
"if": [
{
"some": [
{ "values_of": ["invoice.invoice_bills", "paymenttype_id"] },
{ "==": [{ "var": ".paymenttype_id" }, ID_DO_BOLETO] }
]
},
{ "attr": "invoice.recipient_id" },
0
]
}
Se a licença tiver mais de um cadastro de Boleto (ex.: "Boleto à vista" e "Boleto 30 dias"), substitua o == por in com a lista de IDs:
{ "in": [{ "var": ".paymenttype_id" }, [ID1, ID2, ID3]] }
Como funciona: o some verifica se alguma parcela da venda tem o meio de pagamento Boleto. Se sim, o if devolve o próprio recipient_id da venda — a comparação vira recipient_id == recipient_id, que é verdadeiro, e a validação de inadimplência roda. Se não houver parcela em Boleto, o if devolve 0, a comparação falha e a validação é ignorada.
Barrar a emissão de nota para cliente inadimplente
Dá para bloquear a emissão de nota fiscal de clientes inadimplentes configurando a validação para rodar quando a venda entrar na etapa imediatamente anterior à emissão. Como as validações personalizadas rodam no momento da gravação da venda e a autorização da NF-e acontece depois, o bloqueio impede que a venda avance no quadro antes de a nota ser gerada.
Para isso, use o campo Execução com um critério específico baseado na etapa do quadro.
Bloquear diretamente no momento de autorizar não é possível porque as validações personalizadas só rodam na gravação da venda, e a autorização da NF-e é uma ação separada, posterior à gravação.
Perguntas e respostas
1 - Quero que alguém do financeiro consiga liberar a venda mesmo assim. É possível? R: Sim. No campo Execução, monte um critério que pule a validação para os usuários autorizados. Veja o exemplo em Validações personalizadas.