/
digit
/
java-oop-polymorphism-accounting
Обзор
Документация
Войти
/
digit
/
java-oop-polymorphism-accounting
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
taxation/ProgressiveTaxType.java
21 строка
912 B
digit
Create: Main.java, Bill.java, TaxService.java, TaxType.java, IncomeTaxType.java, VATaxType.java, ProgressiveTaxType.java
07 июл 2026, 20:16
Верифицирован
07 июл 2026, 20:16
311e298
Код
Авторство
О чём код?
package taxation; import java.math.BigDecimal; public class ProgressiveTaxType extends TaxType { private static final BigDecimal TAX_RATE = new BigDecimal("0.13"); private static final BigDecimal EXTRA_RATE = new BigDecimal("0.15"); private static final BigDecimal THRESHOLD = new BigDecimal(2_400_000); @Override public BigDecimal calculateTaxFor(BigDecimal amount) { if (amount.compareTo(BigDecimal.ZERO) < 0) return BigDecimal.ZERO; // amount < 0 // прогрессивный налог — 13% до 2,4 млн и 15% с превышения этой суммы BigDecimal tax = amount.multiply(TAX_RATE); // amount * 0.13 if (amount.compareTo(THRESHOLD) > 0) { // amount > 2_400_000 tax = tax.add(amount.subtract(THRESHOLD).multiply(EXTRA_RATE)); // + (amount - 2_400_000) * 0.15 } return tax; } }