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