Regalamiunsorriso/decompiled-libs/www/acxent-common-1.0.1/it/acxent/cart/servlet/AcCartSvlt.java

892 lines
31 KiB
Java

package it.acxent.cart.servlet;
import it.acxent.cart.AcCartObject;
import it.acxent.cart.Cart;
import it.acxent.cart.CartStatus;
import it.acxent.common.Users;
import it.acxent.db.ResParm;
import it.acxent.servlet.LogonSvlt;
import it.acxent.servlet.SavedHttpRequest;
import it.acxent.util.AbMessages;
import java.util.StringTokenizer;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public abstract class AcCartSvlt extends LogonSvlt {
protected static String ACT_ADD_ONE = "one";
protected static String ACT_CHECK_OUT = "checkOut";
protected static String ACT_LOGIN = "login";
public static String CAL_CR = "cr";
public static String CAL_MD = "md";
public static String CAL_CAT = "cat";
protected static String JSP_CART = "cart.jsp";
protected static String ATTR_THE_PAGE = "thePage";
protected static String JSP_CHECKOUT = "checkOut.jsp";
protected static String JSP_CHECKOUT_NO_REG = "checkOutNoReg.jsp";
protected static String JSP_HOME = "index.jsp";
public static String JSP_LOSTPASSWORD = "lostPwd.jsp";
protected static String JSP_ORDER = "order.jsp";
protected static String JSP_ORDER_NO_REG = "orderNoReg.jsp";
protected static String ACT_LOSTPWD = "lostPwd";
public static String ATTR_CART = "cart";
public static String ATTR_CART_STATUS = "cartStatus";
public static String CMD_ADD_ITEMS = "addItems";
protected static String DEFAULT_CATALOG_SVLT = "/Catalogo.abl";
protected static String CMD_CHECK_CART = "checkCart";
protected static String CMD_CHECKOUT = "checkOut";
protected static String CMD_LOGOUT = "logout";
protected static String CMD_DELETE_CART = "deleteCart";
public static String CMD_DELETE_ITEM = "deleteItem";
protected static String CMD_MODIFY_ITEM = "modifyItem";
protected static String CMD_MODIFY_ITEMS = "modifyItems";
protected static String CMD_UPDATE_CART = "updateCart";
public static String PROP_ORDER = "bean";
public static String CMD_LOSTPWD = "lostPwd";
public static String ATTR_LOSTPWDEMAIL = "lostPwdEmail";
public static String CMD_ADD_ITEM = "addItem";
protected static String CMD_LOGON = "logon";
protected static String ACT_CHECK_OUT_NO_LOGIN = "checkOutNL";
protected static String CMD_CHECKOUT_NO_REG = "checkOutNoReg";
protected void addItems(HttpServletRequest req, HttpServletResponse res) {}
protected void callJsp(HttpServletRequest req, HttpServletResponse res) {
if (!getCal(req).isEmpty()) {
setJspPageRelative(getCal(req), req);
} else {
setJspPageRelative("cart.jsp", req);
}
try {
RequestDispatcher rd = getServletContext().getRequestDispatcher(getJspPage(req));
rd.forward((ServletRequest)req, (ServletResponse)res);
} catch (Exception e) {
handleDebug(e);
}
}
protected void checkCart(HttpServletRequest req, HttpServletResponse res) {
try {
Cart cart = getCart(req);
if (cart.getNumberOfItems() == 0L) {
String msg = "CheckCart: Il carrello è vuoto!";
handleDebug(msg);
sendMessage(req, msg);
callJsp(req, res);
} else {
Users utente = getLoginUser(req);
if (utente != null && utente.getId_userProfile() == utente.getIdUserProfileNoReg()) {
req.getSession().removeAttribute("utenteLogon");
req.getSession().removeAttribute("loginUser_id");
}
afterCheckCart(req, res);
}
} catch (Exception e) {
handleDebug(e);
}
}
protected void checkOut(HttpServletRequest req, HttpServletResponse res) {
CartStatus cartStatus = new CartStatus();
try {
Cart cart = getCart(req);
if (getAct(req).equals(ATTR_CART)) {
if (cart.getNumberOfItems() == 0L) {
String msg = "CheckOut: Si è tentato di utilizzare un carrello vuoto!!!!";
handleDebug(msg);
forceMessage(req, msg);
cartStatus.setStatus(CartStatus.ST_CHECK_OUT_ERROR);
req.setAttribute(ATTR_CART_STATUS, cartStatus);
setCart(req, cart);
afterCheckCart(req, res);
} else {
cartStatus.setStatus(CartStatus.ST_OK);
fillObject(req, cart);
req.setAttribute(ATTR_CART, cart);
req.setAttribute(ATTR_CART_STATUS, cartStatus);
afterCheckOut(req, res);
}
} else if (getAct(req).equals(ACT_LOGIN)) {
if (!getLogin(req).equals(""))
if (checkLoginName(req, res) >= 5L) {
if (!isFirstAccess(req)) {
cartStatus.setStatus(CartStatus.ST_OK);
} else {
SavedHttpRequest shr = (SavedHttpRequest)req.getSession().getAttribute("savedHttpRequest");
if (shr == null) {
shr = new SavedHttpRequest();
shr.setCompleteRequestedURI(req.getRequestURI());
shr.setServletPath(req.getServletPath());
shr.setAllParametersNAttributes(req);
req.getSession().setAttribute("savedHttpRequest", shr);
}
forceJspPageRelative(getCheckCCPage(), req);
RequestDispatcher rd = getServletContext().getRequestDispatcher(getJspPage(req));
rd.forward((ServletRequest)req, (ServletResponse)res);
}
} else {
sendMessage(req, AbMessages.getMessage(getLang(req), "LOGIN_FAIL"));
}
req.setAttribute(ATTR_CART_STATUS, cartStatus);
getCart(req);
afterCheckOut(req, res);
} else if (getAct(req).equals(ACT_LOSTPWD)) {
ResParm rp = sendLostPasswordMessage(req, res);
if (!rp.getStatus())
sendMessage(req, rp.getMsg());
afterCheckOut(req, res);
} else if (getAct(req).equals(ACT_CHECK_OUT)) {
if (getLoginUser(req) != null) {
if (cart.getNumberOfItems() == 0L) {
handleDebug(AbMessages.getMessage(getLang(req), "CART_SUBMIT_EMPTY"));
sendMessage(req, AbMessages.getMessage(getLang(req), "CART_SUBMIT_EMPTY"));
cartStatus.setStatus(CartStatus.ST_CHECK_OUT_ERROR);
req.setAttribute(ATTR_CART_STATUS, cartStatus);
setCart(req, cart);
afterCheckOut(req, res);
} else if (checkAvailability(req) && !cart.areAllItemsAvailable()) {
String msg = "CheckOut: Attenzione! Alcuni articoli non sono più disponibili!!!";
handleDebug(msg);
forceMessage(req, msg);
cartStatus.setStatus(CartStatus.ST_CHECK_OUT_ERROR);
req.setAttribute(ATTR_CART_STATUS, cartStatus);
setCart(req, cart);
afterCheckCart(req, res);
} else {
fillObject(req, cart);
setCart(req, cart);
ResParm rp = recordOrder(req, res);
if (rp.getStatus()) {
if (sendCheckOutMessage(req, res).getStatus()) {
cartStatus.setStatus(CartStatus.ST_CHECK_OUT_OK);
} else {
cartStatus.setStatus(CartStatus.ST_CHECK_OUT_OK_NO_MAIL);
sendMessage(req, rp.getMsg());
}
req.setAttribute(ATTR_CART_STATUS, cartStatus);
removeCart(req);
afterOrderRecorded(req, res);
} else {
sendMessage(req, rp.getMsg());
setJspPageRelative(getJspCheckOutPage(req), req);
callJsp(req, res);
}
}
} else {
sendMessage(req, AbMessages.getMessage(getLang(req), "CART_NEED_LOGIN"));
afterCheckOut(req, res);
}
} else if (getAct(req).equals(ACT_CHECK_OUT_NO_LOGIN)) {
if (cart.getNumberOfItems() == 0L) {
handleDebug(AbMessages.getMessage(getLang(req), "CART_SUBMIT_EMPTY"));
sendMessage(req, AbMessages.getMessage(getLang(req), "CART_SUBMIT_EMPTY"));
cartStatus.setStatus(CartStatus.ST_CHECK_OUT_ERROR);
req.setAttribute(ATTR_CART_STATUS, cartStatus);
setCart(req, cart);
afterCheckOut(req, res);
} else {
fillObject(req, cart);
setCart(req, cart);
ResParm rp = recordOrder(req, res);
if (rp.getStatus()) {
if (sendCheckOutMessage(req, res).getStatus()) {
cartStatus.setStatus(CartStatus.ST_CHECK_OUT_OK);
} else {
cartStatus.setStatus(CartStatus.ST_CHECK_OUT_OK_NO_MAIL);
sendMessage(req, rp.getMsg());
}
req.setAttribute(ATTR_CART_STATUS, cartStatus);
removeCart(req);
afterOrderRecorded(req, res);
} else {
sendMessage(req, rp.getMsg());
afterCheckOut(req, res);
}
}
}
} catch (Exception e) {
handleDebug(e);
sendMessage(req, e.getMessage());
callJsp(req, res);
}
}
protected void logOut(HttpServletRequest req, HttpServletResponse res) {
try {
req.getSession().removeAttribute("utenteLogon");
req.getSession().removeAttribute("loginUser_id");
setJspPageRelative(JSP_HOME, req);
_updateCart(req);
callJsp(req, res);
} catch (Exception e) {
handleDebug(e);
sendMessage(req, e.getMessage());
callJsp(req, res);
}
}
protected void lostPasword(HttpServletRequest req, HttpServletResponse res) {
try {
CartStatus cs = new CartStatus();
ResParm rp = sendLostPasswordMessage(req, res);
if (!rp.getStatus()) {
forceMessage(req, rp.getMsg());
cs.setStatus(CartStatus.ST_LOSTPWD_SEND_ERROR);
req.setAttribute(ATTR_CART_STATUS, cs);
} else {
forceMessage(req, rp.getMsg());
cs.setStatus(CartStatus.ST_LOSTPWD_SEND_OK);
req.setAttribute(ATTR_CART_STATUS, cs);
}
req.setAttribute(ATTR_THE_PAGE, getRequestParameter(req, ATTR_THE_PAGE));
setJspPageRelative(getJspLostPasswordPage(req), req);
callJsp(req, res);
} catch (Exception e) {
handleDebug(e);
sendMessage(req, e.getMessage());
callJsp(req, res);
}
}
protected void deleteCart(HttpServletRequest req, HttpServletResponse res) {
try {
removeCart(req);
afterDeleteCart(req, res);
} catch (Exception e) {
handleDebug(e);
}
}
protected void deleteItem(HttpServletRequest req, HttpServletResponse res) {
try {
AcCartObject aco = getCartObject(req);
Cart cart = getCart(req);
cart.remove(aco);
setCart(req, cart);
if (cart.getNumberOfItems() == 0L) {
String msg = "Il carrello è vuoto!";
handleDebug(msg);
sendMessage(req, msg);
}
afterDeleteItem(req, res);
callJsp(req, res);
} catch (Exception e) {
handleDebug(e);
}
}
protected String getAfterAddItemServlet(HttpServletRequest req) {
return DEFAULT_CATALOG_SVLT;
}
protected Cart getCart(HttpServletRequest req) {
HttpSession session = req.getSession(true);
Cart cart = null;
if (session.getAttribute(ATTR_CART) != null) {
cart = (Cart)session.getAttribute(ATTR_CART);
cart.setApplParmFull(getApFull(req));
updateDeliveryCost(cart, req);
} else {
cart = new Cart(getApFull(req));
updateDeliveryCost(cart, req);
}
if (cart != null)
setCart(req, cart);
return cart;
}
protected String getJspCartPage(HttpServletRequest req) {
return JSP_CART;
}
protected String getJspCheckOutPage(HttpServletRequest req) {
return JSP_CHECKOUT;
}
protected String getJspCheckOutNoRegPage(HttpServletRequest req) {
return JSP_CHECKOUT_NO_REG;
}
protected String getJspHomePage(HttpServletRequest req) {
return JSP_HOME;
}
protected String getJspLostPasswordPage(HttpServletRequest req) {
return JSP_LOSTPASSWORD;
}
protected String getJspOrderPage(HttpServletRequest req) {
return JSP_ORDER;
}
protected String getJspOrderPageNoReg(HttpServletRequest req) {
return JSP_ORDER_NO_REG;
}
public abstract AcCartObject getCartObject(HttpServletRequest paramHttpServletRequest) throws Exception;
protected String getCheckOutMailMessage() {
return getParm(Cart.P_CHECKOUTMSG).getTesto();
}
protected String getCheckOutMailMessage(String lang) {
String temp = getParm(Cart.P_CHECKOUTMSG).getTesto();
if (lang != null && !lang.isEmpty()) {
int dot = temp.lastIndexOf(".");
if (dot > 0)
temp = temp.substring(0, dot) + "_" + temp.substring(0, dot) + lang.toLowerCase();
}
return temp;
}
protected String getLostPasswordMailMessage() {
return getParm(Cart.P_CHECKOUTMSG).getTesto();
}
protected boolean isUsePriceWithVat(HttpServletRequest req) {
return !(getParm(Cart.P_USE_PRICE_WITH_VAT).getNumeroInt() == 0);
}
protected double getDeliveryCost(HttpServletRequest req, Cart cart) {
return getParm(Cart.P_DELIVERY_COST).getNumeroDouble();
}
protected boolean isCostoSpedizioneFull() {
return getParm("CC_COSTO_SPED_FULL").isTrue();
}
protected long getDeliveryIvaId(HttpServletRequest req) {
return getParm(Cart.P_DELIVERY_IVA_ID).getNumeroLong();
}
protected double getDeliveryIvaAliquota(HttpServletRequest req) {
return getParm(Cart.P_DELIVERY_IVA_ALIQUOTA).getNumeroDouble();
}
protected void modifyItem(HttpServletRequest req, HttpServletResponse res) {
try {
AcCartObject aco = getCartObject(req);
Cart cart = getCart(req);
if (aco.getId().equals(""));
ResParm rp = cart.add(aco, checkAvailability(req));
if (!rp.getStatus())
sendMessage(req, rp.getMsg());
setCart(req, cart);
afterModifyItems(req, res);
} catch (Exception e) {
handleDebug(e);
}
}
protected void modifyItems(HttpServletRequest req, HttpServletResponse res) {
try {
AcCartObject aco = null;
String l_id = "";
double l_quantita = 1.0D;
Cart cart = getCart(req);
String l_id_itemsVector = getRequestParameter(req, "id_itemsVector");
l_id_itemsVector = l_id_itemsVector.replace('\'', ' ');
StringTokenizer st = new StringTokenizer(l_id_itemsVector, ",");
while (st.hasMoreTokens()) {
l_id = st.nextToken().trim();
req.setAttribute("id", l_id);
aco = getCartObject(req);
if (req.getParameter("qt_" + l_id) != null &&
!req.getParameter("qt_" + l_id).equals(""))
l_quantita = getRequestDoubleParameter(req, "qt_" + l_id);
aco.setQuantity(l_quantita);
ResParm rp = cart.add(aco, checkAvailability(req));
if (!rp.getStatus())
sendMessage(req, rp.getMsg());
}
setCart(req, cart);
afterModifyItems(req, res);
} catch (Exception e) {
handleDebug(e);
}
}
protected void otherCommands(HttpServletRequest req, HttpServletResponse res) {
checkCart(req, res);
}
protected void processRequest(HttpServletRequest req, HttpServletResponse res) {
String cmd = getCmd(req);
forceJspPage("", req);
if (cmd.equals(CMD_ADD_ITEM)) {
addItem(req, res);
} else if (cmd.equals(CMD_ADD_ITEMS)) {
addItems(req, res);
} else if (cmd.equals(CMD_MODIFY_ITEM)) {
modifyItem(req, res);
} else if (cmd.equals(CMD_MODIFY_ITEMS)) {
modifyItems(req, res);
} else if (cmd.equals(CMD_DELETE_ITEM)) {
deleteItem(req, res);
} else if (cmd.equals(CMD_DELETE_CART)) {
deleteCart(req, res);
} else if (cmd.equals(CMD_CHECK_CART)) {
checkCart(req, res);
} else if (cmd.startsWith(CMD_CHECKOUT_NO_REG)) {
checkOutNoReg(req, res);
} else if (cmd.startsWith(CMD_CHECKOUT)) {
checkOut(req, res);
} else if (cmd.equals(CMD_LOGOUT)) {
logOut(req, res);
} else if (cmd.equals(CMD_LOGON)) {
logOn(req, res);
} else if (cmd.equals(CMD_LOSTPWD)) {
lostPasword(req, res);
} else if (cmd.equals(CMD_UPDATE_CART)) {
_updateCart(req);
} else {
ResParm rp = callCmdMethod(req, res);
if (!rp.getStatus()) {
if (!rp.getMsg().isEmpty())
sendMessage(req, rp.getMsg());
otherCommands(req, res);
}
}
}
protected abstract ResParm recordOrder(HttpServletRequest paramHttpServletRequest, HttpServletResponse paramHttpServletResponse);
protected void removeCart(HttpServletRequest req) {
req.getSession(true).removeAttribute(ATTR_CART);
}
protected abstract ResParm sendCheckOutMessage(HttpServletRequest paramHttpServletRequest, HttpServletResponse paramHttpServletResponse);
protected abstract ResParm sendLostPasswordMessage(HttpServletRequest paramHttpServletRequest, HttpServletResponse paramHttpServletResponse);
protected void setCart(HttpServletRequest req, Cart cart) {
cart.setApplParmFull(getApFull(req));
cart.setDeliveryCostSetted(false);
req.getSession(true).setAttribute(ATTR_CART, cart);
}
protected void afterAddItem(HttpServletRequest req, HttpServletResponse res) {
try {
if (getCal(req).equals(CAL_CR)) {
req.setAttribute("cmd", "search");
req.setAttribute("act", CAL_CR);
RequestDispatcher rd = getServletContext().getRequestDispatcher(getAfterAddItemServlet(req));
rd.forward((ServletRequest)req, (ServletResponse)res);
} else {
req.setAttribute("cmd", "md");
req.setAttribute("act", CMD_ADD_ITEM);
RequestDispatcher rd = getServletContext().getRequestDispatcher(getAfterAddItemServlet(req));
rd.forward((ServletRequest)req, (ServletResponse)res);
}
} catch (Exception e) {
handleDebug(e);
}
}
protected void afterCheckCart(HttpServletRequest req, HttpServletResponse res) {
setJspPageRelative(getJspCartPage(req), req);
try {
callJsp(req, res);
} catch (Exception e) {
handleDebug(e);
}
}
protected void afterCheckOut(HttpServletRequest req, HttpServletResponse res) {
setJspPageRelative(getJspCheckOutPage(req), req);
callJsp(req, res);
}
protected void afterDeleteCart(HttpServletRequest req, HttpServletResponse res) {
setJspPageRelative(getJspHomePage(req), req);
try {
RequestDispatcher rd = getServletContext().getRequestDispatcher(getJspPage(req));
rd.forward((ServletRequest)req, (ServletResponse)res);
} catch (Exception e) {
handleDebug(e);
}
}
protected void afterDeleteItem(HttpServletRequest req, HttpServletResponse res) {
try {
checkCart(req, res);
} catch (Exception e) {
handleDebug(e);
}
}
protected void afterModifyItems(HttpServletRequest req, HttpServletResponse res) {
try {
checkCart(req, res);
} catch (Exception e) {
handleDebug(e);
}
}
protected void afterOrderRecorded(HttpServletRequest req, HttpServletResponse res) {
setJspPageRelative(getJspOrderPage(req), req);
callJsp(req, res);
}
protected void afterOrderRecordedNoReg(HttpServletRequest req, HttpServletResponse res) {
setJspPageRelative(getJspOrderPageNoReg(req), req);
callJsp(req, res);
}
protected boolean useControlCodeAccess() {
return false;
}
protected boolean usePriceWithVat() {
return true;
}
protected boolean useDeliveryCostOnUser() {
return true;
}
protected boolean checkControlCode(HttpServletRequest req) {
try {
Users ute = (Users)req.getSession().getAttribute("utenteCC");
if (ute == null)
return false;
ute.findByPrimaryKey(new Long(ute.getId_users()));
String controlCode = "";
if (req.getParameter("controlCode") != null &&
!req.getParameter("controlCode").equals(""))
controlCode = req.getParameter("controlCode");
if (!ute.getControlCode().equals(controlCode)) {
sendMessage(req, AbMessages.getMessage(getLocale(req), "CONTROL_CODE_FAIL"));
handleDebug(AbMessages.getMessage(getLocale(req), "CONTROL_CODE_FAIL"), 2);
setJspPageRelative(getCheckCCPage(), req);
return false;
}
sendMessage(req, AbMessages.getMessage(getLocale(req), "CONTROL_CODE_OK"));
handleDebug(AbMessages.getMessage(getLocale(req), "CONTROL_CODE_OK"));
ute.setControlCode("");
ute.save();
req.getSession().removeAttribute("utenteCC");
req.getSession().setAttribute("utenteLogon", ute);
req.getSession().setAttribute("loginUser_id", new Long(ute.getId_users()));
return true;
} catch (Exception e) {
handleDebug(e);
return false;
}
}
protected String getCheckCCPage() {
if (!getWebappResource("controlCodePage").equals(""))
return getWebappResource("controlCodePage");
return "controlCode.jsp";
}
protected boolean isFirstAccess(HttpServletRequest req) {
if (useControlCodeAccess())
try {
Users ute = (Users)req.getSession().getAttribute("utenteLogon");
ute.findByPrimaryKey(new Long(ute.getId_users()));
if (!ute.getControlCode().equals("")) {
req.getSession().removeAttribute("loginUser_id");
req.getSession().removeAttribute("utenteLogon");
req.getSession().setAttribute("utenteCC", ute);
return true;
}
return false;
} catch (Exception e) {
handleDebug(e);
return false;
}
return false;
}
protected double getMoreCost(HttpServletRequest req) {
return getParm(Cart.P_MORE_COST).getNumeroDouble();
}
protected void addItem(HttpServletRequest req, HttpServletResponse res) {
try {
AcCartObject aco = getCartObject(req);
Cart cart = getCart(req);
CartStatus cartStatus = new CartStatus();
String act = getAct(req);
if (act.equals(ACT_ADD_ONE)) {
ResParm rp = cart.quantityIncrement(aco, checkAvailability(req));
if (!rp.getStatus()) {
sendMessage(req, rp.getMsg());
cartStatus.setStatus(22L);
} else {
cartStatus.setStatus(21L);
}
} else {
ResParm rp = cart.add(aco, checkAvailability(req));
if (!rp.getStatus()) {
sendMessage(req, rp.getMsg());
cartStatus.setStatus(22L);
} else {
cartStatus.setStatus(21L);
}
}
req.setAttribute(ATTR_CART_STATUS, cartStatus);
updateDeliveryCost(cart, req);
setCart(req, cart);
afterAddItem(req, res);
} catch (Exception e) {
handleDebug(e);
}
}
protected double getDeliveryWarnCost(HttpServletRequest req) {
return getParm(Cart.P_DELIVERY_WARN_COST).getNumeroDouble();
}
protected void logOn(HttpServletRequest req, HttpServletResponse res) {
try {
String jspPage = getCal(req);
if (jspPage.isEmpty())
jspPage = getJspHomePage(req);
if (!getLogin(req).isEmpty())
if (checkLoginName(req, res) >= 5L) {
_updateCart(req);
if (isFirstAccess(req)) {
SavedHttpRequest shr = (SavedHttpRequest)req.getSession().getAttribute("savedHttpRequest");
if (shr == null) {
shr = new SavedHttpRequest();
shr.setCompleteRequestedURI(req.getRequestURI());
shr.setServletPath(req.getServletPath());
shr.setAllParametersNAttributes(req);
req.getSession().setAttribute("savedHttpRequest", shr);
}
forceJspPageRelative(getCheckCCPage(), req);
RequestDispatcher rd = getServletContext().getRequestDispatcher(getJspPage(req));
rd.forward((ServletRequest)req, (ServletResponse)res);
} else {
setJspPageRelative(jspPage, req);
callJsp(req, res);
}
} else {
_updateCart(req);
sendMessage(req, AbMessages.getMessage(getLang(req), "LOGIN_FAIL"));
setJspPageRelative(jspPage, req);
callJsp(req, res);
}
} catch (Exception e) {
handleDebug(e);
sendMessage(req, e.getMessage());
setJspPageRelative(getCal(req), req);
callJsp(req, res);
}
}
protected boolean checkAvailability(HttpServletRequest req) {
return true;
}
public void _updateCart(HttpServletRequest req, HttpServletResponse res) {
HttpSession session = req.getSession(true);
session.setAttribute(ATTR_CART, getCart(req));
setJspPage(getLoginPage(req, res), req);
RequestDispatcher rd = getServletContext().getRequestDispatcher(getJspPage(req));
try {
rd.forward((ServletRequest)req, (ServletResponse)res);
} catch (Exception e) {
handleDebug(e);
e.printStackTrace();
}
}
protected void checkOutNoReg(HttpServletRequest req, HttpServletResponse res) {
CartStatus cartStatus = new CartStatus();
try {
Cart cart = getCart(req);
if (getAct(req).equals(ATTR_CART)) {
if (cart.getNumberOfItems() == 0L) {
String msg = "CheckOut: Si è tentato di utilizzare un carrello vuoto!!!!";
handleDebug(msg);
forceMessage(req, msg);
cartStatus.setStatus(CartStatus.ST_CHECK_OUT_ERROR);
req.setAttribute(ATTR_CART_STATUS, cartStatus);
setCart(req, cart);
forceJspPageRelative(getJspCheckOutPage(req), req);
afterCheckCart(req, res);
} else {
cartStatus.setStatus(CartStatus.ST_OK);
fillObject(req, cart);
req.setAttribute(ATTR_CART, cart);
req.setAttribute(ATTR_CART_STATUS, cartStatus);
afterCheckOutNoReg(req, res);
}
} else if (getAct(req).equals(ACT_CHECK_OUT)) {
if (cart.getNumberOfItems() == 0L) {
handleDebug(AbMessages.getMessage(getLang(req), "CART_SUBMIT_EMPTY"));
sendMessage(req, AbMessages.getMessage(getLang(req), "CART_SUBMIT_EMPTY"));
cartStatus.setStatus(CartStatus.ST_CHECK_OUT_ERROR);
req.setAttribute(ATTR_CART_STATUS, cartStatus);
setCart(req, cart);
afterCheckOut(req, res);
} else {
fillObject(req, cart);
setCart(req, cart);
ResParm rp = recordOrderNoReg(req, res);
if (rp.getStatus()) {
if (sendCheckOutMessage(req, res).getStatus()) {
cartStatus.setStatus(CartStatus.ST_CHECK_OUT_OK);
} else {
cartStatus.setStatus(CartStatus.ST_CHECK_OUT_OK_NO_MAIL);
sendMessage(req, rp.getMsg());
}
req.setAttribute(ATTR_CART_STATUS, cartStatus);
removeCart(req);
afterOrderRecorded(req, res);
} else {
sendMessage(req, rp.getMsg());
forceJspPageRelative(getJspCheckOutNoRegPage(req), req);
afterCheckOutNoReg(req, res);
}
}
}
} catch (Exception e) {
handleDebug(e);
sendMessage(req, e.getMessage());
callJsp(req, res);
}
}
protected void afterCheckOutNoReg(HttpServletRequest req, HttpServletResponse res) {
setJspPageRelative(getJspCheckOutNoRegPage(req), req);
callJsp(req, res);
}
protected abstract ResParm recordOrderNoReg(HttpServletRequest paramHttpServletRequest, HttpServletResponse paramHttpServletResponse);
public void updateDeliveryCost(Cart cart, HttpServletRequest req) {
Users users = getLoginUser(req);
if (users == null || users.getId_users() == 0L) {
cart.setId_users(0L);
resetDeliveryIva();
cart.setDeliveryCost(getDeliveryCost(req, cart));
cart.setAliquotaIvaDelivery(getDeliveryIvaAliquota(req));
cart.setId_ivaDelivery(getDeliveryIvaId(req));
} else {
cart.setId_users(users.getId_users());
resetDeliveryIva();
if (useDeliveryCostOnUser()) {
if (getLoginUserId(req) != null && getLoginUserId(req) != 0L) {
cart.setDeliveryCost(getDeliveryCost(req, cart));
cart.setId_ivaDelivery(getDeliveryIvaId(req));
cart.setAliquotaIvaDelivery(getDeliveryIvaAliquota(req));
cart.setDeliveryCostSetted(true);
cart.setUsePriceWithVat(isUsePriceWithVat(req));
}
System.out.println("updateDeliveryCost2: " + cart.getDeliveryCost());
} else {
cart.setDeliveryCost(getDeliveryCost(req, cart));
cart.setId_ivaDelivery(getDeliveryIvaId(req));
cart.setAliquotaIvaDelivery(getDeliveryIvaAliquota(req));
cart.setDeliveryCostSetted(true);
cart.setUsePriceWithVat(isUsePriceWithVat(req));
}
}
}
protected Cart getCartOldConDeliveryCostDentro(HttpServletRequest req) {
HttpSession session = req.getSession(true);
Cart cart = null;
if (session.getAttribute(ATTR_CART) != null) {
cart = (Cart)session.getAttribute(ATTR_CART);
cart.setApplParmFull(getApFull(req));
if (useDeliveryCostOnUser()) {
if (getLoginUserId(req) != null && getLoginUserId(req) != 0L) {
cart.setDeliveryCost(getDeliveryCost(req, cart));
cart.setDeliveryCostSetted(true);
cart.setId_ivaDelivery(getDeliveryIvaId(req));
cart.setAliquotaIvaDelivery(getDeliveryIvaAliquota(req));
}
} else {
cart.setDeliveryCost(getDeliveryCost(req, cart));
cart.setId_ivaDelivery(getDeliveryIvaId(req));
cart.setAliquotaIvaDelivery(getDeliveryIvaAliquota(req));
cart.setDeliveryCostSetted(true);
cart.setUsePriceWithVat(isUsePriceWithVat(req));
}
} else {
cart = new Cart(getApFull(req));
if (!cart.isDeliveryCostSetted() && getDeliveryCost(req, cart) > 0.0D) {
cart.setDeliveryCost(getDeliveryCost(req, cart));
cart.setId_ivaDelivery(getDeliveryIvaId(req));
cart.setAliquotaIvaDelivery(getDeliveryIvaAliquota(req));
cart.setDeliveryCostSetted(true);
}
}
if (cart != null) {
Users users = getLoginUser(req);
if (users == null || users.getId_users() == 0L) {
cart.setId_users(0L);
cart.setDeliveryCost(0.0D);
cart.setMoreCost(0.0D);
cart.setDeliveryWarnCost(0.0D);
cart.setId_ivaDelivery(0L);
} else {
cart.setId_users(users.getId_users());
}
setCart(req, cart);
}
return cart;
}
public void _updateCart(HttpServletRequest req) {
HttpSession session = req.getSession(true);
session.setAttribute(ATTR_CART, getCart(req));
}
public void _updateCartAfterLogin(HttpServletRequest req, HttpServletResponse res) {
HttpSession session = req.getSession(true);
session.setAttribute(ATTR_CART, getCart(req));
setJspPage(getLoginPage(req, res), req);
RequestDispatcher rd = getServletContext().getRequestDispatcher(getJspPage(req));
try {
rd.forward((ServletRequest)req, (ServletResponse)res);
} catch (Exception e) {
handleDebug(e);
e.printStackTrace();
}
}
protected void resetDeliveryIva() {}
}