You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Pierre Smits <pi...@gmail.com> on 2016/06/09 13:16:37 UTC

Re: svn commit: r1747540 - in /ofbiz/trunk/applications: order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java product/config/promotext.properties

UtilProperties.getMessage won't fly in a multi-tenant setup


Best regards,

Pierre



On Thursday, June 9, 2016, <mr...@apache.org> wrote:

> 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
>
>
>

-- 
Pierre Smits

ORRTIZ.COM <http://www.orrtiz.com>
OFBiz based solutions & services

OFBiz Extensions Marketplace
http://oem.ofbizci.net/oci-2/

Re: svn commit: r1747540 - in /ofbiz/trunk/applications: order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java product/config/promotext.properties

Posted by Mridul Pathak <mr...@hotwaxsystems.com>.
Thanks Pierre. I have logged Jira ticket for promotext.properties migration - https://issues.apache.org/jira/browse/OFBIZ-7297 <https://issues.apache.org/jira/browse/OFBIZ-7297>.

--
Thanks & Regards,
Mridul Pathak
Senior Manager
HotWax Systems
http://www.hotwaxsystems.com

> On Jun 10, 2016, at 2:32 PM, Pierre Smits <pi...@gmail.com> wrote:
> 
> Hi Mridul,
> 
> Thanks for spotting that. Yes, such kind of descriptions should be in
> *Labels.xml files. I wonder how many more we have residing not in there.
> When I have a moment to spare the coming days I will do an investigation
> and create the proper JIRAs and such.
> 
> Best regards,
> 
> 
> Pierre Smits
> 
> ORRTIZ.COM <http://www.orrtiz.com>
> OFBiz based solutions & services
> 
> OFBiz Extensions Marketplace
> http://oem.ofbizci.net/oci-2/
> 
> On Fri, Jun 10, 2016 at 8:04 AM, Mridul Pathak <mr...@gmail.com> wrote:
> 
>> Hi Pierre,
>> 
>> Thanks for noticing. On looking into it further I have found that
>> promotext.properties file is used only in
>> ProductPromoWorker.makeAutoDescription() method and was implemented way
>> back when UI Labels were managed in *.properties files. So, in fact
>> promotext.properties should be moved to UiLabels file because all the
>> properties defined in the file are text descriptions and not system
>> configurations, which makes them a candidate of internationalization. I'll
>> create a Jira ticket for it.
>> 
>> Thanks & Regards
>> Mridul Pathak
>> Hotwax Systems
>> http://www.hotwaxsystems.com <http://www.hotwaxmedia.com>
>> 
>> On Thu, Jun 9, 2016 at 6:46 PM, Pierre Smits <pi...@gmail.com>
>> wrote:
>> 
>>> UtilProperties.getMessage won't fly in a multi-tenant setup
>>> 
>>> 
>>> Best regards,
>>> 
>>> Pierre
>>> 
>>> 
>>> 
>>> On Thursday, June 9, 2016, <mr...@apache.org> wrote:
>>> 
>>>> 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
>>>> 
>>>> 
>>>> 
>>> 
>>> --
>>> Pierre Smits
>>> 
>>> ORRTIZ.COM <http://www.orrtiz.com>
>>> OFBiz based solutions & services
>>> 
>>> OFBiz Extensions Marketplace
>>> http://oem.ofbizci.net/oci-2/
>>> 
>> 


Re: svn commit: r1747540 - in /ofbiz/trunk/applications: order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java product/config/promotext.properties

Posted by Pierre Smits <pi...@gmail.com>.
Hi Mridul,

Thanks for spotting that. Yes, such kind of descriptions should be in
*Labels.xml files. I wonder how many more we have residing not in there.
When I have a moment to spare the coming days I will do an investigation
and create the proper JIRAs and such.

Best regards,


Pierre Smits

ORRTIZ.COM <http://www.orrtiz.com>
OFBiz based solutions & services

OFBiz Extensions Marketplace
http://oem.ofbizci.net/oci-2/

On Fri, Jun 10, 2016 at 8:04 AM, Mridul Pathak <mr...@gmail.com> wrote:

> Hi Pierre,
>
> Thanks for noticing. On looking into it further I have found that
> promotext.properties file is used only in
> ProductPromoWorker.makeAutoDescription() method and was implemented way
> back when UI Labels were managed in *.properties files. So, in fact
> promotext.properties should be moved to UiLabels file because all the
> properties defined in the file are text descriptions and not system
> configurations, which makes them a candidate of internationalization. I'll
> create a Jira ticket for it.
>
> Thanks & Regards
> Mridul Pathak
> Hotwax Systems
> http://www.hotwaxsystems.com <http://www.hotwaxmedia.com>
>
> On Thu, Jun 9, 2016 at 6:46 PM, Pierre Smits <pi...@gmail.com>
> wrote:
>
> > UtilProperties.getMessage won't fly in a multi-tenant setup
> >
> >
> > Best regards,
> >
> > Pierre
> >
> >
> >
> > On Thursday, June 9, 2016, <mr...@apache.org> wrote:
> >
> > > 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
> > >
> > >
> > >
> >
> > --
> > Pierre Smits
> >
> > ORRTIZ.COM <http://www.orrtiz.com>
> > OFBiz based solutions & services
> >
> > OFBiz Extensions Marketplace
> > http://oem.ofbizci.net/oci-2/
> >
>

Re: svn commit: r1747540 - in /ofbiz/trunk/applications: order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java product/config/promotext.properties

Posted by Mridul Pathak <mr...@gmail.com>.
Hi Pierre,

Thanks for noticing. On looking into it further I have found that
promotext.properties file is used only in
ProductPromoWorker.makeAutoDescription() method and was implemented way
back when UI Labels were managed in *.properties files. So, in fact
promotext.properties should be moved to UiLabels file because all the
properties defined in the file are text descriptions and not system
configurations, which makes them a candidate of internationalization. I'll
create a Jira ticket for it.

Thanks & Regards
Mridul Pathak
Hotwax Systems
http://www.hotwaxsystems.com <http://www.hotwaxmedia.com>

On Thu, Jun 9, 2016 at 6:46 PM, Pierre Smits <pi...@gmail.com> wrote:

> UtilProperties.getMessage won't fly in a multi-tenant setup
>
>
> Best regards,
>
> Pierre
>
>
>
> On Thursday, June 9, 2016, <mr...@apache.org> wrote:
>
> > 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
> >
> >
> >
>
> --
> Pierre Smits
>
> ORRTIZ.COM <http://www.orrtiz.com>
> OFBiz based solutions & services
>
> OFBiz Extensions Marketplace
> http://oem.ofbizci.net/oci-2/
>