Faixa 03 · Em produção · JavaScript, testado com Playwright

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.

A calculadora pública: valor bruto, pagamento via PIX e as quantidades por referência.
A calculadora pública, com catálogo sintético.

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

      1. Validar valor e quantidades, em centavos.
      2. Achar a faixa de fidelidade pelo valor bruto.
      3. Aplicar o progressivo por referência e quantidade.
      4. Calcular o cenário PIX à parte.
      5. A maior economia vence; no empate, fica o normal.
      6. 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.