diff options
Diffstat (limited to 'Week16 Webshop/src/com/camilstaps/webshop')
3 files changed, 52 insertions, 6 deletions
diff --git a/Week16 Webshop/src/com/camilstaps/webshop/Cart.java b/Week16 Webshop/src/com/camilstaps/webshop/Cart.java index fd78bd3..a5bed86 100644 --- a/Week16 Webshop/src/com/camilstaps/webshop/Cart.java +++ b/Week16 Webshop/src/com/camilstaps/webshop/Cart.java @@ -15,7 +15,7 @@ import java.util.List; */ public class Cart extends ArrayList<Article> { - private PaymentMethod paymentMethod; + private PaymentMethod paymentMethod = new IDeal(); public double getSubtotal() { double total = 0; @@ -40,12 +40,20 @@ public class Cart extends ArrayList<Article> { public double getTotal() { return getSubtotal() + getShippingCosts(); } + + public void setPaymentMethod(PaymentMethod paymentMethod) { + this.paymentMethod = paymentMethod; + } public boolean pay() { - if (paymentMethod == null) { - paymentMethod = new IDeal("ASN", "740249240", "2940"); + System.out.println("Subtotal : " + getSubtotal()); + System.out.println("Shipping : " + getShippingCosts()); + System.out.println("TOTAL : " + getTotal()); + if (paymentMethod.pay(getTotal())) { + clear(); + return true; } - return paymentMethod.pay(getTotal()); + return false; } } diff --git a/Week16 Webshop/src/com/camilstaps/webshop/Week16Webshop.java b/Week16 Webshop/src/com/camilstaps/webshop/Week16Webshop.java index ec2f6e5..6772ada 100644 --- a/Week16 Webshop/src/com/camilstaps/webshop/Week16Webshop.java +++ b/Week16 Webshop/src/com/camilstaps/webshop/Week16Webshop.java @@ -3,6 +3,11 @@ */ package com.camilstaps.webshop; +import com.camilstaps.webshop.article.WashingMachine; +import com.camilstaps.webshop.article.WaterMelon; +import com.camilstaps.webshop.article.WineGlass; +import com.camilstaps.webshop.payment.PayPal; + /** * * @author camilstaps @@ -13,7 +18,13 @@ public class Week16Webshop { * @param args the command line arguments */ public static void main(String[] args) { - // TODO code application logic here + Cart cart = new Cart(); + cart.add(new WaterMelon()); + cart.add(new WaterMelon()); + cart.add(new WineGlass()); + cart.add(new WashingMachine()); + cart.setPaymentMethod(new PayPal("info@camilstaps.nl", "secret")); + cart.pay(); } } diff --git a/Week16 Webshop/src/com/camilstaps/webshop/payment/IDeal.java b/Week16 Webshop/src/com/camilstaps/webshop/payment/IDeal.java index 0ed9454..43c95bf 100644 --- a/Week16 Webshop/src/com/camilstaps/webshop/payment/IDeal.java +++ b/Week16 Webshop/src/com/camilstaps/webshop/payment/IDeal.java @@ -3,22 +3,49 @@ */ package com.camilstaps.webshop.payment; +import java.util.Scanner; + /** * * @author camilstaps */ public class IDeal implements PaymentMethod { - private final String bank, accountNr, pincode; + private String bank, accountNr, pincode; + private Scanner sc = new Scanner(System.in); + + public IDeal() { + } public IDeal(String bank, String accountNr, String pincode) { this.bank = bank; this.accountNr = accountNr; this.pincode = pincode; } + + private void ensureBank() { + if (bank != null) return; + System.out.print("Bank: "); + bank = sc.nextLine(); + } + + private void ensureAccountNr() { + if (accountNr != null) return; + System.out.print("Account nr: "); + accountNr = sc.nextLine(); + } + + private void ensurePincode() { + if (pincode != null) return; + System.out.print("Pincode: "); + pincode = sc.nextLine(); + } @Override public boolean pay(double amount) { + ensureBank(); + ensureAccountNr(); + ensurePincode(); System.out.println("€" + amount + " paid with iDeal: \n" + bank + " : " + accountNr + " (" + pincode + ")"); return true; } |