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

📄 shoppinglistservices.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        GenericValue userLogin = (GenericValue) context.get("userLogin");        Locale locale = (Locale) context.get("locale");        boolean beganTransaction = false;        try {            beganTransaction = TransactionUtil.begin();                    GenericValue orderHeader = null;            orderHeader = delegator.findByPrimaryKey("OrderHeader", UtilMisc.toMap("orderId", orderId));                if (orderHeader == null) {                return ServiceUtil.returnError(UtilProperties.getMessage(resource_error,"OrderUnableToLocateOrder", UtilMisc.toMap("orderId",orderId), locale));            }            String productStoreId = orderHeader.getString("productStoreId");                if (UtilValidate.isEmpty(shoppingListId)) {                // create a new shopping list                if (partyId == null) {                    partyId = userLogin.getString("partyId");                }                    Map serviceCtx = UtilMisc.toMap("userLogin", userLogin, "partyId", partyId,                        "productStoreId", productStoreId, "listName", "List Created From Order #" + orderId);                    if (UtilValidate.isNotEmpty(shoppingListTypeId)) {                    serviceCtx.put("shoppingListTypeId", shoppingListTypeId);                }                    Map newListResult = null;                try {                        newListResult = dispatcher.runSync("createShoppingList", serviceCtx);                } catch (GenericServiceException e) {                    Debug.logError(e, "Problems creating new ShoppingList", module);                    return ServiceUtil.returnError(UtilProperties.getMessage(resource_error,"OrderUnableToCreateNewShoppingList",locale));                }                    // check for errors                if (ServiceUtil.isError(newListResult)) {                    return ServiceUtil.returnError(ServiceUtil.getErrorMessage(newListResult));                }                    // get the new list id                if (newListResult != null) {                    shoppingListId = (String) newListResult.get("shoppingListId");                }            }                GenericValue shoppingList = null;            shoppingList = delegator.findByPrimaryKey("ShoppingList", UtilMisc.toMap("shoppingListId", shoppingListId));                if (shoppingList == null) {                return ServiceUtil.returnError(UtilProperties.getMessage(resource_error,"OrderNoShoppingListAvailable",locale));            }            shoppingListTypeId = shoppingList.getString("shoppingListTypeId");                OrderReadHelper orh = new OrderReadHelper(orderHeader);            if (orh == null) {                return ServiceUtil.returnError(UtilProperties.getMessage(resource_error,"OrderUnableToLoadOrderReadHelper", UtilMisc.toMap("orderId",orderId), locale));            }                List orderItems = orh.getOrderItems();            Iterator i = orderItems.iterator();            while (i.hasNext()) {                GenericValue orderItem = (GenericValue) i.next();                if (orderItem.get("productId") != null) {                    Map ctx = UtilMisc.toMap("userLogin", userLogin, "shoppingListId", shoppingListId, "productId",                            orderItem.get("productId"), "quantity", orderItem.get("quantity"));                    Map serviceResult = null;                    try {                        serviceResult = dispatcher.runSync("createShoppingListItem", ctx);                    } catch (GenericServiceException e) {                        Debug.logError(e, module);                    }                    if (serviceResult == null || ServiceUtil.isError(serviceResult)) {                        return ServiceUtil.returnError(UtilProperties.getMessage(resource_error,"OrderUnableToAddItemToShoppingList",UtilMisc.toMap("shoppingListId",shoppingListId), locale));                    }                }            }                if ("SLT_AUTO_REODR".equals(shoppingListTypeId)) {                GenericValue paymentPref = EntityUtil.getFirst(orh.getPaymentPreferences());                GenericValue shipGroup = EntityUtil.getFirst(orh.getOrderItemShipGroups());                    Map slCtx = new HashMap();                slCtx.put("shipmentMethodTypeId", shipGroup.get("shipmentMethodTypeId"));                slCtx.put("carrierRoleTypeId", shipGroup.get("carrierRoleTypeId"));                slCtx.put("carrierPartyId", shipGroup.get("carrierPartyId"));                slCtx.put("contactMechId", shipGroup.get("contactMechId"));                slCtx.put("paymentMethodId", paymentPref.get("paymentMethodId"));                slCtx.put("currencyUom", orh.getCurrency());                slCtx.put("startDateTime", startDate);                slCtx.put("endDateTime", endDate);                slCtx.put("frequency", frequency);                slCtx.put("intervalNumber", interval);                slCtx.put("isActive", "Y");                slCtx.put("shoppingListId", shoppingListId);                slCtx.put("userLogin", userLogin);                    Map slUpResp = null;                try {                    slUpResp = dispatcher.runSync("updateShoppingList", slCtx);                } catch (GenericServiceException e) {                    Debug.logError(e, module);                }                    if (slUpResp == null || ServiceUtil.isError(slUpResp)) {                    return ServiceUtil.returnError(UtilProperties.getMessage(resource_error,"OrderUnableToUpdateShoppingListInformation",UtilMisc.toMap("shoppingListId",shoppingListId), locale));                }            }                Map result = ServiceUtil.returnSuccess();            result.put("shoppingListId", shoppingListId);            return result;                    } catch (GenericEntityException e) {            try {                // only rollback the transaction if we started one...                TransactionUtil.rollback(beganTransaction, "Error making shopping list from order", e);            } catch (GenericEntityException e2) {                Debug.logError(e2, "[GenericDelegator] Could not rollback transaction: " + e2.toString(), module);            }            String errMsg = "Error while creating new shopping list based on order" + e.toString();            Debug.logError(e, errMsg, module);            return ServiceUtil.returnError(errMsg);        } finally {            try {                // only commit the transaction if we started one... this will throw an exception if it fails                TransactionUtil.commit(beganTransaction);            } catch (GenericEntityException e) {                Debug.logError(e, "Could not commit transaction for creating new shopping list based on order", module);            }        }    }    public static ShoppingCart makeShoppingListCart(LocalDispatcher dispatcher, GenericValue shoppingList, Locale locale) {        GenericDelegator delegator = dispatcher.getDelegator();        ShoppingCart listCart = null;        if (shoppingList != null && shoppingList.get("productStoreId") != null) {            String productStoreId = shoppingList.getString("productStoreId");            String currencyUom = shoppingList.getString("currencyUom");            if (currencyUom == null) {                GenericValue productStore = ProductStoreWorker.getProductStore(productStoreId, delegator);                if (productStore == null) {                    return null;                }                currencyUom = productStore.getString("defaultCurrencyUomId");            }            if (locale == null) {                locale = Locale.getDefault();            }            List items = null;            try {                items = shoppingList.getRelated("ShoppingListItem", UtilMisc.toList("shoppingListItemSeqId"));            } catch (GenericEntityException e) {                Debug.logError(e, module);            }            if (UtilValidate.isNotEmpty(items)) {                listCart = new ShoppingCart(delegator, productStoreId, locale, currencyUom);                listCart.setOrderPartyId(shoppingList.getString("partyId"));                Iterator i = items.iterator();                while (i.hasNext()) {                    GenericValue shoppingListItem = (GenericValue) i.next();                    String productId = shoppingListItem.getString("productId");                    Double quantity = shoppingListItem.getDouble("quantity");                    Timestamp reservStart = shoppingListItem.getTimestamp("reservStart");                    double reservLength = 0.00;                    if (shoppingListItem.get("reservLength") != null)                        reservLength = shoppingListItem.getDouble("reservLength").doubleValue();                    double reservPersons = 0.00;                    if (shoppingListItem.get("reservPersons") != null)                        reservPersons = shoppingListItem.getDouble("reservPersons").doubleValue();                    if (UtilValidate.isNotEmpty(productId) && quantity != null) {                        // list items are noted in the shopping cart                        String listId = shoppingListItem.getString("shoppingListId");                        String itemId = shoppingListItem.getString("shoppingListItemSeqId");                        Map attributes = UtilMisc.toMap("shoppingListId", listId, "shoppingListItemSeqId", itemId);                        try {                             listCart.addOrIncreaseItem(productId, quantity.doubleValue(), reservStart, reservLength, reservPersons, null, attributes, null, dispatcher);                        } catch (CartItemModifyException e) {                            Debug.logError(e, "Unable to add product to List Cart - " + productId, module);                        } catch (ItemNotFoundException e) {                            Debug.logError(e, "Product not found - " + productId, module);                        }                    }                }                if (listCart.size() > 0) {                    if (shoppingList.get("paymentMethodId") != null) {                        listCart.addPayment(shoppingList.getString("paymentMethodId"));                    }                    if (shoppingList.get("contactMechId") != null) {                        listCart.setShippingContactMechId(0, shoppingList.getString("contactMechId"));                    }                    if (shoppingList.get("shipmentMethodTypeId") != null) {                        listCart.setShipmentMethodTypeId(0, shoppingList.getString("shipmentMethodTypeId"));                    }                    if (shoppingList.get("carrierPartyId") != null) {                        listCart.setCarrierPartyId(0, shoppingList.getString("carrierPartyId"));                    }                }            }        }        return listCart;    }    public static ShoppingCart makeShoppingListCart(LocalDispatcher dispatcher, String shoppingListId, Locale locale) {        GenericDelegator delegator = dispatcher.getDelegator();        GenericValue shoppingList = null;        try {            shoppingList = delegator.findByPrimaryKey("ShoppingList", UtilMisc.toMap("shoppingListId", shoppingListId));        } catch (GenericEntityException e) {            Debug.logError(e, module);        }        return makeShoppingListCart(dispatcher, shoppingList, locale);    }    /**     *      * Given an orderId, this service will look through all its OrderItems and for each shoppingListItemId     * and shoppingListItemSeqId, update the quantity purchased in the ShoppingListItem entity.  Used for     * tracking how many of shopping list items are purchased.  This service is mounted as a seca on storeOrder.     *     * @param ctx - The DispatchContext that this service is operating in     * @param context - Map containing the input parameters     * @return Map with the result of the service, the output parameters     */    public static Map updateShoppingListQuantitiesFromOrder(DispatchContext ctx, Map context) {        Map result = new HashMap();        GenericDelegator delegator = ctx.getDelegator();        String orderId = (String) context.get("orderId");        try {            List orderItems = delegator.findByAnd("OrderItem", UtilMisc.toMap("orderId", orderId));            Iterator iter = orderItems.iterator();            while (iter.hasNext()) {                GenericValue orderItem = (GenericValue) iter.next();                String shoppingListId = (String) orderItem.getString("shoppingListId");                String shoppingListItemSeqId = (String) orderItem.getString("shoppingListItemSeqId");                if ((shoppingListId != null) && (shoppingListId.length() > 0)) {                    GenericValue shoppingListItem=delegator.findByPrimaryKey("ShoppingListItem", UtilMisc.toMap("shoppingListId",                                shoppingListId, "shoppingListItemSeqId", shoppingListItemSeqId));                    if (shoppingListItem != null) {                        Double quantityPurchased = shoppingListItem.getDouble("quantityPurchased");                        Double orderQuantity = orderItem.getDouble("quantity");                        if (quantityPurchased != null) {                            shoppingListItem.set("quantityPurchased", new Double(orderQuantity.doubleValue() + quantityPurchased.doubleValue()));                        }else{                            shoppingListItem.set("quantityPurchased", orderQuantity);                        }                        shoppingListItem.store();                    }                }            }        } catch (Exception e) {            Debug.log("updateShoppingListQuantitiesFromOrder error:"+e.getMessage());        }        return result;    }}

⌨️ 快捷键说明

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