You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ja...@apache.org on 2007/04/18 23:52:59 UTC

svn commit: r530173 - /ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderLookupServices.java

Author: jaz
Date: Wed Apr 18 14:52:58 2007
New Revision: 530173

URL: http://svn.apache.org/viewvc?view=rev&rev=530173
Log:
changed a few fields to use like; and changed so most fields can be forced to use like with * or %

Modified:
    ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderLookupServices.java

Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderLookupServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderLookupServices.java?view=diff&rev=530173&r1=530172&r2=530173
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderLookupServices.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderLookupServices.java Wed Apr 18 14:52:58 2007
@@ -24,10 +24,7 @@
 import org.ofbiz.entity.GenericDelegator;
 import org.ofbiz.entity.GenericEntityException;
 import org.ofbiz.entity.GenericValue;
-import org.ofbiz.entity.condition.EntityCondition;
-import org.ofbiz.entity.condition.EntityConditionList;
-import org.ofbiz.entity.condition.EntityExpr;
-import org.ofbiz.entity.condition.EntityOperator;
+import org.ofbiz.entity.condition.*;
 import org.ofbiz.entity.model.DynamicViewEntity;
 import org.ofbiz.entity.model.ModelKeyMap;
 import org.ofbiz.entity.util.EntityFindOptions;
@@ -100,220 +97,224 @@
         String orderId = (String) context.get("orderId");
         if (UtilValidate.isNotEmpty(orderId)) {
             paramList.add("orderId=" + orderId);
-            conditions.add(new EntityExpr("orderId", EntityOperator.EQUALS, orderId));
-        } else {
-            // the base order header fields
-            List orderTypeList = (List) context.get("orderTypeId");
-            if (orderTypeList != null) {
-                Iterator i = orderTypeList.iterator();
-                List orExprs = FastList.newInstance();
-                while (i.hasNext()) {
-                    String orderTypeId = (String) i.next();
-                    paramList.add("orderTypeId=" + orderTypeId);
+            conditions.add(makeExpr("orderId", orderId));
+        }
 
-                    if (!"PURCHASE_ORDER".equals(orderTypeId) || ("PURCHASE_ORDER".equals(orderTypeId) && canViewPo)) {
-                        orExprs.add(new EntityExpr("orderTypeId", EntityOperator.EQUALS, orderTypeId));
-                    }
-                }
-            }
+        // the base order header fields
+        List orderTypeList = (List) context.get("orderTypeId");
+        if (orderTypeList != null) {
+            Iterator i = orderTypeList.iterator();
+            List orExprs = FastList.newInstance();
+            while (i.hasNext()) {
+                String orderTypeId = (String) i.next();
+                paramList.add("orderTypeId=" + orderTypeId);
 
-            String orderName = (String) context.get("orderName");
-            if (UtilValidate.isNotEmpty(orderName)) {
-                paramList.add("orderName=" + orderName);
-                conditions.add(new EntityExpr("orderName", EntityOperator.LIKE, "%" + orderName + "%"));
-            }
-
-            List orderStatusList = (List) context.get("orderStatusId");
-            if (orderStatusList != null) {
-                Iterator i = orderStatusList.iterator();
-                List orExprs = FastList.newInstance();
-                while (i.hasNext()) {
-                    String orderStatusId = (String) i.next();
-                    paramList.add("orderStatusId=" + orderStatusId);
-                    if ("PENDING".equals(orderStatusId)) {
-                        List pendExprs = FastList.newInstance();
-                        pendExprs.add(new EntityExpr("statusId", EntityOperator.EQUALS, "ORDER_CREATED"));
-                        pendExprs.add(new EntityExpr("statusId", EntityOperator.EQUALS, "ORDER_PROCESSING"));
-                        pendExprs.add(new EntityExpr("statusId", EntityOperator.EQUALS, "ORDER_APPROVED"));
-                        orExprs.add(new EntityConditionList(pendExprs, EntityOperator.OR));
-                    } else {
-                        orExprs.add(new EntityExpr("statusId", EntityOperator.EQUALS, orderStatusId));
-                    }
+                if (!"PURCHASE_ORDER".equals(orderTypeId) || ("PURCHASE_ORDER".equals(orderTypeId) && canViewPo)) {
+                    orExprs.add(new EntityExpr("orderTypeId", EntityOperator.EQUALS, orderTypeId));
                 }
-                conditions.add(new EntityConditionList(orExprs, EntityOperator.OR));
             }
+        }
 
-            List productStoreList = (List) context.get("productStoreId");
-            if (productStoreList != null) {
-                Iterator i = productStoreList.iterator();
-                List orExprs = FastList.newInstance();
-                while (i.hasNext()) {
-                    String productStoreId = (String) i.next();
-                    paramList.add("productStoreId=" + productStoreId);
-                    orExprs.add(new EntityExpr("productStoreId", EntityOperator.EQUALS, productStoreId));
-                }
-                conditions.add(new EntityConditionList(orExprs, EntityOperator.OR));
-            }
+        String orderName = (String) context.get("orderName");
+        if (UtilValidate.isNotEmpty(orderName)) {
+            paramList.add("orderName=" + orderName);
+            conditions.add(makeExpr("orderName", orderName, true));
+        }
 
-            List webSiteList = (List) context.get("orderWebSiteId");
-            if (webSiteList != null) {
-                Iterator i = webSiteList.iterator();
-                List orExprs = FastList.newInstance();
-                while (i.hasNext()) {
-                    String webSiteId = (String) i.next();
-                    paramList.add("webSiteId=" + webSiteId);
-                    orExprs.add(new EntityExpr("webSiteId", EntityOperator.EQUALS, webSiteId));
-                }
-                conditions.add(new EntityConditionList(orExprs, EntityOperator.OR));
+        List orderStatusList = (List) context.get("orderStatusId");
+        if (orderStatusList != null) {
+            Iterator i = orderStatusList.iterator();
+            List orExprs = FastList.newInstance();
+            while (i.hasNext()) {
+                String orderStatusId = (String) i.next();
+                paramList.add("orderStatusId=" + orderStatusId);
+                if ("PENDING".equals(orderStatusId)) {
+                    List pendExprs = FastList.newInstance();
+                    pendExprs.add(new EntityExpr("statusId", EntityOperator.EQUALS, "ORDER_CREATED"));
+                    pendExprs.add(new EntityExpr("statusId", EntityOperator.EQUALS, "ORDER_PROCESSING"));
+                    pendExprs.add(new EntityExpr("statusId", EntityOperator.EQUALS, "ORDER_APPROVED"));
+                    orExprs.add(new EntityConditionList(pendExprs, EntityOperator.OR));
+                } else {
+                    orExprs.add(new EntityExpr("statusId", EntityOperator.EQUALS, orderStatusId));
+                }
+            }
+            conditions.add(new EntityConditionList(orExprs, EntityOperator.OR));
+        }
+
+        List productStoreList = (List) context.get("productStoreId");
+        if (productStoreList != null) {
+            Iterator i = productStoreList.iterator();
+            List orExprs = FastList.newInstance();
+            while (i.hasNext()) {
+                String productStoreId = (String) i.next();
+                paramList.add("productStoreId=" + productStoreId);
+                orExprs.add(new EntityExpr("productStoreId", EntityOperator.EQUALS, productStoreId));
             }
+            conditions.add(new EntityConditionList(orExprs, EntityOperator.OR));
+        }
 
-            List saleChannelList = (List) context.get("salesChannelEnumId");
-            if (saleChannelList != null) {
-                Iterator i = saleChannelList.iterator();
-                List orExprs = FastList.newInstance();
-                while (i.hasNext()) {
-                    String salesChannelEnumId = (String) i.next();
-                    paramList.add("salesChannelEnumId=" + salesChannelEnumId);
-                    orExprs.add(new EntityExpr("salesChannelEnumId", EntityOperator.EQUALS, salesChannelEnumId));
-                }
-                conditions.add(new EntityConditionList(orExprs, EntityOperator.OR));
+        List webSiteList = (List) context.get("orderWebSiteId");
+        if (webSiteList != null) {
+            Iterator i = webSiteList.iterator();
+            List orExprs = FastList.newInstance();
+            while (i.hasNext()) {
+                String webSiteId = (String) i.next();
+                paramList.add("webSiteId=" + webSiteId);
+                orExprs.add(new EntityExpr("webSiteId", EntityOperator.EQUALS, webSiteId));
             }
+            conditions.add(new EntityConditionList(orExprs, EntityOperator.OR));
+        }
 
-            String createdBy = (String) context.get("createdBy");
-            if (UtilValidate.isNotEmpty(createdBy)) {
-                paramList.add("createdBy=" + createdBy);
-                conditions.add(new EntityExpr("createdBy", EntityOperator.EQUALS, createdBy));
+        List saleChannelList = (List) context.get("salesChannelEnumId");
+        if (saleChannelList != null) {
+            Iterator i = saleChannelList.iterator();
+            List orExprs = FastList.newInstance();
+            while (i.hasNext()) {
+                String salesChannelEnumId = (String) i.next();
+                paramList.add("salesChannelEnumId=" + salesChannelEnumId);
+                orExprs.add(new EntityExpr("salesChannelEnumId", EntityOperator.EQUALS, salesChannelEnumId));
             }
+            conditions.add(new EntityConditionList(orExprs, EntityOperator.OR));
+        }
 
-            String terminalId = (String) context.get("terminalId");
-            if (UtilValidate.isNotEmpty(terminalId)) {
-                paramList.add("terminalId=" + terminalId);
-                conditions.add(new EntityExpr("terminalId", EntityOperator.EQUALS, terminalId));
-            }
+        String createdBy = (String) context.get("createdBy");
+        if (UtilValidate.isNotEmpty(createdBy)) {
+            paramList.add("createdBy=" + createdBy);
+            conditions.add(makeExpr("createdBy", createdBy));
+        }
 
-            String transactionId = (String) context.get("transactionId");
-            if (UtilValidate.isNotEmpty(transactionId)) {
-                paramList.add("transactionId=" + transactionId);
-                conditions.add(new EntityExpr("transactionId", EntityOperator.EQUALS, transactionId));
-            }
+        String terminalId = (String) context.get("terminalId");
+        if (UtilValidate.isNotEmpty(terminalId)) {
+            paramList.add("terminalId=" + terminalId);
+            conditions.add(makeExpr("terminalId", terminalId));
+        }
 
-            String externalId = (String) context.get("externalId");
-            if (UtilValidate.isNotEmpty(externalId)) {
-                paramList.add("externalId=" + externalId);
-                conditions.add(new EntityExpr("externalId", EntityOperator.EQUALS, externalId));
-            }
+        String transactionId = (String) context.get("transactionId");
+        if (UtilValidate.isNotEmpty(transactionId)) {
+            paramList.add("transactionId=" + transactionId);
+            conditions.add(makeExpr("transactionId", transactionId));
+        }
 
-            String internalCode = (String) context.get("internalCode");
-            if (UtilValidate.isNotEmpty(internalCode)) {
-                paramList.add("internalCode=" + internalCode);
-                conditions.add(new EntityExpr("internalCode", EntityOperator.EQUALS, internalCode));
-            }
+        String externalId = (String) context.get("externalId");
+        if (UtilValidate.isNotEmpty(externalId)) {
+            paramList.add("externalId=" + externalId);
+            conditions.add(makeExpr("externalId", externalId));
+        }
 
-            String dateField = "Y".equals(useEntryDate) ? "entryDate" : "orderDate";
-            String minDate = (String) context.get("minDate");
-            if (UtilValidate.isNotEmpty(minDate) && minDate.length() > 8) {
-                minDate = minDate.trim();
-                if (minDate.length() < 14) minDate = minDate + " " + "00:00:00.000";
-                paramList.add("minDate=" + minDate);
+        String internalCode = (String) context.get("internalCode");
+        if (UtilValidate.isNotEmpty(internalCode)) {
+            paramList.add("internalCode=" + internalCode);
+            conditions.add(makeExpr("internalCode", internalCode));
+        }
 
-                try {
-                    Object converted = ObjectType.simpleTypeConvert(minDate, "Timestamp", null, null);
-                    if (converted != null) {
-                        conditions.add(new EntityExpr(dateField, EntityOperator.GREATER_THAN_EQUAL_TO, converted));
-                    }
-                } catch (GeneralException e) {
-                    Debug.logWarning(e.getMessage(), module);
+        String dateField = "Y".equals(useEntryDate) ? "entryDate" : "orderDate";
+        String minDate = (String) context.get("minDate");
+        if (UtilValidate.isNotEmpty(minDate) && minDate.length() > 8) {
+            minDate = minDate.trim();
+            if (minDate.length() < 14) minDate = minDate + " " + "00:00:00.000";
+            paramList.add("minDate=" + minDate);
+
+            try {
+                Object converted = ObjectType.simpleTypeConvert(minDate, "Timestamp", null, null);
+                if (converted != null) {
+                    conditions.add(new EntityExpr(dateField, EntityOperator.GREATER_THAN_EQUAL_TO, converted));
                 }
+            } catch (GeneralException e) {
+                Debug.logWarning(e.getMessage(), module);
             }
+        }
 
-            String maxDate = (String) context.get("maxDate");
-            if (UtilValidate.isNotEmpty(minDate) && maxDate.length() > 8) {
-                maxDate = maxDate.trim();
-                if (maxDate.length() < 14) maxDate = maxDate + " " + "23:59:59.999";
-                paramList.add("maxDate=" + maxDate);
+        String maxDate = (String) context.get("maxDate");
+        if (UtilValidate.isNotEmpty(minDate) && maxDate.length() > 8) {
+            maxDate = maxDate.trim();
+            if (maxDate.length() < 14) maxDate = maxDate + " " + "23:59:59.999";
+            paramList.add("maxDate=" + maxDate);
 
-                try {
-                    Object converted = ObjectType.simpleTypeConvert(maxDate, "Timestamp", null, null);
-                    if (converted != null) {
-                        conditions.add(new EntityExpr("orderDate", EntityOperator.LESS_THAN_EQUAL_TO, converted));
-                    }
-                } catch (GeneralException e) {
-                    Debug.logWarning(e.getMessage(), module);
+            try {
+                Object converted = ObjectType.simpleTypeConvert(maxDate, "Timestamp", null, null);
+                if (converted != null) {
+                    conditions.add(new EntityExpr("orderDate", EntityOperator.LESS_THAN_EQUAL_TO, converted));
                 }
+            } catch (GeneralException e) {
+                Debug.logWarning(e.getMessage(), module);
             }
+        }
 
-            // party (role) fields
-            String userLoginId = (String) context.get("userLoginId");
-            String partyId = (String) context.get("partyId");
-            List roleTypeList = (List) context.get("roleTypeId");
+        // party (role) fields
+        String userLoginId = (String) context.get("userLoginId");
+        String partyId = (String) context.get("partyId");
+        List roleTypeList = (List) context.get("roleTypeId");
 
-            if (UtilValidate.isNotEmpty(userLoginId) && UtilValidate.isEmpty(partyId)) {
-                GenericValue ul = null;
-                try {
-                    ul = delegator.findByPrimaryKeyCache("UserLogin", UtilMisc.toMap("userLoginId", userLoginId));
-                } catch (GenericEntityException e) {
-                    Debug.logWarning(e.getMessage(), module);
-                }
-                if (ul != null) {
-                    partyId = ul.getString("partyId");
-                }
+        if (UtilValidate.isNotEmpty(userLoginId) && UtilValidate.isEmpty(partyId)) {
+            GenericValue ul = null;
+            try {
+                ul = delegator.findByPrimaryKeyCache("UserLogin", UtilMisc.toMap("userLoginId", userLoginId));
+            } catch (GenericEntityException e) {
+                Debug.logWarning(e.getMessage(), module);
             }
-
-            // add the role data to the view
-            if (roleTypeList != null || partyId != null) {
-                dve.addMemberEntity("OT", "OrderRole");
-                dve.addAlias("OT", "partyId");
-                dve.addAlias("OT", "roleTypeId");
-                dve.addViewLink("OH", "OT", Boolean.FALSE, UtilMisc.toList(new ModelKeyMap("orderId", "orderId")));
+            if (ul != null) {
+                partyId = ul.getString("partyId");
             }
+        }
 
-            if (UtilValidate.isNotEmpty(partyId)) {
-                paramList.add("partyId=" + partyId);
-                fieldsToSelect.add("partyId");
-                conditions.add(new EntityExpr("partyId", EntityOperator.EQUALS, partyId));
-            }
+        // add the role data to the view
+        if (roleTypeList != null || partyId != null) {
+            dve.addMemberEntity("OT", "OrderRole");
+            dve.addAlias("OT", "partyId");
+            dve.addAlias("OT", "roleTypeId");
+            dve.addViewLink("OH", "OT", Boolean.FALSE, UtilMisc.toList(new ModelKeyMap("orderId", "orderId")));
+        }
 
-            if (roleTypeList != null) {
-                fieldsToSelect.add("roleTypeId");
-                Iterator i = roleTypeList.iterator();
-                List orExprs = FastList.newInstance();
-                while (i.hasNext()) {
-                    String roleTypeId = (String) i.next();
-                    paramList.add("roleTypeId=" + roleTypeId);
-                    orExprs.add(new EntityExpr("roleTypeId", EntityOperator.EQUALS, roleTypeId));
-                }
-                conditions.add(new EntityConditionList(orExprs, EntityOperator.OR));
-            }
-            
-            // order item fields
-            String correspondingPoId = (String) context.get("correspondingPoId");
-            String subscriptionId = (String) context.get("subscriptionId");
-            String productId = (String) context.get("productId");
-            String budgetId = (String) context.get("budgetId");
-            String quoteId = (String) context.get("quoteId");
+        if (UtilValidate.isNotEmpty(partyId)) {
+            paramList.add("partyId=" + partyId);
+            fieldsToSelect.add("partyId");
+            conditions.add(makeExpr("partyId", partyId));
+        }
 
-            if (correspondingPoId != null || subscriptionId != null || productId != null || budgetId != null || quoteId != null) {
-                dve.addMemberEntity("OI", "OrderItem");
-                dve.addAlias("OI", "correspondingPoId");
-                dve.addAlias("OI", "subscriptionId");
-                dve.addAlias("OI", "productId");
-                dve.addAlias("OI", "budgetId");
-                dve.addAlias("OI", "quoteId");
-                dve.addViewLink("OH", "OI", Boolean.FALSE, UtilMisc.toList(new ModelKeyMap("orderId", "orderId")));
+        if (roleTypeList != null) {
+            fieldsToSelect.add("roleTypeId");
+            Iterator i = roleTypeList.iterator();
+            List orExprs = FastList.newInstance();
+            while (i.hasNext()) {
+                String roleTypeId = (String) i.next();
+                paramList.add("roleTypeId=" + roleTypeId);
+                orExprs.add(makeExpr("roleTypeId", roleTypeId));
             }
+            conditions.add(new EntityConditionList(orExprs, EntityOperator.OR));
+        }
 
-            if (UtilValidate.isNotEmpty(correspondingPoId)) {
-                paramList.add("correspondingPoId=" + correspondingPoId);
-                conditions.add(new EntityExpr("correspondingPoId", EntityOperator.EQUALS, correspondingPoId));
-            }
+        // order item fields
+        String correspondingPoId = (String) context.get("correspondingPoId");
+        String subscriptionId = (String) context.get("subscriptionId");
+        String productId = (String) context.get("productId");
+        String budgetId = (String) context.get("budgetId");
+        String quoteId = (String) context.get("quoteId");
 
-            if (UtilValidate.isNotEmpty(subscriptionId)) {
-                paramList.add("subscriptionId=" + subscriptionId);
-                conditions.add(new EntityExpr("subscriptionId", EntityOperator.EQUALS, subscriptionId));
-            }
+        if (correspondingPoId != null || subscriptionId != null || productId != null || budgetId != null || quoteId != null) {
+            dve.addMemberEntity("OI", "OrderItem");
+            dve.addAlias("OI", "correspondingPoId");
+            dve.addAlias("OI", "subscriptionId");
+            dve.addAlias("OI", "productId");
+            dve.addAlias("OI", "budgetId");
+            dve.addAlias("OI", "quoteId");
+            dve.addViewLink("OH", "OI", Boolean.FALSE, UtilMisc.toList(new ModelKeyMap("orderId", "orderId")));
+        }
 
-            if (UtilValidate.isNotEmpty(productId)) {
-                paramList.add("productId=" + productId);
+        if (UtilValidate.isNotEmpty(correspondingPoId)) {
+            paramList.add("correspondingPoId=" + correspondingPoId);
+            conditions.add(makeExpr("correspondingPoId", correspondingPoId));
+        }
+
+        if (UtilValidate.isNotEmpty(subscriptionId)) {
+            paramList.add("subscriptionId=" + subscriptionId);
+            conditions.add(makeExpr("subscriptionId", subscriptionId));
+        }
+
+        if (UtilValidate.isNotEmpty(productId)) {
+            paramList.add("productId=" + productId);
+            if (productId.startsWith("%") || productId.startsWith("*") || productId.endsWith("%") || productId.endsWith("*")) {
+                conditions.add(makeExpr("productId", productId));
+            } else {
                 GenericValue product = null;
                 try {
                     product = delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId", productId));
@@ -344,122 +345,122 @@
                     } else {
                         conditions.add(new EntityExpr("productId", EntityOperator.EQUALS, productId));
                     }
-                }                                
+                }
             }
+        }
 
-            if (UtilValidate.isNotEmpty(budgetId)) {
-                paramList.add("budgetId=" + budgetId);
-                conditions.add(new EntityExpr("budgetId", EntityOperator.EQUALS, budgetId));
-            }
+        if (UtilValidate.isNotEmpty(budgetId)) {
+            paramList.add("budgetId=" + budgetId);
+            conditions.add(makeExpr("budgetId", budgetId));
+        }
 
-            if (UtilValidate.isNotEmpty(quoteId)) {
-                paramList.add("quoteId=" + quoteId);
-                conditions.add(new EntityExpr("quoteId", EntityOperator.EQUALS, quoteId));
-            }
+        if (UtilValidate.isNotEmpty(quoteId)) {
+            paramList.add("quoteId=" + quoteId);
+            conditions.add(makeExpr("quoteId", quoteId));
+        }
 
-            // payment preference fields
-            String billingAccountId = (String) context.get("billingAccountId");
-            String finAccountId = (String) context.get("finAccountId");
-            String cardNumber = (String) context.get("cardNumber");
-            String accountNumber = (String) context.get("accountNumber");
+        // payment preference fields
+        String billingAccountId = (String) context.get("billingAccountId");
+        String finAccountId = (String) context.get("finAccountId");
+        String cardNumber = (String) context.get("cardNumber");
+        String accountNumber = (String) context.get("accountNumber");
 
-            if (billingAccountId != null || finAccountId != null || cardNumber != null || accountNumber != null) {
-                dve.addMemberEntity("OP", "OrderPaymentPreference");
-                dve.addAlias("OP", "billingAccountId");
-                dve.addAlias("OP", "finAccountId");
-                dve.addAlias("OP", "paymentMethodId");
-                dve.addViewLink("OH", "OP", Boolean.FALSE, UtilMisc.toList(new ModelKeyMap("orderId", "orderId")));
-            }
+        if (billingAccountId != null || finAccountId != null || cardNumber != null || accountNumber != null) {
+            dve.addMemberEntity("OP", "OrderPaymentPreference");
+            dve.addAlias("OP", "billingAccountId");
+            dve.addAlias("OP", "finAccountId");
+            dve.addAlias("OP", "paymentMethodId");
+            dve.addViewLink("OH", "OP", Boolean.FALSE, UtilMisc.toList(new ModelKeyMap("orderId", "orderId")));
+        }
 
-            // search by billing account ID
-            if (UtilValidate.isNotEmpty(billingAccountId)) {
-                paramList.add("billingAccountId=" + billingAccountId);
-                conditions.add(new EntityExpr("billingAccountId", EntityOperator.EQUALS, billingAccountId));
-            }
+        // search by billing account ID
+        if (UtilValidate.isNotEmpty(billingAccountId)) {
+            paramList.add("billingAccountId=" + billingAccountId);
+            conditions.add(makeExpr("billingAccountId", billingAccountId));
+        }
 
-            // search by fin account ID
-            if (UtilValidate.isNotEmpty(finAccountId)) {
-                paramList.add("finAccountId=" + finAccountId);
-                conditions.add(new EntityExpr("finAccountId", EntityOperator.EQUALS, finAccountId));
-            }
+        // search by fin account ID
+        if (UtilValidate.isNotEmpty(finAccountId)) {
+            paramList.add("finAccountId=" + finAccountId);
+            conditions.add(makeExpr("finAccountId", finAccountId));
+        }
 
-            // search by card number
-            if (UtilValidate.isNotEmpty(cardNumber)) {
-                dve.addMemberEntity("CC", "CreditCard");
-                dve.addAlias("CC", "cardNumber");
-                dve.addViewLink("OP", "CC", Boolean.FALSE, UtilMisc.toList(new ModelKeyMap("paymentMethodId", "paymentMethodId")));
+        // search by card number
+        if (UtilValidate.isNotEmpty(cardNumber)) {
+            dve.addMemberEntity("CC", "CreditCard");
+            dve.addAlias("CC", "cardNumber");
+            dve.addViewLink("OP", "CC", Boolean.FALSE, UtilMisc.toList(new ModelKeyMap("paymentMethodId", "paymentMethodId")));
 
-                paramList.add("cardNumber=" + cardNumber);
-                conditions.add(new EntityExpr("cardNumber", EntityOperator.EQUALS, cardNumber));
-            }
+            paramList.add("cardNumber=" + cardNumber);
+            conditions.add(makeExpr("cardNumber", cardNumber));
+        }
 
-            // search by eft account number
-            if (UtilValidate.isNotEmpty(accountNumber)) {
-                dve.addMemberEntity("EF", "EftAccount");
-                dve.addAlias("EF", "accountNumber");
-                dve.addViewLink("OP", "EF", Boolean.FALSE, UtilMisc.toList(new ModelKeyMap("paymentMethodId", "paymentMethodId")));
+        // search by eft account number
+        if (UtilValidate.isNotEmpty(accountNumber)) {
+            dve.addMemberEntity("EF", "EftAccount");
+            dve.addAlias("EF", "accountNumber");
+            dve.addViewLink("OP", "EF", Boolean.FALSE, UtilMisc.toList(new ModelKeyMap("paymentMethodId", "paymentMethodId")));
 
-                paramList.add("accountNumber=" + accountNumber);
-                conditions.add(new EntityExpr("accountNumber", EntityOperator.EQUALS, accountNumber));
-            }
+            paramList.add("accountNumber=" + accountNumber);
+            conditions.add(makeExpr("accountNumber", accountNumber));
+        }
 
-            // shipment/inventory item
-            String inventoryItemId = (String) context.get("inventoryItemId");
-            String softIdentifier = (String) context.get("softIdentifier");
-            String serialNumber = (String) context.get("serialNumber");
-            String shipmentId = (String) context.get("shipmentId");
+        // shipment/inventory item
+        String inventoryItemId = (String) context.get("inventoryItemId");
+        String softIdentifier = (String) context.get("softIdentifier");
+        String serialNumber = (String) context.get("serialNumber");
+        String shipmentId = (String) context.get("shipmentId");
 
-            if (shipmentId != null || inventoryItemId != null || softIdentifier != null || serialNumber != null) {
-                dve.addMemberEntity("II", "ItemIssuance");
-                dve.addAlias("II", "shipmentId");
-                dve.addAlias("II", "inventoryItemId");
-                dve.addViewLink("OH", "II", Boolean.FALSE, UtilMisc.toList(new ModelKeyMap("orderId", "orderId")));
+        if (shipmentId != null || inventoryItemId != null || softIdentifier != null || serialNumber != null) {
+            dve.addMemberEntity("II", "ItemIssuance");
+            dve.addAlias("II", "shipmentId");
+            dve.addAlias("II", "inventoryItemId");
+            dve.addViewLink("OH", "II", Boolean.FALSE, UtilMisc.toList(new ModelKeyMap("orderId", "orderId")));
 
-                if (softIdentifier != null || serialNumber != null) {
-                    dve.addMemberEntity("IV", "InventoryItem");
-                    dve.addAlias("IV", "softIdentifier");
-                    dve.addAlias("IV", "serialNumber");
-                    dve.addViewLink("II", "IV", Boolean.FALSE, UtilMisc.toList(new ModelKeyMap("inventoryItemId", "inventoryItemId")));
-                }
+            if (softIdentifier != null || serialNumber != null) {
+                dve.addMemberEntity("IV", "InventoryItem");
+                dve.addAlias("IV", "softIdentifier");
+                dve.addAlias("IV", "serialNumber");
+                dve.addViewLink("II", "IV", Boolean.FALSE, UtilMisc.toList(new ModelKeyMap("inventoryItemId", "inventoryItemId")));
             }
+        }
 
-            if (UtilValidate.isNotEmpty(inventoryItemId)) {
-                paramList.add("inventoryItemId=" + inventoryItemId);
-                conditions.add(new EntityExpr("inventoryItemId", EntityOperator.EQUALS, inventoryItemId));
-            }
+        if (UtilValidate.isNotEmpty(inventoryItemId)) {
+            paramList.add("inventoryItemId=" + inventoryItemId);
+            conditions.add(makeExpr("inventoryItemId", inventoryItemId));
+        }
 
-            if (UtilValidate.isNotEmpty(softIdentifier)) {
-                paramList.add("softIdentifier=" + softIdentifier);
-                conditions.add(new EntityExpr("softIdentifier", EntityOperator.EQUALS, softIdentifier));
-            }
+        if (UtilValidate.isNotEmpty(softIdentifier)) {
+            paramList.add("softIdentifier=" + softIdentifier);
+            conditions.add(makeExpr("softIdentifier", softIdentifier, true));
+        }
 
-            if (UtilValidate.isNotEmpty(serialNumber)) {
-                paramList.add("serialNumber=" + serialNumber);
-                conditions.add(new EntityExpr("serialNumber", EntityOperator.EQUALS, serialNumber));
-            }
+        if (UtilValidate.isNotEmpty(serialNumber)) {
+            paramList.add("serialNumber=" + serialNumber);
+            conditions.add(makeExpr("serialNumber", serialNumber, true));
+        }
 
-            if (UtilValidate.isNotEmpty(shipmentId)) {
-                paramList.add("shipmentId=" + shipmentId);
-                conditions.add(new EntityExpr("shipmentId", EntityOperator.EQUALS, shipmentId));
-            }
+        if (UtilValidate.isNotEmpty(shipmentId)) {
+            paramList.add("shipmentId=" + shipmentId);
+            conditions.add(makeExpr("shipmentId", shipmentId));
+        }
 
-            // back order checking
-            String hasBackOrders = (String) context.get("hasBackOrders");
-            if (UtilValidate.isNotEmpty(hasBackOrders)) {
-                dve.addMemberEntity("IR", "OrderItemShipGrpInvRes");
-                dve.addAlias("IR", "quantityNotAvailable");
-                dve.addViewLink("OH", "IR", Boolean.FALSE, UtilMisc.toList(new ModelKeyMap("orderId", "orderId")));
+        // back order checking
+        String hasBackOrders = (String) context.get("hasBackOrders");
+        if (UtilValidate.isNotEmpty(hasBackOrders)) {
+            dve.addMemberEntity("IR", "OrderItemShipGrpInvRes");
+            dve.addAlias("IR", "quantityNotAvailable");
+            dve.addViewLink("OH", "IR", Boolean.FALSE, UtilMisc.toList(new ModelKeyMap("orderId", "orderId")));
 
-                paramList.add("hasBackOrders=" + hasBackOrders);
-                if ("Y".equals(hasBackOrders)) {
-                    conditions.add(new EntityExpr("quantityNotAvailable", EntityOperator.NOT_EQUAL, null));
-                    conditions.add(new EntityExpr("quantityNotAvailable", EntityOperator.GREATER_THAN, new Double(0)));
-                } else if ("N".equals(hasBackOrders)) {
-                    List orExpr = FastList.newInstance();
-                    orExpr.add(new EntityExpr("quantityNotAvailable", EntityOperator.EQUALS, null));
-                    orExpr.add(new EntityExpr("quantityNotAvailable", EntityOperator.EQUALS, new Double(0)));
-                    conditions.add(new EntityConditionList(orExpr, EntityOperator.OR));
-                }
+            paramList.add("hasBackOrders=" + hasBackOrders);
+            if ("Y".equals(hasBackOrders)) {
+                conditions.add(new EntityExpr("quantityNotAvailable", EntityOperator.NOT_EQUAL, null));
+                conditions.add(new EntityExpr("quantityNotAvailable", EntityOperator.GREATER_THAN, new Double(0)));
+            } else if ("N".equals(hasBackOrders)) {
+                List orExpr = FastList.newInstance();
+                orExpr.add(new EntityExpr("quantityNotAvailable", EntityOperator.EQUALS, null));
+                orExpr.add(new EntityExpr("quantityNotAvailable", EntityOperator.EQUALS, new Double(0)));
+                conditions.add(new EntityConditionList(orExpr, EntityOperator.OR));
             }
         }
 
@@ -620,8 +621,38 @@
         result.put("filterPartiallyReceivedPOsList", filterPartiallyReceivedPOs);
     }
 
-    protected boolean validateField(String field) {
-        boolean notEmpty = UtilValidate.isNotEmpty(field);
-        return notEmpty && !"ANY".equals(field);
+    protected static EntityExpr makeExpr(String fieldName, String value) {
+        return makeExpr(fieldName, value, false);
+    }
+
+    protected static EntityExpr makeExpr(String fieldName, String value, boolean forceLike) {
+        EntityComparisonOperator op = forceLike ? EntityOperator.LIKE : EntityOperator.EQUALS;
+
+        if (value.startsWith("*")) {
+            op = EntityOperator.LIKE;
+            value = "%" + value.substring(1);
+        }
+        else if (value.startsWith("%")) {
+            op = EntityOperator.LIKE;
+        }
+
+        if (value.endsWith("*")) {
+            op = EntityOperator.LIKE;
+            value = value.substring(0, value.length() - 1) + "%";
+        }
+        else if (value.endsWith("%")) {
+            op = EntityOperator.LIKE;
+        }
+
+        if (forceLike) {
+            if (!value.startsWith("%")) {
+                value = "%" + value;
+            }
+            if (!value.endsWith("%")) {
+                value = value + "%";
+            }
+        }
+
+        return new EntityExpr(fieldName, op, value);
     }
 }