Author: mridulpathak
Date: Thu Jun  9 11:58:22 2016
New Revision: 1747540

URL: http://svn.apache.org/viewvc?rev=1747540&view=rev
Log:
[OFBIZ-7027] Added support to include party classification information in promo 
description. Thanks Swapnil M Mane for the contribution.

Modified:
    
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java
    ofbiz/trunk/applications/product/config/promotext.properties

Modified: 
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java?rev=1747540&r1=1747539&r2=1747540&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java
 (original)
+++ 
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java
 Thu Jun  9 11:58:22 2016
@@ -666,6 +666,8 @@ public class ProductPromoWorker {
         if (productPromo == null) {
             return "";
         }
+        ArrayList<String> partyClassificationsIncluded = new 
ArrayList<String>();
+        ArrayList<String> partyClassificationsExcluded = new 
ArrayList<String>();
         StringBuilder promoDescBuf = new StringBuilder();
         List<GenericValue> productPromoRules = 
productPromo.getRelated("ProductPromoRule", null, null, true);
         Iterator<GenericValue> promoRulesIter = productPromoRules.iterator();
@@ -688,12 +690,27 @@ public class ProductPromoWorker {
                 }
 
                 Map<String, Object> messageContext = UtilMisc.<String, 
Object>toMap("condValue", condValue, "equalityOperator", equalityOperator, 
"quantityOperator", quantityOperator);
-                String msgProp = UtilProperties.getMessage("promotext", 
"condition." + productPromoCond.getString("inputParamEnumId"), messageContext, 
locale);
-                promoDescBuf.append(msgProp);
-                promoDescBuf.append(" ");
 
-                if (promoRulesIter.hasNext()) {
-                    promoDescBuf.append(" and ");
+                if 
("PPIP_PARTY_CLASS".equalsIgnoreCase(productPromoCond.getString("inputParamEnumId")))
 {
+                    GenericValue partyClassificationGroup = 
EntityQuery.use(delegator).from("PartyClassificationGroup").where("partyClassificationGroupId",
 condValue).cache(true).queryOne();
+                    if (UtilValidate.isNotEmpty(partyClassificationGroup) && 
UtilValidate.isNotEmpty(partyClassificationGroup.getString("description"))) {
+                        condValue = 
partyClassificationGroup.getString("description");
+                    }
+
+                    if 
("PPC_EQ".equalsIgnoreCase(productPromoCond.getString("operatorEnumId"))) {
+                        partyClassificationsIncluded.add(condValue);
+                    }
+                    if 
("PPC_NEQ".equalsIgnoreCase(productPromoCond.getString("operatorEnumId"))) {
+                        partyClassificationsExcluded.add(condValue);
+                    }
+                } else {
+                    String msgProp = UtilProperties.getMessage("promotext", 
"condition." + productPromoCond.getString("inputParamEnumId"), messageContext, 
locale);
+                    promoDescBuf.append(msgProp);
+                    promoDescBuf.append(" ");
+
+                    if (promoRulesIter.hasNext()) {
+                        promoDescBuf.append(" and ");
+                    }
                 }
             }
 
@@ -752,6 +769,18 @@ public class ProductPromoWorker {
                     UtilMisc.toMap("limit", 
productPromo.getLong("useLimitPerPromotion")), locale));
         }
 
+        if (UtilValidate.isNotEmpty(partyClassificationsIncluded)) {
+            Map<String, Object> messageContext = UtilMisc.<String, 
Object>toMap("partyClassificationsIncluded", partyClassificationsIncluded);
+            String msgProp = UtilProperties.getMessage("promotext", 
"condition.PPIP_PARTY_CLASS.APPLIED", messageContext, locale);
+            promoDescBuf.append("\n" + msgProp);
+        }
+
+        if (UtilValidate.isNotEmpty(partyClassificationsExcluded)) {
+            Map<String, Object> messageContext = UtilMisc.<String, 
Object>toMap("partyClassificationsExcluded", partyClassificationsExcluded);
+            String msgProp = UtilProperties.getMessage("promotext", 
"condition.PPIP_PARTY_CLASS.NOT_APPLIED", messageContext, locale);
+            promoDescBuf.append("\n" + msgProp);
+        }
+
         return promoDescBuf.toString();
     }
 

Modified: ofbiz/trunk/applications/product/config/promotext.properties
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/config/promotext.properties?rev=1747540&r1=1747539&r2=1747540&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/config/promotext.properties (original)
+++ ofbiz/trunk/applications/product/config/promotext.properties Thu Jun  9 
11:58:22 2016
@@ -33,6 +33,8 @@ operator.quantity.PPC_GTE=more than
 
 
 condition.PPIP_ORDER_TOTAL=spend ${quantityOperator} $${condValue}
+condition.PPIP_PARTY_CLASS.APPLIED=Applied to party classification - 
${partyClassificationsIncluded}
+condition.PPIP_PARTY_CLASS.NOT_APPLIED=Not applied to party classification - 
${partyClassificationsExcluded}
 condition.PPIP_PRODUCT_TOTAL=buy ${quantityOperator} $${condValue} of 
qualifying products
 condition.PPIP_PRODUCT_AMOUNT=for each $${condValue} or more of qualifying 
products
 condition.PPIP_PRODUCT_QUANT=buy ${condValue} of qualifying products


Reply via email to