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()); + } }