Calculadora comercial
Fidelidade, preço progressivo e PIX no mesmo pedido. Qual dá mais economia?
3 regras, 1 vencedorem produção numa VPS com Docker e Nginx
A história
No mesmo pedido, três regras podem valer: fidelidade pelo valor do pedido, preço progressivo pela quantidade de cada item e desconto no PIX. Elas vivem em níveis diferentes e não podem ser somadas.
Separei o motor de preços da interface. Ele calcula o cenário normal e o do PIX de forma independente, compara os dois e aplica só o que economiza mais. Tudo em centavos, e o total sempre fecha.

Cada unidade recebe um desconto só. E o PIX só entra quando economiza estritamente mais.
É o motor do repositório público, rodando aqui com o catálogo sintético. Mude o pedido e veja qual regra cada item recebe.
Normal
PIX
Por dentrorestrições, passos e detalhes
As regras
- A fidelidade depende do valor bruto do pedido; o progressivo, da quantidade de cada referência.
- Para cada referência, o motor compara os benefícios possíveis e aplica um só.
- O PIX é arredondado sobre o total elegível, não linha por linha. Senão, os centavos não fecham.
- Em todo cenário: bruto − economia = final.
Como o motor decide
- Validar valor e quantidades, em centavos.
- Achar a faixa de fidelidade pelo valor bruto.
- Aplicar o progressivo por referência e quantidade.
- Calcular o cenário PIX à parte.
- A maior economia vence; no empate, fica o normal.
- Conferir bruto − economia = final.
Regras num arquivo, cálculo em outro, interface num terceiro: a regra de negócio é testada sozinha, sem navegador. A interface foi testada em 1440, 390 e 320 px, nos dois temas. Não há backend: o pedido fica só na memória do navegador.