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 |
Free forum by Nabble | Edit this page |