1 24 package org.ofbiz.order.shoppingcart.product; 25 26 import java.util.Map ; 27 28 import javax.servlet.http.HttpServletRequest ; 29 import javax.servlet.http.HttpServletResponse ; 30 import javax.servlet.http.HttpSession ; 31 32 import org.ofbiz.base.util.Debug; 33 import org.ofbiz.base.util.UtilHttp; 34 import org.ofbiz.entity.GenericDelegator; 35 import org.ofbiz.entity.GenericValue; 36 import org.ofbiz.order.shoppingcart.ShoppingCart; 37 import org.ofbiz.order.shoppingcart.ShoppingCartEvents; 38 import org.ofbiz.order.shoppingcart.WebShoppingCart; 39 import org.ofbiz.product.store.ProductStoreWorker; 40 41 48 public class ProductStoreCartAwareEvents { 49 50 public static final String module = ProductStoreCartAwareEvents.class.getName(); 51 52 public static String setSessionProductStore(HttpServletRequest request, HttpServletResponse response) { 53 Map parameters = UtilHttp.getParameterMap(request); 54 String productStoreId = (String ) parameters.get("productStoreId"); 55 56 try { 57 ProductStoreCartAwareEvents.setSessionProductStore(productStoreId, request); 58 } catch (Exception e) { 59 String errMsg = "Problem setting new store: " + e.toString(); 60 Debug.logError(e, errMsg, module); 61 request.setAttribute("_ERROR_MESSAGE_", errMsg); 62 return "error"; 63 } 64 65 return "success"; 66 } 67 68 public static void setSessionProductStore(String productStoreId, HttpServletRequest request) { 69 if (productStoreId == null) { 70 return; 71 } 72 73 HttpSession session = request.getSession(); 74 String oldProductStoreId = (String ) session.getAttribute("productStoreId"); 75 76 if (productStoreId.equals(oldProductStoreId)) { 77 return; 79 } 80 81 GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator"); 82 83 GenericValue productStore = ProductStoreWorker.getProductStore(productStoreId, delegator); 85 if (productStore == null) { 86 throw new IllegalArgumentException ("Cannot set session ProductStore, passed productStoreId [" + productStoreId + "] is not valid/not found."); 87 } 88 89 session.setAttribute("productStoreId", productStoreId); 91 92 session.removeAttribute("CURRENT_CATALOG_ID"); 94 95 UtilHttp.setCurrencyUomIfNone(session, productStore.getString("defaultCurrencyUomId")); 98 UtilHttp.setLocaleIfNone(session, productStore.getString("defaultLocaleString")); 99 100 104 ShoppingCart cart = ShoppingCartEvents.getCartObject(request); 105 if (!productStoreId.equals(cart.getProductStoreId())) { 107 cart = new WebShoppingCart(request); 109 session.setAttribute("shoppingCart", cart); 110 } 111 } 112 } 113 | Popular Tags |