From cac776a287260d38e7466913c2afd3318bc43d73 Mon Sep 17 00:00:00 2001 From: Nikollai Date: Wed, 4 Mar 2026 12:22:34 +0100 Subject: [PATCH] Filled out remaining functionality in SaleCalculator --- .../calculators/SaleCalculator.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/temppackage/calculators/SaleCalculator.java b/src/main/java/temppackage/calculators/SaleCalculator.java index 7a29444..af66c97 100644 --- a/src/main/java/temppackage/calculators/SaleCalculator.java +++ b/src/main/java/temppackage/calculators/SaleCalculator.java @@ -1,9 +1,11 @@ package temppackage.calculators; import java.math.BigDecimal; +import java.math.RoundingMode; + import temppackage.Share; -public class SaleCalculator { +public class SaleCalculator implements TransactionCalculator{ BigDecimal purchasePrice; BigDecimal salesPrice; BigDecimal quantity; @@ -11,4 +13,25 @@ public SaleCalculator(Share share) { super(); this.purchasePrice = share.getPurchasePrice(); } + @Override + public BigDecimal calculateGross() { + return salesPrice.multiply(quantity); + } + + @Override + public BigDecimal calculateComission() { + return this.calculateGross().divide(new BigDecimal("100"), RoundingMode.HALF_UP); + } + + @Override + public BigDecimal calculateTax() { + BigDecimal purchaseCosts = this.purchasePrice.multiply(this.quantity); + BigDecimal earnings = this.calculateGross().subtract(this.calculateComission()).subtract(purchaseCosts); + return earnings.multiply(new BigDecimal("30")).divide(new BigDecimal("100"), RoundingMode.HALF_UP); + } + + @Override + public BigDecimal calculateTotal() { + return this.calculateGross().subtract(this.calculateComission()).subtract(this.calculateTax()); + } }