From b8a404e68393aa8442051044a8de91522bbf3024 Mon Sep 17 00:00:00 2001 From: EspenTinius Date: Thu, 19 Feb 2026 22:18:17 +0100 Subject: [PATCH] SaleClaculator methods --- .../idatt2003/g40/mappe/SaleCalculator.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/SaleCalculator.java b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/SaleCalculator.java index b45faa3..b9736fd 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/SaleCalculator.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/SaleCalculator.java @@ -16,4 +16,33 @@ public SaleCalculator(Share share) { this.salesPrice = share.getStock().getSalesPrice(); this.quantity = share.getQuantity(); } + + @Override + public BigDecimal calculateGross() { + return salesPrice.multiply(quantity); + } + + @Override + public BigDecimal calculateCommission() { + return calculateGross().multiply(COMMISSION_RATE); + } + + @Override + public BigDecimal calculateTax() { + BigDecimal purchaseCost = purchasePrice.multiply(quantity); + BigDecimal profit = calculateGross() + .subtract(calculateCommission()) + .subtract(purchaseCost); + + return profit.signum() > 0 + ? profit.multiply(TAX_RATE) + : BigDecimal.ZERO; + } + + @Override + public BigDecimal calculateTotal() { + return calculateGross() + .subtract(calculateCommission()) + .subtract(calculateTax()); + } } \ No newline at end of file