diff --git a/.gitignore b/.gitignore index 8b054a0..d6c53af 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .idea/vcs.xml .idea/workspace.xml +.idea/misc.xml out diff --git a/src/checkout/AnyGoodsOffer.java b/src/checkout/AnyGoodsOffer.java index 8b11348..345995d 100644 --- a/src/checkout/AnyGoodsOffer.java +++ b/src/checkout/AnyGoodsOffer.java @@ -11,6 +11,7 @@ public AnyGoodsOffer(int totalCost, int points) { @Override public void apply(Check check) { - + if (this.totalCost <= check.getTotalCost()) + check.addPoints(this.points); } } diff --git a/src/checkout/CheckoutService.java b/src/checkout/CheckoutService.java index 3ac7cbb..72e9a53 100644 --- a/src/checkout/CheckoutService.java +++ b/src/checkout/CheckoutService.java @@ -23,16 +23,5 @@ public Check closeCheck() { public void useOffer(Offer offer) { offer.apply(check); - if (offer instanceof FactorByCategoryOffer) { - FactorByCategoryOffer fbOffer = (FactorByCategoryOffer) offer; - int points = check.getCostByCategory(fbOffer.category); - check.addPoints(points * (fbOffer.factor - 1)); - } else { - if (offer instanceof AnyGoodsOffer) { - AnyGoodsOffer agOffer = (AnyGoodsOffer) offer; - if (agOffer.totalCost <= check.getTotalCost()) - check.addPoints(agOffer.points); - } - } } } diff --git a/src/checkout/FactorByCategoryOffer.java b/src/checkout/FactorByCategoryOffer.java index fee57f0..0f90070 100644 --- a/src/checkout/FactorByCategoryOffer.java +++ b/src/checkout/FactorByCategoryOffer.java @@ -11,6 +11,7 @@ public FactorByCategoryOffer(Category category, int factor) { @Override public void apply(Check check) { - + int points = check.getCostByCategory(this.category); + check.addPoints(points * (this.factor - 1)); } }