diff options
| -rw-r--r-- | .gitignore | 3 | ||||
| -rw-r--r-- | Week16 Webshop/src/com/camilstaps/webshop/Cart.java | 16 | ||||
| -rw-r--r-- | Week16 Webshop/src/com/camilstaps/webshop/Week16Webshop.java | 13 | ||||
| -rw-r--r-- | Week16 Webshop/src/com/camilstaps/webshop/payment/IDeal.java | 29 | 
4 files changed, 54 insertions, 7 deletions
| @@ -19,4 +19,5 @@  /Week15 Mandelbrot/build/  /Week16 Ice Cream/nbproject/private/  /Week16 Ice Cream/build/ -/Week16 Webshop/nbproject/private/
\ No newline at end of file +/Week16 Webshop/nbproject/private/ +/Week16 Webshop/build/
\ No newline at end of file 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;      } | 
