From 21e0785c8308be5acba75738f4379115c3c32b5d Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Thu, 11 Jun 2015 10:14:43 +0200 Subject: Working on w16 --- .../src/com/camilstaps/webshop/Cart.java | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Week16 Webshop/src/com/camilstaps/webshop/Cart.java (limited to 'Week16 Webshop/src/com/camilstaps/webshop/Cart.java') diff --git a/Week16 Webshop/src/com/camilstaps/webshop/Cart.java b/Week16 Webshop/src/com/camilstaps/webshop/Cart.java new file mode 100644 index 0000000..fd78bd3 --- /dev/null +++ b/Week16 Webshop/src/com/camilstaps/webshop/Cart.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2015 Camil Staps + */ +package com.camilstaps.webshop; + +import com.camilstaps.webshop.article.Article; +import com.camilstaps.webshop.payment.IDeal; +import com.camilstaps.webshop.payment.PaymentMethod; +import java.util.ArrayList; +import java.util.List; + +/** + * + * @author camilstaps + */ +public class Cart extends ArrayList
{ + + private PaymentMethod paymentMethod; + + public double getSubtotal() { + double total = 0; + for (Article a : this) { + total += a.getPrice(); + } + return total; + } + + public double getShippingCosts() { + List seenCosts = new ArrayList<>(); + double total = 0; + for (Article a : this) { + if (!seenCosts.contains(a.getShippingCosts())) { + seenCosts.add(a.getShippingCosts()); + total += a.getShippingCosts(); + } + } + return total; + } + + public double getTotal() { + return getSubtotal() + getShippingCosts(); + } + + public boolean pay() { + if (paymentMethod == null) { + paymentMethod = new IDeal("ASN", "740249240", "2940"); + } + return paymentMethod.pay(getTotal()); + } + +} -- cgit v1.2.3