diff --git a/prototype/src/main/java/org/hso/ecommerce/components/AdminInitializer.java b/prototype/src/main/java/org/hso/ecommerce/components/AdminInitializer.java index 4c51129..1bcb330 100644 --- a/prototype/src/main/java/org/hso/ecommerce/components/AdminInitializer.java +++ b/prototype/src/main/java/org/hso/ecommerce/components/AdminInitializer.java @@ -1,6 +1,5 @@ package org.hso.ecommerce.components; -import org.hso.ecommerce.entities.booking.PaymentMethod; import org.hso.ecommerce.entities.shop.Address; import org.hso.ecommerce.entities.user.User; import org.hso.ecommerce.repos.user.UserRepository; @@ -26,8 +25,7 @@ public class AdminInitializer { firstAdmin.created = new Timestamp(System.currentTimeMillis()); firstAdmin.defaultDeliveryAddress = new Address(); firstAdmin.defaultDeliveryAddress.name = "admin"; - firstAdmin.defaultPayment = new PaymentMethod(); - firstAdmin.defaultPayment.creditCardNumber = ""; //set empty number + firstAdmin.defaultPayment = null; firstAdmin.email = "admin"; firstAdmin.isActive = true; firstAdmin.isEmployee = true; diff --git a/prototype/src/main/java/org/hso/ecommerce/controller/RegisterController.java b/prototype/src/main/java/org/hso/ecommerce/controller/RegisterController.java index 008cd0b..e9ac896 100644 --- a/prototype/src/main/java/org/hso/ecommerce/controller/RegisterController.java +++ b/prototype/src/main/java/org/hso/ecommerce/controller/RegisterController.java @@ -1,6 +1,5 @@ package org.hso.ecommerce.controller; -import org.hso.ecommerce.entities.booking.PaymentMethod; import org.hso.ecommerce.entities.shop.Address; import org.hso.ecommerce.entities.user.User; import org.hso.ecommerce.repos.user.UserRepository; @@ -47,7 +46,7 @@ public class RegisterController { newUser.email = username; newUser.isEmployee = false; newUser.salutation = salutation; - newUser.defaultPayment = PaymentMethod.fromCreditCardNumber(""); + newUser.defaultPayment = null; newUser.isActive = true; newUser.created = new java.sql.Timestamp(System.currentTimeMillis()); diff --git a/prototype/src/main/java/org/hso/ecommerce/controller/shop/ShopCheckoutController.java b/prototype/src/main/java/org/hso/ecommerce/controller/shop/ShopCheckoutController.java index 981e4b7..f90b1ac 100644 --- a/prototype/src/main/java/org/hso/ecommerce/controller/shop/ShopCheckoutController.java +++ b/prototype/src/main/java/org/hso/ecommerce/controller/shop/ShopCheckoutController.java @@ -140,6 +140,11 @@ public class ShopCheckoutController { bookingRepository.saveAll(result.bookings); warehouseBookingRepository.save(result.warehouseBooking); + if (user.defaultPayment == null) { + user.defaultPayment = PaymentMethod.fromCreditCardNumber(cardnumber); + userRepository.save(user); + } + shoppingCart.clear(); } catch (CreateOrderAction.ArticleNotInStockException e) { diff --git a/prototype/src/main/resources/templates/shop/checkout.html b/prototype/src/main/resources/templates/shop/checkout.html index a627549..b5aea23 100644 --- a/prototype/src/main/resources/templates/shop/checkout.html +++ b/prototype/src/main/resources/templates/shop/checkout.html @@ -97,6 +97,12 @@ Musterstraße 4 th:value="${user.defaultPayment != null ? user.defaultPayment.creditCardNumber : ''}" pattern="[0-9]{6,16}" required/> + <p th:if="${user.defaultPayment == null}" class="secondary card"> + Da dies Ihre erste Bestellung ist, wird die Kreditkarte als Standartzahlungsmittel hinterlegt. + Sie kann unter den Nutzereinstellungen gelöscht oder geändert werden. + </p> + <small th:if="${user.defaultPayment != null}" class="no-padding">Die Standardkreditkarte kann unter + den <a href="/user/settings">Nutzereinstellungen</a> gelöscht oder geändert werden.</small> </fieldset> </div> <div> diff --git a/prototype/src/main/resources/templates/user/settings.html b/prototype/src/main/resources/templates/user/settings.html index 167863f..bab3ff8 100644 --- a/prototype/src/main/resources/templates/user/settings.html +++ b/prototype/src/main/resources/templates/user/settings.html @@ -21,7 +21,7 @@ <main class="sidebar-layout content-width"> <nav th:replace="fragments/customer :: sidebar"></nav> <div class="content-width"> - <form method="POST" th:action="@{/user/settings/changeMail}"> + <form class="detailflex" method="POST" th:action="@{/user/settings/changeMail}"> <div> <h2> Login Daten </h2> </div>