svn commit: r1024177 - /ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1024177 - /ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java

jleroux@apache.org
Author: jleroux
Date: Tue Oct 19 08:35:19 2010
New Revision: 1024177

URL: http://svn.apache.org/viewvc?rev=1024177&view=rev
Log:
A patch from Sascha Rodekamp "Product Promo Worker description patch" (https://issues.apache.org/jira/browse/OFBIZ-3907) - OFBIZ-3907

This patch extends the order adjustment creation. If an order adjustment is created from a product promo the promo text will store in the order adjustment description. This helps identifying the order adjustment and later on the invoice item type : ITM_PROMOTION_ADJ.

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

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=1024177&r1=1024176&r2=1024177&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 Tue Oct 19 08:35:19 2010
@@ -1716,9 +1716,10 @@ public class ProductPromoWorker {
         amount = amount.setScale(decimals, rounding);
         GenericValue orderAdjustment = delegator.makeValue("OrderAdjustment",
                 UtilMisc.toMap("orderAdjustmentTypeId", "PROMOTION_ADJUSTMENT", amountField, amount,
-                    "productPromoId", productPromoAction.get("productPromoId"),
-                    "productPromoRuleId", productPromoAction.get("productPromoRuleId"),
-                    "productPromoActionSeqId", productPromoAction.get("productPromoActionSeqId")));
+                "productPromoId", productPromoAction.get("productPromoId"),
+                "productPromoRuleId", productPromoAction.get("productPromoRuleId"),
+                "productPromoActionSeqId", productPromoAction.get("productPromoActionSeqId"),
+                "description", getProductPromoDescription((String) productPromoAction.get("productPromoId"), delegator)));
 
         // if an orderAdjustmentTypeId was included, override the default
         if (UtilValidate.isNotEmpty(productPromoAction.getString("orderAdjustmentTypeId"))) {
@@ -1733,9 +1734,10 @@ public class ProductPromoWorker {
         amount = amount.setScale(decimals, rounding);
         GenericValue orderAdjustment = delegator.makeValue("OrderAdjustment",
                 UtilMisc.toMap("orderAdjustmentTypeId", "PROMOTION_ADJUSTMENT", amountField, amount,
-                    "productPromoId", productPromoAction.get("productPromoId"),
-                    "productPromoRuleId", productPromoAction.get("productPromoRuleId"),
-                    "productPromoActionSeqId", productPromoAction.get("productPromoActionSeqId")));
+                "productPromoId", productPromoAction.get("productPromoId"),
+                "productPromoRuleId", productPromoAction.get("productPromoRuleId"),
+                "productPromoActionSeqId", productPromoAction.get("productPromoActionSeqId"),
+                "description", getProductPromoDescription((String) productPromoAction.get("productPromoId"), delegator)));
 
         // if an orderAdjustmentTypeId was included, override the default
         if (UtilValidate.isNotEmpty(productPromoAction.getString("orderAdjustmentTypeId"))) {
@@ -1745,6 +1747,23 @@ public class ProductPromoWorker {
         cart.addAdjustment(orderAdjustment);
     }
 
+    private static String getProductPromoDescription(String prodPromoId, Delegator delegator) {
+        // get the promoText / promoName to set as a descr of the orderAdj
+        GenericValue prodPromo;
+        try {
+            prodPromo = delegator.findByPrimaryKeyCache("ProductPromo", UtilMisc.toMap("productPromoId", prodPromoId));
+            if (UtilValidate.isNotEmpty(prodPromo.get("promoText"))) {
+                return (String) prodPromo.get("promoText");
+            }
+            return (String) prodPromo.get("promoName");
+
+        } catch (GenericEntityException e) {
+            Debug.logWarning("Error getting ProductPromo for Id " + prodPromoId, module);
+        }
+
+        return null;
+    }
+
     protected static Integer findAdjustment(GenericValue productPromoAction, List adjustments) {
         for (int i = 0; i < adjustments.size(); i++) {
             GenericValue checkOrderAdjustment = (GenericValue) adjustments.get(i);