]> git.mxchange.org Git - pizzaservice-war.git/blobdiff - src/java/org/mxchange/pizzaapplication/beans/checkout/CheckoutWebBean.java
Continued:
[pizzaservice-war.git] / src / java / org / mxchange / pizzaapplication / beans / checkout / CheckoutWebBean.java
index 21d2738f165c05ca83c9a5d6b598b007b280a9ea..726fabedd100c2a57833285bf94f21b86dbbfd83 100644 (file)
@@ -33,14 +33,13 @@ import javax.jms.Session;
 import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
-import org.mxchange.jcore.model.contact.gender.Gender;
-import org.mxchange.jcoreee.beans.BaseFrameworkBean;
 import org.mxchange.jshopcore.model.basket.AddableBasketItem;
 import org.mxchange.jshopcore.model.customer.Customer;
-import org.mxchange.jshopcore.model.customer.ShopCustomer;
 import org.mxchange.jshopcore.wrapper.CheckoutWrapper;
 import org.mxchange.jshopcore.wrapper.WrapableCheckout;
 import org.mxchange.pizzaapplication.beans.basket.BasketWebController;
+import org.mxchange.pizzaapplication.beans.customer.CustomerWebController;
+import org.mxchange.pizzaapplication.beans.receipt.ReceiptWebController;
 
 /**
  * Checkout controller
@@ -49,7 +48,7 @@ import org.mxchange.pizzaapplication.beans.basket.BasketWebController;
  */
 @Named ("checkoutController")
 @SessionScoped
-public class CheckoutWebBean extends BaseFrameworkBean implements CheckoutWebController {
+public class CheckoutWebBean implements CheckoutWebController {
 
        /**
         * Serial number
@@ -81,6 +80,11 @@ public class CheckoutWebBean extends BaseFrameworkBean implements CheckoutWebCon
         */
        private ObjectMessage message;
 
+       /**
+        * Customer instance
+        */
+       private Customer customer;
+
        ////////////////////// Bean injections ///////////////////////
        /**
         * Basket bean
@@ -88,88 +92,62 @@ public class CheckoutWebBean extends BaseFrameworkBean implements CheckoutWebCon
        @Inject
        private BasketWebController basketController;
 
-       /////////////////////// Properties /////////////////////
-       /**
-        * Gender
-        */
-       private Gender gender;
-
-       /**
-        * First name
-        */
-       private String firstName;
-
-       /**
-        * Family name
-        */
-       private String familyName;
-
-       /**
-        * Company name
-        */
-       private String companyName;
-
-       /**
-        * Street
-        */
-       private String street;
-
-       /**
-        * House number
-        */
-       private Long houseNumber;
-
        /**
-        * ZIP code
+        * Customer bean
         */
-       private Long zipCode;
-
-       /**
-        * City
-        */
-       private String city;
-
-       /**
-        * Phone number
-        */
-       private String phoneNumber;
-
-       /**
-        * Fax number
-        */
-       private String faxNumber;
+       @Inject
+       private CustomerWebController customerController;
 
        /**
-        * Cellphone number
+        * Receipt bean
         */
-       private String cellphoneNumber;
+       @Inject
+       private ReceiptWebController receiptController;
 
        @Override
        public String doCheckout () {
-               // Is the bean set?
-               if (this.basketController != null) {
+               // Trace message
+               //this.getLogger().logTrace("doCheckout: CALLED!");
+
+               // Are the beans set?
+               if (null == this.basketController) {
+                       // Abort here
+                       throw new NullPointerException("basketController is null"); //NOI18N
+               } else if (null == this.customerController) {
                        // Abort here
-                       throw new NullPointerException("basketController is null");
+                       throw new NullPointerException("customer is null"); //NOI18N
                }
 
                // Are at least the required fields set?
-               if (!this.isRequiredPersonalDataSet()) {
+               if (!this.customerController.isRequiredPersonalDataSet()) {
+                       // Trace message
+                       //this.getLogger().logTrace("doCheckout: Not all required fields are set, returning checkout2 ... - EXIT!");
+
                        // Not set, should not happen
-                       return "checkout2";
+                       return "checkout2"; //NOI18N
                } else if (this.basketController.isEmpty()) {
+                       // Trace message
+                       //this.getLogger().logTrace("doCheckout: basket is empty, returning empty_basket ... - EXIT!");
+
                        // Nothing to order
-                       return "empty_basket";
+                       return "empty_basket"; //NOI18N
                }
 
                // Create customer instance
-               Customer customer = this.createCustomer();
+               this.setCustomer(this.customerController.createCustomerInstance());
+
+               // Debug message
+               //this.getLogger().logDebug(MessageFormat.format("doCheckout: customer={0}", this.getCustomer()));
 
                // Get ordered list
                List<AddableBasketItem> list = this.basketController.allItems();
 
+               // Debug message
+               //this.getLogger().logTrace(MessageFormat.format("doCheckout: list={0}", list));
+
                // Construct container
                WrapableCheckout wrapper = new CheckoutWrapper();
-               wrapper.setCustomer(customer);
+               wrapper.setCustomer(this.getCustomer());
                wrapper.setList(list);
 
                try {
@@ -181,131 +159,31 @@ public class CheckoutWebBean extends BaseFrameworkBean implements CheckoutWebCon
                } catch (final JMSException ex) {
                        // TODO: Log exception?
                        // Not working
-                       return "jms_failed";
+                       return "jms_failed"; //NOI18N
                }
 
                // Clear basket
                this.basketController.clear();
 
-               // All fine
-               return "checkout_done";
-       }
-
-       @Override
-       public String getCellphoneNumber () {
-               return this.cellphoneNumber;
-       }
-
-       @Override
-       public void setCellphoneNumber (final String cellphoneNumber) {
-               this.cellphoneNumber = cellphoneNumber;
-       }
-
-       @Override
-       public String getCity () {
-               return this.city;
-       }
-
-       @Override
-       public void setCity (final String city) {
-               this.city = city;
-       }
-
-       @Override
-       public String getCompanyName () {
-               return this.companyName;
-       }
+               // Set customer in receipt controller for verification
+               this.receiptController.setCustomer(this.getCustomer());
 
-       @Override
-       public void setCompanyName (final String companyName) {
-               this.companyName = companyName;
-       }
-
-       @Override
-       public String getFamilyName () {
-               return this.familyName;
-       }
-
-       @Override
-       public void setFamilyName (final String familyName) {
-               this.familyName = familyName;
-       }
-
-       @Override
-       public String getFaxNumber () {
-               return this.faxNumber;
-       }
-
-       @Override
-       public void setFaxNumber (final String faxNumber) {
-               this.faxNumber = faxNumber;
-       }
-
-       @Override
-       public String getFirstName () {
-               return this.firstName;
-       }
-
-       @Override
-       public void setFirstName (final String firstName) {
-               this.firstName = firstName;
-       }
-
-       @Override
-       public Gender getGender () {
-               return this.gender;
-       }
-
-       @Override
-       public void setGender (final Gender gender) {
-               this.gender = gender;
-       }
-
-       @Override
-       public Long getHouseNumber () {
-               return this.houseNumber;
-       }
-
-       @Override
-       public void setHouseNumber (final Long houseNumber) {
-               this.houseNumber = houseNumber;
-       }
-
-       @Override
-       public String getPhoneNumber () {
-               return this.phoneNumber;
-       }
-
-       @Override
-       public void setPhoneNumber (final String phoneNumber) {
-               this.phoneNumber = phoneNumber;
-       }
-
-       @Override
-       public String getStreet () {
-               return this.street;
-       }
-
-       @Override
-       public void setStreet (final String street) {
-               this.street = street;
+               // All fine
+               return "checkout_done"; //NOI18N
        }
 
        @Override
-       public Long getZipCode () {
-               return this.zipCode;
+       public Customer getCustomer () {
+               return this.customer;
        }
 
        @Override
-       public void setZipCode (final Long zipCode) {
-               this.zipCode = zipCode;
+       public void setCustomer (final Customer customer) {
+               this.customer = customer;
        }
 
        @PostConstruct
        public void init () {
-               // Call super init for getting resource bundle
-               super.genericInit();
-
                try {
                        // Get initial context
                        Context context = new InitialContext();
@@ -324,6 +202,9 @@ public class CheckoutWebBean extends BaseFrameworkBean implements CheckoutWebCon
 
                        // And message producer
                        this.messageProducer = session.createProducer(queue);
+
+                       // Finally the message instance itself
+                       this.message = this.session.createObjectMessage();
                } catch (final NamingException | JMSException e) {
                        // Continued to throw
                        throw new FacesException(e);
@@ -345,40 +226,4 @@ public class CheckoutWebBean extends BaseFrameworkBean implements CheckoutWebCon
                        throw new FacesException(ex);
                }
        }
-
-       /**
-        * Creates a full customer instance
-        *
-        * @return Customer instance
-        */
-       private Customer createCustomer () {
-               // Required personal data must be set
-               assert (this.isRequiredPersonalDataSet()) : "not all personal data is set";
-
-               // Create new customer instance
-               Customer customer = new ShopCustomer();
-               customer.setGender(this.getGender());
-               customer.setFirstName(this.getFirstName());
-               customer.setFamilyName(this.getFamilyName());
-               customer.setCompanyName(this.getCompanyName());
-               customer.setStreet(this.getStreet());
-               customer.setHouseNumber(this.getHouseNumber());
-               customer.setZipCode(this.getZipCode());
-               customer.setCity(this.getCity());
-               customer.setPhoneNumber(this.getPhoneNumber());
-               customer.setFaxNumber(this.getFaxNumber());
-               customer.setCellphoneNumber(this.getCellphoneNumber());
-
-               // Return it
-               return customer;
-       }
-
-       /**
-        * Checks if the required personal data is set
-        *
-        * @return Whether the required personal data is set
-        */
-       private boolean isRequiredPersonalDataSet () {
-               return ((this.getGender() != null) && (this.getFirstName() != null) && (this.getFamilyName() != null) && (this.getStreet() != null) && (this.getHouseNumber() != null) && (this.getZipCode() != null) && (this.getCity() != null));
-       }
 }