| 1 package com.dotmarketing.cms.product.action; 2 3 import java.net.URLDecoder ; 4 import java.util.List ; 5 6 import javax.servlet.http.HttpServletRequest ; 7 import javax.servlet.http.HttpServletResponse ; 8 import javax.servlet.http.HttpSession ; 9 10 import org.apache.struts.action.ActionForm; 11 import org.apache.struts.action.ActionForward; 12 import org.apache.struts.action.ActionMapping; 13 import org.apache.struts.action.ActionMessage; 14 import org.apache.struts.action.ActionMessages; 15 import org.apache.struts.actions.DispatchAction; 16 17 import com.dotmarketing.cms.product.model.Holder; 18 import com.dotmarketing.cms.product.model.ShoppingCart; 19 import com.dotmarketing.portlets.discountcode.factories.DiscountCodeFactory; 20 import com.dotmarketing.portlets.discountcode.model.DiscountCode; 21 import com.dotmarketing.util.UtilMethods; 22 import com.dotmarketing.util.WebKeys; 23 24 public class AddToCartAction extends DispatchAction 25 { 26 public ActionForward unspecified(ActionMapping mapping, ActionForm lf, 27 HttpServletRequest request, HttpServletResponse response) 28 throws Exception { 29 30 HttpSession session = request.getSession(); 31 ShoppingCart shoppingCart = _getShopingCart(request); 32 long formatInode = Long.parseLong(request.getParameter(WebKeys.SHOPPING_CART_FORMAT_INODE)); 33 int quantity = Integer.parseInt(request.getParameter(WebKeys.SHOPPING_CART_FORMAT_QUANTITY)); 34 shoppingCart.addItem(quantity,formatInode); 35 36 String referrer = request.getParameter("referrer"); 37 referrer = URLDecoder.decode(referrer,"UTF-8"); 38 39 ActionMessages messages = new ActionMessages(); 40 messages.add("message" ,new ActionMessage ("message.shoppingcart.added")); 41 saveMessages(session, messages); 42 ActionForward af = new ActionForward(referrer); 43 af.setRedirect(true); 44 return af; 45 } 46 47 public ActionForward remove(ActionMapping mapping, ActionForm lf, 48 HttpServletRequest request, HttpServletResponse response) 49 throws Exception { 50 51 ShoppingCart shoppingCart = _getShopingCart(request); 52 long formatInode = Long.parseLong(request.getParameter("inode")); 53 shoppingCart.removeItem(formatInode); 54 55 ActionForward af = mapping.findForward("viewCart"); 56 return af; 57 } 58 59 public ActionForward addDiscount(ActionMapping mapping, ActionForm lf, 60 HttpServletRequest request, HttpServletResponse response) 61 throws Exception { 62 63 ShoppingCart shoppingCart = _getShopingCart(request); 64 String discountString = request.getParameter("discount"); 65 String [] discounts = discountString.split(":"); 66 67 for(String discount : discounts) 68 { 69 discount = discount.trim(); 70 DiscountCode discountCode = DiscountCodeFactory.getDiscountCodeById(discount); 71 if(discountCode.getInode() != 0) 72 { 73 shoppingCart.deleteDiscountCode(discount); 74 shoppingCart.addDiscount(discountCode); 75 } 76 } 77 78 ActionForward af = mapping.findForward("viewCart"); 79 return af; 80 } 81 82 public ActionForward removeDiscount(ActionMapping mapping, ActionForm lf, 83 HttpServletRequest request, HttpServletResponse response) 84 throws Exception { 85 86 ShoppingCart shoppingCart = _getShopingCart(request); 87 String discountString = request.getParameter("inode"); 88 89 shoppingCart.deleteDiscountCode(discountString); 90 91 ActionForward af = mapping.findForward("viewCart"); 92 return af; 93 } 94 95 public ActionForward update(ActionMapping mapping, ActionForm lf, 96 HttpServletRequest request, HttpServletResponse response) 97 throws Exception { 98 99 ShoppingCart shoppingCart = _getShopingCart(request); 100 List <Holder> holders = shoppingCart.getHolders(); 101 for(Holder holder : holders) 102 { 103 long formatInode = holder.getFormat().getInode(); 104 String quantityString = request.getParameter(Long.toString(formatInode)); 105 if(UtilMethods.isInt(quantityString)) 106 { 107 int quantity = Integer.parseInt(quantityString); 108 holder.setQuantity(quantity); 109 } 110 } 111 ActionForward af = mapping.findForward("viewCart"); 112 return af; 113 } 114 115 116 117 private ShoppingCart _getShopingCart(HttpServletRequest request) 118 { 119 HttpSession session = request.getSession(); 120 ShoppingCart shoppingCart = (ShoppingCart) session.getAttribute(WebKeys.SHOPPING_CART); 121 if (shoppingCart == null) 122 { 123 shoppingCart = new ShoppingCart(); 124 session.setAttribute(WebKeys.SHOPPING_CART,shoppingCart); 125 } 126 return shoppingCart; 127 } 128 } 129 | Popular Tags |