⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 checkoutevents.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");        GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");        CheckOutHelper checkOutHelper = new CheckOutHelper(dispatcher, delegator, cart);        Map resp = checkOutHelper.validatePaymentMethods();        if (ServiceUtil.isError(resp)) {            request.setAttribute("_ERROR_MESSAGE_", ServiceUtil.getErrorMessage(resp));            return "error";        }        return "success";    }    public static Map getSelectedPaymentMethods(HttpServletRequest request) {        ShoppingCart cart = (ShoppingCart) request.getSession().getAttribute("shoppingCart");        //Locale locale = UtilHttp.getLocale(request);        String currencyFormat = UtilProperties.getPropertyValue("general.properties", "currency.decimal.format", "##0.00");        DecimalFormat formatter = new DecimalFormat(currencyFormat);        Map selectedPaymentMethods = new HashMap();        String[] paymentMethods = request.getParameterValues("checkOutPaymentId");        String errMsg = null;        if (paymentMethods != null) {            for (int i = 0; i < paymentMethods.length; i++) {                String amountStr = request.getParameter("amount_" + paymentMethods[i]);                Double amount = null;                if (amountStr != null && amountStr.length() > 0 && !"REMAINING".equals(amountStr)) {                    try {                        amount = new Double(formatter.parse(amountStr).doubleValue());                    } catch (ParseException e) {                        Debug.logError(e, module);                        errMsg = UtilProperties.getMessage(resource, "checkevents.invalid_amount_set_for_payment_method", (cart != null ? cart.getLocale() : Locale.getDefault()));                        request.setAttribute("_ERROR_MESSAGE_", errMsg);                        return null;                    }                }                selectedPaymentMethods.put(paymentMethods[i], amount);            }        }        Debug.logInfo("Selected Payment Methods : " + selectedPaymentMethods, module);        return selectedPaymentMethods;    }    public static String setCheckOutOptions(HttpServletRequest request, HttpServletResponse response) {        ShoppingCart cart = (ShoppingCart) request.getSession().getAttribute("shoppingCart");        LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");        GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");        // get the currency format        String currencyFormat = UtilProperties.getPropertyValue("general.properties", "currency.decimal.format", "##0.00");        DecimalFormat formatter = new DecimalFormat(currencyFormat);        // Set the payment options        Map selectedPaymentMethods = getSelectedPaymentMethods(request);        if (selectedPaymentMethods == null) {            return "error";        }        String shippingMethod = request.getParameter("shipping_method");        String shippingContactMechId = request.getParameter("shipping_contact_mech_id");                String taxAuthPartyGeoIds = request.getParameter("taxAuthPartyGeoIds");        String partyTaxId = request.getParameter("partyTaxId");        String isExempt = request.getParameter("isExempt");                String correspondingPoId = request.getParameter("corresponding_po_id");        String shippingInstructions = request.getParameter("shipping_instructions");        String orderAdditionalEmails = request.getParameter("order_additional_emails");        String maySplit = request.getParameter("may_split");        String giftMessage = request.getParameter("gift_message");        String isGift = request.getParameter("is_gift");        String internalCode = request.getParameter("internalCode");        String shipBeforeDate = request.getParameter("shipBeforeDate");        String shipAfterDate = request.getParameter("shipAfterDate");        List singleUsePayments = new ArrayList();        // if taxAuthPartyGeoIds is not empty drop that into the database        if (UtilValidate.isNotEmpty(taxAuthPartyGeoIds)) {            try {                Map createCustomerTaxAuthInfoResult = dispatcher.runSync("createCustomerTaxAuthInfo",                         UtilMisc.toMap("partyId", cart.getPartyId(), "taxAuthPartyGeoIds", taxAuthPartyGeoIds, "partyTaxId", partyTaxId, "isExempt", isExempt));                ServiceUtil.getMessages(request, createCustomerTaxAuthInfoResult, null);                if (ServiceUtil.isError(createCustomerTaxAuthInfoResult)) {                    return "error";                }            } catch (GenericServiceException e) {                String errMsg = "Error setting customer tax info: " + e.toString();                request.setAttribute("_ERROR_MESSAGE_", errMsg);                return "error";            }        }                // get the billing account and amount        String billingAccountId = request.getParameter("billingAccountId");        String billingAcctAmtStr = request.getParameter("amount_" + billingAccountId);        Double billingAccountAmt = null;        // parse the amount to a decimal        if (billingAcctAmtStr != null) {            try {                billingAccountAmt = new Double(formatter.parse(billingAcctAmtStr).doubleValue());            } catch (ParseException e) {                Debug.logError(e, module);                Map messageMap = UtilMisc.toMap("billingAccountId", billingAccountId);                String errMsg = UtilProperties.getMessage(resource, "checkevents.invalid_amount_set_for_billing_account", messageMap, (cart != null ? cart.getLocale() : Locale.getDefault()));                request.setAttribute("_ERROR_MESSAGE_", errMsg);                return "error";            }        }        // get a request map of parameters        Map params = UtilHttp.getParameterMap(request);        CheckOutHelper checkOutHelper = new CheckOutHelper(dispatcher, delegator, cart);        // check for gift card not on file        Map gcResult = checkOutHelper.checkGiftCard(params, selectedPaymentMethods);        ServiceUtil.getMessages(request, gcResult, null);        if (ServiceUtil.isError(gcResult)) {            return "error";        }        String gcPaymentMethodId = (String) gcResult.get("paymentMethodId");        Double gcAmount = (Double) gcResult.get("amount");        if (gcPaymentMethodId != null) {            selectedPaymentMethods.put(gcPaymentMethodId, gcAmount);            if ("Y".equalsIgnoreCase(request.getParameter("singleUseGiftCard"))) {                singleUsePayments.add(gcPaymentMethodId);            }        }        Map optResult = checkOutHelper.setCheckOutOptions(shippingMethod, shippingContactMechId, selectedPaymentMethods,                singleUsePayments, billingAccountId, billingAccountAmt, correspondingPoId, shippingInstructions,                orderAdditionalEmails, maySplit, giftMessage, isGift, internalCode, shipBeforeDate, shipAfterDate);        ServiceUtil.getMessages(request, optResult, null);        if (ServiceUtil.isError(optResult)) {            return "error";        }        return "success";    }    // Create order event - uses createOrder service for processing    public static String createOrder(HttpServletRequest request, HttpServletResponse response) {        HttpSession session = request.getSession();        ShoppingCart cart = ShoppingCartEvents.getCartObject(request);        LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");        GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");        GenericValue userLogin = (GenericValue) session.getAttribute("userLogin");        CheckOutHelper checkOutHelper = new CheckOutHelper(dispatcher, delegator, cart);        Map callResult;        // remove this whenever creating an order so quick reorder cache will refresh/recalc        session.removeAttribute("_QUICK_REORDER_PRODUCTS_");        boolean areOrderItemsExploded = explodeOrderItems(delegator, cart);        //get the TrackingCodeOrder List        List trackingCodeOrders = TrackingCodeEvents.makeTrackingCodeOrders(request);        String distributorId = (String) session.getAttribute("_DISTRIBUTOR_ID_");        String affiliateId = (String) session.getAttribute("_AFFILIATE_ID_");        String visitId = VisitHandler.getVisitId(session);        String webSiteId = CatalogWorker.getWebSiteId(request);        callResult = checkOutHelper.createOrder(userLogin, distributorId, affiliateId, trackingCodeOrders, areOrderItemsExploded, visitId, webSiteId);        if (callResult != null) {            ServiceUtil.getMessages(request, callResult, null);            if (ServiceUtil.isError(callResult)) {                // messages already setup with the getMessages call, just return the error response code                return "error";            }            if (callResult.get(ModelService.RESPONSE_MESSAGE).equals(ModelService.RESPOND_SUCCESS)) {                // set the orderId for use by chained events                String orderId = cart.getOrderId();                request.setAttribute("orderId", orderId);                request.setAttribute("orderAdditionalEmails", cart.getOrderAdditionalEmails());            }        }        return cart.getOrderType().toLowerCase();    }    // Event wrapper for the tax calc.    public static String calcTax(HttpServletRequest request, HttpServletResponse response) {        try {            calcTax(request);        } catch (GeneralException e) {            request.setAttribute("_ERROR_MESSAGE_", e.getMessage());            return "error";        }        return "success";    }    // Invoke the taxCalc    private static void calcTax(HttpServletRequest request) throws GeneralException {        LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");        GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");        ShoppingCart cart = (ShoppingCart) request.getSession().getAttribute("shoppingCart");        CheckOutHelper checkOutHelper = new CheckOutHelper(dispatcher, delegator, cart);        //Calculate and add the tax adjustments        checkOutHelper.calcAndAddTax();    }    public static boolean explodeOrderItems(GenericDelegator delegator, ShoppingCart cart) {        if (cart == null) return false;        GenericValue productStore = ProductStoreWorker.getProductStore(cart.getProductStoreId(), delegator);        if (productStore == null || productStore.get("explodeOrderItems") == null) {            return false;        }        return productStore.getBoolean("explodeOrderItems").booleanValue();    }    // Event wrapper for processPayment.    public static String processPayment(HttpServletRequest request, HttpServletResponse response) {        // run the process payment process + approve order when complete; may also run sync fulfillments        int failureCode = 0;        try {            if (!processPayment(request)) {                failureCode = 1;            }        } catch (GeneralException e) {            Debug.logError(e, module);            ServiceUtil.setMessages(request, e.getMessage(), null, null);            failureCode = 2;        } catch (GeneralRuntimeException e) {            Debug.logError(e, module);            ServiceUtil.setMessages(request, e.getMessage(), null, null);        }        // event return based on failureCode        switch (failureCode) {            case 0:                return "success";            case 1:                return "fail";            default:                return "error";        }    }    private static boolean processPayment(HttpServletRequest request) throws GeneralException {        HttpSession session = request.getSession();        LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");        GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");        ShoppingCart cart = (ShoppingCart) request.getSession().getAttribute("shoppingCart");        GenericValue userLogin = (GenericValue) session.getAttribute("userLogin");        CheckOutHelper checkOutHelper = new CheckOutHelper(dispatcher, delegator, cart);        // check if the order is to be held (processing)        boolean holdOrder = cart.getHoldOrder();        // load the ProductStore settings        GenericValue productStore = ProductStoreWorker.getProductStore(cart.getProductStoreId(), delegator);        Map callResult = checkOutHelper.processPayment(productStore, userLogin, false, holdOrder);        // generate any messages required        ServiceUtil.getMessages(request, callResult, null);        // check for customer message(s)        List messages = (List) callResult.get("authResultMsgs");        if (messages != null && messages.size() > 0) {            request.setAttribute("_EVENT_MESSAGE_LIST_", messages);        }        // determine whether it was a success or failure        return (callResult.get(ModelService.RESPONSE_MESSAGE).equals(ModelService.RESPOND_SUCCESS));    }    public static String checkOrderBlacklist(HttpServletRequest request, HttpServletResponse response) {        HttpSession session = request.getSession();        ShoppingCart cart = (ShoppingCart) session.getAttribute("shoppingCart");        GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");        GenericValue userLogin = (GenericValue) session.getAttribute("userLogin");        CheckOutHelper checkOutHelper = new CheckOutHelper(null, delegator, cart);        String result;        Map callResult = checkOutHelper.checkOrderBlacklist(userLogin);        if (callResult.get(ModelService.RESPONSE_MESSAGE).equals(ModelService.RESPOND_ERROR)) {            result = (String) callResult.get(ModelService.ERROR_MESSAGE);        } else {            result = (String) callResult.get(ModelService.SUCCESS_MESSAGE);        }        return result;    }    public static String failedBlacklistCheck(HttpServletRequest request, HttpServletResponse response) {        HttpSession session = request.getSession();        ShoppingCart cart = (ShoppingCart) session.getAttribute("shoppingCart");        GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");        LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");        GenericValue userLogin = (GenericValue) session.getAttribute("userLogin");        String result;        // Load the properties store        GenericValue productStore = ProductStoreWorker.getProductStore(cart.getProductStoreId(), delegator);        CheckOutHelper checkOutHelper = new CheckOutHelper(dispatcher, delegator, cart);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -