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

📄 supplierproductservices.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
字号:
package org.ofbiz.product.supplier;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import org.ofbiz.base.util.Debug;import org.ofbiz.base.util.UtilDateTime;import org.ofbiz.base.util.UtilMisc;import org.ofbiz.entity.GenericDelegator;import org.ofbiz.entity.GenericEntityException;import org.ofbiz.entity.GenericValue;import org.ofbiz.entity.condition.EntityExpr;import org.ofbiz.entity.condition.EntityOperator;import org.ofbiz.entity.util.EntityUtil;import org.ofbiz.product.product.ProductWorker;import org.ofbiz.service.DispatchContext;import org.ofbiz.service.ServiceUtil;/** * Services for suppliers of products * * @author     <a href="mailto:schen@graciousstyle.com">Si Chen</a> * @version    $Revision: 6357 $ * @since      3.0 */public class SupplierProductServices {    public static final String module = SupplierProductServices.class.getName();    public static final String resource = "ProductUiLabels";        /*     * Parameters: productId, partyId, currencyUomId, quantity     * Result: a List of SupplierProduct entities for productId,     *         filtered by date and optionally by partyId, ordered with lowest price first     */    public static Map getSuppliersForProduct(DispatchContext dctx, Map context) {        Map results = new HashMap();        GenericDelegator delegator = dctx.getDelegator();                GenericValue product = null;        String productId = (String) context.get("productId");        String partyId = (String) context.get("partyId");        String currencyUomId = (String) context.get("currencyUomId");        Double quantity =(Double) context.get("quantity");        try {            product = delegator.findByPrimaryKeyCache("Product", UtilMisc.toMap("productId", productId));            if (product == null) {                results = ServiceUtil.returnSuccess();                results.put("supplierProducts",null);                return results;            }            List supplierProducts = product.getRelatedCache("SupplierProduct");                        // if there were no related SupplierProduct entities and the item is a variant, then get the SupplierProducts of the virtual parent product            if (supplierProducts.size() == 0 && product.getString("isVariant") != null && product.getString("isVariant").equals("Y")) {                String virtualProductId = ProductWorker.getVariantVirtualId(product);                GenericValue virtualProduct = delegator.findByPrimaryKeyCache("Product", UtilMisc.toMap("productId", virtualProductId));                if (virtualProduct != null) {                    supplierProducts = virtualProduct.getRelatedCache("SupplierProduct");                }            }                        // filter the list down by the partyId if one is provided            if (partyId != null) {                supplierProducts = EntityUtil.filterByAnd(supplierProducts, UtilMisc.toMap("partyId", partyId));            }                        // filter the list down by the currencyUomId if one is provided            if (currencyUomId != null) {                supplierProducts = EntityUtil.filterByAnd(supplierProducts, UtilMisc.toMap("currencyUomId", currencyUomId));            }                        // filter the list down by the minimumOrderQuantity if one is provided            if (quantity != null) {                //minimumOrderQuantity                supplierProducts = EntityUtil.filterByCondition(supplierProducts, new EntityExpr("minimumOrderQuantity", EntityOperator.LESS_THAN_EQUAL_TO, quantity));            }                        // filter the list down again by date before returning it            supplierProducts = EntityUtil.filterByDate(supplierProducts, UtilDateTime.nowTimestamp(), "availableFromDate", "availableThruDate", true);                        //sort resulting list of SupplierProduct entities by price in ASCENDING order            supplierProducts = EntityUtil.orderBy(supplierProducts, UtilMisc.toList("lastPrice ASC"));                        results = ServiceUtil.returnSuccess();            results.put("supplierProducts", supplierProducts);        } catch (GenericEntityException ex) {            Debug.logError(ex, ex.getMessage(), module);            return ServiceUtil.returnError(ex.getMessage());        }catch(Exception ex){            Debug.logError(ex, ex.getMessage(), module);            return ServiceUtil.returnError(ex.getMessage());        }        return results;    }    /*     * Parameters: partyId of a supplier and productFeatures, a Collection (usually List) of product features     * Service will convert each feature in the Collection, changing their idCode and description based on the     * SupplierProduct entity for that supplier party and feature, and return it as convertedProductFeatures     */    public static Map convertFeaturesForSupplier(DispatchContext dctx, Map context) {        Map results = new HashMap();        String partyId = (String) context.get("partyId");        Collection features = (Collection) context.get("productFeatures");        try {            if (partyId != null && features != null && features.size() > 0) {                // loop through all the features, find the related SupplierProductFeature for the given partyId, and                // substitue description and idCode                for (Iterator fI = features.iterator(); fI.hasNext(); ) {                    GenericValue nextFeature = (GenericValue) fI.next();                    List supplierFeatures = EntityUtil.filterByAnd(nextFeature.getRelated("SupplierProductFeature"),                                                                   UtilMisc.toMap("partyId", partyId));                    GenericValue supplierFeature = null;                    if ((supplierFeatures != null) && (supplierFeatures.size() > 0)) {                        supplierFeature = (GenericValue) supplierFeatures.get(0);                        if (supplierFeature.get("description") != null) {                            nextFeature.put("description", supplierFeature.get("description"));                        }                        if (supplierFeature.get("idCode") != null) {                            nextFeature.put("idCode", supplierFeature.get("idCode"));                        }                        // TODO: later, do some kind of uom/quantity conoversion with the UomConversion entity                    }                }            }            results = ServiceUtil.returnSuccess();            results.put("convertedProductFeatures", features);        } catch (GenericEntityException ex) {            Debug.logError(ex, ex.getMessage(), module);            return ServiceUtil.returnError(ex.getMessage());        }        return results;    }}

⌨️ 快捷键说明

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