aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--Week16 Webshop/src/com/camilstaps/webshop/Cart.java16
-rw-r--r--Week16 Webshop/src/com/camilstaps/webshop/Week16Webshop.java13
-rw-r--r--Week16 Webshop/src/com/camilstaps/webshop/payment/IDeal.java29
4 files changed, 54 insertions, 7 deletions
diff --git a/.gitignore b/.gitignore
index 5698a42..4c9a80d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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;
}