else if (action.equalsIgnoreCase(ACTION_INITCHECKOUT))
{
logger.debug("ShoppingController:performTask:initCheckout");
String url;
HttpSession session = req.getSession(true);
CustomerInfo customerInfo = (CustomerInfo) session.getAttribute(Util.ATTR_CUSTOMER);
if (customerInfo == null)
{
req.setAttribute(Util.ATTR_RESULTS, "You must login or register before checking out.");
session.setAttribute(Util.ATTR_CHECKOUT, new Boolean(true));
url = LOGIN;
}
else
{
url = ORDERINFO;
}
//requestDispatch(getServletConfig().getServletContext(), req, resp, url);
view=url;
}
else if (action.equalsIgnoreCase(ACTION_ORDERINFODONE)) {
logger.debug("ShoppingController:performTask:orderinfodone");
OrderInfo orderinfo = null;
ShoppingCart shoppingCart = null;
HttpSession session = req.getSession(true);
CustomerInfo customerInfo = (CustomerInfo) session.getAttribute(Util.ATTR_CUSTOMER);
String customerID = customerInfo.getCustomerID();
shoppingCart = (ShoppingCart) session.getAttribute(Util.ATTR_CART);
// Make sure ShopingCart reference has not timed out.
try
{
logger.debug("orderinfodone: ShoppingCart timeout? check getItems() method");
shoppingCart.getItems();
}catch (RuntimeException e)
{
// ShoppingCart timed out, so create a new one.
logger.debug("orderinfodone: ShoppingCart ref must have timed out");
ShoppingCartContents cartContents = (ShoppingCartContents) session.getAttribute(Util.ATTR_CART_CONTENTS);
if (cartContents != null)
{
shoppingCart = (ShoppingCart)WebUtil.getSpringBean(session.getServletContext(), "shopping");
shoppingCart.setCartContents(cartContents);
}
else
{
logger.debug("NoSuchObject Exception!!!");
logger.debug("Major Problem!!!");
shoppingCart = null;
}
}
logger.debug("orderinfodone: got cart?");
if (shoppingCart != null)
{
logger.debug("orderinfodone: cart not NULL");
String billName = req.getParameter("bname");
String billAddr1 = req.getParameter("baddr1");
String billAddr2 = req.getParameter("baddr2");
String billCity = req.getParameter("bcity");
String billState = req.getParameter("bstate");
String billZip = req.getParameter("bzip");
String billPhone = req.getParameter("bphone");
String shipName = req.getParameter("sname");
String shipAddr1 = req.getParameter("saddr1");
String shipAddr2 = req.getParameter("saddr2");
String shipCity = req.getParameter("scity");
String shipState = req.getParameter("sstate");
String shipZip = req.getParameter("szip");
String shipPhone = req.getParameter("sphone");
int shippingMethod = Integer.parseInt(req.getParameter("shippingMethod"));
String creditCard = req.getParameter("ccardname");
String ccNum = req.getParameter("ccardnum");
String ccExpireMonth = req.getParameter("ccexpiresmonth");
String ccExpireYear = req.getParameter("ccexpiresyear");
String cardHolder = req.getParameter("ccholdername");
orderinfo = shoppingCart.createOrder(customerID, billName, billAddr1, billAddr2, billCity, billState, billZip, billPhone, shipName, shipAddr1, shipAddr2, shipCity, shipState, shipZip, shipPhone, creditCard, ccNum, ccExpireMonth, ccExpireYear, cardHolder, shippingMethod, shoppingCart.getItems());
logger.debug("orderinfodone: order created");
}
if (orderinfo != null)
{
req.setAttribute(Util.ATTR_ORDERINFO, orderinfo);
req.setAttribute(Util.ATTR_CARTITEMS, shoppingCart.getItems());
session.setAttribute(Util.ATTR_ORDERKEY, orderinfo.getID());
// requestDispatch(getServletConfig().getServletContext(), req, resp, Util.PAGE_CHECKOUTFINAL);
view=CHECKOUTFINAL;
}
}
else if (action.equalsIgnoreCase(ACTION_COMPLETECHECKOUT))
{
ShoppingCart shoppingCart = null;
HttpSession session = req.getSession(true);
long key = (Long) session.getAttribute(Util.ATTR_ORDERKEY);
req.setAttribute(Util.ATTR_ORDERID, key);
long orderKey = key;
logger.debug("completecheckout: order id ="+orderKey );
CustomerInfo customerInfo = (CustomerInfo) session.getAttribute(Util.ATTR_CUSTOMER);
// Check the available inventory and backorder if necessary.
shoppingCart = (ShoppingCart) session.getAttribute(Util.ATTR_CART);
// Make sure ShopingCart reference has not timed out.
try {
logger.debug("completecheckout: ShoppingCart timeout? check getItems() method");
shoppingCart.getItems();
} catch (RuntimeException e) {
// ShoppingCart timed out, so create a new one.
logger.debug("completecheckout: ShoppingCart ref must have timed out");
ShoppingCartContents cartContents = (ShoppingCartContents) session
.getAttribute(Util.ATTR_CART_CONTENTS);
if (cartContents != null) {
shoppingCart = (ShoppingCart) WebUtil.getSpringBean(
session.getServletContext(), "shopping");
shoppingCart.setCartContents(cartContents);
} else {
logger.debug("NoSuchObject Exception!!!");
logger.debug("Major Problem!!!");
shoppingCart = null;
}
}
if (shoppingCart != null) {
ShoppingCartItem si;
Collection items = shoppingCart.getItems();
for (Object o : items) {
si = (ShoppingCartItem) o;
shoppingCart.checkInventory(si);
logger.debug("ShoppingCart.checkInventory() - checking Inventory quantity of item: "
+ si.getID());
}
}
try {
PaymentInfoPublisher pInfoPublisher = (PaymentInfoPublisher) Util
.getSpringBean("paymentInfoPublisher");
pInfoPublisher
.publishMessage("Order placed successfully for Customer : "
+ customerInfo.getCustomerID()
+ " with Order ID : " + orderKey);
} catch (Exception e) {
System.out
.println("Exception during Posting message to RabbitMQ :"
+ e);